NGHIÊN CỨU XÂY DỰNG MÔ HÌNH PHÁT HIỆN TẤN CÔNG, ĐỘT NHẬP MẠNG DỰA TRÊN ĐỐI SÁNH CHUỖI MỞ ĐẦU Trong lĩnh vực an ninh mạng, việc phát hiện và ngăn chặn tấn công, đột nhập là vấn đề quan trọng, thu hút nhiều sự chú ý của các nhà nghiên cứu và cộng đồng do các dạng tấn công, đột nhập trái phép ngày càng phát triển mạnh và gây nhiều thiệt hại. Phát hiện tấn công đột nhập mạng thường gặp nhiều khó khăn, thách thức do yêu cầu phải thu thập, xử lý và phân tích một lượng rất lớn dữ liệu các gói tin thu thập trên mạng. Vấn đề nâng cao hiệu năng xử lý và tính chính xác của phát hiện tấn công, đột nhập đã và đang được nghiên cứu. Một trong những hướng giải quyết có hiệu quả cho vấn đề này là ứng dụng kỹ thuật phân tích sâu gói tin nhằm phát hiện sớm những dấu hiệu tấn công, đột nhập vào hệ thống mạng. Trong kỹ thuật phân tích sâu gói tin, các giải thuật đối sánh chuỗi là yếu tố đóng vai trò quyết định tới tính chính xác và tốc độ xử lý của hệ phát hiện tấn công, đột nhập mạng. Đặc biệt, với những mạng có lưu lượng gói tin lớn, tính tối ưu của thuật toán đối sánh chuỗi càng trở nên quan trọng, được ví như chìa khóa để giải quyết bài toán phát hiện đột nhập. Hiện nay, nhiều hệ thống phát hiện tấn công, đột nhập đã được phát triển và triển khai. Bên cạnh đó, các giải thuật đối sánh chuỗi tiên tiến cũng được nghiên cứu và phát triển và tích hợp vào hệ thống phát hiện đột nhập. Mỗi thuật toán đều có những ưu-nhược điểm riêng và phát huy hiệu quả trong một miền ứng dụng cụ thể. Trong phạm vi kiến thức đại học, đồ án này sẽ tập trung nghiên cứu xây dựng mô hình phát hiện tấn công, đột nhập mạng dựa trên đối sánh chuỗi. Trên cơ sở nghiên cứu, phân tích hiệu năng , đồ án sẽ lựa chọn giải thuật đối sánh chuỗi phù hợp để tích hợp vào hệ thống phát hiện đột nhập mạng đang khảo sát. Đồ án gồm ba chương với nội dung như sau: Chương I: Tổng quan về phát hiện đột nhập mạng Giới thiệu tổng quan về an toàn thông tin, các dạng tấn công, đột nhập và biện phát phát hiện tấn công, đột nhập mạng. Chương II: Các giải thuật đối sánh chuỗi và ứng dụng trong phát hiện đột nhập mạng Giới thiệu tổng quan về kỹ thuật đối sánh chuỗi, nghiên cứu các giải thuật đối sánh chuỗi thông dụng và ứng dụng của đối sánh chuỗi trong phát hiện tấn công, đột nhập mạng. ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC MỞ ĐẦU VŨ DUY KHÁNH – D09HTTT3 II Chương III: Xây dựng mô hình phát hiện đột nhập mạng dựa trên đối sánh chuỗi Trình bày việc xây dựng mô hình phát hiện đột nhập mạng dựa trên kỹ thuật đối sánh chuỗi đã nghiên cứu ở chương II, tiến hành cài đặt thử nghiệm mô hình và cung cấp một số kết quả thử nghiệm ban đầu. Nhìn chung, đồ án đã trình bày tổng quan về phát hiện đột nhập mạng và ứng dụng của thuật toán đối sánh chuỗi trong phát hiện tấn công, đột nhập mạng. Đồng thời, đồ án cũng nêu chi tiết một số giải thuật đối sánh chuỗi và so sánh hiệu năng của các thuật toán. Cuối cùng, đồ án đã nghiên cứu xây dựng mô hình phát hiện đột nhập dựa trên đối sánh chuỗi và tiến hành một vài thử nghiệm ban đầu. Tuy nhiên, do thời gian hạn hẹp và kiến thức còn nhiều hạn chế, đồ án không tránh khỏi thiếu sót. Rất mong thầy cô và các bạn quan tâm tới vấn đề này góp ý, chia sẻ để em có thể hoàn thiện kiến thức của mình.
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Khoá : 2009-2014
Hệ : Chính quy
Trang 2MỞ ĐẦU
Trong lĩnh vực an ninh mạng, việc phát hiện và ngăn chặn tấn công, đột nhập là vấn
đề quan trọng, thu hút nhiều sự chú ý của các nhà nghiên cứu và cộng đồng do các dạng tấn công, đột nhập trái phép ngày càng phát triển mạnh và gây nhiều thiệt hại Phát hiện tấn công đột nhập mạng thường gặp nhiều khó khăn, thách thức do yêu cầu phải thu thập,
xử lý và phân tích một lượng rất lớn dữ liệu các gói tin thu thập trên mạng Vấn đề nâng cao hiệu năng xử lý và tính chính xác của phát hiện tấn công, đột nhập đã và đang được nghiên cứu
Một trong những hướng giải quyết có hiệu quả cho vấn đề này là ứng dụng kỹ thuật phân tích sâu gói tin nhằm phát hiện sớm những dấu hiệu tấn công, đột nhập vào hệ thống mạng Trong kỹ thuật phân tích sâu gói tin, các giải thuật đối sánh chuỗi là yếu tố đóng vai trò quyết định tới tính chính xác và tốc độ xử lý của hệ phát hiện tấn công, đột nhập mạng Đặc biệt, với những mạng có lưu lượng gói tin lớn, tính tối ưu của thuật toán đối sánh chuỗi càng trở nên quan trọng, được ví như chìa khóa để giải quyết bài toán phát hiện đột nhập
Hiện nay, nhiều hệ thống phát hiện tấn công, đột nhập đã được phát triển và triển khai Bên cạnh đó, các giải thuật đối sánh chuỗi tiên tiến cũng được nghiên cứu và phát triển và tích hợp vào hệ thống phát hiện đột nhập Mỗi thuật toán đều có những ưu-nhược điểm riêng và phát huy hiệu quả trong một miền ứng dụng cụ thể Trong phạm vi kiến thức đại học, đồ án này sẽ tập trung nghiên cứu xây dựng mô hình phát hiện tấn công, đột nhập mạng dựa trên đối sánh chuỗi Trên cơ sở nghiên cứu, phân tích hiệu năng , đồ án sẽ lựa chọn giải thuật đối sánh chuỗi phù hợp để tích hợp vào hệ thống phát hiện đột nhập mạng đang khảo sát
Đồ án gồm ba chương với nội dung như sau:
Chương I: Tổng quan về phát hiện đột nhập mạng
Giới thiệu tổng quan về an toàn thông tin, các dạng tấn công, đột nhập và biện phát phát hiện tấn công, đột nhập mạng
Chương II: Các giải thuật đối sánh chuỗi và ứng dụng trong phát hiện đột nhập mạng
Giới thiệu tổng quan về kỹ thuật đối sánh chuỗi, nghiên cứu các giải thuật đối sánh chuỗi thông dụng và ứng dụng của đối sánh chuỗi trong phát hiện tấn công, đột nhập mạng
Trang 3 Chương III: Xây dựng mô hình phát hiện đột nhập mạng dựa trên đối sánh chuỗi
Trình bày việc xây dựng mô hình phát hiện đột nhập mạng dựa trên kỹ thuật đối sánh chuỗi đã nghiên cứu ở chương II, tiến hành cài đặt thử nghiệm mô hình và cung cấp một số kết quả thử nghiệm ban đầu
Nhìn chung, đồ án đã trình bày tổng quan về phát hiện đột nhập mạng và ứng dụng của thuật toán đối sánh chuỗi trong phát hiện tấn công, đột nhập mạng Đồng thời, đồ án cũng nêu chi tiết một số giải thuật đối sánh chuỗi và so sánh hiệu năng của các thuật toán Cuối cùng, đồ án đã nghiên cứu xây dựng mô hình phát hiện đột nhập dựa trên đối sánh chuỗi và tiến hành một vài thử nghiệm ban đầu Tuy nhiên, do thời gian hạn hẹp và kiến thức còn nhiều hạn chế, đồ án không tránh khỏi thiếu sót Rất mong thầy cô và các bạn quan tâm tới vấn đề này góp ý, chia sẻ để em có thể hoàn thiện kiến thức của mình
Trang 4LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời cảm ơn chân thành tới Tiến sĩ Hoàng Xuân Dậu, người thầy đã nhiệt tình hướng dẫn, chỉ bảo em trong suốt quá trình thực hiện đồ án Nhờ những định hướng và sự quan tâm của thầy, em đã có thêm nhiều động lực để hoàn thành tốt đồ
án Điều quan trọng nhất, quãng thời gian làm việc cùng thầy đã giúp em hiểu thêm rất nhiều điều, đặt những viên gạch đầu tiên cho tương lai của em sau này
Em cảm ơn các thầy cô trong khoa Cơ bản, khoa Viễn thông, đặc biệt là các thầy
cô trong khoa Công nghệ thông tin đã dạy dỗ em trong những năm tháng vừa qua Bên cạnh việc truyền đạt những kiến thức quý báu, thầy cô còn cho em những bài học làm người đầy ý nghĩa
Tôi xin gửi lời cảm ơn tới đơn vị thực tập, nơi đã tạo điều kiện cho tôi tiếp cận kiến thức thực tế, giúp tôi hình thành khả năng nghiên cứu độc lập và trưởng thành hơn trong suy nghĩ
Con cảm ơn bố mẹ, gia đình - những người đã luôn tin tưởng, động viên con trong suốt quãng thời gian học tập Sự chăm sóc và lòng tin của bố mẹ chính là động lực lớn nhất giúp con vượt qua những giới hạn của bản thân để có được ngày hôm nay
Sau cùng, tôi muốn gửi lời cảm ơn tới những người bạn, những người ở cạnh tôi những lúc khó khăn Tôi sẽ không bao giờ quên sự giúp đỡ chân thành bạn bè đã dành cho tôi trong những năm tháng qua
Xin chân thành cảm ơn!
Trang 5NHẬN XÉT, ĐÁNH GIÁ, CHO ĐIỂM
(Của Người hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Điểm: ……….………(bằng chữ: … ……… ….)
Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng chấm đồ án tốt nghiệp?
…………, ngày tháng năm 20
CÁN BỘ- GIẢNG VIÊN HƯỚNG DẪN
Trang 6MỤC LỤC
MỞ ĐẦU I
LỜI CẢM ƠN III
NHẬN XÉT, ĐÁNH GIÁ, CHO ĐIỂM IV
DANH MỤC CÁC BẢNG, SƠ ĐỒ, HÌNH VIII
KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT IX
CHƯƠNG 1: TỔNG QUAN VỀ PHÁT HIỆN ĐỘT NHẬP MẠNG 1
1.1 Các vấn đề của an toàn thông tin và các biện pháp đảm bảo an toàn cho hệ thống và mạng 1
1.1.1 Các yêu cầu về đảm bảo an toàn cho hệ thống và mạng 1
1.1.2 Các dạng tấn công và đột nhập mạng thường gặp 2
1.1.2.1 Các kiểu tấn công bằng phần mềm phá hoại 2
1.1.2.2 Các kiểu tấn công tài nguyên mạng 5
1.1.3 Các biện pháp phòng chống tấn công và đột nhập 7
1.1.3.1 Các nguyên tắc an toàn hệ thống 7
1.1.3.2 Các biện pháp ngăn chặn tấn công, đột nhập 8
1.1.3.3 Các biện pháp phát hiện tấn công, đột nhập 10
1.2 Phân loại các biện pháp phát hiện đột nhập 10
1.2.1 Phân loại dựa trên nguồn dữ liệu 10
1.2.2 Phân loại dựa trên kỹ thuật phát hiện 12
1.3 Phát hiện tấn công, đột nhập mạng 12
1.3.1 Khái quát về phát hiện tấn công, đột nhập mạng 12
1.3.1.1 Mô hình phát hiện đột nhập mạng 12
1.3.1.2 Các kỹ thuật sử dụng trong phát hiện tấn công, đột nhập mạng 13
1.3.2 Giới thiệu một số hệ thống phát hiện tấn công, đột nhập mạng 14
1.4 Hướng tiếp cận của đồ án 15
1.5 Kết chương 15
Trang 7CHƯƠNG 2: CÁC GIẢI THUẬT ĐỐI SÁNH CHUỖI VÀ ỨNG DỤNG TRONG PHÁT
HIỆN ĐỘT NHẬP MẠNG 16
2.1 Giới thiệu về đối sánh chuỗi và ứng dụng 16
2.1.1 Khái quát về đối sánh chuỗi 16
2.1.1.1 Khái niệm đối sánh chuỗi 16
2.1.1.2 Các cách tiếp cận 17
2.1.1.3 Phân loại kỹ thuật đối sánh chuỗi 17
2.1.2 Ứng dụng của đối sánh chuỗi 18
2.2 Các giải thuật đối sánh chuỗi 19
2.2.1 Các giải thuật đối sánh chuỗi thơng dụng 19
2.2.1.1 Thuật tốn đối sánh chuỗi sơ khai – Nạve string matching 19
2.2.1.2 Thuật tốn Knuth-Morris-Pratt (KMP) 24
2.2.1.3 Thuật tốn Boyer-Moore (BM) 29
2.2.1.4 Thuật tốn Boyer-Moore-Horspool (BMH) 36
2.2.2 Đánh giá ưu nhược điểm của các giải thuật đối sánh chuỗi 40
2.3 Ứng dụng của đối sánh chuỗi trong phát hiện đột nhập mạng 42
2.3.1 Phát hiện và ngăn chặn tấn cơng, đột nhập 42
2.3.2 Phát hiện và ngăn sự lây lan của virus và các phần mềm độc hại 44
2.3.3 Lọc các URL 44
2.4 Kết chương 45
CHƯƠNG 3: XÂY DỰNG MƠ HÌNH PHÁT HIỆN ĐỘT NHẬP MẠNG DỰA TRÊN ĐỐI SÁNH CHUỖI 46
3.1 Mơ hình phát hiện đột nhập mạng dựa trên đối sánh chuỗi 46
3.1.1 Kiến trúc chung của hệ thống phát hiện đột nhập 46
3.1.2 Mơ hình phát hiện đột nhập mạng dựa trên đối sánh chuỗi 47
3.1.3 Ứng dụng các giải thuật đối sánh chuỗi tiên tiến 48
3.2 Cài đặt thử nghiệm mơ hình 48
Trang 83.2.1.2 Các thành phần của Snort 49
3.2.2 Tích hợp giải thuật đối sánh chuỗi tiên tiến vào Snort phục vụ phân tích sâu các gói tin 52 3.3 Một số kết quả thử nghiệm 53
3.3.1 Kết quả thử nghiệm hiệu năng các giải thuật đối sánh chuỗi 53
3.3.1.1 Tập dữ liệu thử nghiệm 53
3.3.1.2 Tiền xử lý dữ liệu 54
3.3.1.3 Kết quả thử nghiệm 54
3.3.1.4 Đánh giá kết quả 57
3.3.2 Một số kịch bản thử nghiệm phát hiện tấn công, đột nhập với Snort 57
3.3.2.1 Kịch bản thử nghiệm 57
3.3.2.2 Kết quả thử nghiệm 58
3.4 Kết chương 60
KẾT LUẬN 61
DANH MỤC TÀI LIỆU THAM KHẢO 62
Trang 9DANH MỤC CÁC BẢNG, SƠ ĐỒ, HÌNH
Bảng 2.1 Tổng hợp đặc điểm các thuật toán đối sánh chuỗi cơ bản 41
Bảng 3.1 Tập dữ liệu thử nghiệm hiệu năng thuật toán đối sánh chuỗi 54
Bảng 3.2 Kết quả so sánh hiệu năng các thuật toán đối sánh chuỗi với tập dữ liệu 5866 gói tin TCP 55
Bảng 3.3 Kết quả so sánh hiệu năng các thuật toán đối sánh chuỗi với tập dữ liệu 11214 gói tin TCP 55
Bảng 3.4 Kết quả so sánh hiệu năng các thuật toán đối sánh chuỗi với tập dữ liệu 20981 gói tin TCP 56
Hình 1.1 Các chương trình phá hoại 3
Hình 1.2 Quá trình trao đổi thông tin trên mạng 5
Hình 1.3 Tấn công gián đoạn 5
Hình 1.4 Tấn công nghe trộm 6
Hình 1.5 Tấn công thay đổi 6
Hình 1.6 Tấn công giả mạo 7
Hình 1.7 Các lớp bảo vệ ngăn chặn tấn công, đột nhập 8
Hình 1.8 Tường lửa 9
Hình 1.9 Hệ thống Host Based IDS 11
Hình 1.10 Triển khai NIDS trong hệ thống thực tế 12
Hình 1.11 Mô hình phát hiện đột nhập mạng tổng quát 13
Hình 2.1 Mismatch trong Boyer-Moore 30
Hình 2.2 Good-Suffic shift (u xuất hiện lại trong P) 31
Hình 2.3 Good-Suffix shift (u không xuất hiện trong P) 32
Hình 2.4 Bad-Character shift (T[s+j] xuất hiện trong P) 32
Hình 2.5 Bad-Character shift (T[s+j] không xuất hiện trong P) 32
Hình 2.6 Thuật toán Boyer-Moore-Horpool (T[s+m-1] xuất hiện trong P) 36
Hình 2.7 Thuật toán Boyer-Moore-Horpool (T[s+m-1] không xuất hiện trong P) 37
Hình 2.8 So sánh giữa Boyer-Moore và Boyer-Moore-Horspool 42
Hình 2.9 Giai đoạn kiểm tra của phương pháp phát hiện đột nhập dựa trên dấu hiệu 43
Hình 2.10 Giai đoạn kiểm tra của phương pháp phát hiện đột nhập dựa trên bất thường 43
Hình 3.1 Kiến trúc chung của hệ thống phát hiện đột nhập 46
Hình 3.2 Cấu trúc hệ NIDS dựa trên đối sánh chuỗi 47
Hình 3.3 Hệ thống phát hiện đột nhập mạng với Snort 49
Hình 3.4 Các thành phần của Snort 49
Hình 3.5 Biểu đồ so sánh hiệu năng thuật toán đối sánh chuỗi với tập dữ liệu 5866 gói tin TCP 55
Hình 3.6 Biểu đồ so sánh hiệu năng thuật toán đối sánh chuỗi với tập dữ liệu 11214 gói tin TCP 56
Hình 3.7 Biểu đồ so sánh hiệu năng thuật toán đối sánh chuỗi với tập dữ liệu 20981 gói tin TCP 56
Hình 3.8 Snort phát hiện ra tấn công UDP flood 59
Hình 3.9 Snort phát hiện ra tấn công Ping flood 59
Hình 3.10 Snort phát hiện tấn công Port Scan 60
Trang 10KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT
Từ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt
BM Boyer-Moore algorithm Thuật toán Boyer-Moore
BMH Boyer-Moore-Horspool
algorithm
Thuật toán Horspool
Boyer-Moore-DPI Deep Packet Inspection Sự phân tích sâu gói tin
HIDS Host Based Intrusion Detection
System
Hệ thống phát hiện đột nhập dựa trên host
IDS Intrusion Detection System Hệ thống phát hiện đột nhập
KMP Knuth – Morris – Pratt
algorithm Thuật toán Knuth - Morris - Pratt NIDS Network Based Intrusion
Detection System
Hệ thống phát hiện đột nhập dựa trên mạng
TCP Transmission Control Protocol Một giao thức truyền thông tin
cậy của tầng giao vận UDP User Datagram Protocol Một giao thức truyền thông không
tin cậy của tầng giao vận URL Uniform Resource Locator
Chuỗi ký tự tham chiếu tới một nguồn tài nguyên trên mạng (thường là địa chỉ trang Web)
Trang 11CHƯƠNG 1: TỔNG QUAN VỀ PHÁT HIỆN ĐỘT NHẬP MẠNG
Chương này sẽ giới thiệu tổng quan về các vấn đề của an toàn cho hệ thống thông tin và mạng Thông qua việc phân tích các yêu cầu bảo mật, các dạng tấn công, đột nhập mạng thường gặp, chương đưa ra các biện pháp chung giúp phòng chống tấn công/ đột nhập Tiếp theo là phần trình bày các biện pháp phát hiện tấn công, đột nhập Chương sẽ đi sâu vào phân tích các phương pháp phát hiện tấn công, đột nhập mạng
và giới thiệu về hệ thống phát hiện đột nhập mạng Snort Cuối cùng là phần mô tả bài toán được giải quyết trong đồ án này
1.1 Các vấn đề của an toàn thông tin và các biện pháp đảm bảo an toàn cho hệ
thống và mạng
1.1.1 Các yêu cầu về đảm bảo an toàn cho hệ thống và mạng
Để một hệ thống thông tin hay một hệ thống mạng được bảo đảm an toàn, những yêu câu cơ bản sau đây cần được thỏa mãn:
Tính xác thực (Authentication): Xác thực là hành động nhằm chứng thực một người nào đó đúng với “danh xưng” mà người đó tự nhận Tính xác thực giúp hệ thống đảm bảo danh tính của các bên đang tham gia vào quá trình truyền tin, nghĩa
là đảm bảo các thông điệp được gửi từ những nguồn đáng tin cậy Chúng ta có thể
kể đến một số phương pháp xác thực cơ bản như sử dụng thông tin người dùng biết (mật khẩu, số PIN-Personal Identification Number hoặc câu hỏi bí mật), thông tin được người dùng sở hữu vật lý (Smart Card), thông tin sinh trắc học (vân tay, giọng nói…)
Tính phân quyền (Authorization): Phân quyền là hành động nhằm giới hạn quyền truy cập/sử dụng của các đối tượng đối với tài nguyên hệ thống Tính phân quyền giúp hệ thống kiểm soát được quyền hạn truy cập tài nguyên đối với từng nhóm người dung Một số kiểu phân quyền thường gặp như: quyền đọc/ghi dữ liệu, quyền chỉnh sửa dữ liệu, quyền thực thi chương trình…
Kiểm soát truy cập (Access Control): Kiểm soát truy cập là khả năng giới hạn và kiểm soát các luồng truy cập tới máy chủ hoặc ứng dụng Việc kiểm soát truy cập giúp hệ thống ngăn chặn các truy cập trái phép tới hệ thống và hạn chế quyền truy cập đối với từng cá nhân/nhóm người dùng cụ thể Kiểm soát truy cập có thể được
áp dụng cho các tài nguyên vật lý (các thiết bị phần cứng) hoặc tài nguyên logic (các tài nguyên số của hệ thống)
Tính bí mật (Confidentiality): Tính bí mật đảm bảo thông tin trong hệ thống không bị truy cập trái phép từ đối tượng bất hợp pháp Đối tượng truy cập trái phép
có thể là người dùng hoặc là một chương trình (virus, worm…) Tính bí mật của hệ thống thông tin có thể được thực hiện dựa vào phần cứng (thiết bị lưu trữ) và phần
Trang 12 Tính toàn vẹn dữ liệu (Data Integrity): Tính toàn vẹn dữ liệu đảm bảo sự nguyên vẹn của thông tin trong quá trình truyền thông hoặc trong quá trình lưu trữ dữ liệu Các biện pháp thực hiện tính toàn vẹn bao gồm kiểm soát môi trường lưu trữ dữ liệu ở thiết bị đầu cuối, kiểm soát truy cập chặt chẽ, xác thực nghiêm ngặt đối với các đối tượng được phép truy cập tới dữ liệu Ví dụ: các thông tin tài chính quan trọng trong công ty chỉ được phép sửa đổi bởi kế toán trưởng hoặc giám đốc và không được phép bị sửa đổi trong quá trình truyền thông
Tính chống chối bỏ (Nonrepudiation): Tính chống chối bỏ giúp ngăn chặn việc đối tượng phủ nhận việc đã thực hiện một hành động nào đó đối với hệ thống Chẳng hạn trong thương mại điện tử, khi một giao dịch đã hoàn thành, cả bên mua
và bên bán không thể chối bỏ việc tham gia vào giao dịch Một trong những giải pháp hiệu quả để giải quyết vấn đề này là chữ ký điện tử
Tính sẵn sàng (Availability): Tính sẵn sang đảm bảo thông tin và các nguồn tài nguyên trong hệ thống luôn khả dụng đối với người dùng hợp pháp Các yêu cầu từ phía người dùng cần được đáp ứng kịp thời, dịch vụ cung cấp không bị gián đoạn… Trong thời đại ngày nay, nhiều thông tin chỉ có giá trị trong một khoảng thời gian rất ngắn Do vậy, tính sẵn sàng trở thành một trong những yêu cầu tối quan trọng đối với hệ thống thông tin
1.1.2 Các dạng tấn công và đột nhập mạng thường gặp
Tấn công (attack) hay đột nhập (intrusion) vào một hệ thống thông tin hoặc một hệ thống mạng là sự vi phạm chính sách an toàn, bảo mật của hệ thống đó Tấn công mạng có thể phân chia thành tấn công chủ động (DoS, DDoS) và bị động (Port Scanner, Packet Sniffer), tấn công mật khẩu, mã nguồn (Back Door, Virus, Trojan, Worm), tấn công vào các hệ mã hóa (khai thác các khóa mật mã yếu)… Tuy nhiên, tựu chung lại, các dạng tấn công kể trên vẫn xuất phát từ hai hình thức cơ bản: tấn công bằng phần mềm phá hoại và tấn công vào tài nguyên mạng
1.1.2.1 Các kiểu tấn công bằng phần mềm phá hoại
Phần mềm phá hoại (malware) còn được gọi là phần mềm độc hại, phần mềm ác tính Đây là một loại phần mềm do các tin tặc hoặc chỉ đơn giản là những kẻ nghịch ngợm tạo ra nhằm gây hại cho các máy tính Tùy theo mục đích và cách thức tấn công,
mã độc có thể gây tác hại từ chỗ hiển thị các cửa sổ gây phiền toái cho người sử dụng cho tới việc chiếm quyền điều khiển máy tính, thậm chí tự động lây lan sang các máy tính khác trong mạng…[19]
Phần mềm phá hoại thường được ẩn trong một phần mềm hữu ích, đáp ứng những nhu cầu của người dùng và được người dùng chủ động tải về cài đặt trong máy Tuy nhiên, việc thực hiện các chức năng mong muốn chỉ là “lớp vỏ” che đậy những hành vi xâm phạm của các đoạn mã độc Bên cạnh đó, một số mã độc khác lại xâm nhập vào máy tính một cách bí mật và âm thầm thực hiện những thao tác phá hoại hệ thống
Trang 13Một cách tổng quát, phần mềm phá hoại có thể được chia thành hai loại: phần mềm phá hoại phụ thuộc chương trình chủ và phần mềm phá hoại độc lập với chương trình chủ (Hình 1.1)
Hình 1.1 Các chương trình phá hoại
Trapdoor: Trapdoor còn được gọi là Backdoor, là “cửa sau” để vào chương trình phần mềm Như vậy, một Backdoor của một hệ thống máy tính sẽ cho phép đối tượng bỏ qua các kiểm tra an ninh thông thường, truy cập trái phép vào hệ thống và không hề bị phát hiện Trong thực tế, Backdoor vẫn thường được tạo ra bởi các lập trình viên trong quá trình phát triển phần mềm Tuy nhiên, nếu các sau khi hoàn thiện sản phẩm các backdoor này vẫn tồn tại, tin tặc có thể lợi dụng chính những lỗ hổng này để xâm nhập vào hệ thống.[23]
Logic bomb: Logic Bomb là một đoạn mã được cố ý đưa vào hệ thống phần mềm,
Phần mềm phá hoại
Phần mềm phá hoại phụ thuộc chương trình chủ
Phần mềm phá hoại độc lập với chương trình chủ
Trapdoor Logic Virus
Bomb
Trojan Horse
Phần mềm có khả năng
tự nhân bản
Trang 14năng phá hoại hệ thống thông tin Do vậy, chúng ta không nên nhầm lẫn bom logic với chương trình được người lập trình viết ra có chủ đích nhằm vô hiệu hóa một số chức năng nhất định của hệ thống vào những thời điểm cụ thể (không mang yếu tố phá hoại)
Virus: Virus là chương trình hay đoạn mã được thiết kế để bám vào một chương trình chủ và có khả năng tự nhân bản, sao chép chính nó vào các đối tượng lây nhiễm khác (file, ổ đĩa máy tính…) Virus có thể lây lan thông qua việc người dùng
mở file, thực thi chương trình, mở ổ đĩa… Các nguồn lây nhiễm virus chủ yếu là thiết bị di động (USB, thẻ nhớ) và mạng Internet (tải file về máy tính) Theo thời gian, các chương trình virus ngày càng phát triển Từ chỗ chỉ là các chương trình nhỏ thực hiện các trò đùa, virus ngày nay chủ yếu hướng tới việc phá hoại hoặc lấy cắp thông tin cá nhân nhạy cảm của người dùng hoặc tổ chức Virus thường nhắm tới các mục tiêu là những hệ điều hành phổ thông, đặc biệt là hệ điều hành Windows – hệ điều hành có thị phần áp đảo, được sử dụng nhiều nhất trên thế giới.[22]
Worm: Worm (sâu máy tính) là một chương trình máy tính độc lập có khả năng tự nhân bản giống virus máy tính Thông thường, Worm sử dụng một mạng máy tính
để lây lan và dựa trên lỗ hổng an ninh để xâm nhập mục tiêu Nhiều sâu được thiết
kế chỉ có chức năng lây lan trên mạng, không hề phá hoại những vật thể mà nó “đi qua” (sâu Morris và Mydoom) Mục đích chúng hướng tới là tiêu thụ lượng lớn băng thông mạng, gây gián đoạn kết nối giữa các máy tính Tuy nhiên, một số sâu khác lại chứa mã độc bên trong Bên cạnh hành động lây lan, chúng còn có chức năng phá hoại hệ thống Những sâu này có thể xóa các tập tin trên hệ thống máy chủ (ExploreZip), mã hóa tập tin hoặc tự động gửi tài liệu qua email Đặc biệt, một dạng mã độc rất phổ biến trong Worm cho phép tạo ra Backdoor trong các máy tính, cho phép tạo ra những máy tính Zombie dưới sự điều khiển của tin tặc.[30]
Trojan Horse: Trojan Horse, hay còn được gọi là Trojan, là một loại phần mềm độc hại, có chức năng hủy hoại tương tự virus máy tính Tuy nhiên, khác với virus, Trojan không có khả năng tự sao chép mã độc Mục đích của Trojan thường là tạo các Backdoor cho phép truy cập trái phép vào máy tính Không những thế, một số Trojan còn có chức năng ăn cắp thông tin hoặc gây tổn hại cho hệ thống máy tính
bị xâm nhập Trojan thường ẩn dưới bóng một phần mềm tưởng như vô hại (chẳng hạn các ứng dụng, trò chơi) Sau khi được cài đặt vào máy tính, nó sẽ âm thầm thực hiện những thao tác người dùng không mong muốn.[20]
Botnet: Botnet (ghép giữa Robot và Network) là tập hợp các chương trình có khả năng giao tiếp với các chương trình tương tự thông qua Internet nhằm thực hiện nhiệm vụ nhất định Các Botnet có thể được sử dụng để phát tán thư rác hoặc tham gia vào cuộc tấn công từ chối dịch vụ.[15]
Trang 151.1.2.2 Các kiểu tấn công tài nguyên mạng
Trong hệ thống thông tin, mạng máy tính đóng vài trò rất quan trong Nó là phương tiện kết nối các thành phần bên trong hệ thống lại với nhau cũng như kết nối hệ thống với thế giới bên ngoài Chính bởi tầm quan trọng đó, tài nguyên mạng thường là mục tiêu được nhắm tới bởi các tin tặc Những kẻ xấu có thể tấn công vào đường truyền, tấn công vào gói tin trong quá trình truyền thông hoặc có thể tấn công thẳng vào tài nguyên thông tin trong hệ thống
Hình 1.2 Quá trình trao đổi thông tin trên mạng
Quá trình truyền thông trên mạng có thể bị kẻ xấu khai thác theo các phương pháp tấn công sau:
Tấn công gián đoạn (Interruption) : Đây là phương pháp tấn công lên tính khả dụng của hệ thống Kẻ xấu có thể sử dụng một số phương pháp tấn công từ chối dịch vụ như Smurf, Ping of Death, Tear Drop, SYN Attack… để làm ngập (flood) băng thông mạng, khiến hệ thống không còn khả năng đáp ứng yêu cầu (request) của những người dùng hợp pháp
Hình 1.3 Tấn công gián đoạn
Tấn công nghe trộm (Interception) : Đây là dạng tấn công nhằm vào tính bảo
mật của hệ thống Cách thức tấn công này không hướng trực diện vào các máy tính đầu cuối (host) mà mục tiêu của nó chính là dữ liệu truyền thông giữa các máy tính Chính bởi hành vi xâm phạm kiểu này chỉ âm thầm bắt giữ các gói tin trên đường truyền, không thay đổi nội dung gói tin, không làm nghẽn băng thông mạng… nên cả bên gửi và bên nhận rất khó phát hiện Phương pháp tấn công tiêu biểu của dạng này là Sniffing kết hợp với một số phương pháp tấn công dò cổng
Bên gửi
Bên gửi
Bên nhận
Bên nhận
Trang 16Hình 1.4 Tấn công nghe trộm
Tấn công thay đổi (Modification) : Đây là dạng tấn công nhằm vào tính toàn vẹn
dữ liệu của hệ thống Kẻ tấn công sẽ tạo các kết nối độc lập tới cả bên gửi và bên nhận, nhưng vẫn khiến cho các bên truyền thông tin rằng họ đang trao đổi trực tiếp với nhau Tin tặc có thể đọc được các thông điệp của bên gửi, thay đổi chúng trước khi gửi cho bên nhận Như vậy, toàn bộ cuộc nói chuyện có thể bị điều khiển theo
ý của kẻ tấn công Một trong những ví dụ tiêu biểu cho tấn công dạng này là hình
thức tấn công “Man in the middle”
Hình 1.5 Tấn công thay đổi
Tấn công giả mạo (Fabrication) : Đây là hình thức tấn công vào tính xác thực của
hệ thống Kẻ xấu mạo danh một người nào đó để gửi thông điệp tới một người khác, giả mạo địa chỉ IP của một máy nào đó để truyền thông với máy tính khác
với mục đích xấu (đánh cắp thông tin nhạy cảm, lừa đảo…)
Bên gửi
Bên gửi
Bên nhận
Bên trung gian
Bên nhận
Bên trung gian
Trang 17Hình 1.6 Tấn công giả mạo
1.1.3 Các biện pháp phòng chống tấn công và đột nhập
Để bảo vệ hệ thống trước các cuộc tấn công, đột nhập mạng xảy ra ngày một nhiều với những diễn biến phức tạp, chúng ta cần đề ra những biện pháp phòng chống hiệu quả Một trong những biện pháp hữu hiệu nhật là phân chia mức độ bảo mật và xây dựng các hệ thống phát hiện đột nhập
Nguyên tắc thứ hai, bất kỳ đối tượng nào trong hệ thống cũng chỉ được phép sở hữu một số quyền hạn nhất định đối với tài nguyên hệ thống, tài nguyên mạng Nếu một đối tượng có toàn quyền đối với hệ thống bị tin tặc chiếm quyền điều khiển, điều này sẽ mang lại những hậu quả vô cùng tai hại
Nguyên tắc thứ ba, chúng ta nên tạo ra một “cửa khẩu”, bắt buộc những thông tin
đi vào hoặc đi ra khỏi hệ thống phải qua “cửa khẩu” này Những biện pháp kiểm soát
an ninh chặt chẽ sẽ được triển khai ngay tại “cửa ngõ” của hệ thống
Nguyên tắc thứ tư, một hệ thống thông tin luôn có điểm yếu nhất Kẻ tấn công luôn
cố gắng tìm ra điểm yếu của hệ thống và khai thác những lỗ hổng an ninh này Do vậy,
hệ thống thông tin cần được định kỳ rà soát, phát hiện những điểm yếu và kịp thời gia
cố những “kẽ hở” này
Nguyên tắc thứ năm, các hệ thống khác nhau cần áp dụng đa dạng các phương pháp bảo vệ Điều này giúp ngăn chặn nguy cơ sau khi tin tặc xâm nhập vào hệ thống đầu tiên, chúng có thể dễ dàng tấn công các hệ thống còn lại
Bên gửi
Bên nhận
Bên trung gian
Trang 181.1.3.2 Các biện pháp ngăn chặn tấn công, đột nhập
Như đã nói ở phía trên, không tồn tại một giải pháp an toàn tuyệt đối trong an ninh mạng Do đó, hệ thống cần được sử dụng đồng thời nhiều mức bảo vệ khác nhau, tạo thành nhiều lớp rào chắn đối với các hoạt động tấn công, xâm nhập Thông thường, các biện pháp ngăn chặn đột nhập được triển khai theo mô hình 1.7 dưới đây:
Mức
độ bảo
(Border Protection Device - BPD), nó chỉ có tác dụng ngă chặn các cuộc tấn công từ
bên ngoài hệ thống chứ không thể phát hiện các xâm nhập từ bên trong.[21]
Trang 19Hình 1.8 Tường lửa
Có hai loại tường lửa thông dụng là tường lửa bảo vệ và tường lửa ngăn chặn Tường lửa bảo vệ có tác dụng bảo vệ an ninh cho hệ thống mạng cục bộ, tránh sự xâm nhập, tấn công từ bên ngoài Bên cạnh đó, tường lửa ngăn chặn thường được triển khai
để kiểm duyệt những nội dung truyền từ hệ thống nội bộ ra bên ngoài
b Bảo vệ vật lý
Bảo vệ vật lý là phương pháp ngăn chặn các truy cập vật lý trái phép vào hệ thống Chẳn hạn, những người không có quyền hạn không được phép vào phòng đặt máy chủ, máy tính quan trọng được đặt ổ khóa
vệ, các hệ thống lớn thường yêu cầu người dùng định kỳ thay đổi mật khẩu của mình
Trang 20e Điều khiển truy cập
Điều khiển truy cập là lớp bảo vệ trong cùng của hệ thống Mỗi đối tượng trong hệ thống sẽ được gán một số quyền nhất định đối với file và tài nguyên hệ thống Dựa vào những quyền này, điều khiển truy quyết định một đối tượng được phép truy cập vào file/tài nguyên hệ thống hoặc bị từ chối
1.1.3.3 Các biện pháp phát hiện tấn công, đột nhập
Ở phần trên, chúng ta đã xem xét các giải pháp để ngăn chặn tấn công, đột nhập mạng Trong trường hợp kẻ xấu vượt qua các lớp bảo vệ được thiết lập và đột nhập thành công vào hệ thống hoặc các tác nhân gây hại đến từ bên trong hệ thống, chúng ta cần có biện pháp phát hiện những tấn công, đột nhập dạng này
Một trong những giải pháp hiệu quả để phát hiện tấn công, đột nhập mạng là sử dụng hệ thống phát hiện đột nhập (IDS) Phát hiện đột nhập là tiến trình theo dõi các
sự kiện xảy ra trên một hệ thống máy tính hoặc hệ thống mạng, phân tích chúng để tìm
ra các dấu hiệu xâm nhập bất hợp pháp Xâm nhập bất hợp pháp có thể được hiểu là sự
nỗ lực tìm mọi cách để vượt qua các cơ chế bảo mật của hệ thống, xâm phạm tới tính
bí mật, tính toàn vẹn, tính chống chối bỏ… Việc đột nhập có thể được thực hiện từ một đối tượng ở bên ngoài hệ thống hoặc một người dùng được phép nằm trong hệ thống
1.2 Phân loại các biện pháp phát hiện đột nhập
Có hai cách chính để phân loại các biện pháp phát hiện đột nhập là phân loại dựa trên nguồn dữ liệu và phân loại dựa trên kỹ thuật phát hiện
1.2.1 Phân loại dựa trên nguồn dữ liệu
Dựa trên nguồn dữ liệu, chúng ta có thể chia phương pháp phát hiện đột nhập thành hai nhóm là phương pháp phát hiện đột nhập dựa trên thiết bị đầu cuối và phương pháp phát hiện đột nhập dựa trên mạng Đại diện cho hai nhóm phương pháp này là hai hệ thống phát hiện đột nhập:
Hệ thống phát hiện đột nhập dựa trên thiết bị đầu cuối (Host Based IDS -
HIDS)
HIDS là hệ thống phát hiện đột nhập được cài đặt cục bộ trên một máy tính nhất đinh Thay vì giám sát hoạt động của một vùng mạng HIDS thường được đặt trên các host quan trọng, và các server trong vùng DMZ thường là mục tiêu bị tấn công đầu tiên Ngoài ra, HIDS có thể ghi nhận những việc mà người tấn công đã làm trên máy chủ bị tấn công (compromised host) Nhiêm vụ chính của HIDS là giám sát các thay đổi trên hệ thống, bao gồm các tiến trình, các thanh ghi, mức độ sử dụng CPU, các luồng truy cập tới file hệ thống… Khi các giá trị này vượt quá một ngưỡng định trước hoặc có những thay đổi khả nghi, hệ thống HIDS sẽ phát ra cảnh báo gửi tới hệ thống khác (có chức năng xử lý chuyên biệt) hoặc gửi trực tiếp tới người quản trị
Trang 21Hình 1.9 Hệ thống Host Based IDS
Hệ thống phát hiện đột nhập dựa trên mạng (Network Based IDS - NIDS)
NIDS là hệ thống phát hiện xâm nhập có tác dụng phát hiện những truy cập trái phép vào mạng máy tính bằng cách phân tích lưu lượng truy cập trên mạng Hệ thống NIDS sẽ giám sát lưu lượng tại các điểm được chọn trên một mạng hoặc tập hợp các mạng được kết nối với nhau NIDS có chức năng kiểm tra các gói dữ liệu trong thời gian thực hoặc gần với thời gian thực, tìm cách phát hiện mô hình xâm nhập NIDS có thể giám sát các giao thức ở tầng ứng dụng (application level), tầng giao vận (transport level) hoặc tầng mạng (network level).[5]
Một NIDS điển hình bao gồm một số bộ cảm biến (sensor) có nhiệm vụ theo dõi lưu lượng gói tin, một hoặc nhiều máy chủ cho các chức năng quản lý NIDS và một hoặc nhiều bàn giao tiếp (console) cung cấp giao diện cho người quản trị Việc phân tích lưu lượng để phát hiện ra xâm nhập có thể được thực hiện tại các bộ các biển, tại máy chủ quản lý hoặc kết hợp cả hai
Trong một hệ thống thông tin hoặc hệ thống mạng thực tế, các cảm biến NIDS
có thể được triển khai theo nhiều cách khác nhau Hình 1.10 dưới đây sẽ mô tả phương án triển khai NIDS cho một hệ thống điển hình
Trang 22Hình 1.10 Triển khai NIDS trong hệ thống thực tế
1.2.2 Phân loại dựa trên kỹ thuật phát hiện
Dựa trên kỹ thuật phân tích dữ liệu, chúng ta có thể chia phương pháp phát hiện đột nhập thành hai loại:
Phát hiện đột nhập dựa trên dấu hiệu (signature-based): Đây là phương pháp phát hiện đột nhập dựa trên những dấu hiệu đã biết, thông qua đó phát hiện hành vi đột nhập Để triển khai kỹ thuật này, chúng ta phải duy trì một cơ sở dữ liệu về các dấu hiệu (signature database) Các thông tin về hệ thống sẽ được thu thập thông qua giám sát lưu lượng mạng, nhật ký hệ thống và so sánh với tập dấu hiệu có sẵn trong cơ sở dữ liệu Để tăng cường tính năng phát hiện của hệ thống, cơ sở dữ liệu này phải thường xuyên được cập nhật mỗi khi xuất hiện dạng tấn công/đột nhập mới
Phát hiện đột nhập dựa trên bất thường (Anomaly-based): Đây là phương pháp phát hiện đột nhập bằng cách phân tích các đặc điểm, hành vi của hệ thống và so sánh với các hoạt động thông thường Nếu thấy các dấu hiệu hiện tại không phù hợp với các hoạt động thông thường, hệ thống ghi nhận sự bất thường và đưa ra cảnh báo về tấn công/đột nhập Có nhiều cách thức phát hiện bất thường, một số phương pháp tiêu biểu là phát hiện bất thường dựa trên ngưỡng, dựa trên thống kê hoặc dựa trên mô hình Markov…
Trang 23Hình 1.11 Mô hình phát hiện đột nhập mạng tổng quát
Trong mô hình này, trung tâm của mô hình phát hiện xâm nhập mạng là hệ thống NIDS được kết nối tới một cơ sở dữ liệu Ngày nay, hầu hết các hệ thống phát hiện đột nhập mạng (NIDS) có hỗ trợ các giải pháp để ghi nhật ký lưu lượng mạng (historical network flows) Tuy nhiên, giải pháp này rất tốn kém, hiệu quả hạn chế và thiếu tính linh hoạt Các mô hình phát hiện đột nhập hiện đại thường sử dụng một hệ quản trị cơ
sở dữ liệu quan hệ (RDBMS) chuyên biệt để ghi lại dữ liệu lịch sử (historical flow), giúp hệ thống NIDS có thể tập trung toàn bộ tài nguyên cho việc phát hiện xâm nhập
Cơ chế hoạt động của mô hình phát hiện đột nhập mạng có thể được hình dung như sau: NIDS nhận được luồng dữ liệu mạng từ các bộ định tuyến nội bộ (internal routers) của doanh nghiệp, xử lý chúng và sinh ra cảnh báo Trong quá trình đó, các dữ liệu tóm tắt về lịch sử phát hiện vẫn được duy trì ghi vào cơ sở dữ liệu để phục vụ cho quá trình phân tích (forensic analysis) sau này
1.3.1.2 Các kỹ thuật sử dụng trong phát hiện tấn công, đột nhập mạng
Để phát hiện tấn công/đột nhập mạng, chúng ta có thể áp dụng nhiều kỹ thuật xử lý
dữ liệu khác nhau Tùy thuộc vào miền ứng dụng và đối tượng dữ liệu cụ thể, các kỹ thuật sẽ được linh hoạt sử dụng sao cho đạt hiệu quả phát hiện cao nhất
Kỹ thuật phân tích thống kê: Đây là một trong những phương pháp thường được
sử dụng trong các hệ phát hiện đột nhập Các hành vi thông thường của người dùng hoặc hệ thống như số lần đăng nhập/đăng xuất, số tập tin truy cập trong một khoảng thời gian… sẽ được hệ thống lưu lại trong cơ sở dữ liệu Dựa vào những dữ liệu này, khi hệ thống/người dùng có hành vi lạ, các giá trị vượt khỏi ngưỡng thông thường, hệ thống sẽ có những phản ứng kịp thời
Kỹ thuật học máy (Machine Learning): Đây là kỹ thuật cho phép các hệ thống
Trang 24suy luận, dự đoán cho những tình huống khác với các mẫu dữ liệu huấn luyện Để
kỹ thuật học máy phát huy hiệu quả, tăng độ chính xác cho các phán đoán, hệ thống cần được huấn luyện với một lượng lớn các dữ liệu lịch sử
Kỹ thuật mạng nơ-ron (Neural Network): Mạng nơ-ron là một mô hình tính toán được xây dựng dựa trên mạng nơ-ron sinh học Mạng có thể được sử dụng để mô hình hóa các mối quan hệ phức tạp giữa dữ liệu đầu vào và kết quả, cho phép phát hiện ra những xu hướng mà con người cũng như các kỹ thuật máy tính khác không thể phát hiện ra.[18] Áp dụng trong phát hiện đột nhập, kỹ thuật mạng nơ-ron thường được sử dụng để phân tích và dự đoán hành vi người dùng trong hệ thống
Kỹ thuật đối sánh chuỗi (String Matching): Đối sánh chuỗi là một kỹ thuật cho phép tìm sự xuất hiện của một chuỗi mẫu (pattern) cho trước trong một chuỗi văn bản (text) Đây là kỹ thuật được áp dụng rất nhiều trong thực tế Đối với lĩnh vực phát hiện xâm nhập mạng, kỹ thuật đối sánh chuỗi chính xác được sử dụng để tìm kiếm sự xuất hiện của các dấu hiệu cho trước (thường là các nguy cơ xuất hiện đột nhập) trong hệ thống Từ đó, hệ thống đưa ra cảnh báo tới người dùng và kịp thời
có những hành động ngăn chặn xâm nhập Một trong những ứng dụng hiệu quả của đối sánh chuỗi trong phát hiện đột nhập là kỹ thuật phân tích sâu gói tin (DPI – Deep Packet Inspection)
1.3.2 Giới thiệu một số hệ thống phát hiện tấn công, đột nhập mạng
Để phát hiện những cuộc tấn công/đột nhập mạng trái phép và kịp thời có những hành động ngăn chặn, một trong những giải pháp hữu hiệu là sử dụng hệ thống phát hiện xâm nhập mạng (NIDS) Trong rất nhiều hệ IDS chuyên dụng, chúng ta có thể kể đến một số hệ thống phát hiện đột nhập nổi tiếng như Snort, Bro và Suricata
a Snort
Snort là một hệ thống phát hiện đột nhập mạng (NIDS) được tạo ra bởi Martin Roesch vào năm 1998 Snort được phát triển dưới dạng phần mềm mã nguồn mở, có khả năng thực hiện phân tích lưu lượng mạng trong thời gian thực và ghi nhật ký các gói tin IP Với các tính năng phân tích giao thức, tìm kiếm nội dung, Snort có thể được
sử dụng để phát hiện các cuộc thăm dò và tấn công mạng Chi tiết về Snort sẽ được trình bày trong chương 3
b Bro
Bro là hệ thống NIDS mã nguồn mở, dựa trên Unix Nó giám sát lưu lượng mạng ở chế độ thụ động (passively) và tìm kiếm những hành vi đáng ngờ Bro được phát triển bởi Vern Paxson (trong nhóm nghiên cứu mạng tại Lawrence Berkley National Lab)
và viện khoa học máy tính quốc gia vào năm 1998 Bro có khả năng thực hiện phân tích nhiều lớp (multi-layer), giám sát hành vi, thực thi chính sách an ninh, phát hiện xâm nhập và ghi nhật ký các hoạt động mạng Bro phát hiện đột nhập trước tiên dựa trên sự phân tích lưu lượng mạng để rút ra ngữ nghĩa ở mức ứng dụng (application-
Trang 25level semantic) Sau đó, so sánh hành vi với các mẫu nghi ngờ Bro cho phép phát hiện các cuộc tấn công và các hành vi bất thường bên trong hệ thống (chẳng hạn, máy tính kết nối tới các dịch vụ nhất định hoặc các nỗ lực kết nối bị thất bại).[3]
c Suricata
Suricata là hệ thống phát hiện đột nhập mạng mã nguồn mở có hiệu năng cao, được phát triển bởi Open Information Security Foundation (OISF) - một tổ chức phi lợi nhuận Phiên bản thử nghiệm của Suricata được phát hành vào tháng 12 năm 2009, phiên bản chính thức được phát hành vào tháng 7 năm 2010 Do ra đời sau, Suricata có cấu trúc tương tự như Snort Nó hoạt động dựa trên các dấu hiệu và thậm chí còn sử dụng tập luật của Snort
Một trong những điểm mạnh của Suricata là tính đa luồng Điều này cho phép hệ thống dễ dàng hoạt động ở môi trường mạng lưu lượng lớn mà không cần lược bớt tập luật.[13]
1.4 Hướng tiếp cận của đồ án
Trên cơ sở nghiên cứu về các phương pháp tấn công mạng và hệ thống phát hiện đột nhập mạng và các giải thuật đối sánh chuỗi, đồ án xây dựng và cài đặt thử nghiệm
mô hình phát hiện đột nhập mạng dựa trên đối sánh chuỗi
Với dữ liệu đầu vào là các gói tin offline, đồ án xây dựng chương trình giải mã gói tin, lọc ra phần dữ liệu (payload) để tiếp tục làm đầu vào thử nghiệm hiệu năng của các thuật toán đối sánh chuỗi Chương trình giải mã gói tin và đánh giá hiệu năng thuật toán được cài đặt trên hệ điều hành mã nguồn mở Linux
Cuối cùng, đồ án thử nghiệm tích hợp thuật toán đối sánh chuỗi tiên tiến vào hệ thống phát hiện đột nhập mạng Snort (thay thế cho thuật toán hiện có trong Snort) và cài đặt Snort trên hệ điều hành Linux Tiếp theo, đồ án xây dựng các luật cho Snort giúp phát hiện một số kịch bản tấn công/đột nhập mạng
1.5 Kết chương
Chương 1 đã giới thiệu tổng quan về phát hiện đột nhập mạng Trong đó, chương nêu rõ yêu cầu đối với một hệ thống thông tin an toàn Từ đó, chương đưa ra năm nguyên tắc an toàn hệ thống và các biện pháp ngăn chặn tấn công/đột nhập Về các giải pháp phát hiện tấn công/đột nhập, chương chú trọng vào các giải pháp phát hiện tấn công/đột nhập mạng
Đối với bài toán được giải quyết trong đồ án, chương đưa ra hướng tiếp cận về phát hiện đột nhập mạng dựa trên kỹ thuật đối sánh chuỗi hiệu năng cao, giúp giảm thời gian xử lý gói tin, tránh tình trạng “nghẽn cổ chai” khi lưu lượng mạng tăng cao Chi tiết về các giải thuật đối sánh chuỗi sẽ được trình bày ở chương tiếp theo
Trang 26CHƯƠNG 2: CÁC GIẢI THUẬT ĐỐI SÁNH CHUỖI VÀ ỨNG
DỤNG TRONG PHÁT HIỆN ĐỘT NHẬP MẠNG
Chương 2 sẽ giới thiệu khái quát về đối sánh chuỗi và những ứng dụng của đối sánh chuỗi nói chung và đặc biệt là trong lĩnh vực khoa học máy tính Tiếp theo, chương sẽ nghiên cứu sâu về các giải thuật đối sánh chuỗi và phân tích ứng dụng của đối sánh chuỗi trong phát hiện đột nhập mạng
2.1 Giới thiệu về đối sánh chuỗi và ứng dụng
2.1.1 Khái quát về đối sánh chuỗi
2.1.1.1 Khái niệm đối sánh chuỗi
Trong khoa học máy tính, đối sánh chuỗi (còn được gọi là tìm kiếm chuỗi) là kỹ thuật cho phép tìm ra vị trí xuất hiện của một hoặc một vài chuỗi (gọi là mẫu - Patern) trong một chuỗi lớn (gọi là văn bản - Text).[28]
Ta có thể phát biểu dưới dạng toán học như sau:
T[0 n-1] là chuỗi văn bản bao gồm n ký tự
P[0 m-1] là chuỗi mẫu bao gồm m ký tự
Σ* là tập hữu hạn các ký tự trong bảng chữ cái
Trong đó, m và n là các giá trị nguyên dương (0<m<n) Tập Σ* có thể là bảng chữ cái thông thường của con người, có thể là bảng chữ cái nhị phân (Σ*= {0,1}) hoặc bảng chữ cái DNA trong tin sinh học (Σ*= {A,C,G,T}) Các ký tự trong T và P phải nằm trong tập Σ* hữu hạn nói trên
Tìm sự xuất hiện của P trong T được hiểu là tìm số nguyên s (0 ≤ s ≤ n-m) thỏa mãn:
T[s s+m-1] = P[0 m-1] hay
T[s+i] = P[i] với i nằm trong khoảng [0 m-1]
Giá trị s được gọi là độ dịch chuyển Trong trường hợp P xuất hiện trong T, ta nói s là
độ dịch chuyển hợp lê Khi P không xuất hiện trong T, ta gọi s là độ dịch chuyển không hợp lệ
Ví dụ, ta xét văn bản T[n] và P[m] như sau :
Trang 272.1.1.2 Các cách tiếp cận
Để giải quyết bài tốn đối sánh chuỗi, chúng ta cĩ thể sử dụng nhiều thuật tốn so khớp chuỗi Nhưng tựu chung lại, cĩ 4 cách tiếp cận chính:
Thuật tốn cổ điển (Classical algorithms): Thuật tốn cổ điển chủ yếu dựa vào
sự so sánh lần lượt các ký tự với nhau Các thuật tốn điển hình thuộc dạng này là Nạve, Brute Force…
Thuật tốn máy tự động hậu tố (Suffix automata algorithms): Thuật tốn máy
tự động hậu tố chủ yếu sử dụng các cấu trúc tự động để nhận ra các hậu tố của chuỗi Pattern Từ đĩ, thuật tốn đưa sẵn những phương án dịch chuyển (tìm kiếm tiếp) so khớp P với T thất bại hoặc khi so khớp thành cơng Các thuật tiêu biểu cĩ thể kể tới là: Knuth–Morris–Pratt (KMP), Boyer Moore (BM), Boyer Moore Horspool (BMH)…
Thuật tốn Bit song song (Bit-Parallelism algorithms): Thuật tốn Bit song song khai thác các phép tốn Bitwise để thực hiện nhiều thao tác cùng lúc Một thuật tốn điển hình thuộc dạng này là Shift-Or
Thuật tốn băm (Hashing algorithms): Thuật tốn băm sửa dụng hàm băm để
so sánh giá trị băm của chuỗi mẫu với giá trị băm của các chuỗi con trong văn bản Phương pháp này giúp giảm bớt sự so sánh trực tiếp các ký tự với nhau, giúp giảm độ phức tạp của thuật tốn Thuật tốn điển hình sử dụng cách tiếp cận này
là Kabin-Karp
2.1.1.3 Phân loại kỹ thuật đối sánh chuỗi
Hiện nay, các thuật tốn đối sánh chuỗi tương đối đa dạng Chúng ta cĩ thể phân loại kỹ thuật đối sánh chuỗi theo nhiều cách khác nhau Một số phương pháp phân loại
cĩ thể kể tới là: phân loại dựa theo thứ tự đối sánh, phân loại dựa theo số lượng mẫu, phân loại dựa theo độ chính xác
a Phân loại dựa theo thứ tự đối sánh
Dựa theo thứ tự đối sánh, chúng ta cĩ thể chia các thuật tốn đối sánh chuỗi thành hai nhĩm:
o Đối sánh chuỗi theo thứ tự từ trái sang phải: Các ký tự trong pattern sẽ được
so khớp theo thứ tự từ trái sang phải Cụ thể, các phần tử từ P[0] đến P[m-1] sẽ lần lượt được so sánh với các phần tử từ T[s] đến T[s+m-1] trong chuỗi văn bản (text) Ví dụ: thuật tốn Nạve, KMP…
o Đối sánh chuỗi theo thứ tự từ phải sang trái:Các ký tự trong pattern sẽ lần lượt
được so sánh theo thứ tự từ phải sang trái Ví dụ: thuật tốn Boyer Moore, Horpool…
b Phân loại dựa theo số lượng mẫu (pattern)
Dựa theo số lượng pattern, các thuật tốn đối sánh chuỗi được chia thành hai nhĩm:
Trang 28o Đối sánh chuỗi đơn pattern: Cơng việc so khớp chỉ được thực hiện giữa một
Pattern với một chuỗi Text cho trước Các thuật tốn đối sánh đơn pattern là Nạve, Boyer Moore…
o Đối sánh chuỗi đa pattern: Với các thuật tốn thuộc nhĩm này, các chuỗi
Pattern sẽ được so khớp đồng thời với các chuỗi con trong Text Thuật tốn đa pattern tiêu biểu là Aho-Corasick
c Phân loại dựa theo độ chính xác
Dựa trên độ chính xác khi tìm kiếm Pattern trong Text, các thuật tốn được chia thành hai dạng:
o Đối sánh chuỗi chính xác: Thuật tốn sẽ so khớp một cách tuyệt đối Pattern và
các chuỗi con trong Text để tìm ra các vị trí xuất hiện của P[m] trong T[n]
o Đối sánh chuỗi gần đúng: Thuật tốn sẽ tìm kiếm những chuỗi con của Text
gần đúng so với chuỗi Pattern
2.1.2 Ứng dụng của đối sánh chuỗi
Đối sánh chuỗi là một trong những bài tốn cơ bản nhất, xuất phát từ chính nhu cầu thực tiễn Bởi vậy, nĩ cĩ miền ứng dụng rất rộng ngồi thực tế Chúng ta sẽ xem xét một vài ứng dụng/lĩnh vực sử dụng kỹ thuật đối sánh chuỗi
Trình soạn thảo văn bản, trình duyệt web, hệ điều hành: Trong trình soạn thảo văn bản và trình duyệt web, tính năng “search” thường được sử dụng Người dùng khi cĩ nhu cầu tìm một từ hoặc một đoạn nào đĩ trong văn bản hoặc nội dung trang web sẽ sử dụng chức năng tìm kiếm chuỗi này Ngồi ra, trong các hệ điều hành, kỹ thuật đối sánh chuỗi cũng được ứng dụng vào chức năng tìm kiếm tập tin/thư mục hoặc tìm kiếm các từ trong nội dung tập tin (lệnh “grep” trong
Linux)
Website: Các website thương mại điện tử, website thư viện trực tuyến thường cung cấp cơng cụ hỗ trợ tìm kiếm các mặt hàng, các tài liệu theo nhu cầu người dùng Các thơng tin này sẽ được người dùng nhập vào giao diện tìm kiếm, thực hiện truy vấn tới cơ sở dữ liệu và trả lại kết quả dựa vào việc so sánh thơng tin
truy vấn với thơng tin lưu trữ trong cơ sở dữ liệu
Tin sinh học: Trong lĩnh vực tin sinh học, các giải thuật đối sánh chuỗi được ứng dụng hiệu quả để tìm kiếm, nhận diện, phân tích các chuỗi DNA và protein.[12]
Máy tìm kiếm: Các máy tìm kiếm như Google, Bing, Yahoo… được sử dụng các thuật tốn đối sánh chuỗi hiệu năng cao để tìm kiếm thơng tin trong một cơ sở dữ liệu khổng lồ Kỹ thuật đối sánh chuỗi thường được kết hợp với một số kỹ thuật
khác như đánh chỉ mục trong cơ sở dữ liệu để cải thiện hiệu quả tìm kiếm
Hệ thống phát hiện đột nhập: Hệ thống phát hiện đột nhập cĩ chức năng phát hiện sớm những nguy cơ xâm nhập dựa vào các gĩi tin truyền thơng trong mạng
Để phát hiện kịp thời những nguy cơ này, kỹ thuật đối sánh chuỗi chính xác được
sử dụng để tìm kiếm những dấu hiệu đột nhập trong dữ liệu gĩi tin đã được tiền
Trang 29xử lý Nếu sự so khớp thành cơng, hệ thống sẽ ghi nhận và đưa ra cảnh báo cho
người dùng
2.2 Các giải thuật đối sánh chuỗi
2.2.1 Các giải thuật đối sánh chuỗi thơng dụng
2.2.1.1 Thuật tốn đối sánh chuỗi sơ khai – Nạve string matching
a Giới thiệu
Thuật tốn đối sánh chuỗi sơ khai là thuật tốn đơn giản nhất để tìm một chuỗi Pattern trong một chuỗi Text Cách tiếp cận của thuật tốn đơn giản là lần lượt duyệt tất cả các vị trí cĩ thể của chuỗi Pattern trong chuỗi Text để tìm ra vị trí so khớp thành cơng
b Thuật tốn tìm kiếm
Thuật tốn Nạve được trình bày cụ thể như sau:[11]
Thuật tốn Nạve_search:
Đầu vào:
Mảng ký tự, T //chuỗi văn bản
Biến nguyên, n //độ dài văn bản T
Mảng ký tự, P //chuỗi mẫu
Biến nguyên, n //độ dài chuỗi mẫu P
Đầu ra: Các vị trí xuất hiện của P trong T
Định nghĩa biến:
Biến nguyên, s 0
Biến nguyên , j 0
Biến nguyên, counter 0 //số lần xuất hiện của P trong T
Mảng nguyên, posList //Lưu các vị trí xuất hiện P trong T
if (counter=0)
return no valid shift exist //there is no substring of T matching P
Trang 33 Thuật tốn Nạve đã tìm thấy mẫu P ở vị trí s=5 trong văn bản T
Thuật tốn thực hiện 30 phép so sánh ký tự
Trang 342.2.1.2 Thuật toán Knuth-Morris-Pratt (KMP)
a Giới thiệu
Thuật toán đối sánh chuỗi Knuth-Morris-Pratt, còn gọi là thuật toán KMP, là thuật toán tìm kiếm sự xuất hiện của một chuỗi mẫu P trong văn bản T bằng cách dịch chuyển cửa sổ so sánh P đi một khoảng nhất định khi so khớp thất bại Giá trị dịch chuyển sẽ được tính toán trước dựa vào chính chuỗi mẫu P Thuật toán này được Donald Knuth, Vaughan Pratt và J.H.Morris nghiên cứu độc lập năm 1977 nhưng họ
đã công bố cùng nhau.[26]
Ý tưởng cơ bản của thuật toán như sau:
Giả sử ta có hai mảng là P[m] và S[n] Gọi s là vị trí trên T tại đó ta bắt đầu so khớp P với T Gọi j là vị trí của ký tự trong P đang được so sánh
b Thuật toán tìm kiếm
Tại mỗi vị trí s, thuật toán sẽ lần lượt so sánh T[s+j] với P[j] (j=0 m-1) Giả sử một
so khớp bắt đầu tại T[s] và thất bại tại P[j], thuật toán sẽ dịch chuyển cửa sổ so sánh tới vị trí: (s+j-S[j]) Phép so khớp tiếp theo sẽ được bắt đầu từ phần tử P[S[i]] Mảng S[] sẽ được tính toán trước dựa vào chính mẫu P[m] Ta có S[0]=-1 để thể hiện nếu sự không khớp xảy ra tại P[0], ta sẽ tiếp tục phép so sánh mới ở vị trí tiếp theo
Thuật toán được mô tả như sau:[26]
Thuật toán KMP_search:
Trang 35Giai đoạn tiền xử lý dữ liệu của thuật toán KMP chính là thuật toán xây dựng bảng
so khớp một phần (Partial match) S[m+1] từ P[m] Bảng so khớp một phần cho phép mỗi ký tự của T được so sánh không quá một lần
Trang 36trong P Với trường hợp so khớp thất bại ngay tại vị trí đầu tiên của mẫu, ta gán S[0]= -1 (tìm kiếm ở vị trí kế tiếp)
Thuật toán tiền xử lý được mô tả như sau:
Thuật toán kmp_table:[26]
Biến kiểu nguyên, pos ← 2
Biến kiểu nguyên, cnd ← 0