TÊN ĐỀ TÀI: Hiện thực hệ thống phát hiện xâm nhập mạng bằng sự kết hợp linh động giữa phần cứng và phần mềm II.. Qua quá trình nghiên cứu phát hiện xâm nhập mạng bằng phần cứng và phần
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập ‐ Tự do ‐ Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Võ Bảo Hùng MSHV: 09070441 Ngày, tháng, năm sinh: 28/07/1983 Nơi sinh: Huế Chuyên ngành: Khoa học máy tính Mã số:
I TÊN ĐỀ TÀI:
Hiện thực hệ thống phát hiện xâm nhập mạng bằng sự kết hợp linh động giữa phần cứng và phần mềm
II NHIỆM VỤ VÀ NỘI DUNG:
‐ Tìm hiểu giải pháp phát hiện xâm nhập mạng bằng phần cứng và phần mềm
‐ Tìm hiểu chức năng của phần mềm Snort
‐ Tìm hiểu và sử dụng NetThread trên NetFPGA board
‐ Hiện thực phần mềm Snort chạy trên NetFPGA board
III NGÀY GIAO NHIỆM VỤ : 25/01/2011
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 30/12/2011
V CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên):
Trang 3Lời cảm ơn
Đầu tiên, cho tôi gởi lời cảm ơn chân thành đến TS.Trần Ngọc Thịnh và TS.Đinh Đức Anh Vũ, những người Thầy đã tận tình hướng dẫn tôi trong suốt quá trình Cao học cũng như tạo mọi điều kiện để tôi hoàn thành luận văn này
Bên cạnh đó, tôi cũng xin cảm ơn sự giúp đỡ nhiệt tình của bạn bè và đồng nghiệp ở phòng máy tính C5, công ty thiết kế Renesas và nhóm tác giả nghiên cứu NetThread ở trường đại học Toronto Sự hỗ trợ của các bạn đã tạo nguồn động lực lớn cho tôi trong quá trình hiện thực đề tài
Thành phố Hồ Chí Minh, tháng 11 năm 2011
Trang 4Lời cam đoan
Tôi cam đoan rằng, ngoài những tài liệu tham khảo và các tài liệu khác đã chú thích đính kèm thì toàn bộ nội dung trong báo cáo này đều do tôi tự soạn thảo và chưa từng xuất hiện trong bất cứ tài liệu nào khác tính đến thời điểm trước khi công bố bản luận văn
Thành phố Hồ Chí Minh, tháng 1 năm 2012
Trang 5TÓM TẮT LUẬN VĂN
Cùng với sự phát triển mạnh mẽ về tốc độ đường truyền Internet, vấn đề bảo mật trong hệ thống mạng ngày một trở nên quan trọng khi số lượng gói tin ra vào hệ thống tăng lên đáng kể
Qua quá trình nghiên cứu phát hiện xâm nhập mạng bằng phần cứng và phần mềm,
đề tài đề nghị một sự kết hợp của hai giải pháp trên nhằm đảm bảo các gói tin có thể xử lí
ở tốc độ cao cũng như giữ vững tính linh hoạt, uyển chuyển của hệ thống trước những yêu cầu thay đổi của người dùng
Trong quá trình hiện thực, đề tài lựa chọn NetFPGA board, multithread processor NetThread, hiện thực những chức năng chính của phần mềm Snort nhằm phát hiện các xâm nhập vào hệ thống
Trang 6soft-Mục Lục nội dung
‐‐‐W X‐‐‐
Chuyên ngành: Khoa học máy tính i
LUẬN VĂN THẠC SĨ i
Phần 1 GIỚI THIỆU ĐỀ TÀI 2
1 Tổng quan 2
2 Mục tiêu của đề tài 3
3 Giới hạn của đề tài 4
4 Cấu trúc luận văn 4
Phần 2 Giải pháp cho hệ thống IDS và các nghiên cứu liên quan 6
1 Giải pháp phần mềm 6
1.1 OSSEC 6
1.1.1 Giới thiệu 6
1.1.2 Đặc điểm 6
1.2 SNORT 8
1.2.1 Giới thiệu 8
1.2.2 Đặc điểm 9
1.2.3 Phân loại 9
2 Giải pháp phần cứng 10
2.1 Network Processor 10
3 Các nghiên cứu về sự kết hợp giữa phần mềm và phần cứng 12
3.1 Hardware/Software cooperation 12
3.2 Hardware header 13
Phần 3 Mô hình đề nghị và các thành phần chính của hệ thống 15
1 Mô hình đề nghị 15
2 SNORT 17
2.1 Packet decoder 18
2.2 Tiền xử lí (Preprocessor) 19
2.3 Detection Engine 21
Trang 72.5 Output modules 21
3 NetFPGA 22
3.1 Giới thiệu 22
3.2 Thành phần chính 23
4 NetThread 23
4.1 MIPS architecture 24
4.2 Soft‐processor in FPGA 26
4.3 Đặc điểm của NetThread 26
Phần 4 HIỆN THỰC HỆ THỐNG 28
1 Giới thiệu hệ thống 28
a Sniffer mode 29
b Filter mode 30
c NIDS mode 32
2 Flow chart của hệ thống 33
3 Cấu trúc thư mục của hệ thống 34
4 Cách nạp chương trình snort_netthred 34
5 Một số hàm chính của hệ thống 35
a Hàm giao tiếp trên đường truyền mạng 35
b Hàm xử lí gói tin trong hệ thống 38
6 Mô hình mở rộng của hệ thống 40
Phần 5 Kết quả thực nghiệm và đánh giá hệ thống 42
1 Kết quả thực nghiệm 42
a Sniffer mode 43
b Filter mode 43
c NIDS mode 45
2 Đánh giá hệ thống 45
a Thay đổi số lượng threads trong quá trình hoạt động 45
b Thay đổi số lượng gói tin vào hệ thống 46
Phần 6 KẾT LUẬN 48
1 Tổng kết 48
2 Những đóng góp của đề tài 48
Trang 8TÀI LIỆU THAM KHẢO 49
Trang 9Mục lục hình
-o0o -
Hình 1. OSSEC – Host‐based Instrusion Detection System (HIDS) 7
Hình 2. SNORT – Network Instrusion Detection System (NIDS) 8
Hình 3. Mô hình Hardware/Software cooperation 13
Hình 4. Mô hình Hardware header 14
Hình 5. Mô hình điều khiển hệ thống NIDS 15
Hình 6. Snort – Packet Decoder 18
Hình 7. Snort – Preprocessor 19
Hình 8. NetFPGA 22
Hình 9. Thành phần của NetFPGA 23
Hình 10. MIPS architecture 25
Hình 11. Đánh giá soft‐processor trên FPGA 26
Hình 12. NetThread 27
Hình 13. Hiện thực hệ thống 28
Hình 14. Hoạt động cơ bản của hệ thống 28
Hình 15. Chế độ hoạt động ở Sniffer mode 29
Hình 16. Chế độ hoạt động ở Filter mode 30
Hình 17. Chế độ hoạt động ở NIDS mode 32
Hình 18. Flow chart của hệ thống 33
Hình 19. Mô hình mở rộng 1 40
Hình 20. Mô hình mở rộng 2 41
Hình 21. Kết quả chương trình ở hệ thống Sniffer mode 43
Hình 22. Hệ thống ở chế độ Filter mode (IP nguồn = 10.0.0.1) 44
Hình 23. Hệ thống ở chế độ Filter mode (UDP protocol) 44
Hình 24. Hệ thống ở chế độ NIDS mode trong tấn công ARP 45
Hình 25. Thời gian thực thi của hệ thống ở 3 chế độ hoạt động 47
Trang 10Mục lục bảng
-o0o -
Bảng 1. Cấu trúc thư mục của hệ thống 34
Bảng 2. Hàm xử lí gói tin trong hệ thống 38
Bảng 3. Gói tin kiểm tra chức năng hệ thống 42
Bảng 4. Hệ thống với sự thay đổi số thread thực thi chương trình 46
Bảng 5. Hệ thống với sự thay đổi số lượng gói tin đầu vào 46
Trang 11Phần 1 GIỚI THIỆU ĐỀ TÀI
1 Tổng quan
Trong những năm gần đây, vấn đề an toàn trong hệ thống mạng (network security) ngày càng được quan tâm và phát triển Bức tường lửa (firewall) đã không còn hiệu quả trước những đợt tấn công tinh vi và phức tạp, do đó cần nhiều phương pháp khác để bảo vệ hệ thống mạng Hệ thống phát hiện xâm nhập (Intrusion Detection System – IDS) là những công cụ để theo dõi những sự kiện xảy ra trên hệ thống máy tính và hệ thống mạng, bên cạnh đó phát hiện những dấu hiệu bất thường có thể gây nguy hiểm cho hệ thống Hệ thống chống xâm nhập (Intrusion Prevention System – IPS) ngoài việc phát hiện bất thường còn có thể chủ động ngăn chặn những nguy hiểm mà hệ thống phát hiện được
Hệ thống phát hiện xâm nhập trên mạng (Network Intrusion Detection System – NIDS) thông qua việc theo dõi mạng nhận biết những cuộc tấn công từ chối dịch
vụ (DoS), quét cổng (port scan),… qua đó phát hiện được những sự nguy hiểm tấn công nguy hiểm vào hệ thống máy tính Hệ thống NIDS đọc tất cả những gói tin đầu vào, tìm kiếm những mẫu đáng ngờ đã được định nghĩa theo những luật (rule) trước đó SNORT được biết đến như là một trong những phần mềm mã nguồn mở nổi tiếng được sử dụng rộng rãi trong hệ thống NIDS
Cùng với sự phát triển và mở rộng hệ thống mạng, những yêu cầu được đặt ra cho NIDS ngày càng tăng Đã có nhiều kiến trúc và giải thuật được đề nghị nhằm tăng hiệu quả cho hệ thống Tuy nhiên tốc độ đường truyền mạng tăng một cách
Trang 12đáng kể từ OC-48(2.4Gbs) lên đến OC-192(10Gbs) và dự kiến có thể đạt đến tốc
độ OC-763(40Gbs) Giải pháp phần mềm không thể xử lí hiệu quả khi chạy với tốc độ cao và kết quả là hệ thống sẽ không thể kiểm tra tất cả đường truyền trên mạng cũng như phát hiện ra những mối nguy hại cho hệ thống
Giải pháp phần cứng cũng được đưa ra và đạt được hiệu quả cao so với phần mềm Tuy nhiên giá thành trở nên rất cao khi hệ thống thiết kế một tập luật lớn (khoảng 100.000 luật) Ngoài ra khả năng mềm dẻo, linh hoạt của hệ thống trở nên thấp mỗi khi cần cập nhật những luật mới cần thiết cho hệ thống
Đề tài được xây dựng nhằm giải quyết những hạn chế nêu trên của hệ thống NIDS, đưa ra giải pháp xây dựng một hệ thống NIDS phù hợp với đường truyền mạng tốc độ cao, đồng thời đạt được các yêu cầu về hiệu quả và linh hoạt
2 Mục tiêu của đề tài
Mục tiêu của đề tài là xây dựng mô hình cho hệ thống NIDS bằng cách đề nghị một kiến trúc kết hợp giải pháp giữa phần cứng và phần mềm Hệ thống chạy trên NetFPGA board bao gồm các module được thiết kế bằng phần cứng trong việc so trùng chuỗi và phần mềm Snort chạy trên Multithread Soft-processor NetThread (đã được tích hợp trên NetFPGA) Việc hiện thực phần cứng và phần mềm trên cùng một board sẽ góp phần tăng tốc cũng như sự ổn định của hệ thống NIDS Bên cạnh đó, Soft-processor NetThread sẽ được phát huy được tính linh động, mềm dẻo của hệ thống trong việc thay đổi chương trình
Trang 13Khả năng của hệ thống:
- Theo dõi hoạt động của đường truyền: đọc gói tin trên mạng, sau đó
hiển thị lên màn hình hoặc lưu trữ vào log file Hệ thống có chức năng lọc gói tin theo protocol tuỳ thuộc vào yêu cầu của người dùng
- Phát hiện những xâm nhập vào hệ thống: các truy cập trái phép; phát
hiện các loại virus, worm Những xâm nhập trái phép này sẽ được lưu trữ cũng như gởi cảnh báo đến nhà quản trị
3 Giới hạn của đề tài
Trong quá trình phát triển hệ thống, đề tài tập trung vào việc xây dựng kết nối giữa phần cứng và phần mềm, hiện thực phần mềm Snort chạy bằng NetThread trên NetFPGA board Hiện thực phần cứng trong việc so trùng chuỗi được nghiên cứu bởi những nhóm khác và không nằm trong phạm vi của đề tài này
4 Cấu trúc luận văn
Luận văn được tổ chức theo cấu trúc như sau:
Phần 2 mô tả những nghiên cứu phát hiện xâm nhập mạng bằng phần cứng và phần mềm Bên cạnh đó, một số mô hình kết hợp giữa phần cứng và phần mềm cũng được đưa ra thảo luận và phân tích
Trang 14Ở phần 3, luận văn xây dựng mô hình cho hệ thống, đồng thời giải thích chức năng cơ bản của các thành phần chính Phần 4 mô tả chức năng và hiện thực của
hệ thống
Cuối cùng, phần 5 mô tả các tiêu chí đánh giá của hệ thống và phần 6 nêu lên một số kết luận khi thực hiện đề tài
Trang 15
Phần 2 Giải pháp cho hệ thống IDS và các nghiên cứu
OSSEC hỗ trợ công cụ phân tích mạnh, có thể phân tích log file từ nhiều thiết
bị với nhiều định dạng khác nhau: FTP server, mail server, database…
Ở hình 2.1: Trong hệ thống HIDS, việc phát hiện sự xâm nhập được cài đặt trên các máy, các máy sẽ được bảo vệ kĩ hơn cho dù có kết nối với hệ thống mạng hay không
1.1.2 Đặc điểm
- File integrity checking: Mục tiêu của các tấn công phổ biến vào máy tính là
thay đổi hệ thống bằng một cách nào đó File intergrity checking (hoặc FIM –
Trang 16file integrity monitoring) phát hiện những sự thay đổi này và cảnh báo khi chúng xảy ra Những thay đổi có thể là một cuộc tấn công, sự sai sót của người dùng, thậm chí là sự điều khiển hệ thống của admin: mỗi một file, thư mục hay registry thay đổi đều có sự cảnh báo để bảo đảm an toàn cho hệ thống
- Log monitoring: Hệ điều hành, chương trình ứng dụng, các thiết bị trong hệ
thống mạng thông báo trạng thái của hệ thống chủ yếu dựa vào log file OSSEC làm nhiệm vụ tổng hợp và phân tích log file và sẽ cảnh báo người dùng khi có cuộc tấn công hoặc lỗi của hệ thống
Hình 1 OSSEC – Host-based Instrusion Detection System (HIDS)
Trang 171.2 SNORT
1.2.1 Giới thiệu
Snort là một hệ thống phát hiện và ngăn chặn xâm nhậm mạng (IDS/IPS) được
phát triển bởi sourcefire – một tổ chức phát triển bảo mật cả phần cứng lẫn phần mềm
Snort được đánh giá là một trong những hệ thống tốt nhất hiện nay với hàng triệu lượt
download và gần 400,000 thành viên đăng kí sử dụng Bằng sự kết hợp phát hiện xâm
nhập dựa trên các tín hiệu xâm nhập mạng cũng như các phát hiện bất thường trong
hệ thống, Snort thực sự đã trở thành một chuẩn thực tế cho IDS/IPS ([5],[7])
Hình 2 SNORT – Network Instrusion Detection System (NIDS)
Trang 181.2.2 Đặc điểm
- Snort sử dụng các luật được lưu trữ ở dạng file text, có thể được chỉnh sửa bởi nhà quản trị File cấu hình chính của Snort là snort.conf: Snort đọc những luật này lúc khởi tạo và xây dựng cấu trúc dữ liệu để bắt dữ liệu trên đường truyền
- Snort chủ yếu là một IDS dựa trên luật, tuy nhiên Snort vẫn hỗ trợ các
plug-in để phát hiện sự bất thường trong các header của giao thức
- Snort xây dựng tập hợp các luật được định nghĩa trước để phát hiện các hành động xâm nhập Các luật được nhóm thành các kiểu, các luật thuộc về mỗi loại được lưu trong những file khác nhau Nhận ra các dấu hiệu và xây dựng các luật đòi hỏi sự tinh tế, nỗ lực trong việc thu thập dữ liệu trong thực tế Nhà quản trị có thể thêm một số luật dựa vào yêu cầu của hệ thống, cũng có thể xoá một vài luật đã tạo trước đó để tránh việc báo động sai
1.2.3 Phân loại
a Phân loại theo cách sử dụng
- Inline: khi ở chế độ Inline mode, Snort hoạt động như IPS (Intrusion
Prevention System): cho phép các luật có thể loại bỏ gói tin
- Passive: khi ở chế độ Passive mode, Snort hoạt động như IDS (Intrusion
Detection System): không thực hiện các luật loại bỏ gói tin
Trang 19- Inline-test: Inline-test mode mô phỏng hoạt động Inline của Snort, cho
phép đánh giá hoạt động của inline nhưng không ảnh hưởng đến đường truyền Các luật loại bỏ gói tin chỉ được sử dụng dưới dạng cảnh báo
b Phân loại theo chế độ hoạt động
- Sniffer: được dùng để xem lưu lượng mạng bằng cách đọc các gói tin
trên đường truyền và hiển thị chúng lên màn hình Một trong những đặc tính hay của chế độ Sniffer là khả năng tóm tắt lưu lượng mạng khi bắt giữ các gói tin hay việc lưu trữ kết quả vào log file Thỉnh thoảng Snort sniffer là công cụ gỡ rối hữu dụng cho nhà quản trị
- NIDS: Snort là một công cụ chống xâm nhập tuyệt vời Ở chế độ NIDS,
Snort phân tích đường truyền dựa trên tập luật được định nghĩa bởi người dùng, sau đó thực hiện một số tác động dựa vào kết quả phân tích Chúng
ta sẽ tìm hiểu kĩ hơn về chế độ NIDS thông qua các thành phần chính của
Trang 20trình được (như general purpose processor), góp phần cải thiện việc xử lí các gói thông tin một cách uyển chuyển và hiệu quả
Network processor được sử dụng rất nhiều trong sản xuất các thiết bị trong hệ thống mạng:
• Router và switch
• Firewall
• Intrusion detection/prevention devices
• Network monitoring system
Một số chức năng chủ yếu của Network processor:
• Pattern matching: tìm kiếm mẫu bit hoặc byte cho trước trong packet
stream
• Key lookup (address lookup): truy tìm thông tin trong cơ sở dữ liệu Từ
địa chỉ có được trên gói dữ liệu, network processor phải tìm kiếm thông tin về đường đi của gói dữ liệu trên một cách nhanh chóng
• Computation: thao tác trên dữ liệu ở dạng bit
• Control processing: liên lạc và quản lí giữa nhiều node khác nhau trong
hệ thống
Trang 213 Các nghiên cứu về sự kết hợp giữa phần mềm và phần cứng
Có hai dạng kết hợp giữa phần cứng và phần mềm trong hệ thống NIDS:
Hardware/Software cooperation và Hardware header
3.1 Hardware/Software cooperation
Hệ thống NIDS được chia làm 2 thành phần chính ([1],[2]):
• packet classification: phân tích các gói dữ liệu đầu vào
• payload matching: so trùng gói dữ liệu với tập luật được định nghĩa bởi
user để đưa ra hành động thích hợp cho hệ thống
Đã có nhiều nghiên cứu về packet classification và đạt được thành công nhất định Tuy nhiên, yêu cầu đặt ra payload matching ngày một tăng và trở thành vấn đề quan trọng trong việc ngăn chặn những cuộc tấn công do virus cũng như hacker
Hệ thống là sự tương tác giữa software và hardware: trong quá trình xử lí gói
dữ liệu, phần mềm (Snort) sẽ nhận và phân chia các gói dữ liệu trước Những công việc tốn thời gian CPU như so trùng chuỗi sẽ được chuyển xuống phần cứng nhằm tăng hiệu quả của hệ thống Một số giải thuật được sử dụng trong việc so trùng (Signature based)
• Shift and compare
• Aho-Corasick algorithm
• Hashing memory
• Cuckoo hashing
Trang 23có thể chuyển cho hệ thống phần mềm những gói dữ liệu thông thường (với một xác suất nhỏ) Hệ thống phần mềm sẽ kiểm tra lại những gói dữ liệu ‘false possitive’ và loại bỏ những gói dữ liệu thông thường này
Sau khi driver đã làm nhiệm vụ tiền xử lí, các gói dữ liệu được cho là nguy hiểm sẽ được kiểm tra bởi Snort Các gói dữ liệu sẽ được đưa vào phần giải mã (decoder) Tại đây các thông tin ở mức liên kết được loại bỏ Tiếp theo Snort sẽ tiếp tục kiểm tra các gói dữ liệu dựa trên các tập luật (rules) và mẫu chữ kí (pattern or signature) của Snort
Khi phát hiện dữ liệu nghi ngờ, Snort sinh ra các cảnh báo như là “drop this packet” hay “log this packet”
Trang 24Hình 5 Mô hình điều khiển hệ thống NIDS
Mô hình hệ thống NIDS dựa trên sự kết hợp giữa phần cứng và phần mềm Các module phần cứng hiện thực việc so trùng chuỗi nhằm đáp ứng đường truyền mạng với tốc độ cao Về mặt phần mềm, hệ thống sử dụng soft-processor NetThread thực thi chương trình Snort Hệ thống sẽ nhận các gói tin từ đường truyền mạng, thông qua
Trang 25quá trình tiền xử lí, so trùng chuỗi, sau đó sẽ phát hiện những gói tin xâm nhập mạng
và gởi cảnh báo đến nhà quản trị
Ưu điểm của hệ thống:
• Do chương trình Snort không cài đặt trên máy tính như các mô hình trước đây mà được thực thi trên NetFPGA thông qua soft-processor NetThread
Từ đó hệ thống NIDS xây dựng sẽ trở nên nhỏ gọn, di chuyển dễ dàng và
có thể thương mại hóa
• Hệ thống kết hợp được khả năng tính toán của phần cứng cũng như sự linh động, uyển chuyển của phần mềm trên cùng một FPGA board: chức năng tổng quát sẽ hiện thực bằng phần mềm trong khi chức năng cần hiệu quả cao sẽ được hiện thực bằng phần cứng
• Để kiểm tra lợi ích của một tính năng mới trong hệ thống, chúng ta có thể hiện thực chức năng bằng phần mềm trước do quá trình phát triển nhanh Sau đó, thông qua quá trình đánh giá sự hiệu quả, tốc độ đáp ứng chúng ta
sẽ quyết định việc hiện phần cứng hoặc phần mềm cho tính năng này
Những khó khăn trong quá trình hiện thực hệ thống:
• Trong quá trình hiện thực, việc chọn lựa soft-processor được cần được cân nhắc kĩ lưỡng dựa trên những tính năng cũng như sự hỗ trợ trên
Trang 26FPGA board NetThread được đánh giá cao do sử dụng kiến trúc MIPS, hiện thực đánh giá hiệu suất của pipeline stage trong quá trình phát triển processor Ngoài ra, NetThread còn có sự hỗ trợ tốt về tool trong việc biên dịch từ ngôn ngữ cấp cao (ngôn ngữ C) sang file thực thi, từ đó nhiều chương trình xử lí gói tin đã được phát triển trên NetThread
• Bên cạnh đó, Snort là một hệ thống lớn (gần 100.000 code line với nhiều option tùy chọn), dẫn đến khó khăn trong quá trình lựa chọn những tính năng của Snort cài đặt trên NetThread Việc chọn lựa phải được dựa trên chức năng cần thiết cho hệ thống cùng với việc xem xét tài nguyên trên NetFPGA board
• Cuối cùng, do chạy hoàn toàn trên nền FPGA, quá trình debug hệ thống trong giai đoạn đầu phát triển gặp phải một số trở ngại nhất định cho đến khi hệ thống dần đi vào sự ổn định
2 SNORT
Snort trong hệ thống được chia thành nhiều phần Những thành phần này phối hợp với nhau để phát hiện các cách tấn công cụ thể và tạo ra output theo một định dạng được đòi hỏi Một NIDS dựa trên Snort bao gồm các thành phần chính sau đây:
• Packet decoder
• Preprocessor
Trang 27Hình 6 Snort – Packet Decoder
Trang 282.2 Tiền xử lí (Preprocessor)
Quá trình Tiền xử lí nhằm mục đích “chuẩn hoá” đường truyền, đảm bảo các packet Snort đang theo dõi sẽ có cơ hội tốt nhất để so sánh với các tín hiệu nhận dạng (singnatures) mà Snort được trang bị Một chức năng khác trong quá trình tiền xử lí là tự phòng thủ Trong các cuộc tấn công, attacker có thể chia nhỏ gói tin tấn công hoặc dùng phương pháp tấn công ARP (Address Resolution Protocol) Chức năng frag2 và arpspoof của tiền xử lí có chức năng chính để chống lại các phương pháp này
arpspoof
Hình 7 Snort – Preprocessor
Trang 29• frag2: Khi một gói tin đi từ mạng này sang mạng khác, nó thường được
phân mảnh thành các gói tin nhỏ hơn (do mạng thứ 2 sẽ giới hạn kích thước của gói tin hơn mạng đầu tiên), sau đó các gói tin sẽ được sắp xếp lại khi đến nơi Một trong những phương pháp tấn công là tạo ra một dãy các gói tin nhỏ chỉ chứa vài byte của gói tin Ví dụ: luật của Snort đang dò tìm chuỗi “/users.pwd” trong các section của packet, một attacker có thể tạo ra 2 phân mảnh nhỏ: mảnh đầu tiên chứa “/user” và phân mảnh 2 chứa
“s.pwd” Các gói tin này sẽ không bị kích hoạt báo động do không vi phạm luật nào cả Tuy nhiên, frag2 của tiền xử lí sẽ tổng hợp phân mảnh
này và phát hiện sự ẩn dấu đó
• arpspoof: arpspoof có chức năng phát hiện những tấn công mạng dựa
trên lỗ hổng của giao thức arp Trong quá trình truyền nhận trong mạng LAN, các máy tính cần phải biết địa chỉ MAC của các máy khác, việc trao đổi thông tin địa chỉ MAC thông qua giao thức ARP Kẻ tấn công có thể tạo một gói ARP giả báo cho máy tính A địa chỉ máy tính B tương ứng với địa chỉ MAC của mình Từ đó, khi máy tính A cần truyền nội dung đến máy tính B, dữ liệu đều được đi qua máy tính của kẻ tấn công
Để phòng chống việc tấn công ARP spoof, hệ thống cần phải có thông tin
về địa chỉ các máy tính trong mạng và địa chỉ MAC tương ứng Preprocessor sẽ đọc và so sánh những thông tin này trong gói tin ARP để phát hiện sự tấn công