ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA -------------------------- VÕ BẢO HÙNG 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 Chuyên ngành: Khoa học máy tính LUẬN VĂN THẠC SĨ TP Hồ Chí Minh, Tháng 1 năm 2012 ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độ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. Ngày, tháng, năm sinh: 28/07/1983. Chuyên ngành: Khoa học máy tính.
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): ‐ Hướng dẫn 1: TS. Trần Ngọc Thịnh ‐ Hướng dẫn 2: TS. Đinh Đức Anh Vũ Tp. CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (Họ tên và chữ ký) (Họ tên và chữ ký) TRƯỞNG KHOA (Họ tên và chữ ký) Lờ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 Lờ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 TÓ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 soft- 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 ii Mục Lục nội dung ‐‐‐W X‐‐‐ Chuyên ngành: Khoa học máy tính. GIỚI THIỆU ĐỀ TÀI. Mục tiêu của đề tài. Giới hạn của đề tài.
Cấu trúc luận văn. Giải pháp cho hệ thống IDS và các nghiên cứu liên quan. Giải pháp phần mềm. Giải pháp phần cứng.
Các nghiên cứu về sự kết hợp giữa phần mềm và phần cứng. Hardware/Software cooperation. Mô hình đề nghị và các thành phần chính của hệ thống. Mô hình đề nghị.
Loging và Alerting system. Thành phần chính. Soft‐processor in FPGA. Đặc điểm của NetThread.
HIỆN THỰC HỆ THỐNG. Giới thiệu hệ thống. Flow chart của hệ thống. Cấu trúc thư mục của hệ thống.
Cách nạp chương trình snort_netthred. Một số hàm chính của hệ thống. Hàm giao tiếp trên đường truyền mạng. Hàm xử lí gói tin trong hệ thống.
Mô hình mở rộng của hệ thống. Kết quả thực nghiệm và đánh giá hệ thống. Kết quả thực nghiệm. Đánh giá hệ thống.
Thay đổi số lượng threads trong quá trình hoạt động. Thay đổi số lượng gói tin vào hệ thống. Những đóng góp của đề tài. Hướng phát triển.
48 iv TÀI LIỆU THAM KHẢO. 49 v Mục lục hình ---o0o--- Hình 1. OSSEC – Host‐based Instrusion Detection System (HIDS). SNORT – Network Instrusion Detection System (NIDS).
Mô hình Hardware/Software cooperation. Mô hình Hardware header. Mô hình điều khiển hệ thống NIDS. Snort – Packet Decoder.
Thành phần của NetFPGA. Đánh giá soft‐processor trên FPGA. Hiện thực hệ thống. Hoạt động cơ bản của hệ thống.
Chế độ hoạt động ở Sniffer mode. Chế độ hoạt động ở Filter mode. Chế độ hoạt động ở NIDS mode. Flow chart của hệ thống.
Mô hình mở rộng 1. Mô hình mở rộng 2. Kết quả chương trình ở hệ thống Sniffer mode. Hệ thống ở chế độ Filter mode (IP nguồn = 10.
Hệ thống ở chế độ Filter mode (UDP protocol). Hệ thống ở chế độ NIDS mode trong tấn công ARP. Thời gian thực thi của hệ thống ở 3 chế độ hoạt động. 47 vi Mục lục bảng ---o0o--- Bảng 1.
Cấu trúc thư mục của hệ thống. Hàm xử lí gói tin trong hệ thống. Gói tin kiểm tra chức năng hệ thống. Hệ thống với sự thay đổi số thread thực thi chương trình.
Hệ thống với sự thay đổi số lượng gói tin đầu vào. 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 2 đá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. 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. 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 3 Khả 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ị.
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. 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 4 Ở 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. Giải pháp cho hệ thống IDS và các nghiên cứu liên quan 1. Giải pháp phần mềm Trong hệ thống IDS có hai phần mềm nổi tiếng là OSSEC và SNORT 1. Giới thiệu OSSEC là phần mềm mã nguồn mở dùng cho hệ thống phát hiện xâm nhập cho máy tính (Host-based Intrusion Detection System – HIDS) [5] OSSEC khởi đầu được thiết kế cho hệ thống Linux, hiện nay đã hỗ trợ hầu hết các hệ điều hành, bao gồm Linux, OpenBSD, FreeBSD, MAC OS X, Solaris và Window.