intTypePromotion=1

Khóa luận tốt nghiệp: Xây dựng hệ thống IDS - Snort trên hệ điều hành Linux

Chia sẻ: Eef Sff | Ngày: | Loại File: PDF | Số trang:0

0
458
lượt xem
120
download

Khóa luận tốt nghiệp: Xây dựng hệ thống IDS - Snort trên hệ điều hành Linux

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Intrusion Detection System (IDS) là hệ thống phòng chống và phát hiện xâm nhập thông minh nhất hiện nay. IDS phát hiện những tín hiệu, biểu hiện, hành vi của người xâm nhập trước khi có thể gây thiệt hại đến hệ thống mạng như làm cho dịch vụ mạng ngừng hoạt động hay mất dữ liệu.

Chủ đề:
Lưu

Nội dung Text: Khóa luận tốt nghiệp: Xây dựng hệ thống IDS - Snort trên hệ điều hành Linux

  1. BỘ G IÁ O DỤ C VÀ Đ ÀO TẠO TRƯỜ NG ĐẠI HỌC HOA SEN KHOA KHOA HỌC VÀ CÔN G NGHỆ Giảng viên hướ ng dẫn : Nguyễn Ngọc Như Hằng Nhó m sinh viên t hực hiện : Nguyễn Quỳnh M SSV: 070073 Phù Sử Hùng M SSV: 070156 Lớp : VT071 Tháng 12 /nă m 2010
  2. PHIẾU GIAO ĐỀ TÀI KHÓA LUẬN TỐT NGHIỆP 1. Mỗi sinh viên phải viết riêng một báo cá o 2. Phiếu này phải dán ở trang đầu tiên c ủa báo c áo 1. Họ và tên sinh viên/ n hóm sinh v iên được gi ao đề tài (sĩ số trong nhóm: ) (1) .... .. .. .. .. .... ...... .... .. .. .. .. ...... ........ .. .. .. .. M SSV: .. ...... .. .. .. ...... kh óa: .. .. .. .. ....... ..... .. .. .. . (2) .... .. .. .. .. .... ...... .... .. .. .. .. ...... ........ .. .. .. .. M SSV: .. ...... .. .. .. ...... kh óa: .. .. .. .. ....... ..... .. .. .. . (3) .... .. .. .. .. .... ...... .... .. .. .. .. ...... ........ .. .. .. .. M SSV: .. ...... .. .. .. ...... kh óa: .. .. .. .. ....... ..... .. .. .. . Chuyên ngành: Mạn g máy tính Khoa: Khoa Học - Công Nghệ ... ..... .. .. .. .. .... 2. Tên đề tài: Xây dựng hệ thống ID S – Snort trên hệ điều hành Linux .. .. .. .. .. ...... ..... .... ........ .. .. .. .. ... ...... ..... .. .. .. .. ...... ...... .. .. .. .. .. .. ....... ... .. .. .. ... ...... ..... .. .. .. .. ...... ...... .. .. .. .. .. . 3. Các dữ liệu ban đầu: Snort được xây dựng với mục đí ch p hát hiện xâm nhập vào hệ thốn g. Snort có khả năng phát hiện một số lượ n g lớn các kiểu thă m dò, xâ m nhập khác nhau nh ư : b uffer overflo w, ICMP, virus… Snort là phần mề m open source c un g cấp cho nhà quản trị các thông tin cần thiết để xử lý các sự cố khi bị xâm nhập .. .... ...... .... .. .. .. .. ....... ....... .. .. . ... ...... ... .. .. .. .. .. ...... ...... .. .. .. .. .... ....... ... .. .. .. .. ....... ..... .. .. .. ........ ...... .. .. .. .. .... ....... ... .. .. .. .. ...... ... ...... ... .. .. .. .. .. ...... ...... .. .. .. .. .... ....... ... .. .. .. .. ....... ..... .. .. .. ........ ...... .. .. .. .. .... ....... ... .. .. .. .. ...... 4. Các yêu cầu đ ặc biệt : Hiểu được khái niệm, cách h oạt độ ng của IDS - Snort. Cài đặt, cấu hình Snort trên hệ điều hành Ubuntu. Kiểm chứng kết quả đạt được sau khi cài đặt thành công...... .. .. .
  3. .... ...... .. .. .. .. .. .. ....... ..... .. .. .. .. ..... ...... ... .. .. .. .. ........ .... .. .. .. .. ...... ...... .. .. .. .. .... ....... ... .. .. .. .. ......
  4. ... .... .. ....... ..... .. ..... .. .... ..... ........... .. .. ........ .. .. .. ........ ...... ....... ... .. .. ..... ................... .. .. .. .. .. .. ... .... .. ....... ..... .. ..... .. .... ..... ........... .. .. ........ .. .. .. ........ ...... ....... ... .. .. ..... ................... .. .. .. .. .. .. 5. Kết quả tối t hiểu phải có: 1. Nắm rõ khái niệ m về IDS và Snort .. ....... .. .. .. .. ........ .. .. .. ........................ .. .. .. .. .. .. 2. Cài đặt, cấu hình th ành c ông Sno rt trên hệ đi ều h ành Ubuntu ................ ..... .. .. .. 3. .... . ..... .. ..... .. ......... ........... .. .. ........ .. .. .. ........ ...... ...... .. .. .. .. .... ... ............... .. .. .. ...... .. 4. .... . ..... .. ..... .. ......... ........... .. .. ........ .. .. .. ........ ...... ...... .. .. .. .. .... ... ............... .. .. .. ...... .. Ngày giao đề tài:…….. /………./……… N gày nộp báo cáo: … …/…………/ .... ..... Họ tên GV hướng dẫn 1: Nguyễn Ngọc Như Hằng… ….………Chữ ký: ........... ... .. .. .. Họ tên GV hướng dẫn 2: …………………...…………………..Chữ ký: . ...... ....... .. .. .. Ngày …. tháng … năm…
  5. Trích Yếu Intrusion Detection System (ID S) là hệ thống phòn g chốn g và phát hiện xâ m nhập thông minh nhất hiện nay. IDS phát h iện nhữ ng tín hiệu, biểu hiện, hành vi của người xâm nhập trước k hi có thể gây thiệt hại đến hệ thống mạn g như là m cho dịch vụ mạn g ngừng ho ạt đ ộng hay mất dữ liệu. Từ đó người quản trị mạn g có thể ngăn chặn thôn g q ua các biện pháp kỹ thuật khác nhau. Đề tài của chúng tôi với mục tiêu là xây đự n g một hệ thốn g Snort – IDS trên hệ điều hành Ubuntu, hệ thốn g này với mục đí ch p hát hiện và phòn g chống các hành đ ộng tấn công và thâ m nhập trong mạn g. Do đ ó đề tài tập trung n ghiên cứu vào phương thứ c hoạt động và vận hành của hệ thốn g Sn ort – IDS đồn g thời đ ưa ra cách cài đặt và thiết lập một hệ th ốn g ID S hoàn chỉnh t rên hệ đ iều hành Ubuntu. Bên cạnh đó chún g tôi đưa ra giải pháp nhằ m tăng cư ờng khả năng hoạt động và vận hành của hệ thống thông qua việc sử dụn g barnyard để tăn g cườ ng khả năng ghi lại lo g của hệ th ốn g và oinkma ster để tự động liên tục cập n hật rule. Ngoài việc sử dụn g hệ thốn g rule có sẵn, đề tà i tìm hiểu cách tạo ra rule theo yêu c ầu nhằm giám sát và kiể m tra đối với một luồn g thông tin cụ thể khi mà hệ thốn g rule của snort khôn g thể đáp ứng. Thông qua việc nghiên cứ u, đề tài của chúng tôi đ ưa một cái nhìn tổn g quan về hệ thống Host-b ased IDS và Net w ork-based ID S, về sự khác và giống nhau của h ai hệ thống từ đó có thể ứ ng dụn g trong mô hình mạng thực tế.
  6. M ục Lục Trích Yếu .. ..... .. ..... ........... ........ ....... ........ .. .. .. ........ .. .... ....... ...... ...... .. ................. ...... .. iv Mụ c Lục .... ..... .. ..... .. .... ..... ........ ... .. .. ........ .. .. .. ........ .. .... ....... ...... ...... .. ................. ...... ... v Lời Cả m Ơn .... .. ...... . ..... .. .. ........ ...... ............. .. ........ .. .... ........ ...... ..... .. ................. ...... . vii Nhận Xét Của Người Hướng Dẫn ... ............. .. ........ .. .... ........ ...... ..... .. ................. ...... viii Nhập Đề .... ..... .. ....... ..... .. .. ........... ............ .. .. .. ............ .. ........ .. .. .. ....... ............... .. .. .. ..... 9 1. Nguy ên Lý Ho ạt Động Của Sno rt .......... . .......... .... ......... ............ ................... ..... 10 1.1 Quá trình khởi động của snort ..... ...... ............ .......... .. .. .. ....... ............. .. .. .. .. ... 10 1.2 Xử l ý gói tin trong snort .... ......... ...... .......... .. .. ........ .. .. .. ....... ............... .. .. .. ... 11 1.3 Detection Engine .. ........... ... ......... ............ ... .. .. ........ .. .. .. .... ... ............... .. .. .. ... 15 1.4 Khảo sát Detection En gine ......... .. .. .. ........ ... ... ........ .. .. .. ....... ............. .. .. .. .. ... 18 1.5 Snort Inline Mode .. ....... .. .... ......... ..... ....... ....... ........ .. .. .. ....... ............... .. .. .. ... 20 2. Preprocessor.... .. ....... .. ......... .. .. .. ......... ..... ........ .... .. ...... .. .. .. .. ..... .. ............... .. .. .. ... 22 2.1 Preprocessor frag3 ........ .. .... ........ ............. ... .. .. ........ .. .. .. ....... ............... .. .. .. ... 23 2.2 Preprocessor strea m5 ...... .... ........ ...... ........ .. .. .. ........ .. .. .. ....... ............... .. .. .. ... 25 3. Hệ Thống Rule Tron g Snort .. .. .. ........ ...... ....... ..... .. ........ .. .. .. ..... .. ............... .. .. .. ... 31 3.1 Tổng qu an về rule trong snort . .... .. .. .. ........ ...... ........ .. .. .. ..... ................... .. .. .. . 31 3.2 Cấu trúc rule ...... .. .......... ... .. ........ .. .. .. ........ ... ... ........ .. .. .. ....... ............. .. .. .. .. ... 31 3.3 Thứ tự cá c rule trong rule base của snort .. .. .. .. ........ .. ... . ..... .. ............... .. ..... .. 34 3.4 Oinkmaster ...... .. .. ........... .... ......... ..... ........ .. .. .. ........ .. .. .. ....... ............... .. .. .. ... 34 4. Snort Output Plu g-in .. ....... .. .... .. .......... ............ .... .. ........ .. .. .. ..... .. ............... .. .. .. ... 35 4.1 Output log và alertvới tốc đ ộ n hanh .. ........ .... .. ........ .. .. .. ....... ............... .. .. .. ... 35 4.2 Output log và alert vào database .. .. .. ............. .. ........ .. .. .. ....... ............. .. .. .. .. ... 38 4.3 Output log và alert vào Unix syslog .. ...... .. .. .. .. ........ .. .. .. ....... ............. .. .. .. .. ... 38 4.4 Output log và alert vào một file c ụ thể ...... .. .. .. ........ .. .. .. ....... ............... .. .. .. ... 39 4.5 Output log và alert vào file C SV .. .. .. ......... ... ... ........ .. .. .. ....... ............. .. .. .. .. ... 40 4.6 Output log và alert ra nhiều dạng khá c nhau .......... ..... .. ..... .. ................ ... .. .. . 41
  7. 5. Network-Based và Host-Based IDS .. .. .. .. ........ .... .. ...... .. .. .. .. ..... .. ............... .. .. .. ... 41 5.1 Nework- Based ID S .......... ............. .. .. ........ .. .. .. ........ .. .. .. .... ... ............... .. .. .. ... 41
  8. 5.2 Host-Based IDS ... ........... .... ......... ... .. ........ .. .. .. ........ .. .. .. ....... ............... .. .. .. ... 43 5.3 Triển Khai IDS Tron g Mạn g...... ...... ............. .. ........ .. .. .. ....... ............. .. .. .. .. ... 44 6. Các Hình Thức Khai Thác Và Tấn Công Hệ Thống Phổ Biến .... ............... ...... ... 47 6.1 P ort scan . .. .. ......... ......... .. .. .. ........ .. .... ....... ...... . ........ .. .. .. ....... ............... .. .. .. ... 47 6.2 DOS (Denial of Services) .. .......... ............ ... .. .. ........ .. .. .. .... ... ............... .. .. .. ... 50 6.3 ARP Spoofin g ..... ......... .. .... ......... ..... ....... ....... ........ .. .. .. ....... ............... .. .. .. ... 53 7. Cài Đặt Snort .. .. ........ .......... .. .. .. ........ .. .... ....... ..... .. ........ .. .. .. ..... .. ............... .. .. .. ... 54 7.1 Một số tùy ch ọn khi biên dịch snort .. ........ .. ... . ........ .. .. .. ..................... ... .. .. .. . 54 7.2 Cấu trúc database của snort ........ .. .. .. ...... .. .. .. .. ........ .. .. .. ....... ............. .. .. .. .. ... 55 7.3 Cài đặt Snort với Snort Report ( Single Snort Sensor) .. ........ ............... .. .. .. .. . 56 7.4 Cài đặt Snort với BASE ( Single Snort Sensor) ....... .. .. .. ....... ............. .. .. .. .. ... 62 7.5 Cài đặt snort với BASE (Multiple SnortSensors) ..... ..... ..... .. ............. ...... ..... 72 7.6 Cài đặt Snort inline . ...... .... .. ...... .. .. .. .. ........ .. .... ........ .. .. .. ....... ............... .. .. .. ... 81 8. Lab Kiểm Tra Hoạt Động Của Snort . .............. .... .. ........ .. .. .. ..... .. ............... .. .. .. ... 91 8.1 Rule để kiểm tra hoạt động c ủa snort ........ .. .... ........ .. .. .. ....... ............... .. .. .. .. . 91 8.2 Rule phát h iện truy cập web...... .. .. .. .. .......... .... ........ .. .. .. ....... ............... .. .. .. ... 92 8.3 Phát hiện portscan trong Snort .... .. .. .. ........ ... ... ........ .. .. .. ....... ............. .. .. .. .. ... 93 8.4 Phát hiện DOS với snort ............. .. .. .. ...... .. .... .. ........ .. .. .. ....... ............. .. .. .. .. ... 94 8.5 Phát hiện ARP attac k .... ...... ....... ...... ............. .. ........ .. .. .. ....... ............. .. .. .. .. ... 96 Kết Luận .. .. ............ .. ..... .. .. ......... ...... ....... ....... ............ .. ........ .. .. .. ....... ............... .. .. .. . 101 Tài Liệu Tha m Khảo ..... .. .. ......... ...... ....... ...... ......... .. .. .. ........ .. .... ..... .. ............. .. .. .. ... 102
  9. Lời Cảm Ơn Chúng tôi xin chân thành cả m ơn cô Nguyễn Ngọc Nh ư Hằn g - giảng viên trự c tiếp hư ớng dẫn nhóm ch ún g tôi thực hiện khóa luận tốt nghiệp này này, đã tận tình hướn g dẫn và hỗ trợ và giúp chún g tôi giải quyết khó khăn trong quá trình nghiên cứu đề tài này. Chúng tôi ch ân thành cả m ơ n sự nhiệt tình của cô, cô đã giúp chúng tôi giải đáp những thắc mắc cũn g như cun g cấp nhữ ng tài liệu cần thiết cho quá trình nghiên cứ u đề tài của chúng tôi. Mộ t lần nữ a xin chân thành cảm ơn cô. Chúng tôi xin gửi lời cảm ơ n đến nhữ ng giảng viên của n gành Mạn g Máy Tính trườn g đ ại học Hoa Sen đã tận tình giảng dạy và tạo đi ều kiện cho chúng tôi học tập, nghiên cứ u. Để từ đó chún g tôi có được một nền tản g kiến thức vững ch ắc là m tiền đề giúp cho ch úng tôi thực h iện tốt đề tài tốt nghiệp của mình.
  10. Xây dự ng hệ thốn g IDS – Snort trên hệ điều hành Linux vii
  11. NHẬN XÉT CỦA NGƯỜI HƯ ỚNG DẪN .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . .. ... . ... ... ... ... ... .. ... ... ... .. . .. . .... ..... .. .... .. ... .. .. .. .. .... ...... . ... ... .... . .... .. .... ....... .... . ...... ... .. ..... .. .. .. ..... .. .. .. ........ .... . Người hướng dẫ n ký tên
  12. Xây dự ng hệ thốn g IDS – Snort trên hệ điều hành Linux viii
  13. Nhập Đề Khái niệm tấn côn g một máy tính bằng việc tác động trực tiếp vào máy đó đã trở thành q uá khứ khi mà n gày nay con n gười có thể truy cập vào một máy chủ ở cách xa mình nửa vòng trái đất để lấy thôn g tin web sit e, mail… Hac ker cũn g là m những côn g việc tương tự nhưng họ tận dụ n g nhữ ng lỗ hỏ ng của hệ thốn g nhằ m chiế m quyền s ử dụng hay n găn chặn sự truy cập của người dùng khác vào hệ thống đó. Nhằm n găn chặn những truy nhập trái ph ép vào hệ thốn g người ta sử dụng những thiết bị bảo mật như Firewall hay các thuật t oán mã hóa. Thế nhưn g đố i với nhữn g máy ch ủ chạy những dịch vụ như web, mail t hì nhữ ng c ôn g cụ bảo mật này vẫn chưa hoàn hảo vì đây là những máy ch ủ được mọ i n gười t ừ bên ngoài truy cập (public server). Hacker sẽ lợi dụng chính nhữn g dịch vụ này để tấn công vào hệ th ống. Điều đó là nguy ên nhân dẫn đến sự cần thiết sử dụng côn g c ụ IDS (Intrusion Detection System) với mục đích là dò tì m và nghiên cứ u các hành vi bất t hườn g và thái độ của người sử d ụn g tron g mạn g, phát hiện ra các hành vi lạm dụn g đặc quyền để giá m sát hệ thống mạn g.
  14. 1. Ng uyên Lý Hoạt Động Của Snort 1.1 Quá trì nh khởi động của snort Quá trình khởi động của snort chia làm 3 giai đoạn  Các đố i số của command-line được phân tích để x ác định chế độ chạy của snort và thiết lập các biến môi trườ ng.  File cấ u hìn h đượ c xử lý, trong file n ày chứa c ác thôn g tin cấu hình về rule, preprocessor, output plug-in …  Sau khi thông tin cấu hình được đọc, snort bắt đầu t hiết lập detection engine, cácthư viện pcap… 1.1.1 Trình comma nd-line của snort Comma nd line của snor t rất linh hoạt và có nhiều option cho ph ép n gư ời dùn g t hiết lập và cấu hình thông qua co mmand line. Điều này cho p hép ngườ i dùn g có thể thay đ ổi cấu hình cấu hìn h của snort mà không cần phải thay đ ổi file cấu hình. Đồng thời có thể cho phép nhiều tiến trình snort chia sẽ với nhau một file cấu hình. Để xem các command line option tron g snort được xử lý thế nào người dùn g có thể xe m hà m ParseCmdLine tron g file snort.c. Đồ ng thời qua đ ó người dùn g cũng có thể tạo thêm các option tùy theo ý muố n. Từ phiên bản 2.6 snort đã có hơn 40 command line options. 1.1.2 Xử l ý file c ấu hì nh File cấu hì nh chứa các thông số cấu hình cho snort, một số thông số cấu hình sẽ khôn g đ ược hỗ trợ thông q ua co m mand lin e. Các th ông số này bao gồ m c ác loạigiá trị cấu hình, preprosessor, các chỉ dẫn cho o utput, rule và các thông số khác. File cấu h ình của snort được định d ạng theo từng dòng và được phân tích và chạy theo từng d òn g một. Snort đọc toàn bộ các line và phân tích từng line như là một đ ối tượn g riên g biệt. Để thực hiện việc phân tích các rule snort sử d ụn g hà m
  15. ParseR ulesFile trong file pa rser.c. Để phân tích các th ành phần còn lại trong file cấu hình snort tích hợp code dùn g cho việc ph ân tích cho preprocessor, dectect ion option, và các output plug-in vào trong c ác mo dule đó.
  16. 1.1.3 Phân tích c ác rule Mỗi rule trong snort b ao gồ m 2 phần: header và các option. Header của rule d ùn g để phân biệt loại rule (alert, log , pass…), proto col, source và destination IP, source và destinatio n port mà rule đan g dùn g. Ph ần Option của rule chứa nhiều loại option khác n hau quy định các th ôn g tin về rule và kh ác detect option nh ư sid (snort identifier), message…Khi rule được phân tích snort sẽ tiến hành xây dựng tất cả các rule theo dạng cây. Phần header của rule dùng để tạo thành rule tree node (RTN) và phần option sẽ tạo th ành opti on tree n ode (OTN). Một phần của OTN sẽ bao gồ m cá c dection option. Tất cả các OTN tươn g ứng với một header sẽ được nhóm lại dưới cùng một RTN. 1.2 Xử lý gói tin trong snort Snort bắt đầu với việc tiếp nhận gói tin. Sau khi gó i tin được snort tiếp nhận, các gó i tin lúc này được chuy ển vào packet decoder.
  17. Sau khi được dec ode, gó i tin sẽ được chuyển vào preprocessor đ ể tiêu chu ẩn hóa gó i tin, phân tích, phân tí ch thống kê và p hát hiện các protocol bất thường. Tiếp theo đó gói tin sẽ đ ược chuy ển vào detect ion engine để đố i chiếu kiể m t ra với rulebase trong snort. Cuối cùng gó i tin được gửi vào các ouput plug- in để login g và cảnh báo. 1.2.1 Tiếp nhận g ói tin Lúc bắt đầu, snort tiến hành thực hiện chức năng packet processing của n ó. Snort đi vào chế đ ộ sniffin g mode b ằn g cách sử dụng hà m InterfaceThread trong file snort.c. Hàm này khởi đ ộng libpcap để lấy các gói tin từ interface. Libpcap là một thư viện hỗtrợ nhiều nền tảng khác nhau và cho phép tiếp nhận tất cả các gó i tin trực tiếp từ interface. Libpcap giúp cun g cấp nhữ ng thôn g tin cơ bản sau đây cho mỗi gó i tin:  Thời gian mà gó i tin được bắt từ interface tính đến phần trăm giây  Chiều dài gói tin  Số byte c ủa packet đã bắt được  Link type của p ac ket (Ethernet, Point to Point…)  Con trỏ đến nộ i dung của gói tin Chức năng xử lý gó i tin của snort được thực hiện q ua nhiều giai đoạn khác nhau. Đầu tiên snort gọi libpcap bằng hà m p cap_dispatch để xử lý tất cả các gó i tin đan g chờ. Với mỗi gó i tin libpcap gọi hà m PcapPr ocessPa cket trong file snort.c để xử lý gói tin. Hà m này khởi tạo lại giá t rị count er và số liệu của từng gói tin vàgọi hàm ProcessPackettron g file snort.c. Hà m Pr ocessPa cket xử lý tất cả cá c chi tiết của công việc decode gó i tin, xuất gó i tin ra màn hình (nếu ch ạy ở chế verbose mode), gọi hà m lo gging p ac ket ( nếu chạy ở log mode) và gọi các preprocess or (nếu chạy ở IDS mode). Khi ch ạy snort ở chế đ ộ inline, vấn đề lúc n ày là khôn g có thư viện nào tươn g đương với libpcap cho snort khi chạy ở Sniff er, Packa ge s và Intrusion Detection
  18. mode.Tuy nhiên snort có thể tiếp nhận được g ói tin trực tiếp từ iptables thay vì từ
  19. libpcap. Như ng do snort ho ạt động trên nền tảng pcap, các gó i tin sẽ được chuyển thành định dạng p cap sau đó sẽ gọi hàm PcapProcessPacket. Khi snort hoàn tất việc xử lý gói tin, snort có th ể chuyển gó i tin đi với nội dun g khôn g th ay đổ i hoặc có thể bị thay đ ổi, reject gó i tin hoặc drop gó i tin mà khôn g cần phản hồ i lại. Việc xử lý gó i tin của snort khi chạy ở chế độ inline sẽ thực hiện phụ thuộc vào cờ được gán trong l úc snort xử lý gói tin. N gười dùn g có th ể xem chi tiết phương thức xử lý của snort inline trong file inline.c Snort chỉ có th ể có th ể xử lý một gói tin tại một thời đ iểm. Mặc dù pcap và AP I của inline đều có thể b uffer các gói ti n, nếu sn ort tốn qu á nhiều thời gian để x ử l ý gó i tin trong buffer thì các gói tin này sẽ bị drop. Khi gó i tin bị drop snort sẽ khôn g có đủ thon g tin cần t hiết để có thể phát h iện hành độ ng tấn côn g mặc d ù ở chế độ inline drop gó i tin thì đồng n ghĩa với việc h ành động tấn côn g c ũn g bị drop theo. Ngoài ra việc này còn là m cho việc kết nố i trong mạn g gặp vấn đề và giả m khả năng ho ạt độn g của mạn g, đồng thời làm cho preprocessors (frag3, strea m4, stream5 …) vì các preprocessor này hoạt đ ộng dựa trên th ôn g tin thu th ập từ nhiều gó i tin khác có liên quan với nhau. Và nếu một hay nhiều gó i tin bị drop snort sẽ tiếp tục chờ những gó i tin bị mất và thiếu, do đó các gó i tin tiếp theo sẽ được đưa vào hang đ ợi. Tron g quá trình chờ đợi như vậy snort sẽ tiê u thụ nhiều bộ nhớ và CPU của hệ thống. 1.2.2 Giải mã g ói tin Sau khi snort có được gói tin, gói tin được chuyển qua cho các decoder ở lớp trên và việc gó i tin được chuy ển cho dec oder nào sẽ dựa vào loại link layer của gó i tin đó. Snort hỗ trợ các loại linklayer sau: Et herne t, 802.11, Token Ring, FDDI, Cisco HDLC, SLIP, PPP và OpenB SD’s P F. Đồng thời snort hỗ trợ nhiều protocol sau đây: IP, Internet Control Message Protocol (ICMP),TCP, and User Datagra m Protocol (UDP). Ngư ời d ùn g có thể xem về cá c decoder trong file decode. c.
  20. Sau khi một link layer đã được xác định và decoder đã được ch ọn, các con trỏ sẽ được dùng để trỏ đến các phần khác nhau củ a gó i tin. Dự a vào thôn g tin dec ode được, nó sẽ gọi tiếp các decoder cho nhữ ng lớp tiếp theo cho đến khi nào khôn g còn decoder nào được gọi nữa. Trong khi dec ode snort sẽ kiể m tra tính s ự hợp lệ
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2