Nghiên cứu xây dựng module giám sát an ninh mạng dựa trên mã nguồn mở snort

82 904 7
Nghiên cứu xây dựng module giám sát an ninh mạng dựa trên mã nguồn mở snort

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

®¹i häc th¸i nguyªn Tr-êng ®¹i häc C¤NG NGHÖ TH¤NG TIN Vµ TRUYÒN TH¤NG VŨ DUY TUÂN NGHIÊN CỨU XÂY DỰNG MODULE GIÁM SÁT AN NINH MẠNG DỰA TRÊN MÃ NGUỒN MỞ SNORT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH th¸i nguyªn - n¨m 2014 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ ®¹i häc th¸i nguyªn Tr-êng ®¹i häc C¤NG NGHÖ TH¤NG TIN Vµ TRUYÒN TH¤NG VŨ DUY TUÂN NGHIÊN CỨU XÂY DỰNG MODULE GIÁM SÁT AN NINH MẠNG DỰA TRÊN MÃ NGUỒN MỞ SNORT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 60.48.01 Người hướng dẫn khoa học: TS. TRẦN ĐỨC SỰ Thái Nguyên, 2014 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ LỜI CẢM ƠN Sau hơn 8 tháng nỗ lực tìm hiểu, nghiên cứu và thực hiện luận văn Cao học với nội dung “ Nghiên cứu xây dựng Module giám sát an ninh mạng dựa trên mã nguồn mở Snort” đã cơ bản hoàn thành. Ngoài sự nỗ lực của bản thân, tôi còn nhận được rất nhiều sự quan tâm, giúp đỡ của các thầy cô trường ĐH Công nghệ thông tin và Truyền thông, Viện Công nghệ thông tin, Học viện Kỹ thuật mật mã, gia đình và bạn bè. Những sự động viên giúp đỡ này đã giúp tôi vượt qua được những khó khăn để hoàn thành tốt Luận văn của mình. Trước hết em xin gửi lời cảm ơn chân thành đến các thầy cô trường ĐH Công nghệ thông tin và Truyền thông – ĐH Thái Nguyên, các thầy cô là các giáo sư, tiến sỹ công tác tại Viện Công nghệ thông tin đã truyền đạt cho em những kiến thức quý báu trong suốt thời gian học thạc sỹ tại trường. Đặc biệt, em xin gửi lời cảm ơn sâu sắc tới thầy TS. Trần Đức Sự Giám đốc Trung tâm Công nghệ thông tin & Giám sát an ninh mạng – Ban cơ yếu chính phủ đã tận tình hướng dẫn và chỉ bảo em trong suốt thời gian làm luận văn. Bên cạnh đó em cũng xin gửi lời cảm ơn tới các thầy, các anh chị trong khoa An toàn thông tin – Học viện Kỹ thuật mật mã, đã nhiệt tình giải đáp những thắc mắc, tạo điều kiện cho em có được các tài liệu hữu ích, cũng như được tham gia thực nghiệm Module trên mô hình thử nghiệm tại trường. Cuối cùng, xin cảm ơn gia đình, bạn bè đã luôn động viên, giúp đỡ trong suốt thời gian học tập và hoàn thành Luận văn. Do thời gian, kiến thức và các trang thiết bị còn hạn chế, chưa thực nghiệm được nhiều kết quả đạt được chỉ mang tính chất thử nghiệm. Em rất mong nhận được sự góp ý từ phía thầy cô, bạn bè để bản luận văn của em được hoàn thiện hơn. Thái Nguyên, tháng 09 năm 2014 Học viên VŨ DUY TUÂN Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ LỜI CAM ĐOAN Để hoàn thành luận văn đúng thời gian quy định và đáp ứng được mục tiêu đặt ra, bản thân em đã luôn cố gắng nghiên cứu, học tập và làm việc. Trong quá trình làm luận văn em có tham khảo một số tài liệu (đã được nêu trong phần “TÀI LIỆU THAM KHẢO” và không sao chép nội dung từ bất kỳ bản luận văn nào khác. Toàn bộ luận văn là do bản thân nghiên cứu, xây dựng nên dưới sự định hướng, hướng dẫn của thầy hướng dẫn. Em xin cam đoan những lời trên là đúng, mọi thông tin sai lệch em xin hoàn toàn chịu trách nhiệm trước thầy giáo hướng dẫn và nhà trường. Thái nguyên, tháng 9 năm 2014 Học viên VŨ DUY TUÂN Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ DANH MỤC CÁC TỪ VIẾT TẮT IETF : Internet Engineering Task Force RFC : Request for Comments IDS : Intrusion Detection System ARP : Address Resolution Protocol GSANM : Giám sát an ninh mạng CSDL : Cơ sở dữ liệu OSSIM : Open Source Security Information Management NIDS : Network-based IDS HIDS : Host based IDS CPU Central Processing Unit Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ DANH MỤC CÁC HÌNH VẼ Hình 1.1: Mô hình triển khai hệ thống NIDS ............................................................... 10 Hình 1.2: Mô hình hệ thống HIDS ............................................................................... 12 Hình 1.3 – Mô hình mạng phổ biến của các đơn vị vừa và nhỏ .................................... 13 Hình 2.1: Mis-match trong khi đang so sánh tại vị trí j ................................................. 17 Hình 2.2: Good-suffix shift, trường hợp u lại xuất hiện trong P ................................... 17 Hình 2.3: Good-suffix shift, trường hợp chỉ suffix của u xuất hiện trong P................. 17 Hình 2.4: Dịch để ký tự b ăn khớp với văn bản ............................................................. 18 Hình 2.5: Dịch khi b không xuất hiện trong P ............................................................... 18 Hình 2.6: Đồ thị hàm goto với các từ khóa đầu vào. ..................................................... 21 Hình 2.7: Hàm failure ................................................................................................... 22 Hình 2.8: Hàm ouput ..................................................................................................... 24 Hình 2.9: Ví dụ hàm goto ............................................................................................. 25 Bảng 2.10: Ví dụ hàm failaure ...................................................................................... 25 Bảng 2.11: Ví dụ hàm output ........................................................................................ 25 Hình 3.1: Mô hình Module giám sát an ninh mạng ....................................................... 35 Hình 3.2: Các cơ sở dữ liệu của Module giám sát an ninh mạng .................................. 42 Hình 3.3: Giao diện quản lý các sự kiện của Module giám sát an ninh mạng............... 59 Hình 3.4: Giao diện quản trị người dùng của Module giám sát an ninh mạng .............. 59 Hình 3.5: Mô hình thử nghiệm Module giám sát an ninh mạng .................................... 60 Hình 3.6: Attacker sử dụng chương trình DoSHTTP để tấn công vào WebServer ....... 62 Hình 3.7: Kiểm tra hoạt động của CPU trên WebServer ............................................... 62 Hình 3.8: Theo dõi gói tin đi vào WebServer sử dụng Wireshark ................................ 65 Hình 3.9: Xây dựng luật Snort phát hiện tấn công DoS qua giao diện Web ................. 66 Hình 3.10: Màn hình cảnh báo tấn công từ chối dịch vụ của Module giám sát an ninh mạng..................................................................................................................................... 67 Hình 3.11: Sử dụng phần mềm Nmap dò quét các cổng trên máy WebServer ............. 68 Hình 3.12: Màn hình cảnh báo tấn công dò quét của Module giám sát an ninh mạng .. 68 Hình 3.13: Chức năng lưu trữ file giám sát của Module giám sát an ninh mạng .......... 69 Hình 3.14: Phân tích file Pcap sử dụng phần mềm Wireshark ...................................... 69 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ MỤC LỤC LỜI NÓI ĐẦU .......................................................................................................1 1. Lý do chọn đề tài ........................................................................................... 1 2. Mục tiêu và nhiệm vụ nghiên cứu: ................................................................ 1 3. Đối tượng và phạm vi nghiên cứu .................................................................2 4. Hướng nghiên cứu của đề tài .........................................................................2 5. Bố cục của đề tài ............................................................................................ 2 Chương 1 – TỔNG QUAN VỀ GIÁM SÁT AN NINH MẠNG .......................... 3 1.1. Khái niệm ..................................................................................................3 1.1.1. Giới thiệu chung ..................................................................................3 1.1.2. Một số khái niệm liên quan .................................................................3 1.1.2.1. Thu thập dữ liệu ............................................................................3 1.1.2.2. Phân tích dữ liệu ...........................................................................3 1.1.2.3. Phát hiện và phản ứng ..................................................................4 1.2. Giám sát mạng ............................................................................................ 4 1.2.1. Khái niệm ............................................................................................ 4 1.2.2. Cách thức hoạt động và mục đích ứng dụng .......................................5 1.3. Hệ thống phát hiện xâm nhập ....................................................................6 1.3.1. Giới thiệu chung .................................................................................6 1.3.2. Nguyên lý hoạt động ..........................................................................7 1.3.2.1. Giám sát mạng (monotoring)........................................................7 1.3.2.2. Phân tích lưu thông (Analyzing) .................................................7 1.3.2.3. Liên lạc .........................................................................................8 1.3.2.4. Cảnh báo (Alert) ...........................................................................8 1.3.2.5. Phản ứng (Response) ....................................................................8 1.4. Phân loại một số kiểu giám sát ...................................................................9 1.4.1. Giám sát toàn bộ mạng (NIDS) ........................................................... 9 1.4.2. Giám sát máy tính đơn lẻ (HIDS) ......................................................11 1.5. Mô hình mạng thực tế ..............................................................................13 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Chương 2 – KỸ THUẬT XÂY DỰNG HỆ THỐNG GIÁM SÁT AN NINH MẠNG .......................................................................................................................15 2.1. Kỹ thuật phát hiện dựa trên dấu hiệu thông qua đối sánh mẫu ................15 2.1.1. Giới thiệu bài toán đối sánh mẫu .......................................................15 2.1.2. Phát biểu bài toán ..............................................................................16 2.1.3. Thuật toán Boyer-Moore ...................................................................16 2.1.4. Thuật toán Aho-Corasick ..................................................................18 2.1.4.1. Định nghĩa ..................................................................................18 2.1.4.2. Xây dựng máy đối sánh mẫu hữu hạn trạng thái từ tập các mẫu phù hợp với từ khóa. .....................................................................................19 2.1.4.3. Sử dụng máy hữu hạn trạng thái để xác định vị trí các mẫu trong văn bản. .........................................................................................................24 2.1.4.4. Độ phức tạp thuật toán................................................................ 27 2.1.5. So sánh giữa các thuật toán ............................................................... 27 2.2. Kỹ thuật phát hiện dựa trên sự bất thường ...............................................28 2.2.1. Định nghĩa ......................................................................................... 28 2.2.2. Dữ liệu phát hiện bất thường ............................................................. 29 2.2.3. Kỹ thuật ............................................................................................. 31 2.2.4. Phương pháp ......................................................................................32 Kết chương: .....................................................................................................34 Chương 3 - XÂY DỰNG MODULE GIÁM SÁT AN NINH MẠNG DỰA TRÊN PHẦN MỀM SNORT ....................................................................................35 3.1. Mô hình Module giám sát an ninh mạng ..................................................35 3.1.1. Mô hình tổng quan.............................................................................35 3.1.2. Mô hình chi tiết..................................................................................36 3.1.2.1. Máy trinh sát ...............................................................................36 3.1.2.2. Máy thu thập ...............................................................................41 3.1.2.3. Cơ sở dữ liệu...............................................................................41 3.1.2.4. Phân tích .....................................................................................43 3.1.2.5. Website .......................................................................................46 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 3.2. Triển khai xây dựng Module giám sát an ninh mạng ............................... 46 3.2.1. Lựa chọn phần mềm ..........................................................................46 3.2.1.1. Giới thiệu về Snort .....................................................................46 3.2.1.2. Các thành phần của Snort ........................................................... 46 3.2.1.3. Các chế độ hoạt động của Snort ................................................49 3.2.1.4. Các tùy chọn trong việc sử dụng Snort .....................................53 3.2.1.5. Ưu điểm, hạn chế của Snort ......................................................55 3.2.2. Phân tích yêu cầu chức năng của Module .........................................55 3.2.3. Phân tích thiết kế ...............................................................................56 3.2.4. Tích hợp tính năng quản lý luật Snort vào Module giám sát an ninh mạng ........................................................................................................................... 57 3.2.5. Xây dựng thành phần quản trị tập trung ...........................................58 3.3. Vận hành và thử nghiệm ...........................................................................59 3.3.1. Mô hình thử nghiệm ..........................................................................59 3.3.2. Tấn công từ chối dịch vụ ...................................................................61 3.3.3. Tấn công thăm dò ..............................................................................67 3.3.4. Đánh giá kết quả ................................................................................69 KẾT LUẬN .........................................................................................................71 TÀI LIỆU THAM KHẢO ...................................................................................73 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ LỜI NÓI ĐẦU 1. Lý do chọn đề tài Ngày nay với sự phát triển mạnh mẽ của khoa học kỹ thuật nói chung và công nghệ thông tin nói riêng, việc ứng dụng công nghệ thông tin, Internet ngày càng trở lên phổ biến trong đời sống hằng ngày cũng như trong hầu hết các lĩnh vực. Việc trao đổi, quản lý, khai thác thông tin trên Internet đã trở thành xu hướng tất yếu của xã hội hiện đại. Song song với sự phát triển đó là hàng loạt các nguy cơ về mất an toàn thông tin. Vấn đề đảm bảo an toàn thông tin luôn được các cơ quan, tổ chức đặt lên hàng đầu. Tuy nhiên hàng năm các vụ tấn công mạng vẫn liên tục gia tăng mà chưa có biện pháp khắc phục triệt để. Cách tốt nhất để có thể đảm bảo cho hệ thống mạng an toàn đó là chủ động phát hiện các tấn công và đưa ra những phản ứng thích hợp. Để làm được như vậy cần phải có một hệ thống có khả năng giám sát toàn bộ các hành động đi ra cũng như đi vào bên trong hệ thống mạng cần bảo vệ, có một vấn đề là các công cụ bảo vệ hệ thống được triển khai ở nước ta hầu hết đều mua của nước ngoài với giá thành rất cao đây là một khó khăn lớn đối với các đơn vị vừa và nhỏ. Mặt khác vì là sản phẩm thương mại nên công nghệ và kỹ thuật của các hệ thống đó luôn luôn được giữ kín vì thế mỗi khi phát sinh các dạng tấn công mới, các nhà quản trị trong nước không thể tự phát triển mở rộng được. Từ đó phát sinh nhu cầu cần có một hệ thống hỗ trợ giám sát và bảo vệ hệ thống mạng một cách hiệu quả, các nhà quản trị có thể chủ động mở rộng hay phát triển cho phù hợp với các cuộc tấn công mạng kiểu mới. Đó là lý do mà tôi chọn đề tài “ Nghiên cứu xây dựng Module giám sát an ninh mạng dựa trên mã nguồn mở Snort” dưới sự hướng dẫn của TS Trần Đức Sự. 2. Mục tiêu và nhiệm vụ nghiên cứu: Mục tiêu mà đề tài là tìm hiểu, nghiên cứu hệ thống phát hiện xâm nhập, phân tích và đưa ra giải pháp hợp lý. 1 Nghiêm cứu xây dựng chương trình hỗ trợ phát hiện xâm nhập dựa trên phần mềm mã nguồn mở Snort và các công cụ mã nguồn mở được phát triển hỗ trợ cho hệ thống này. 3. Đối tượng và phạm vi nghiên cứu - Các kỹ thuật và phương pháp giám sát trên hệ thống mạng; - Các kỹ thuật xâm nhập trái phép vào mạng máy tính; - Cơ sở, kiến trúc hệ thống phát hiện xâm nhập; - Hệ thống phát hiện xâm nhập Snort. 4. Hướng nghiên cứu của đề tài - Hiểu được các kỹ thuật và các khả năng xâm nhập trái phép vào hệ thống mạng máy tính; - Tìm hiểu các kỹ thuật và phương pháp giá sát các xâm nhập trái phép trên; - Xây dựng một Modul giám sát các xâm nhập trái phép. 5. Bố cục của đề tài Sau phần mở đầu, nội dung chính của luận văn đi vào tìm hiểu các phương pháp tấn công mạng, tổng quan về hệ thống phát hiện xâm nhập (IDS), một số phần mềm mã nguồn mở thường sử dụng trong các hệ thống IDS, nghiên cứu xây dựng một chương trình ứng dụng sử dụng phần mềm Snort. Luận văn gồm 3 chương như sau: Chương 1: Tổng quan về an ninh mạng và giám sát an ninh mạng: khái quát về tình hình an ninh mạng, đi sâu tìm hiểu về hệ thống phát hiện xâm nhập, phân tích một mô hình giám sát phổ biến hiện đang được áp dụng. Chương 2: Kỹ thuật xây dựng hệ thống giám sát an ninh: Phân tích một số kỹ thuật giám sát, một số phần mềm mã nguồn mở thường được ứng dụng trong việc hỗ trợ giám sát, đi sâu vào phân tích phần mềm mã nguồn mở Snort. Chương 3: Xây dựng module giám sát an ninh mạng: Đưa ra một mô hình hệ thống giám sát, phân tích, thiết kế xây dựng một module tích hợp trong mô hình trên sử dụng phần mềm mã nguồn mở Snort. Cuối cùng là phần đánh giá, kết luận và hướng phát triển của đề tài. 2 Chương 1 – TỔNG QUAN VỀ GIÁM SÁT AN NINH MẠNG 1.1. Khái niệm 1.1.1. Giới thiệu chung Internet phát triển, sự kết nối trên toàn thế giới đang mang lại thuận tiện cho tất cả mọi người. nhưng bên cạnh đó nó cũng tiềm ẩn những nguy cơ đe dọa đến mọi mặt của đời sống xã hội. việc đánh cắp thông tin, truy cập hệ thống trái phép, tấn công từ chối dịch vụ... là nguy cơ mà người dùng Internet phải đương đầu. Rất nhiều các giải pháp an ninh mạng đã được đưa ra và cũng đã có những đóng góp to lớn trong việc đảm bảo an toàn thông tin, ví dụ như: Firewall ngăn chặn những kết nối không đáng tin cậy, mã hóa làm tăng độ an toàn cho việc truyền dữ liệu, các chương trình diệt virus với cơ sở dữ liệu được cập nhật thường xuyên… Tuy nhiên thực tế cho thấy chúng ta vẫn luôn thụ động trước các cuộc tấn công đặc biệt là các tấn công kiểu mới vì vậy yêu cầu đặt ra là cần có một hệ thống phát hiện và cảnh báo sớm trước các cuộc tấn công. Hệ thống phát hiện xâm nhập được xem như là một lựa chọn tối ưu. 1.1.2. Một số khái niệm liên quan 1.1.2.1. Thu thập dữ liệu Thu thập dữ liệu của các hệ thống phần mềm hay các ứng dụng chính là thu thập các nhật ký, gói tin,... đi ra đi vào mạng. Đây là bước đầu tiên và cơ bản nhất của việc giám sát. 1.1.2.2. Phân tích dữ liệu Việc phân tích dữ liệu là công việc của con người. Các phần mềm có thể đưa ra những kết luận từ những dữ liệu mà chúng thu thập được, con người sẽ phải xem xét trong từng hoàn cảnh để đưa ra yêu cầu trong những bước tiếp theo. Một số sản phẩm có thể hoàn toàn tùy biến cho phù hợp với hệ thống mà nó đang giám sát. Đây không phải là trách nhiệm của người phát triển vì họ không thể tạo ra sản phẩm có thể đáp ứng được hết những yêu cầu khác nhau của khách hàng. Có khả năng thay đổi mã nguồn tùy vào người dùng cuối, nên những sản phẩm mã nguồn mở là 3 những phần mềm thích hợp nhất cho việc tùy biến. Cũng như vậy, người dùng cũng phải được đào tạo để hiểu được những thông tin mà sản phẩm cung cấp. 1.1.2.3. Phát hiện và phản ứng Phát hiện và phản ứng là hai thành phần quan trọng trong các yếu tố của tiến trình. Sau khi bức tường phòng ngự cuối cùng bị phá vỡ, các tổ chức cần nhanh trong phát hiện ra cách thức xâm nhập của kẻ tấn công và chúng sẽ làm gì tiếp theo. Quá trình này được gọi là phạm vi ứng phó sự cố. Bởi xâm nhập không có nghĩa là có quyền root. Một kẻ xâm nhập có thể leo thang đặc quyền của mình để thực hiện những âm mưu sau đó. Bất kỳ ai khi thực hiện công việc ứng phó sự cố thường xuyên sẽ hiểu được công việc nào nên làm trước vì giám đốc, CEO, hay những nhân viên cấp cao không quan tâm đến việc kẻ xâm nhập làm thế nào mà chỉ quan tâm đến những vấn đề sau: Những kẻ tấn công đã làm gì Khi nào Chúng ta ngăn chặn được chưa Đã có thiệt hại như thế nào Mặc dù các nhà lãnh đạo không quan tâm đến cách thức xâm nhập của kẻ tấn công, nhưng đó luôn là công việc hàng đầu để có thể phản ứng hiệu quả với các cuộc xâm nhập. Chỉ có cách xác định phương thức xâm nhập của kẻ tấn công và ngăn chặn chúng thì việc phục hồi mới có thể diễn ra trọn vẹn được. 1.2. Giám sát mạng 1.2.1. Khái niệm Giám sát mạng là việc giám sát, theo dõi và ghi nhận những luồng dữ liệu mạng, từ đó sử dụng làm tư liệu để phân tích mỗi khi có sự cố xảy ra. Trong các hệ thống thông tin, việc khắc phục các sự cố thường tốn một chi phí rất lớn. vì vậy, giải pháp giám sát mạng để phát hiện sớm các sự cố là một sự lựa chọn được nhiều người ưa thích nhằm mang lại hiệu quả cao với chi phí vừa phải. 4 Một hệ thống giám sát mạng thường có các thành phần sau: Máy trính sát (Sensor): là những máy trạm làm nhiệm vụ trinh sát. Thành phần này sẽ tiếp cận, tương tác với các hệ thống và dịch vụ cần giám sát để nhận biết trạng thái của những dịch vụ đó. Trong quá trình triển khai hệ thống, thành phần này sẽ được phân tán nằm rải rác nhiều nơi trên mạng để thu thập thông tin từ những nguồn khác nhau như Tường lửa, Bộ định tuyến, file nhật ký… Máy thu thập (Collector): Một điều đáng chú ý trong hệ thống giám sát mạng là các hệ thống, các dịch vụ cần giám sát có thể khác nhau. Điều này đồng nghĩa với việc thông tin thu được cũng có nhiều dạng khác nhau. Để có được thông tin một cách đồng nhất nhằm mục đích xử lý và thống kê, cần có một thành phần làm nhiệm vụ chuẩn hóa thông tin. Máy thu thập sẽ đọc những thông tin thu được từ các máy trinh sát và chuẩn hóa thông tin dựa trên những quy tắc chuẩn hóa biết trước. Thông tin đầu ra sẽ có định dạng giống nhau và được lưu vào cơ sở dữ liệu trung tâm. Cơ sở dữ liệu trung tâm: là nơi lưu trữ dữ liệu của toàn bộ hệ thống giám sát. Các dữ liệu ở đây đã được chuẩn hóa nên có thể sử dụng để tính toán các số liệu thống kê trên toàn hệ thống Công cụ phân tích (Analysis tool): Thành phần này sẽ đọc các dữ liệu từ cơ sở dữ liệu trung tâm và tính toán để tạo ra bản báo cáo số liệu thống kê trên toàn hệ thống. 1.2.2. Cách thức hoạt động và mục đích ứng dụng Mỗi máy trinh sát sẽ có một danh sách những đối tượng mà máy trinh sát đó cần giám sát. Những đối tượng này có thể là file nhật ký hoạt động trên một máy tính, có thể là một dịch vụ trên hệ thống khác, cũng có thể là thành phần báo cáo trạng thái của Tường lửa/Bộ định tuyến… Dựa vào bản danh sách này, Máy trinh sát sẽ gửi truy vấn đến đối tượng để truy vấn thông tin. Thông tin thu thập được sẽ gửi đến Máy thu thập để chuẩn hóa trước khi lưu trữ vào cơ sở dữ liệu trung tâm. 5 Tùy theo thiết kế của hệ thống, nếu những thông tin mà Máy trinh sát thu thập được có định dạng giống nhau thì sẽ không cần đến thành phần Máy thu thập. Trong một số trường hợp khác, các Máy trinh sát cũng có thể kiêm luôn vai trò của Máy thu thập thực hiện việc chuẩn hóa dữ liệu trước khi lưu trữ. Tại cơ sở dữ liệu trung tâm, mọi dữ liệu thu dược đã có định dạng rõ ràng. Bộ phân tích sẽ đọc thông tin tại đây để tính toán và đưa ra những số liệu thống kê tạo thành một bản báo cáo hoàn chỉnh. Báo cáo này sẽ được gửi tới người quản trị. Trong một số hệ thống giám sát, để nâng cao mức độ tự động hóa, Bộ phân tích có thể có thêm chức năng phát hiện dấu hiệu xác định trước để phát ra cảnh báo. Ví dụ, sau khi lấy thông tin từ file nhật ký ghi nhận lại những lần đăng nhập không thành công vào hệ thống, nếu phát hiện thấy có 3 lần đăng nhập không thành công liên tiếp trong vòng 5 phút thì Bộ phân tích phát ra cảnh báo tới người quản trị. Cảnh báo này có thể là thư điện tử, tin nhắn SMS gửi tới điện thoại di động… 1.3. Hệ thống phát hiện xâm nhập 1.3.1. Giới thiệu chung Nếu như hiểu Firewall là một hệ thống “khóa” chốt chặn ở cửa ngõ mạng, thì hệ thống IDS có thể được coi như các “cảm ứng giám sát” được đặt khắp nơi trong mạng để cảnh báo về các cuộc tấn công đã “qua mặt” được Firewall hoặc xuất phát từ bên trong mạng. Một IDS có nhiệm vụ phân tích các gói tin mà Firewall cho phép đi qua, tìm kiếm các dấu hiệu tấn công từ các dấu hiệu đã biết hoặc thông qua việc phân tích các sự kiện bất thường, từ đó ngăn chặn các cuộc tấn công trước khi nó có thể gây ra những hậu quả xấu với tổ chức. Hệ thống IDS hoạt động dựa trên 3 thành phần chính là Cảm ứng (Sensor), Giao diện (Console) và Bộ phân tích (Engine). Hoạt động của một hệ thống IDS được chia làm 5 giai đoạn chính là: Giám sát, Phân tích, Liên lạc, Cảnh báo và Phản ứng.  Xâm nhập: Để hiểu được như thế nào là “ phát hiện xâm nhập” trước hết chúng ta cần xem xét “xâm nhập” là gì. “Xâm nhập” trong thuật ngữ mạng máy tính, là sự truy nhập vào hệ thống một cách trái phép. Một ví dụ đơn giản là một người dùng truy cập vào hệ thống và thao tác với quyền quản trị khi không được phép. 6  Phát hiện xâm nhập: là việc sử dụng một tập hợp những ký thuật và phương thức để phát hiện những dấu hiệu bị xâm nhập cả ở cấp độ mạng lẫn máy tính. Có hai cách tiếp cận cơ bản đối với việc phát hiện và phòng chống xâm nhập là: 1.3.2. Nguyên lý hoạt động Nguyên lý hoạt động của một hệ thống phòng chống xâm nhập được chia làm 5 giai đoạn chính: Giám sát mạng, phân tích lưu thông, Liên lạc giữa các thành phần, Cảnh báo về các hành vi xâm nhập và cuối cùng có thể tiến hành phản ứng lại tùy theo chức năng của từng IDS. 1.3.2.1. Giám sát mạng (monotoring) Giám sát mạng là quá trình thu thập thông tin về lưu thông trên mạng. Việc này thông thường được thực hiện bằng các Sensor. Yêu cầu đòi hỏi đối với giai đoạn này là có được thông tin đầy đủ và toàn vẹn về tình hình mạng. Đây cũng là một vấn đề khó khăn, bởi vì nếu theo dõi toàn bộ thông tin thì sẽ tốn khá nhiều tài nguyên, đồng thời gây ra nguy cơ tắc nghẽn mạng. Nên cần thiết phải cân nhắc để không làm ảnh hưởng đến toàn bộ hệ thống. Có thể sử dụng phương án là thu thập liên tục trong khoảng thời gian dài hoặc thu thập theo từng chu kì. Tuy nhiên khi đó những hành vi bắt được chỉ là những hành vi trong khoảng thời gian giám sát. Hoặc có thể theo vết những lưu thông TCP theo gói hoặc theo liên kết. Bằng cách này sẽ thấy được những dòng dữ liệu vào ra được phép. Nhưng nếu chỉ theo dõi những liên kết thành công sẽ có thể bỏ qua những thông tin có giá trị về những liên kết không thành công mà đây lại thường là những phần quan tâm trong một hệ thống IDS, ví dụ như hành động quét cổng. 1.3.2.2. Phân tích lưu thông (Analyzing) Khi đã thu thập được những thông tin cần thiết từ những điểm trên mạng. IDS tiến hành phân tích những dữ liệu thu thập được. Mỗi hệ thống cần có một sự phân tích khác nhau vì không phải môi trường nào cũng giống nhau. Thông thường ở giai đoạn này, hệ thống IDS sẽ dò tìm trong dòng traffic mang những dấu hiệu đáng nghi ngờ dựa trên kỹ thuật đối sánh mẫu hoặc phân tích hành vi bất thường. 7 1.3.2.3. Liên lạc Giai đoạn này giữ một vai trò quan trọng trong hệ thống IDS. Việc liên lạc diễn ra khi Sensor phát hiện ra dấu hiệu tấn công hoặc Bộ xử lý thực hiện thay đổi cấu hình, điều khiển Sensor. Thông thường các hệ thống IDS sử dụng các bộ giao thức đặc biệt để trao đổi thông tin giữa các thành phần. Các giao thức này phải đảm bảo tính tin cậy, bí mật và chịu lỗi tốt, ví dụ: SSH, HTTPS, SNMPv3…Chẳng hạn hệ thống IDS của hãng Cisco thường sử dụng giao thức PostOffice định nghĩa một tập các thông điệp để giao tiếp giữa các thành phần. 1.3.2.4. Cảnh báo (Alert) Sau khi đã phân tích xong dữ liệu, hệ thống IDS cần phải đưa ra được những cảnh báo. Ví dụ như: + Cảnh báo địa chỉ không hợp lệ. + Cảnh báo khi máy cố gắng kết nối đến những máy nằm trong danh sách cần theo dõi ở trong hay ngoài mạng. 1.3.2.5. Phản ứng (Response) Trong một số hệ thống IDS tiên tiến hiện nay, sau khi các giai đoạn trên phát hiện được dấu hiệu tấn công, hệ thống không những cảnh báo cho người quản trị mà còn đưa ra các hành vi phòng vệ ngăn chặn hành vi tấn công đó. Điều này giúp tăng cường khả năng tự vệ của Mạng, vì nếu chỉ cần cảnh báo cho người quản trị thì đôi khi cuộc tấn công sẽ tiếp tục xảy ra gây ra các tác hại xấu. Một hệ thống IDS có thể phản ứng lại trước những tấn công phải được cấu hình để có quyền can thiệp vào hoạt động của Firewall, Switch và Router. Các hành động mà IDS có thể đưa ra như: + Ngắt dịch vụ. + Gián đoạn phiên. + Cấm địa chỉ IP tấn công. + Tạo log. 8 1.4. Phân loại một số kiểu giám sát Cách thông thường nhất để phân loại hệ thống IDS là dựa vào đặc điểm của nguồn dữ liệu thu thập được. Trong trường hợp này, các hệ thống IDS được chia làm các loại sau: + Host-base IDS (HIDS): Sử dụng dữ liệu kiểm tra từ một máy trạm đơn để phát hiện xâm nhập. + Network-based IDS (NIDS): Sử dụng dữ liệu trên toàn bộ lưu thông mạng, cùng với dữ liệu kiểm tra từ một hoặc một vài máy trạm để phát hiện xâm nhập. 1.4.1. Giám sát toàn bộ mạng (NIDS) Trong hình thức này NIDS xác định các truy cập trái phép bằng việc giám sát các hoạt động mạng được tiến hành trên toàn bộ các phân mạng của hệ thống, NIDS sử dụng bộ dò và bộ cảm biến cài đặt trên toàn mạng. Những bộ dò này theo dõi trên mạng nhằm tìm kiếm những lưu lượng trùng với những mô tả sơ lược được định nghĩa hay là những dấu hiệu. Khi ghi nhận được một mẫu lưu lượng hay dấu hiệu, bộ cảm biến gửi tín hiệu cảnh báo đến trung tâm điều khiển và có thể được cấu hình nhằm tìm ra biện pháp ngăn chặn những xâm nhập xa hơn. NIDS là tập nhiều sensor được đặt ở toàn mạng để theo dõi những gói tin trong mạng, so sánh với các mẫu đã được định nghĩa để phát hiện đó là tấn công hay không. 9 Hình 1.1: Mô hình triển khai hệ thống NIDS Ưu điểm + Chi phí thấp: Do chỉ cần cài đặt NIDS ở những vị trí trọng yếu là có thể giám sát lưu lượng toàn mạng nên hệ thống không cần phải nạp các phần mềm và quản lý trên các máy toàn mạng. + Phát hiện được các cuộc tấn công mà HIDS bỏ qua: Khác với HIDS, NIDS kiểm tra header của tất cả các gói tin vì thế nó không bỏ sót các dấu hiệu xuất phát từ đây. Ví dụ nhiều cuộc tấn công DoS, TearDrop (phân nhỏ) chỉ được phát hiện khi xem header của các gói tin lưu chuyền trên mạng. + Khó xóa bỏ dấu vết: Các thông tin lưu trong log file có thể bị kẻ đột nhập sửa đổi để che dấu các hoạt động xâm nhập, trong tình huống này HIDS khó có đủ thông tin để hoạt động. NIDS sử dụng lưu thông hiện hành trên mạng để phát hiện xâm nhập. Vì thế, kẻ đột nhập không thể xóa bỏ được các dấu vết tấn công. Các thông tin bắt được không chỉ chứa cách thức tấn công mà cả thông tin hỗ trợ cho việc xác minh và buộc tội kẻ đột nhập. + Phát hiện và đối phó kịp thời: NIDS phát hiện các cuộc tấn công ngay khi xảy ra, vì thế việc cảnh báo và đối phó có thể thực hiện được nhanh hơn. VD: một hacker thực hiện tấn công DoS dựa trên TCP có thể bị NIDS phát hiện và ngăn chặn ngay bằng việc gửi yêu cầu TCP reset nhằm chấm dứt cuộc tấn công trước khi nó xâm nhập và phá vỡ máy bị hại. 10 + Có tính độc lập với OS (Operating System) Nhược điểm + Hạn chế về hiệu năng: NIDS sẽ gặp khó khăn khi phải xử lý tất cả các gói tin trên mạng rộng hoặc có mật độ lưu thông cao, dẫn đến không thể phát hiện các cuộc tấn công thực hiện vào lúc “Cao điểm”. Một số nhà sản xuất đã khắc phục bằng cách cứng hóa hoàn toàn IDS nhằm tăng cường tốc độ cho nó. Tuy nhiên, do phải đảm bảo về mặt tốc độ nên một số gói tin được bỏ qua có thể gây lỗ hổng cho tấn công xâm nhập. + Tăng thông lượng mạng: Một hệ thống phát hiện xâm nhập có thể cần truyền một dung lượng lớn dữ liệu trở về hệ thống phân tích trung tâm, có nghĩa là gói tin được kiệm soát sẽ sinh ra một lượng lớn tải phân tích. + Không biết được các cuộc tấn công có thành công hay không. + Một hệ thống NIDS thường gặp khó khăn trong việc sử lý các cuộc tấn công trong một phiên được mã hóa. + NIDS cũng gặp khó khăn khi phát hiện các cuộc tấn công mạng từ các gói tin phân mảnh. Các gói tin định dạng sai này có thể làm cho NIDS hoạt động sai. 1.4.2. Giám sát máy tính đơn lẻ (HIDS) Bằng cách cài đặt một phần mềm trên tất cả các máy tính chủ, IDS dựa trên máy chủ quan sát tất cả những hoạt động hệ thống, như các file log và những lưu lượng mạng thu thập được. Hệ thống dựa trên máy chủ cũng theo dõi OS, những cuộc gọi hệ thống, lịch sử sổ sách (audit log) và những thông điệp báo lỗi trên hệ thống máy chủ. Trong khi những đầu dò của mạng có thể phát hiện một cuộc tấn công, thì chỉ có hệ thống dựa trên máy chủ mới có thể xác định xem cuộc tấn công có thành công hay không. HIDS thường được cài đặt trên một máy tính nhất định. Thay vì giám sát hoạt động của một Network segment, HIDS chỉ giám sát các hoạt động trên một máy tính. Nó thường được đặt trên các Host xung yếu của tổ chức, và các server trong vùng DMZ. thường là mục tiêu tấn công đầu tiên. 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: 11 - Các tiến trình. - Các entry của Registry. - Mức độ sử dụng CPU. - Các thông số này khi vượt qua một ngưỡng định trước hoặc những thay đổi khả nghi trên hệ thống file sẽ gây ra báo động. Hình 1.2: Mô hình hệ thống HIDS Ưu điểm + Xác định được kết quả của cuộc tấn công: Do HIDS sử dụng dữ liệu log lưu các sự kiện xảy ra, nó có thể biết được cuộc tấn công là thành công hay thất bại với độ chính xác cao hơn NIDS. Vì thế, HIDS có thể bổ sung thông tin tiếp theo khi cuộc tấn công được sớm phát hiện với NIDS. + Giám sát được các hoạt động cụ thể của hệ thống: HIDS có thể giám sát các hoạt động mà NIDS không thể như: truy nhập file, thay đổi quyền, các hành động thực thi, truy nhập dịch vụ được phân quyền. Đồng thời nó cũng giám sát các hoạt động chỉ được thực hiện bởi người quản trị. Vì thế hệ thống HIDS có thể là một công cụ cực mạnh để phân tích các cuộc tấn công có thể xảy ra do nó thường cung cấp nhiều thông tin chi tiết và chính xác hơn một hệ NIDS. 12 + Thích nghi tốt với môi trường chuyển mạch và mã hóa. Nhược điểm + Thông tin từ HIDS là không đáng tin cậy ngay khi sự tấn công vào host này thành công. + Khi OS bị “hạ” do tấn công, đồng thời HIDS cũng bị “hạ”. + HIDS phải được thiết lập trên từng Host được giám sát nên nó chiếm tài nguyên host để hoạt động. + HIDS không có khả năng phát hiện các cuộc dò quét mạng (Nmap, Netcat…) 1.5. Mô hình mạng thực tế Hiện nay có rất nhiều mô hình thiết kế mạng đang được áp dụng ở nước ta, mỗi một mô hình có những ưu và nhược điểm riêng của nó. Dưới đây là một mô hình chuẩn hiện nay đang được áp dụng ở hầu hết các doanh nghiệp vừa và nhỏ ở nước ta. Chúng ta sẽ chỉ ra những ưu và nhược điểm của mô hình này. Hình 1.3 – Mô hình mạng phổ biến của các đơn vị vừa và nhỏ Ưu điểm + Dễ dàng triển khai, cấu hình cài đặt. 13 + Chi phí thấp. + Dễ dàng mở rộng thêm các mạng con. Nhược điểm + Chưa có tường lửa nên dễ bị tấn công. + Không có hệ thống giám sát an ninh nên không nhận biết được các cuộc tấn công. + Dễ lây lan virus trên diện rộng, và từ máy Client lây sang máy trạm lên sever. + Không theo dõi, quản lý được các máy client dùng vào việc gì. Kết chương: Như vậy trong nội dung chương 1 đã chỉ ra được thực trạng an toàn thông tin hiện nay, yêu cầu cấp thiết của thực tế, nêu và làm rõ một số khái niệm, phân loại được các mô hình giám sát theo từng cấp độ để người dùng, các nhà quản trị có thể hiểu và áp dụng trường hợp hệ thống mạng của mình một cách hợp lý nhất. Chương tiếp theo sẽ đi sâu chi tiết hơn về phân tích một số kỹ thuật được áp dụng trong việc thiết kế một hệ thống giám sát an ninh mạng. 14 Chương 2 – KỸ THUẬT XÂY DỰNG HỆ THỐNG GIÁM SÁT AN NINH MẠNG Một hệ thống giám sát an ninh mạng hoạt động dựa trên việc tìm kiếm, phát hiện các cuộc xâm nhập trái phép vào hệ thống mạng để đưa ra những phân tích cho hành động tiếp theo. Dưới đây chúng ta sẽ đi vào nghiên cứu các kỹ thuật để phát hiện các xâm nhập trái phép. 2.1. Kỹ thuật phát hiện dựa trên dấu hiệu thông qua đối sánh mẫu Phát hiện dựa trên dấu hiệu là phát hiện những kẻ xâm nhập đang cố gắng đột nhập vào hệ thống mà sử dụng một số kỹ thuật đã biết. Nó liên quan đến việc mô tả đặc điểm các cách thức xâm nhập vào hệ thống đã được biết đến, mỗi cách thức này được mô tả như một mẫu. Hệ thống phát hiện xâm nhập dựa trên dấu hiệu chỉ thực hiện kiểm soát đối với các mẫu đã rõ ràng. Mẫu có thể là một xâu bit cố định (ví dụ như một virus đặc tả việc chèn xâu),…dùng để mô tả một tập hay một chuỗi các hành động đáng nghi ngờ. 2.1.1. Giới thiệu bài toán đối sánh mẫu Dạng phổ biến nhất của bài toán là: Cho trước nguồn tìm kiếm là một tập D các văn bản (hoặc cơ sở dữ liệu văn bản, hay các tập các văn bản trên Internet…). Cho một câu hỏi dạng văn bản q (thường là một từ, một xâu văn bản ngắn), hãy tìm tất cả các văn bản thuộc D mà có chứa q. Trong nhiều hợp (chẳng hạn, tìm kiếm thông qua máy tìm kiếm) thì q còn được gọi là “ truy vấn” và bài toán còn có tên gọi là “ tìm kiếm theo truy vấn” . Để tìm kiếm được văn bản có chứa văn bản truy vấn q, hệ thống tìm kiếm cầm phải kiểm tra văn bản truy vấn q có là một xâu con của các văn bản thuộc D hay không (sánh mẫu) và đưa ra các văn bản đáp ứng. Trong nhiều trường hợp, bài toán còn đòi hỏi tìm tất cả các vị trí của các xâu con trong văn bản trùng với q. Đồng thời, điều kiện tìm kiếm có thể được là “ xấp xỉ” theo nghĩa văn bản kết quả có thể không cần chứa q (không cần có một xâu con của văn bản trùng một cách hoàn toàn chính xác với q) mà chỉ cần “ liên quan” tới q (có xâu con trong văn bản xấp xỉ q). Có thể thấy, các máy tìm kiếm sử dụng cả cơ chế tìm kiếm xấp xỉ khi mà văn bản kết quả tìm kiếm không chứa hoàn toàn chính xác văn bản truy vấn. 15 2.1.2. Phát biểu bài toán Như đã trình bày ở trên, đối sánh mẫu là một bài toán cơ bản trong xử lí chuỗi văn bản; bài toán yêu cầu tìm ra một hoặc nhiều vị trí xuất hiện của mẫu P trên một văn bản T. Mẫu P và chuỗi văn bản T là các chuỗi có độ dài M và N (M ≤ N); P và T là các xâu ký tự trên cung một bảng chữ cái ∑ cho trước có α ký tự. Bài toán đối sánh mẫu được tổng quát phát biểu như sau: “ Cho mẫu P có độ dài M và văn bản T có độ dài N trên cùng bảng chữ cái ∑. Tìm một (hoặc tất cả) các lần xuất hiện của mẫu P trong T”. Trong bài toán tìm kiếm văn bản trên tập văn bản D , bài toán đối sánh mẫu được thực hiện đối với mọi cặp gồm mẫu (truy vấn) q và mọi văn bản d D . Trong trường hợp độ dài N của d rất lớn và số lượng văn bản trong D rất nhiều (| D | >> 1) thì thời gian tìm kiếm văn bản phù hợp với câu hỏi q sẽ rất tốn kém. Chính vì lý do đó, nghiên cứu đề xuất các thuật toán đối sánh mẫu mới, cải tiến các thuật toán sánh mẫu sẵn có luôn là một chủ đề nghiên cứu nhận được rất nhiều quan tâm đặc biệt trong công nghệ thông tin nói chung và trong việc phát hiện mã độc hại nói riêng. 2.1.3. Thuật toán Boyer-Moore Thuật toán sẽ tìm kiếm các ký tự mẫu từ phải sang trái từ ký tự cuối cùng. Giả sử trong trường hợp mis-match(hoặc là trường hợp đã tìm thấy 1 đoạn khớp mẫu), nó sẽ dùng 2 hàm được tính toán trước để dịch cửa sổ sang bên phải. Hai hàm dịch chuyển này được gọi là good-suffix shift (còn được biết với cái tên phép dịch chuyển khớp) và bad-character shift (phép dịch chuyển xuất hiện). Đối với mẫu P [0..m-1] ta dùng 1 biến chỉ số i chạy từ cuối về đầu, đối với chuỗi T [0..n-1] ta dùng 1 biến j để chốt ở phía đầu. G/s rằng trong quá trình so sánh ta gặp 1 mis-match tai vị trí P[i] a của mẫu và T [i j ] b trong khi đang thử khớp tại vị trí j. 16 Hình 2.1: Mis-match trong khi đang so sánh tại vị trí j Khi đó, P[i 1...m 1] T [ j i 1... j m 1] u và P[i ] T [i j ] . Bây giờ ta đi xét xem đối với từng trường hợp, 2 hàm trên sẽ thực hiện việc dịch chuyển như thế nào: Phép dịch chuyển good-suffix shift sẽ dịch cửa sổ sang bên phải cho đến khi gặp 1 ký tự khác với P[i] trong trường hợp đoạn u lại xuất hiện trong P. Hình 2.2: Good-suffix shift, trường hợp u lại xuất hiện trong P Nếu đoạn u không xuất hiện lại trong P, mà chỉ có 1 phần cuối (suffix) của u khớp với phần đầu (prefix) của P,thì ta sẽ dịch 1 đoạn sao cho phần suffix dài nhất v của T [ j i 1... j m 1] khớp với prefix của P. Hình 2.3: Good-suffix shift, trường hợp chỉ suffix của u xuất hiện trong P Phép dịch chuyển bad-character shift sẽ khớp kí tự T [i j ] với 1 ký tự (bên phải nhất) trong đoạn P[0...m 2] (các bạn thử nghĩ xem tại sao không phải là m-1) 17 Hình 2.4: Dịch để ký tự b ăn khớp với văn bản Nếu T [i j ] không xuất hiện trong P, ta thấy ngay rằng không có xuất hiện nào của P trong T mà lại chứa T [i sau T [i j ] , tức là T [i j ] , do đó ta có thể đặt cửa sổ ngay j 1] . Hình 2.5: Dịch khi b không xuất hiện trong P 2.1.4. Thuật toán Aho-Corasick Thuật Aho-Corasick được xây dựng bởi Alfred Vaino Aho và Margret J.Corasick tháng 6/1975. Thuật toán đối sánh mẫu Aho-Corasick xác định vị trí, tìm kiếm tất cả các lần xuất hiện của một chuỗi hay bộ từ khóa trong một “xâu văn bản”. Chuỗi đối sánh mẫu là một vấn đề quan trọng xảy ra trong nhiều lĩnh vực của khoa học và xử lý thông tin.Trong máy tính, nó xảy ra tự nhiên như là một phần của xử lý dữ liệu, chỉnh sửa văn bản, viết lại, phân tích từ vựng, và truy xuất thông tin. Hiện nay thuật toán còn được sử dụng như máy đối sánh mẫu(pattern matching machine). 2.1.4.1. Định nghĩa Cho một chuỗi đơn giản chỉ là một tập hợp hữu hạn các ký tự. Tìm và xác định tất cả các chuỗi con của X là từ khóa trong K . Chuỗi con có thể trùng nhau. Trong đó với: + K: K y1, y2 ,..., yk là tập hữu hạn các chuỗi mà ta gọi là khóa. + X : X là chuỗi văn bản tùy ý. 18 +a X : với a là chuỗi con của X hay là từ khóa, ký tự trong K . + s là trạng thái tương ứng với ký tự, từ khóa a đầu vào máy đối sánh mẫu. Thuật toán bao gồm 3 hàm(chức năng): + Chức năng Goto (g): g (s, a) s 'or fail : ánh xạ 1 cặp bao gồm:trạng thái và 1 ký tự đầu vào thành 1 trạng thái khác hoặc thông điệp báo lỗi. + Failure function (f): f (s) s ' : ánh xạ từ trạng thái này sang trạng thái kia và được gọi khi chức năng goto trả về bị lỗi. + Chức năng đầu ra(Output): output ( s ) keywords : ánh xạ trạng thái thành mẫu, khi mẫu được tìm thấy tại trạng thái đó. 2.1.4.2. Xây dựng máy đối sánh mẫu hữu hạn trạng thái từ tập các mẫu phù hợp với từ khóa. Như đã trình bày ở trên, máy đối sánh mẫu được xây dựng từ 3 hàm chức năng: Hàm goto(g), hàm failure(f), và hàm output. Chúng ta sẽ đi tìm hiểu kỹ và sâu hơn về 3 hàm này. a. Hàm goto (g). - Để xây dựng hàm goto (g) hay xây dựng đồ thị(trie) goto (g). Mỗi một đỉnh của đồ thị tương ứng với một trạng thái hiện tại mà ký tự hay từ khóa được đưa vào bằng cách thêm một đường dẫn từ trạng thái đầu tiên. Đường dẫn này biểu diễn cho ký tự, chuỗi được đưa vào. Cũng bằng cách thêm đường dẫn mà đỉnh mới và cạnh mới của đồ thị được thêm vào. - Xét ví dụ: Cho các từ khóa, chuỗi (he, she, his, hers) biểu diễn hàm goto như sau: Xây dựng trie B1: Quét từ khóa đầu tiên: “he”, chúng ta được. Các đỉnh của đồ thị tương ứng với trạng thái hiện tại của ký tự được quét: 0,1; đường dẫn từ đỉnh 0->1 biểu diễn cho ký tự được quét: h 19 Tiếp tục đến ký tự e của từ khóa. Đường dẫn từ trạng thái 0->2 tương ứng với từ khóa “he” sẽ kết hợp với hàm output đưa ra từ khóa “he” tại trạng thái 2. B2: Quét thêm từ khóa: she lúc này đồ thị goto sẽ là: Đầu ra là từ khóa “she” tương ứng là trạng thái 5. B3: Quét đến ký tự: his . Nhận thấy khi quét từ khóa his. Đường dẫn biểu diễn ký tự h từ trạng thái 0->1đã có nên chúng ta không cần biểu diễn lại nữa. Đầu ra là từ khóa “ his” tương ứng trạng thái 7. B4: Quét từ khóa: hers 20 Hình 2.6: Đồ thị hàm goto với các từ khóa đầu vào. Đầu ra là từ khóa “ hers” tương ứng ở trạng thái 9. - Xây dựng hàm goto: Pseudocode thuật toán 1. Input : Cho tập hợp các từ khóa K {y1, y2 ,..., yk } . Output: hàm goto(g) và một phần chuỗi ký tự đầu ra output. Method: Giả sử khi trạng thái s được gọi đầu tiên. output ( s) g ( s, a ) fail nếu ký tự a không xác định. g ( s, a) chưa được xác định. Pseudocode : hàm goto (g). begin: newstate=0; for i=1 until k do enter(yi) for all a such that g(0,a)=fail do g(0,a)=0 end; procedure enter(a1,a2,...,am): begin: state=0; j=1; while g(state,aj)!= fail do begin 21 state=g(state,aj); j=j+1; end; for p=j until m do begin newstate=newstate+1; g(state,ap)=newstate; state=newstate; end; ouput(state)={a1,a2,...,am}; end; b. Hàm function failure (f): - Hàm failure được xây dựng dựa trên hàm goto. - Một khái niệm được nhắc đến trong hàm failure là độ sâu(depth) của 1 trạng thái trong đồ thị hàm goto. Depth là chiều dài ngắn nhất từ trạng thái bắt đầu cho tới trạng thái hiện tại s. - Ví dụ khi quét các ký tự, từ khóa đầu vào: he, she, his, hers Hình 2.7: Hàm failure Ta có: Độ sâu(depth) của 1 trạng thái Depth 0: 0 Depth 1: 1, 3 (hay depth 1: f ( s ) Depth 2: 2, 4, 6 (depth 2: f ( s ) f (1) 0 ). f (2) 0 ). 22 … Depth 9: 9 (depth 9: f ( s ) - f (9) 3 ). Tại depth d : xét mỗi trạng thái r có depth d + Nếu g ( r , a ) = fail + Nếu g ( r , a ) a : bỏ qua. s ta có thể làm như sau: (a): Đặt trạng thái t (b): Gán t 1. f (r ) . f (t ) đến khi g (t , a ) ≠ fail. (c): Đặt f ( s ) g (t , a ) . - Xâu dựng hàm failure (f): Pseudocode thuật toán 2. Input : hàm goto (g) và hàm output từ bước xây dựng hàm goto ở trên. Output: Hàm failure (f) và đầu ra hàm output. Method : begin queue=empty; for each a such that g(0,a)=s!=0 do begin queue=queue U {s}; f(s)=0; end; while queue!=empty do begin let r be the next state in queue queue=queue-{r}; for each a such that g(r,a)=s!=fail do begin queue=queue U {s}; state=t; t=f(r); while g(t,a)=fail do t=f(t) f(s)=g(t,a); 23 output(s)=output(s) U ouput(f(s)); end; end; end; c. Hàm output: - Được xây dựng trong quá trình xây dựng 2 hàm goto và hàm failure. - Ví dụ: Hình 2.8: Hàm ouput + Ở hàm goto: g (2, e) -> he; g (5, e) -> she; g (7, s) -> his; g (9, s ) -> hers. + Ở hàm failure: f (2) 0 => output (2) = he; f (5) 2 => ouput (5) = { she, he} f (7) 3 => output (7) = {his} f (9) 3 => ouput (9) = {hers} 2.1.4.3. Sử dụng máy hữu hạn trạng thái để xác định vị trí các mẫu trong văn bản. Ví dụ: Cho các mẫu {he, she, his, hers}. Xây dựng máy hữu hạn trạng thái và xác định vị trí mẫu {ushers}. Ta có: 24 Phân tích bài toán: - Trước hết chúng ta bắt đầu từ trạng thái 0(State 0). - Khi s là trạng thái hiện tại và a là ký tự hiện tại của chuỗi đầu vào x Chu trình hoạt động của thuật toán. + Nếu g (s, a) s'or fail : Chuyển trạng thái thành s ' , chuyển ký tự đầu vào là ký tự tiếp theo a trong x . Ngoài ra nếu output (s' ) : đưa ra output (s ' ) và vị trí của ký tự hiện tại. Kết thúc chu trình. + Nếu g ( s, a ) fail . Xét f (s) s ' , chuyển trạng thái thành s ' và ký tự đầu vào vẫn là a Hình 2.9: Ví dụ hàm goto State(i) 1 2 3 4 5 6 7 8 9 Failure 0 0 0 1 2 0 3 0 3 ( fi ) Bảng 2.10: Ví dụ hàm failaure State (i) Output (i) 2 {he} 5 {she, he} 7 {his} 9 {hers} Bảng 2.11: Ví dụ hàm output 25 - Sử dụng máy đối sánh mẫu ở ví dụ để xác định vị trí và xử lý chuỗi văn bản sau: “ ushers”. Ta có. Quá trình dịch chuyển trạng thái từ s Ta xét tại g (4, e ) s ' như sau: 5 (chu kỳ hoạt động đối sánh mẫu ở trạng thái 4 và ký tự đầu vào hiện tại là e ). Khi nhập trạng thái 5 thì ký tự đầu vào tiếp theo sẽ được quét và chuỗi ký tự được trả về bởi chức năng Output (5), do đó chúng ta thấy chuỗi từ khóa đầu ra là “ she” và “he” ở cuối vị trí(trạng thái) 4 trong chuỗi văn bản. Ký tự đầu vào là r : sẽ có 2 trạng thái dịch chuyển trong chu kỳ hoạt động của thuật toán đối sánh: g (5, r ) và g(2,r) . Tại g (5, r ) = fail, sẽ bước vào trạng thái 2 Tại g (2, r ) f (5) 8 , nó quét ký tự giống và tiếp tục quét ký tự tiếp theo của chuỗi đầu vào. Như vậy tại trạng thái 5 đầu vào là ký tự r sẽ không tạo ra chuỗi ký tự đầu ra trong chu kỳ hoạt động này. Pattern matching machine: Pseudocode thuật toán 3. Input: Cho một chuỗi văn bản X a1a2 ...an , ai là ký tự, chuỗi đầu vào để thực hiện quét và máy đối sánh mẫu M với các hàm đã được xây dựng ở trên. Output: Vị trí, trạng thái mà tại đó các ký tự, chuỗi ai xuất hiện trong X . Method begin state=0; for i=1 until n do begin while g(state,ai)= fail do state=f(state) state=g(state,ai); if output(state)!= empty then begin print i; 26 print output(state); end; end; end; 2.1.4.4. Độ phức tạp thuật toán Chúng ta sẽ thấy rằng việc sử dụng các hàm goto, failure, output được tạo từ các thuật toán 1 và 2, số trạng thái dịch chuyển được thực hiện bởi thuật toán 3 xử lý trong một chuỗi văn bản là độc lập với số lượng từ khóa. Chúng ta thấy thuật toán 1 và 2 có thể được thực hiện thời gian tỷ lệ tuyến tính với tổng chiều dài của các từ khóa trong K . - Thuật toán 1: có thời gian chạy tỷ lệ tuyến tính với tổng độ dài các mẫu. - Thuật toán 2: có thể được cài đặt với thời gian chạy tỷ lệ với tổng độ dài các mẫu. - Thuật toán 3: tạo ra số bước chuyển dịch nhỏ hơn 2n với n là độ dài văn bản đầu vào. 2.1.5. So sánh giữa các thuật toán Thuật toán 1 2 Độ phức tạp thuật toán. AhoCorasick BoyerMoore Tuyến tính Tuyến tính Hình thức Tìm kiếm ký tự đầu tiên. tìm kiếm. 27 Quét các ký tự của mẫu từ phần tử cuối cùng trở về đầu. 3 Ý tưởng Xây dựng máy đối sánh Trượt mẫu từ trái sang phải chính. mẫu hữu hạn trạng thái từ nhưng mỗi vị trí của mẫu ta quét tập các mẫu phù hợp với từ từ ký tự cuối cùng trở về đầu. Nếu gặp đoạn khớp và ký tự khác khóa. Sử dụng máy để tìm nhau đầu tiên giữa mẫu và chuỗi kiếm mẫu trong văn bản. nhập hoặc không khớp thì ta dịch cửa sổ sang bên phải và tiếp tục tìm kiếm 2.2. Kỹ thuật phát hiện dựa trên sự bất thường 2.2.1. Định nghĩa Bất thường trong mạng (BTTM) là thuật ngữ dùng để chỉ tình trạng hoạt động của hệ thống mạng hoạt động ngoài trạng thái bình thường. BTTM có thể phát sinh từ nhiều nguyên nhân, có thể là do một hoặc nhiều thiết bị trong mạng hỏng hóc, băng thông mạng bị quá tải, nhưng thường thấy hơn cả là do hệ thống thông tin đang bị xâm nhập trái phép hoặc đang bị tấn công. Để phân biệt giữa trạng thái bình thường và trạng thái bất thường trong mạng. Người ta sử dụng khái niệm activity profile (hồ sơ hoạt động). Một cách khái quát, activity profile mô tả hành vi của một đối tượng nào đó ở một số khía cạnh cụ thể. Thông thường khía cạnh là các tham số có thể tiến hành đo lường được. Người ta theo dõi các tham số này trong một thời gian nhất định, theo một đơn vị nào đó như phút, giờ, ngày, tuần… Hoặc có thể đo lường thời gian xảy ra hai sự kiện liên tiếp, ví dụ như thời gian log-in và log-out hệ thống, thời gian kích hoạt và kết thúc các ứng dụng… Để phát hiện một profile là “bất thường”, người ta phải tiến hành xây dựng tập các profile mô tả hoạt động của hệ thống ở trạng thái “bình thường”. Dựa trên sự khác biệt của một tập các tham số trong profile, người ta có thể phát hiện ra BTTM. Các BTTM thông thường được chia thành 2 loại chính:  BTTM do hỏng hóc: Trong mạng nảy sinh ra các hiện tượng bất thường do một hay nhiều thành phần trong mạng bị sự cố, ví dụ như khi một máy chủ bị lỗi, 28 thiết bị Switch hay Router gặp sự cố, broadcast storm, network paging… Các sự cố này nói chung không ảnh hưởng đến các thành phần khác trong mạng, chủ yếu là làm giảm hiệu năng hoạt động, hạn chế khả năng đáp ứng dịch vụ của hệ thống. Ví dụ như khi số lượng các yêu cầu đến một File Server hay Web Server quá lớn, các Server này sẽ gặp sự cố. Lỗi Network paging sảy ra khi một ứng dụng bị tràn bộ nhớ và tiến hành phân trang bộ nhớ đến một File Server. Ngoài ra các BTTM còn xảy ra do các phần mềm bị lỗi, ví dụ việc triển khai một giao thức không đúng, dẫn đến máy trạm liên tục gởi các gói tin nhỏ nhất làm tắt nghẽn mạng…  BTTM liên quan đến các sự cố an ninh: Đây là loại BTTM phát sinh từ các mối đe dọa đối với hệ thống thông tin. Một ví dụ điển hình của loại BTTM này là tấn công từ chối dịch vụ Dos (Denial of Service), có thể mô tả như hành động ngăn cản những người dùng hợp pháp mất khả năng truy cập và sử dụng vào một dịch vụ nào đó. Cách tiến hành tấn công Dos bao gồm làm tràn ngập mạng, mất kết nối với dịch vụ… mà mục đích cuối cùng là máy chủ không thể đáp ứng được các yêu cầu sử dụng dịch vụ từ các máy trạm. BTTM còn xuất hiện khi có hiện tượng lây lan và bùng nổ các loại mã xấu, mã nguy hiểm trong mạng như Virus, Spy. Đôi khi hành vi dò quét khi tấn công cũng tạo ra nhiều gói tin với số lượng bất thường. Ngoài ra khi các chức năng cơ bản của mạng như DHCP, DNS bị làm ngưng hoạt động thì cũng tạo ra một số lượng lớn các yêu cầu không được đáp ứng làm giảm thiểu băng thông. Một trong những nghiên cứu đầu tiên của hệ thống IDS dựa trên phát hiện bất thường là của Anderson. Trong báo cáo của Anderson, ông đưa ra cách phân loại 3 mối đe dọa chính là:  Xâm nhập từ bên ngoài (external penetration): Hệ thống bị tấn công từ các máy tính hoặc hệ thống không được xác minh.  Xâm nhập từ bên trong (internal penetrations): Các máy tính được xác minh truy cập vào các dữ liệu không được phân quyền.  Lạm quyền: (misfeasance): Sử dụng sai quyền truy cập vào hệ thống và dữ liệu 2.2.2. Dữ liệu phát hiện bất thường 29 Nguồn dữ liệu đóng vai trò quan trọng trong phương pháp phát hiện bất thường. Số liệu chính xác về tình trạng hoạt động của mạng sẽ có tính chất quyết định đến việc các bất thường có được phát hiện hay không. Do bản chất của phương pháp phát hiện bất thường là mô hình hóa và lập một hồ sơ về trạng thái bình thường rồi từ đó so sánh phân biệt khi có sự cố xảy ra, nên nếu số liệu phân tích được cung cấp càng đầy đủ và chuẩn xác thì hiệu quả hoạt động của các thuật toán phát hiện bất thường sẽ càng cao. Dưới đây là một số nguồn dữ liệu thường được sử dụng.  Network Probes: Network Probes là những công cụ chuyên dụng để đo lường các tham số mạng. Một ví dụ đơn giản về Network Probes là 2 lệnh ping và tracerouter, các lệnh này dùng để đo độ trễ (end – to – end delay), tỉ lệ mất gói tin (packet loss), bước truyền,… Network Probes có thể cung cấp các số liệu tức thời, phương pháp này không yêu cầu sự phối hợp của nhà cung cấp dịch vụ. Tuy nhiên, Network Probes có thể không hoạt động nếu như Firewall đặt các tập luật ngăn chặn loại traffic này. Ngoài ra các gói tin mà giao thức này sử dụng thường được các thiết bị mạng đối sử một cách đặc biệt không giống như các gói tin bình thường khác, do vậy các số liệu Network Probes cần được tinh chỉnh thêm.  Lọc gói tin: Có một kỹ thuật được dùng để cung cấp dữ liệu cho các thuật toán phát hiện bất thường đó là kỹ thuật lọc gói tin để thống kê luồng (packet filtering for flowbased statistics). Luồng thông tin được dẫn qua một bộ lọc để lấy mẫu, các IP header của các gói tin trong những thời điểm khác nhau tại các địa điểm khác nhau trong mạng được ghi lại. Việc tổng hợp các IP header cho phép cung cấp các thông tin chi tiết về tình trạng hoạt động của hệ thống mạng. Các luồng thông tin được giám sát, một luồng được xác định bằng địa chỉ nguồn-đích và cổng nguồn-đích. Phương pháp lọc gói tin cho phép có được các thống kê chính xác về giao dịch trong mạng.  Dữ liệu từ các giao thức định tuyến 30 Các giao thức định tuyến là một nguồn cung cấp dữ liệu cho thuật toán phát hiện bất thường trong mạng. Trong quá trình định tuyến, các router liên lạc với nhau để trao đổi các thông tin về trạng thái đường truyền ví dụ như: bang thông, độ trễ, kết nối có bị tắc nghẽn hay không. Ví dụ với giao thức định tuyến OSPF (OpenShortest Path First), tại mỗi router có các băng thông số mô tả về hình trạng mạng cũng như trạng thái các đường truyền.  b. Dữ liệu từ các giao thức quản trị mạng Các giao thức quản trị mạng cung cấp các thống kê về lưu thông mạng. Những giao thức này có các tham số có thể giám sát hoạt động của thiết bị mạng một cách hiệu quả. Các tham số không cung cấp trực tiếp các thông tin đo lường về giao thông mạng nhưng có thể dùng để nhận dạng các hành vi trên mạng, do đó phù hợp với phương pháp phát hiện bất thường. SNMP: là giao thức hoạt động theo mô hình client-server có mục đích quản lý, giám sát, điều khiển các thiết bị mạng từ xa. SNMP hoạt động dựa trên giao thức UDP. SNMP server thu thập các thông tin gửi từ agent. Tuy nhiên nó không có chức năng xử lý thong tin. SNMP server lưu trữ các thông tin này trong một cơ sở dữ liệu gọi là MIB (Management Information Base). Các giá trị trong CSDL này chứa các thông tin được ghi nhận khi các thiết bị mạng thực hiện các chức năng khác nhau. Từng thiết bị mạng có một tập các giá trị MIB tương ứng với chức năng của nó. Các giá trị MIB được xác định dựa trên loại thiết bị và các giao thức mạng hoạt động dựa trên các thiết bị đó. Ví dụ như một Switch sẽ có các giá trị MIB đo lường lưu thông mạng ở mức đường truyền (link level) trong khi một router sẽ có các tham số ở mức dạng (network level) cung cấp các thông tin về tầng mạng trong mô hình OSI. Ưu điểm của việc sử dụng SNMP là tính chuẩn hóa do SNMP đã được chấp nhận và triển khai rộng rãi trên các thiết bị khác nhau. Do tính đầy đủ và có chọn lọc của dữ liệu trên SNMP là nguồn thông tin đầu vào quan trọng cho các thuật toán phát hiện bất thường trong mạng. 2.2.3. Kỹ thuật 31 Để phát hiện bất thường trong mạng, người ta sử dụng một số kỹ thuật cụ thể, các kỹ thuật này có thể dùng tách biệt hoặc phối hợp với nhau. Có 3 kỹ thuật phát hiện cơ bản là:  Threshold Detection: Kỹ thuật này nhấn mạnh thuật ngữ “đếm”. các mức ngưỡng về các hoạt động bình thường được đặt ra, nếu có sự bất thường nào đó login với số lần quá quy định, số lượng các tiến trình hoạt động trên CPU, số lượng một loại gói tin được gửi vượt quá mức…  Seft-learning Detection: Kỹ thuật dò này bao gồm hai bước, khi thiết lập hệ thống phát hiện tấn công, nó sẽ chạy ở chế độ tự học và thiết lập một profile mạng với các hoạt động bình thường. Sau thời gian khởi tạo, hệ thống sẽ chạy ở chế độ sensor theo dõi các hoạt động bất thường của mạng so với profile đã thiết lập. Chế độ tự học có thể chạy song song với chế độ Sensor để cập nhật bản profile của mình, nhưng nếu dò ra có tín hiệu tấn công thì chế độ tự học phải dừng lại tới khi cuộc tấn công kết thúc.  Anomaly protocol detection: Kỹ thuật dò này căn cứ vào hoạt động của các giao thức, các dịch vụ của hệ thống để tìm ra các gói tin không hợp lệ, các hoạt động bất thường là dấu hiệu của sự xâm nhập, tấn công. Kỹ thuật này rất hiệu quả trong việc ngăn chặn các hình thức quét mạng, quét cổng để thu thập thông tin của các hacker 2.2.4. Phương pháp  Phát hiện bất thường bằng mạng Nơron Hệ thống IDS sử dụng mạng Nơ-ron thường là HIDS, tập trung vào việc phát hiện các thay đổi trong hành vi của chương trình như là dấu hiệu bất thường. Theo cách tiếp cận này, mạng Nơ-ron sẽ học và dự đoán hành vi của người sử dụng và các chương trình tương ứng. Ưu điểm của mạng Nơ-ron là dễ dàng thích ứng với các kiểu dữ liệu không đầy đủ, dữ liệu với độ chắc chắn không cao, đồng thời phương pháp này cũng có khả năng đưa ra các kết luận mà không cần cập nhật tri thức thường xuyên. Điểm yếu của mạng Nơ-ron là tốc độ xử lý do hệ thống cần thu thập dữ liệu, phân tích và điểu chỉnh từng Nơ-ron để cho kết quả chính xác. Một số 32 hệ thống IDS điển hình như: IDS sử dụng mạng Nơ-ron lan truyền ngược trong nghiên cứu của Ghost hay mạng Nơ-ron hồi quy trong nghiên cứu của Elman.  Phát hiện bất thường bằng kỹ thuật khai phá dữ liệu Hệ thống phát hiện bất thường dựa trên kỹ thuật Khai phá dữ liệu (KPDL) lấy ý tưởng chủ đạo là sử dụng các giải thuật phát hiện phần tử tách biệt. Bên cạnh đó, hệ thống còn có một số cải tiến như sử dụng bộ lọc các kiểu tấn công đã biết dâu hiệu, sử dụng một bộ tổng hợp nhằm rút gọn cảnh báo lên chuyên gia. Đồng thời bộ tổng hợp này cũng có chức năng xây dựng luật rút gọn để bổ sung tri thức cho hệ thống. Hệ thống IDS sử dụng KPDL cũng được chia theo hai hướng chính là phát hiện dựa trên hành vi lạm dụng và phát hiện bất thường. Trong hướng phát hiện dựa trên hành vi lạm dụng, các mẫu trong tập dữ liệu được gán nhãn là “bình thường” hay “bất thường”. Một thuật toán học sẽ được đào tạo trên tập dữ liệu được gán nhãn. Kỹ thuật này sẽ được áp dụng tự động trên các dữ liệu đầu vào khác nhau để phát hiện tấn công. Các nghiên cứu theo hướng này chủ yếu dựa vào việc phân lớp các hành vi sử dụng các thuật toán KPDL khác nhau như: Phân cụm, Phân tích luật tích hợp. Ưu điểm của hướng này là khả năng phát hiện chính xác các tấn công đã biết đến và các biến thể của nó với độ chính xác cao. Nhược điểm của nó là nó không thể phát hiện các tấn công mới mà chưa có mẫu hay biến thể nào được quan sát. Đối với hướng tiếp cận bất thường, gần đây trong lĩnh vực KPDL, người ta thường nhắc đến Bài toán phát hiện phần tử tách biệt. Mục tiêu của bài toán này là phát hiện phần tử tách biệt, với dữ liệu là tập thông tin quan sát hoạt động mạng, còn phần tử tách biệt tương ứng với các dạng tấn công. Các thuật toán Phát hiện phần tử tách biệt, cũng thừa hưởng ưu điểm của phương pháp KPDL, đó là khả năng hoạt động ổn định trong tập dữ liệu nhiễu, dữ liệu không đầy đủ, dữ liệu khối lượng lớn và có tính chất phân bố.  Phát hiện bất thường nhờ hệ chuyên gia Phương pháp này có tên gọi là Rule-based Detection (Phát hiện dựa trên tập luật). Đây là một trong những hướng tiệm cận đầu tiên để giải quyết vấn đề phát hiện bất thường trong mạng. Phương pháp Rule-base này dựa trên hệ chuyên gia, 33 cần có một cơ sở dữ liệu đồ sộ bao gồm các luật để mô tả hành vi bất thường để phát hiện lỗi trong hệ thống. Phương pháp Rule-based phụ thuộc rất lớn vào kinh nghiệm của người quản trị vì khi hệ thống mạng có sự thay đổi và tăng trưởng về mô hình thì tập luật cũng phải thay đổi theo. Phương pháp này gồm các bước như sau: Bước 1: Giả thiết rằng các sự kiện không xảy ra theo một trình tự ngẫu nhiên mà theo các khuôn dạng cho trước. Bước 2: Sử dụng các luật qui nạp theo thời gian để mô tả hành vi bình thường của người sử dụng. Bước 3: Các luật được chỉnh sửa và chỉ có những luật có mức entropy thấp mới lưu lại trong tập luật. Bước 4: Nếu chuỗi các sự kiện phù hợp với vế trái của luật, thì sẽ tiếp tục so sánh sự kiện tiếp theo để xác định bất thường nếu nó không nằm trong phần vế phải của luật. Ví dụ có luật là: A1->A2->A3 => (A4=90%, A5=10%), nghĩa là nếu thấy liên tiếp các sự kiện A1, A2, A3 thì xác xuất xảy ra sự kiện A4 là 90%, A5 là 10%. Kết chương: Như vậy trong Chương hai đã giải quyết được một số vấn đề về kỹ thuật giám sát an ninh, đi sâu về hệ thống phát hiện xâm nhập. Phần tiếp theo chúng ta sẽ đi phân tích và thiết kế Module giám sát an ninh mạng dựa trên kỹ thuật phát hiện bất thường dựa trên tập luật (Rule-base Detection) với phần mềm mã nguồn mở Snort. 34 Chương 3 - XÂY DỰNG MODULE GIÁM SÁT AN NINH MẠNG DỰA TRÊN PHẦN MỀM SNORT 3.1. Mô hình Module giám sát an ninh mạng 3.1.1. Mô hình tổng quan Sau khi nghiên cứu các thành phần và chức năng của một hệ thống giám sát an ninh mạng, tôi dự định sẽ xây dựng Module giám sát an ninh mạng với 5 thành phần là: Sensor, Collector, Database Center, Analysis và Website thực hiện các chức năng sau đây: - Theo dõi - Giám sát - Cảnh báo Dưới đây là mô hình tổng quan của Module giám sát an ninh mạng: Hình 3.1: Mô hình Module giám sát an ninh mạng - Máy trinh sát (Sensor): 35 Thành phần này đóng vai trò là các máy trinh sát nằm rải rác trên mạng để thu thập thông tin. Thành phần này bao gồm nhiều tiện ích, mỗi tiện ích là một phần mềm đơn lẻ, thực hiện một chức năng giám sát, thu thập, truy vấn thông tin từ môi trường mạng. Những thông tin thu được sẽ được gửi về cho thành phần Collector để phân tích. - Máy thu thập (Collector): Thành phần này làm nhiệm vụ thu nhận thông tin gửi về từ các máy trinh sát và tiến hành tổng hợp thông tin, gửi về cho CSDL để lưu trữ. Thành phần này cũng đóng vai trò điều phối công việc cho các Máy trinh sát. - Cơ sở dữ liệu (Database Center): Thành phần này đóng vai trò lưu trữ các CSDL mà Module giám sát an ninh mạng sử dụng. Tất cả dữ liệu sẽ được lưu theo định dạng có cấu trúc trong các CSDL trên máy chủ. Các thành phần khác sẽ phải giao tiếp với CSDL này để lưu trữ và truy vấn thông tin. - Phân tích (Analysis): Thành phần này sẽ tiến hành phân tích các thông tin thu thập được lưu trong CSDL để từ đó tìm ra các dấu hiệu bất thường. Sau khi phát hiện ra các hành vi bất thường, thành phần này sẽ làm nhiệm vụ gửi các thông tin cảnh báo cho người quản trị qua giao diện Website. - Website: Đây là thành phần trung tâm tương tác với người quản trị và mọi thành phần khác của Module giám sát an ninh mạng. Thành phần này bao gồm một giao diện Web để quản trị có thể truy nhập, sử dụng các chức năng của Module giám sát an ninh mạng: quản lý các máy trinh sát, xem các thông tin thu thập được, yêu cầu một máy trinh sát truy vấn thông tin và thiết lập cấu hình cho hệ thống, … Trong sơ đồ, những đường mũi tên biểu thị tương tác giữa các thành phần của hệ thống, những tương tác này có thể là truyền lệnh điều khiển hoặc dữ liệu. 3.1.2. Mô hình chi tiết 3.1.2.1. Máy trinh sát 36 Máy trinh sát đóng vai trò là các Sensor đặt tại nhiều nơi để thu thập thông tin. Máy trạm trinh sát là tập hợp bao gồm rất nhiều tiện ích, mỗi tiện ích sẽ tương tác với một đối tượng nào đó (có thể là file nhật ký, một thiết bị như Tường lửa, Bộ điều hướng,…) để lấy thông tin gửi về lưu trữ trong CSDL trung tâm. Thông tin về các tiện ích được lưu trong bảng "plugin” của cơ sở dữ liệu của Module giám sát an ninh mạng, bao gồm các trường: id: số hiệu của tiện ích Type: chỉ định loại tiện ích Name: tên của tiện ích Description: mô tả về tiện ích Mỗi tiện ích có thể tạo ra nhiều kiểu sự kiện khác nhau, thông tin này được lưu trong bảng “plugin_sid” của cơ sở dữ liệu của Module giám sát an ninh mạng như sau: plugin_id: số hiệu của tiện ích sinh ra sự kiện sid: số hiệu của sự kiện reliability: mức độ tin cậy được gán cho sự kiện priority: mức độ ưu tiên được gán cho sự kiện Name: tên của sự kiện Dưới đây là một số sự kiện của tiện ích Snort trong bộ tập hợp các tiện ích:  Tiện ích cảnh báo: Tiện ích cảnh báo là những tiện ích có chức năng giám sát các đối tượng và đưa ra những cảnh báo mỗi khi phát hiện thấy sự bất thường hoặc xảy ra một sự kiện nào đó cần được cảnh báo. + Đọc file nhật ký: Để thực hiện chức năng giám sát, các tiện ích sẽ đọc file nhật ký hoạt động của các chương trình hoặc dịch vụ trên hệ thống. Ví dụ như: nhật ký ghi lại những lần người dùng đăng nhập vào hệ thống, nhật ký phát hiện xâm nhập ghi về các sự kiện bất thường phát hiện được... + Chuẩn hóa: 37 Những file nhật ký có thể do những chương trình hoặc dịch vụ khác nhau sinh ra, có cấu trúc và cách biểu diễn dữ liệu khác nhau. Máy trạm trinh sát sẽ chuẩn hoá lại những thông tin đó, trích xuất ra những thông tin cần thiết. + Cảnh báo: Sau khi chuẩn hoá, thông tin đã được biểu diễn dưới dạng máy trạm có thể hiểu được. Những thông tin này sẽ được xem xét, so sánh với các chính sách của hệ thống, mỗi khi có sự kiện nào vi phạm những luật đã cấu hình cho hệ thống thì hệ thống sẽ phát sinh cảnh báo tới người quản trị. + Một số tiện ích cảnh báo được sử dụng: id Type name description 1001 1 snort Snort Rules 1002 1 snort_tag Snort Tagging 1003 1 intrushield McAfee IntruShield 1100 1 spp_portscan Portscan1 1101 1 spp_minfrag Minfrag 1102 1 http_decode HTTP decode 1/2 1103 1 spp_defrag First defragmenter 1104 1 spp_anomsensor SPADE 1105 1 spp_bo Back Orifice 1106 1 spp_rpc_decode RPC Preprocessor 1107 1 spp_stream2 2nd stream preprocessor 1108 1 spp_stream3 3rd stream preprocessor 1109 1 spp_telnet Telnet option decoder 1110 1 spp_unidecode Unicode decoder 1111 1 spp_stream4 Stream4 preprocessor 1112 1 spp_arpspoof Arp Spoof detector 1113 1 spp_frag2 2nd fragment preprocessor 1114 1 spp_fnord NOP detector 1115 1 spp_asn1 ASN.1 Validator 38 1116 1 snort_decoder Snort Internal Decoder 1117 1 spp_portscan2 Portscan2 1118 1 spp_conversation Conversation 1119 1 spp_tba TBA 1120 1 spp_tba2 TBA 1121 1 spp_snmp SNMP decoder 1122 1 portscan Portscan decoder 1124 1 xlink2state xlink2state preprocessor 1501 1 apache Apache 1503 1 iptables Iptables 1504 1 fw1 FW1 1505 1 directive_alert OSSIM Directives Alerts 1506 1 realsecure Real Secure 1507 1 rrd_threshold RRD Threshold 1508 1 rrd_anomaly RRD Anomaly 1509 1 threshold Threshold exceeded 1510 1 cisco Cisco router 1511 1 p0f Passive OS fingerprinting tool 1512 1 arpwatch Ethernet/FDDI station monitor daemon 1513 1 prelude Prelude Hybrid IDS 1514 1 ciscopix Cisco Pix Firewall 1515 1 ciscoids Cisco Secure IDS 1516 1 pads Passive Asset Detection System 1517 1 ntsyslog Windows NT/2000/XP syslog service 1518 1 snarewindows Snare Agent for Windows 1519 1 netgear Netgear 1520 1 netscreen Juniper Netscreen 1521 1 postfix Postfix mailer 1522 1 juniperfw Juniper-Netscreen FW 39 4001 1 osiris Osiris HIDS 4002 1 syslogd Syslog Daemon  Tiện ích giám sát: Tiện ích giám sát là những tiện ích có chức năng thống kê và báo cáo mỗi khi nhận được truy vấn từ máy thu thập. Bình thường, các tiện ích này vẫn chạy để thu thập thông tin, chỉ đến khi nhận được yêu cầu từ máy thu thập, máy trạm trinh sát mới gửi những kết quả trả lời về cho máy thu thập. + Truy vấn thông tin: Để thu thập thông tin, các tiện ích phải gửi những truy vấn đến các đối tượng. Ví dụ như muốn kiểm tra xem trong mạng nội bộ có bao nhiêu máy tính đang trực tuyến, tiện ích sẽ phải gửi truy vấn đến mọi địa chỉ trong mạng. Đây là bước gửi yêu cầu để thu thập thông tin. Kết quả của bước này là tiện ích sẽ nhận được dữ liệu dạng thô. + Chuẩn hóa: Những thông tin mà các tiện ích gửi truy vấn thu thập được là ở dạng thô, chưa có định dạng chuẩn. Vì vậy cần phải có bước chuẩn hoá để chuyển đổi dữ liệu ở dạng thô về dạng chuẩn của Module giám sát an ninh mạng. Dữ liệu ở dạng này đã có cấu trúc và sẽ được lưu vào cơ sở dữ liệu của hệ thống. + Trả lời: Máy trạm trinh sát luôn hoạt động và chờ các yêu cầu từ máy thu thập. Khi nhận được truy vấn từ máy thu thập, máy trạm sẽ đọc dữ liệu từ cơ sở dữ liệu và tổng hợp lại thành kết quả gửi trả về cho hệ tập trung. + Một số tiện ích giám sát được sử dụng: id type name description 2001 2 ossim OS-SIM 2002 2 arp_watch Arpwatch 2003 2 p0f P0f 2004 2 open_nms OpenNMS 40 2005 2 ntop NTop 2006 2 tcptrack tcptrack 2007 2 nagios Nagios 3.1.2.2. Máy thu thập Máy thu thập là thành phần quản lý và điều phối công việc cho các máy trạm trinh sát. Máy thu thập hoạt động dưới dạng dịch vụ, lắng nghe ở cổng 40001 (TCP) để tiếp nhận các yêu cầu kết nối từ máy trạm trinh sát. Khi muốn điều khiển máy trinh sát, thu thập sẽ gửi yêu cầu đến các máy trạm và chờ phản hồi từ máy trinh sát trả về. Một máy thu thập có thể quản lý nhiều máy trạm trinh sát. Mỗi khi máy thu thập muốn truy vấn thông tin từ máy trinh sát nào thì máy thu thập sẽ tạo kết nối đến máy trinh sát đó để gửi truy vấn. Sau đây là một số trường hợp máy thu thập sẽ tạo kết nối đến máy trạm trinh sát: + Khi máy thu thập muốn kiểm tra xem máy trạm còn hoạt động hay không: việc kiểm tra chỉ đơn giản là tạo kết nối tới máy trạm, nếu kết nối thành công tức là máy trạm còn hoạt động, nếu không sẽ coi như máy trạm đó đã ngưng hoạt động hoặc có vấn đề không liên lạc được. + Khi máy thu thập muốn truy vấn thông tin từ máy trạm, nó sẽ tạo kết nối đến máy trạm, gửi truy vấn để nhận được phản hồi từ máy trạm. Bằng cách này máy chủ cũng có thể gửi truy vấn để biết được trạng thái của các dịch vụ đang chạy trên máy trạm. Trong quá trình hoạt động, máy thu thập sẽ phải kết nối tới cơ sở dữ liệu để lấy những thông tin về các sự kiện được lưu trong đó. Việc ghi log của máy chủ cũng được thực hiện trên cơ sở dữ liệu. 3.1.2.3. Cơ sở dữ liệu Thành phần này là một hệ quản trị cơ sở dữ liệu, nơi tập trung lưu trữ dữ liệu của toàn bộ hệ thống. Do đặc thù của Module giám sát an ninh mạng cùng lúc phải phục vụ nhiều đối tượng khác nhau nên thành phần này phải là một máy chủ cơ sở dữ liệu hỗ trợ nhiều client kết nối đến. Module giám sát an ninh mạng sẽ sử dụng 41 một số cơ sở dữ liệu như sau: Hình 3.2: Các cơ sở dữ liệu của Module giám sát an ninh mạng  Cơ sở dữ liệu cho Website: Cơ sở dữ liệu cho Website chứa những thông tin phục vụ cho hoạt động của Website. Sau đây là một số bảng dữ liệu chính: Users: lưu trữ thông tin về người dùng, hệ thống sẽ kiểm tra tài khoản của người dùng từ bảng này mỗi khi người dùng đăng nhập vào hệ thống Host: hệ thống lưu giữ thông tin về các host được giám sát trong mạng Host_services: danh sách các service chạy trên các host Host_vulnerability: lưu trữ các yếu điểm của host được phát hiện sau khi thực hiện quá trình rà soát yếu điểm Host_mac: danh sách địa chỉ vật lý (địa chỉ MAC) của các thiết bị Host_netbios: danh sách tên của các máy tính trong mạng Host_os: danh sách hệ điều hành của các máy tính trong mạng Net: danh sách các mạng máy tính được quản lý Sensor: danh sách các máy trinh sát tham gia vào Module giám sát an ninh mạng Policy: bảng thiết lập các chính sách cho các đối tượng trong mạng Events: bảng danh sách ghi nhận các sự kiện Config: lưu các thông tin về thiết lập cấu hình hệ thống Incidents: thông tin về các sự cố an toàn mạng Plugins: thông tin về các tiện ích dùng cho hệ thống, hệ thống có rất nhiều tiện ích cung cấp những dấu hiệu nhận dạng khác nhau  Cơ sở dữ liệu phát hiện xâm nhập: Cơ sở dữ liệu phát hiện xâm nhập bao gồm các bảng phục vụ cho hoạt động của thành phần phát hiện xâm nhập như sau: Event: các sự kiện được phát hiện bởi Hệ thống phát hiện xâm nhập. 42 Signature: lưu trữ các dấu hiệu nhận dạng luồng lưu thông mạng có khả năng gây mất an toàn cho hệ thống mạng. Data: lưu trữ phần nội dung của gói dữ liệu, khi cần có thể đọc và phân tích ngược lại những gì xảy ra trên mạng. Ngoài ra còn có một số bảng khác lưu thông tin mô tả của một số loại gói tin phổ biến: icmphdr, iphdr, tcphdr, udphdr.  Cơ sở dữ liệu điều khiển truy nhập: Cơ sở dữ liệu điều khiển truy nhập dùng cho mục đích phân quyền truy nhập vào các thành phần cho người sử dụng bao gồm các bảng chứa thông tin về định nghĩa các nhóm người dùng, định nghĩa các đối tượng trên Website để phân quyền truy nhập đến các đối tượng cho từng nhóm người dùng. 3.1.2.4. Phân tích Phân tích là thành phần xử lý chính Module giám sát an ninh mạng, bao gồm 4 chức năng chính:  Đánh giá: Trong quá trình Module giám sát an ninh mạng hoạt động, có thể sẽ có rất nhiều sự kiện được ghi nhận. Điều quan trọng là Module phải có khả năng phân tích, đánh giá mức độ quan trọng và ưu tiên của mỗi sự kiện để phục vụ cho việc sắp xếp và phân loại. Sự đánh giá, phân loại mức độ ưu tiên phải cho biết những thông tin sau: + Thành phần nào là quan trọng và cần bảo vệ? + Những địa chỉ nguồn nào là đáng lo ngại? + Những địa chỉ đích nào là đáng lo ngại? Mức độ ưu tiên của một sự kiện phụ thuộc vào kiến trúc mạng và phụ thuộc vào các đặc tính của hệ thống và được định nghĩa trong các Policy mà chúng ta có thể điều chỉnh được. Chúng ta có thể xét ví dụ sau: Nếu một hệ thống chạy hệ điều hành UNIX và đang sử dụng máy chủ web là Apache, trong khi đó ta nhận được một cảnh báo về dấu hiệu một cuộc tấn công vào Máy chủ web IIS (Microsoft), thì cảnh báo đó có mức ưu tiên không cao. 43 Nếu một người dùng tạo một kết nối đáng ngờ đến máy chủ, Module giám sát an ninh mạng cần phải: + Đặt độ ưu tiên cao nhất nếu người dùng đó ở bên ngoài mạng nội bộ và tấn công vào cơ sở dữ liệu khách hàng. + Đặt độ ưu tiên thấp nếu người dùng đó ở trong mạng nội bộ và tấn công vào máy in mạng (không quan trọng bằng máy tính). + Bỏ qua nếu người dùng đó đang kiểm tra một máy chủ thử nghiệm. + Chính vì vậy mức độ ưu tiên phụ thuộc vào ngữ cảnh của sự kiện, nói cách khác, mức độ quan trọng của cảnh báo có liên quan tới môi trường của tổ chức, được mô tả trong cơ sở tri thức về hệ thống mạng. + Danh sách các máy tính và mạng (mã nhận dạng, hệ điều hành, các dịch vụ...). + Chính sách truy cập: những ai được phép truy cập, từ đâu và đến đâu. Chính sách cho phép ta định nghĩa các đối tượng, nhóm đối tượng mà Module giám sát an ninh mạng sẽ quản lý. Sau đó, những sự kiện có liên quan đến những đối tượng này sẽ được chú ý, đánh giá xử lý tùy theo mức độ ưu tiên của sự kiện và đối tượng. Module giám sát an ninh mạng cũng cho phép thiết lập để phát ra cảnh báo đến người quản trị mỗi khi có sự kiện nào đó xảy ra trên đối tượng.  Tổng hợp: Đây chính là tính năng nổi bật của Module giám sát an ninh mạng theo cấu trúc phân bố. Nó có khả năng kết hợp các thông tin để đưa ra quyết định: + Nhận biết được sự liên quan của một cảnh báo với phiên bản của sản phẩm hoặc hệ điều hành có thể bị tấn công. (Nếu một cuộc tấn công chỉ ảnh hưởng đến máy chủ web IIS-Windows, thì hệ thống sẽ bỏ qua những đối tượng sử dụng máy chủ web Apache-Linux). + Nhận biết được sự liên quan giữa phần mềm phát hiện xâm nhập Snort và phần mềm rà soát điểm yếu Nessus (nếu hệ thống có khả năng bị tấn công vào một yếu điểm và Nessus phát hiện thấy hệ thống có yếu điểm đó thì cảnh báo sẽ được gán mức ưu tiên cao). + Cho phép định nghĩa sự liên quan giữa các sự kiện xảy ra dựa vào một số dấu hiệu: Các cảnh báo 44 Các dấu hiệu bất thường Trạng thái của những hệ thống đang được giám sát + Để thực hiện được những chức năng trên, Module giám sát an ninh mạng cũng đồng thời thực hiện những chức năng như: Lưu giữ thông tin về các hệ thống. Lưu trữ thông tin cảnh báo về mối liên quan giữa phiên bản và các lỗ hổng Truy vấn và giám sát thời gian thực  Quản lý: Module giám sát an ninh mạng sẽ tự động lưu giữ những thông tin về các thành phần của mạng, các máy tính trong mạng: + Hệ điều hành. + Địa chỉ vật lý của các thiết bị. + Tên máy tính, tên miền. + Các dịch vụ đang chạy trên hệ thống. + Tên sản phẩm và phiên bản của các dịch vụ. Những thông tin này sẽ được sử dụng để phát hiện và đưa ra cảnh báo mỗi khi có sự thay đổi nào đó, ví dụ một hệ thống có máy chủ web với địa chỉ vật lý của giao diện mạng là X.X.X.X.X.X, nếu tại một thời điểm khác Module giám sát an ninh mạng phát hiện thấy địa chỉ vật lý này thay đổi thì có khả năng có một máy tính khác đang giả mạo địa chỉ IP của máy chủ web, lúc đó Module giám sát an ninh mạng sẽ phát ra cảnh báo. Những dữ liệu khác (luồng dữ liệu /các kết nối/thời gian) được lưu trong cơ sở dữ liệu giám sát việc sử dụng mạng.  Ghi nhật ký: Trong quá trình vận hành, Module giám sát an ninh mạng cần có chức năng ghi nhật ký những sự kiện xảy ra trên hệ thống, những thao tác người dùng đã thực hiện. Chức năng này rất tiện khi hệ thống có nhiều người sử dụng và ta muốn xem ai đã làm những gì trên hệ thống. 45 3.1.2.5. Website Đây là thành phần trung tâm của Module giám sát an ninh mạng, cho phép người quản trị dễ dàng tương tác với các thành phần khác thông qua một giao diện Web. Từ giao diện Web này, người quản trị có thể quản lý các hoạt động vào ra của người sử dụng, có thể kiểm soát lưu thông mạng thông qua thời gian thực, có thể phân tích các hành lưu lượng mạng vào hoặc đi ra hệ thống mạng, … 3.2. Triển khai xây dựng Module giám sát an ninh mạng 3.2.1. Lựa chọn phần mềm Từ việc phân tích và so sánh các kỹ thuật, các thuật toán ở Chương 2 với yêu cầu và mục tiêu đặt ra của luận văn là đi xây dựng một Module giám sát được hai loại tấn công mạng phổ biến đó là tấn công dò quét và tấn công DOS qua tìm hiểu tôi nhận thấy phần mềm mã nguồn mở Snort một phần mềm nguồn mở được sử dụng như một NIDS kết hợp giữa việc phát hiện tấn công dựa trên đối sánh mẫu (sử dụng thuật toán Boyer-Moore) và phát hiện dựa trên sự bất thường dựa vào tập luật. 3.2.1.1. Giới thiệu về Snort Snort là một hệ thống phát hiện xâm nhập mạng (NIDS) mã nguồn mở được phát triển bởi Sourcefire. Kết hợp những tiện ích như chữ ký, giao thức, và kiểm tra sự bất thường, Snort là một IDS được triển khai rộng rãi nhất trên toàn thế giới. Với hàng triệu lượt tải và gần 400.000 người đăng ký, Snort đã trở thành chuẩn phổ biến cho IPS. Snort sử dụng các luật được lưu trữ trong các file text, có thể được chỉnh sửa bởi người quản trị. 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 các file khác nhau. File cấu hình chính của Snort là Snort.conf. Snort đọc những luật này vào lúc khởi tạo và xây dựng cấu trúc dữ liệu để cung cấp các luật nhằm bắt giữ dữ liệu. Snort có một 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ủa Snort có thể thay đổi (xóa, tạo, sửa) 3.2.1.2. Các thành phần của Snort 46 Snort được chia thành nhiều thành phần. Những thành phần này làm việc với nhau để phát hiện các cách tấn công cụ thể và tạo đầu ra theo một định dạng nhất định. Một IDS dựa trên Snort bao gồm các thành phần chính sau đây: Packet Decoder (Bộ phận giải mã gói tin) Preprocessor (Bộ phận xử lý ) Dectection Engine (Bộ phật phát hiện) Logging và Alerting System (Hệ thống ghi và cảnh báo)  Packet Decoder (Bộ phận giải mã gói tin) Bộ phận giải mã gói tin lấy các gói tin từ các giao diện mạng khác nhau và chuẩn bị cho việc xử lý gói tin.  Preprocessor (Bộ phận xử lý) Hình 2.6: Bộ phận xử lý Bộ phận xử lý là những thành phần được sử dụng với Snort để sắp xếp hoặc chỉnh sửa gói tin trước khi bộ phận phát hiện xử lý để tìm ra gói tin có được sử dụng bởi kẻ xâm nhập hay không. Một vài thành phần của bộ phận xử lý cũng thực thi việc phát hiện bằng cách tìm các dấu hiệu bất thường trong header của gói tin và tạo ra các cảnh báo. Bộ phận xử lý là rất quan trọng trong bất kì IDS nào, chúng chuẩn bị cho các gói tin được phân tích dựa trên các luật trong bộ phận phát hiện. Kẻ tấn công sử dụng nhiều kĩ thuật khác nhau để lừa IDS theo nhiều cách.  Dectection Engine (Bộ phận phát hiện) 47 Hình 2.7: Bộ phận phát hiện Đây là phần quan trọng nhất của Snort. Trách nhiệm của bộ phận này là phát hiện có sự xâm nhập tồn tại trong gói tin hay không. Bộ phận phát hiện sử dụng các luật của Snort cho mục đích này. Nếu một gói tin giống với bất kì luật nào, một hành động tương ứng sẽ được thực hiện. Đây là bộ phận then chốt về thời gian thực thi của Snort. Dựa vào bộ máy của người sử dụng mạnh như thế nào và bao nhiêu luật mà nó có thể tốn những khoảng thời gian khác nhau đối với các gói tin khác nhau. Nếu lưu lượng trên mạng là quá lớn khi Snort đang hoạt động trong chế độ NIDS, người dùng có thể mất một vài gói tin và có thể thời gian đáp ứng không chính xác. Lưu lượng trên bộ phận phát hiện phụ thuộc vào các yếu tố sau: Số lượng các luật Sức mạnh của bộ máy mà Snort đang chạy Tốc độ của bus được sử dụng Lưu lượng trên mạng  Logging và Alerting System (Hệ thống ghi và cảnh báo) 48 Hình 2.8: Hệ thống ghi và cảnh báo Hệ thống ghi và cảnh báo phụ thuộc vào dữ liệu mà bộ phận phát hiện tìm thấy trong gói tin, gói tin có thể được sử dụng để ghi lại các hành vi hoặc tạo ra một cảnh báo. Các thông tin ghi lại được giữ trong các file text đơn giản hoặc các dạng khác. 3.2.1.3. Các chế độ hoạt động của Snort Snort hoạt động ở các chế độ sau: - Network sniffer mode - Packet Logger - Network instrusion detection mode - Inline mode  Network sniffer mode Các công cụ sniffer mạng như tcpdump, ethereal hay wireshark có đầy đủ các đặc tính và phân tích gói tin một cách xuất sắc, tuy nhiên, có lúc ta cần xem lưu lượng mạng trên bộ cảm biến Snort. Trong trường hợp này, sử dụng Snort như là một sniffer là khả thi. Kết quả của chế độ Snort sniffer hơi khác so với các sniffer dòng lệnh. Nó rất dễ đọc và có khả năng bắt giữ gói tin nhanh. Một đặc tính đặc biệt của chế độ này là khả năng tóm tắt lưu lượng mạng khi kết thúc việc bắt giữ gói tin. Thỉnh thoảng, nó có thể là một công cụ gỡ rối hữu dụng cho nhà quản trị. 49 Bật chế độ sniffer cho Snort bằng cờ -v : # Snort -v Trong lúc khởi động, Snort hiển thị chế độ, thư mục ghi log, và các giao diện mà nó đang lắng nghe. Khi việc khởi động hoàn tất, Snort bắt đầu xuất các gói tin ra màn hình. Kết quả xuất này khá cơ bản, nó chỉ hiển thị các header IP, TCP, UDP, ICMP và một số cái khác. Để thoát chế độ sniffer, sử dụng Ctrl-C. Snort thoát bằng cách tạo ra một bản tóm tắt các gói tin được bắt giữ, bao gồm các giao thức, thống kê phân mảnh và tái hợp gói tin. Để xem dữ liệu ứng dụng, sử dụng tùy chọn -d. # Snort -vd Với tùy chọn này, dữ liệu ứng dụng có thể thấy được và ta có thể nhìn thấy các plain text trong gói tin. Trong trường hợp này, văn bản gửi từ một server DNS được thể hiện dưới dạng plain text. Để xem được chi tiết hơn, bao gồm các header lớp liên kết dữ liệu, sử dụng tùy chọn -e. Việc sử dụng cả hai tùy chọn -d và -e sẽ cho hiển thị hầu như tất cả các dữ liệu trong gói tin: # Snort -vde Các chuỗi thập lục phân hiển thị nhiều dữ liệu hơn. Có địa chỉ MAC và địa chỉ IP. Khi thực hiện kiểm tra trên một mạng hoặc bắt giữ dữ liệu bằng Snort, việc bật vde cung cấp nhiều thông tin nhất.  Packet Logger mode Bước tiếp theo sau khi bắt các gói tin là ghi log chúng. Việc ghi log chỉ đơn giản bằng cách thêm tùy chọn -l, theo sau đó là thư mục mà ta muốn lưu trữ các log. Thư mục mặc định trong Snort trên Linux là /var/log/Snort còn trên windown là C:\Snort\log. Nếu ta chỉ ra một thư mục không tồn tại thì Snort sẽ báo một thông điệp lỗi. Ta có thể sử dụng các tùy chọn -d, -v và -e để điều khiển số lượng thông tin sẽ được ghi log cho mỗi gói tin. Trong ví dụ sau đây, thư mục log được thiết lập là /var/log/Snort (trên Linux)và các logfile bao gồm các payload gói tin. Ví dụ: # Snort -d - l /var/log/Snort Khi chạy trong chế độ này, Snort thu thập mỗi gói tin nó bắt được và lưu chúng trong thư mục log theo kiểu phân cấp. Nói cách khác, một thư mục mới được tạo ra cho mỗi địa chỉ được bắt giữ và dữ liệu liên quan đến địa chỉ này được lưu trong thư 50 mục đó. Snort lưu các gói tin thành các file ASCII, với tên file được tạo ra từ giao thức và số cổng. Cách tổ chức này làm cho nhà quản trị có thể dễ dàng thấy được ai đang kết nối vào mạng, số cổng và giao thức họ đang sử dụng. Tuy nhiên, thư mục log có thể ngày càng nhiều vì sự gia tăng thư mục và các file. Nếu một người nào đó thực hiện việc quét mạng của ta và ánh xạ tất cả 65536 cổng TCP cũng như 65536 cổng UDP, ta sẽ đột ngột có hơn 131000 file trong một thư mục đơn. Sự bùng nổ file này có thể là một thử thách lớn cho bất kì một máy nào, và rất dễ trở thành cách tấn công DoS. Việc ghi log theo kiểu nhị phân có thể đọc được bởi Snort, tcpdump hoặc ethereal. Cách này làm tăng tốc độ và khả năng vận chuyển của việc bắt giữ gói tin. Hầu hết các hệ thống có thể bắt giữ và ghi log với tốc độ 100 Mbps mà không có vấn đề gì. Để ghi log các gói tin theo kiểu nhị phân, sử dụng lựa chọn –b . Ví dụ :# Snort -b -l /var/log/Snort /temp.log Khi ta đã thực hiện việc bắt giữ gói tin, ta có thể đọc lại các file vừa tạo ra bằng khóa –r. Kết quả giống như sniffer của Snort. Lưu ý rằng –r không thể sử dụng với –C (Hiển thị payloads dạng ký tự) # Snort -r /var/log/Snort / temp.log Ở chế độ này, Snort không giới hạn việc đọc dữ liệu nhị phân được lưu trữ trong chế độ sniffer.  Network instrusion detection mode Snort là một công cụ phát hiện xâm nhập rất tốt. Khi được sử dụng như là một NIDS, Snort cung cấp khả năng phát hiện xâm nhập theo thời gian thực. Chúng ta sẽ xem rất nhiều cách mà Snort có thể được sử dụng như là một NIDS và tất cả các tùy chọn cấu hình có thể. Trong chế độ cảnh báo, Snort cần một file cấu hình (thật ra, chỉ cần xác định vị trí của file Snort.conf là đặt Snort trong chế độ này). Vị trí mặc định của file này trên linux là /etc/Snort/Snort.conf còn trên windown là c:\Snort\etc\Snort.conf. Nếu ta muốn đặt ở một vị trí khác, ta phải sử dụng khóa – c kèm với vị trí đặt file. Các cảnh báo được đặt trong file alert trong thư mục log (mặc định là /var/log/Snort trên Linux và C:\Snort\log trên windown). Các cài đặt 51 mặc định cho hầu như tất cả các mục trong file này là khá tốt (mặc dù sẽ có các cảnh báo nhầm). Các tùy chọn cho đầu ra của Snort trong chế độ NIDS này như sau: Tùy chọn Miêu tả Chế độ cảnh báo nhanh. Tạo ra cảnh báo với khuôn dạng đơn giản -A fast với timestamp, alert message, địa chỉ IP nguồn và đích, cổng nguồn và đích. Chế độ cảnh báo đầy đủ. Đây là chế độ mặc định nếu người dùng -A full không chỉ ra một chế độ cụ thể nào. -A unsock Gửi cảnh báo tới UNIX socket mà một chương trình khác có thể lắng nghe. -A none Tắt chế độ cảnh báo. -A console Gửi “fast-style” alert đến console. -A cmg Tạo ra “cmg-style” alert. -s Gửi alert tới syslog. Ví dụ: # Snort -d - l /var/log/Snort –A fast (vừa ghi log vừa tạo ra 1 cảnh báo nhanh).  Inline mode Snort-inline IPS ( Hệ thống phòng chống xâm nhập Snort-inline) là phiên bản được phát triển từ Snort-IDS. Về cơ bản, Snort được kết hợp với Iptables để có thể drop các gói tin nếu bị phát hiện là gói tin dùng để tấn công. Nó nhận các gói tin được gửi từ tường lửa Netfilter Iptables với sự giúp đỡ của thư viện lipipq. So sánh chúng với Snort signature rules (các dấu hiệu tấn công của Snort), nếu trùng với rule đã đặt ra, nó sẽ tự động thực thi hành động theo rule yêu cầu. Snort-inline sử dụng các rules như của Snort. Tuy nhiên, một số kiểu rules mới được tạo ra để kích hoạt các hành động trong Snort-inline: Drop rule: sẽ nói với iptable để drop gói tin và Snort sẽ ghi log. 52 Reject rule: sẽ nói với iptable để drop gói tin, Snort sẽ ghi log, và gửi một TCP reset nếu giao thức là TCP hoặc ICMP port unreachable nếu giao thức là UDP. Sdrop rule: sẽ nói với iptable để drop gói tin và không ghi log. Ngoài ra, nội dung thay thế đã được thêm vào Snort_inline. Rule option replace cho phép người dùng ghi lại các quy tắc làm thay đổi nội dung gói tin. Nội dung được thay thế phải cùng kích cỡ với nội dung bị thay thế. Thứ tự để áp dụng các Rule như sau: ->activation->dynamic->drop->sdrop->reject->reinject->alert->pass->log 3.2.1.4. Các tùy chọn trong việc sử dụng Snort Các tùy chọn chung ( Options): Giải thích ý nghĩa STT Options 1 -A 2 -b Log gói tin dưới dạng nhị phân -B Hiển thị chi tiết địa chỉ IP trong file alert và file dump sử dụng 3 Set chế độ alert: fast, full, console, test hoặc none (Chỉ thấy sự khác biệt trên file alert) mặt nạ mạng CIDR(Classless InterDomain Routing) 4 -c Sử dụng file kèm theo sau 5 -C Hiển thị payloads dạng ký tự(không dùng dạng hex) 6 -d Thông tin tầng ứng dụng đang phát sinh 7 -e Hiển thị thông tin tầng datalink 8 -E Ghi thông báo vào NT Eventlog. (Chỉ dùng cho Win32) 9 -f Tắt việc gọi hàm fflush() sau khi ghi log dạng binary 10 -F 11 -G Sử dụng bộ lọc BPF từ file có đường dẫn theo sau Log Identifier (ghi giá trị id trong trường hợp có nhiều snort) 53 12 -h Home subnet 13 -H Tạo hast tables theo dạng định trước. 14 -i 15 -I Lắng nghe trên interface Đặt tên interface trong file alert -k 16 Checksum mode (all, noip, notcp,noudp, none, noicmp) mode> 17 -K Logging mode (pcap[default],ascii,none) 18 -l Ghi log vào một folder định sẵn 19 -L Ghi log vào 1 file định sẵn 20 -n Chế độ log (pcap,ascii,none) trong đó pcap là mặc định 21 -N Tắt việc ghi log (báo động vẫn hoạt động) 22 -O Chi tiết địa chỉ IP đã được log 23 -p Disable chế độ lắng nghe pha tạp 24 -P Set giá trị snaplen cho gói tin (mặc định: 1514) 25 -q Yên lặng,không hiển thị thông tin và trạng thái 26 -r Đọc ngược file log nhị phân 27 -R 28 -s 29 30 Thêm giá trị 'id' trong file snort_intf.pid Ghi thông báo vào syslog -S Set rules file giá trị n bằng giá trị v -T Test và report quá trình config snort 54 31 -U Sử dụng timestamp UTP 32 -v Hiển thị chi tiết,có thể dung –vv để tăng độ chi tíết lên gấp đôi 33 -V Hiển thị version 34 -W Hiện thị interface hiện có (chỉ dùng trên Win32 ) 35 -X Lắng nghe gói tin dạng thô tạo ra từ layer datalink 36 -x Exit khi quá trình config snort xảy ra sự cố 37 -y Hiển thị thời gian timestamp trong alert and file log 38 -Z 39 -? Tên và đường đãn tới file performonitor preprocessor Help 3.2.1.5. Ưu điểm, hạn chế của Snort  Ưu điểm + Phát hiện nhanh các hành vi tấn công dựa trên các tập luật (rules). + Giám sát được phần lớn các gói tin đi qua giao diện card mạng cần giám sát. + Hỗ trợ nhiều giao thức: SSH, HTTP, HTTPS, SMB, SMTP, TELNET …  Hạn chế + Không có giao diện quản trị cụ thể. + Chỉ có thể theo dõi chứ không ngăn chặn được tấn công. + Chỉ có thể sử dụng mẫu sẵn có để phân tích dấu hiệu. + Không có chức năng thống kê lưu lượng mạng. + Không có chức năng giám sát gói tin ở lớp 2 nên không chống được tấn công giả mạo địa chỉ MAC. + Chức năng ghi log hạn chế. 3.2.2. Phân tích yêu cầu chức năng của Module  Quản lý toàn bộ các luật của Snort: Thông thường các luật của Snort được nằm trong thư mục /etc/snort/rules, chương trình phải hiển thị được toàn bộ luật của Snort và xếp theo nhóm. Ví dụ một 55 file rule của snort là attach-reponses.rule thì trên giao diện cũng phải có xếp theo nhóm như vậy.  Dễ dàng chỉnh sửa luật, thêm luật, quản lý luật: Chương trình có khả năng sửa được luật đã có, có thể cho phép luật đó hiện thời được chạy hay không được chạy Thêm các biến môi trường, thêm các thông tin về propressor  Có thể đồng bộ hóa tập luật ngay trên nền Web và áp dụng ngay cho hệ thống: Sau khi tập luật sửa xong , thì luật đó sẽ được áp dụng và thi hành ngay trên hệ thống, thực hiện điều khiển hệ thống qua nền web. 3.2.3. Phân tích thiết kế Để có thể quản lý được toàn bộ luật của Snort thì Website cần có 1 module để lấy toàn bộ luật từ /etc/snort/rules và ghi vào cơ sở dữ liệu và cần 1 module để ghi ngược từ cơ sở dữ liệu vào các file luật nằm trong /etc/snort/rules. Thông thường khi cài đặt Snort thì Snort có sử dụng 1 database là snort. Database này gồm các bảng sau : - Bảng data chứa payload của mỗi gói tin mà bị sinh cảnh báo - Bảng detail chưa thông tin chi tiết về log của mỗi gói tin, cột đầu tiên là chi tiết gói tin ở mode “fast” , cột thứ 2 là thông tin ở mode “full”. - Bảng encoding thể hiện các kiểu mã hóa được sử dụng khi ghi dữ liệu lại. Theo mặc định thì nó dùng 3 kiểu log : hex, base64,ASCII. - Bảng event liệt kê toàn bộ các sự kiện và lưu trữ tem thời gian của các sự kiện đó. - Bảng icmphdr table chứa thông tin về ICMP header của các gói tin mà được ghi -log vào trong database. Nó chứa thông tin bao gồm : ICMP type, ICMP code, ICMP ID,ICMP sequence number ….. - Bảng OPT chứa thông tin về các tùy chọn. 56 - Bảng Reference và bảng reference_system chưa thông tin về các site reference sử dụng để lấy các thông tin về lỗ hổng các thông tin này giống trong file reference.config. - Bảng schema thể hiện các version của database schema. - Bảng Sensor chứa thông tin về các sensor khác nhau mà đều có nhiệm vụ ghi log vào cơ sở dữ liệu, nếu chỉ có 1 sensor thì bảng này chỉ có 1 dòng. - Bảng sig_class chưa thông tin về các nhóm luật của snort ví dụ như: backdoor, attach-response. - Bảng signature chứa thông tin về các dấu hiệu mà sinh các cảnh báo. - Bảng tcphdr chứa thông tin TCP header của một gói tin. - Bảng udphdr chứa thông tin UDP header của gói tin. Với yêu cầu quản lý rule thì ta sẽ sử dụng chung database với Snort để có thể tận dụng nhiều yếu tố thông tin sẵn có. 3.2.4. Tích hợp tính năng quản lý luật Snort vào Module giám sát an ninh mạng Để có thể tích hợp tính năng quản lý luật Snort vào Module giám sát an ninh mạng dựa trên OSSIM, ta cần làm như sau: Tìm file menu_options.php trong /usr/share/ossim/www Khai báo như sau: if (Session::menu_perms(“MenuEvents”, “RuleManager”)) { $menu[“Events”][] = array( “name” => gettext(“Quản lý rule snort”) , “id” => “Rule Manager”, //”url” => $conf->get_conf(“acid_link”, FALSE) . “/” . $conf- >get_conf(“event_viewer”, FALSE) . “_qry_main.php?&num_result_rows=1&submit=Query+DB¤t_view=-1&sort_order=time_d” “url” => “rman/rman_index.php” ); $hmenu[“Forensics”][] = array( “name” => gettext(“Quản lý rule snort”) , 57 “id” => “Rule Manager”, //”url” => $conf->get_conf(“acid_link”, FALSE) . “/” . $conf- >get_conf(“event_viewer”, FALSE) . “_qry_main.php?&num_result_rows=1&submit=Query+DB¤t_view=-1&sort_order=time_d” “url” => “rman/rman_index.php” ); } Ngoài ra cần cấu hình thư mục cgi-bin để cho phép chạy các scripts bằng perls như sau trong thư mục /etc/apache2/sites-available: AllowOverride None Options ExecCGI –MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all 3.2.5. Xây dựng thành phần quản trị tập trung Thành phần quản trị tập trung là giao diện giúp người quản trị có thể dễ dàng hơn trong việc quản trị Module giám sát an ninh mạng. 58 Hình 3.3: Giao diện quản lý các sự kiện của Module giám sát an ninh mạng Hình 3.4: Giao diện quản trị người dùng của Module giám sát an ninh mạng 3.3. Vận hành và thử nghiệm 3.3.1. Mô hình thử nghiệm Chúng tôi đã áp dụng Module giám sát an ninh mạng để thử giám sát hệ thống mạng theo mô hình: 59 VLAN 1 192.168.1.0/24 WebServer 192.168.199.132 ` ` ` Attacker 192.168.1.101 220.231.101.125 VLAN 2 Internet 192.168.2.0/24 220.231.101.126 ` Cisco ASA 5520 ` ` VLAN 3 192.168.3.0/24 Module GSANM ` ` ` 192.168.199.130 Hình 3.5: Mô hình thử nghiệm Module giám sát an ninh mạng  Mô tả mô hình: - Hệ thống mạng bên trong được chia làm 4 khu vực với dải địa chỉ mạng như sau: + VLAN 1: 192.168.1.0/24 + VLAN 2: 192.168.2.0/24 + VLAN 3: 192.168.3.0/24 + WebServer: 192.168.199.132. - Module giám sát an ninh mạng kết nối tới 1 cổng trên Switch để thực hiện giám sát toàn bộ các gói tin đi qua Switch. - Hệ thống mạng bên trong kết nối tới Internet thông qua Firewall ASA 5520 và Router. - Cụ thể trên các máy như sau: + Máy Attacker:  Nằm trong vùng VLAN 1, địa chỉ IP: 192.168.1.101.  Cài đặt hệ điều hành Windows 7.  Cài đặt phần mềm DosHTTP, Nmap. + Máy WebServer: 60  Địa chỉ IP: 192.168.199.132.  Cài đặt hệ điều hành Windows Server 2003 SP2.  Cài đặt phần mềm XAMPP – Apache làm WebServer.  Cài đặt Wireshark. + Module giám sát an ninh mạng:  Địa chỉ IP: 192.168.199.130.  Sử dụng Module giám sát an ninh mạng đã xây dựng.  Kịch bản tấn công: Máy Attacker sẽ thực hiện 2 phương pháp tấn công vào WebServer: - Tấn công từ chối dịch vụ (Sử dụng phần mềm DoSHTTP) - Tấn công thăm dò (Sử dụng phần mềm Nmap) Chúng ta sẽ theo dõi cảnh báo qua giao diện Web của Module giám sát an ninh mạng. 3.3.2. Tấn công từ chối dịch vụ Chúng tôi tiến hành thử nghiệm khả năng phát hiện tấn công từ chối dịch vụ của Module giám sát an ninh mạng bằng một phần mềm kiểm thử là DosHTTP. Đây là phương thức tấn công mới mà Snort chưa có rule để có thể phát hiện ra tấn công. Do vậy trước khi thử nghiệm Module giám sát an ninh mạng, chúng tôi sẽ tiến hành phân tích tấn công và viết thêm rule cho Snort. - Tại máy Attacker: Sử dụng phần mềm DoSHTTP để tấn công vào WebServer 61 Hình 3.6: Attacker sử dụng chương trình DoSHTTP để tấn công vào WebServer - Tại máy WebServer: Đột nhiên thấy máy chạy rất chậm và rất khó đăng nhập vào được Website. Ta sẽ tiến hành kiểm tra như sau: Bật Task Manager để kiểm tra hoạt động của CPU: Hình 3.7: Kiểm tra hoạt động của CPU trên WebServer 62 Chúng ta thấy rằng CPU load khá cao và lưu lượng mạng vào khá cao. Chứng tỏ hệ thống có vấn đề. Tiếp theo, ta sẽ đặt Wireshark để lắng nghe thông tin đi vào WebServer để phân tích: Xem thử log webserver Apache thì thấy có rất nhiều request bất thường đến từ IP là 192.168.1.101. Cụ thể là là máy này gửi GET quá nhiều trong một thời điểm. Có thể nhận thấy là số GET trong một giây (22:32:40) là 22 lần, điều này là khá bất thường với 1 người dùng bình thường, ngoài ra cú GET này chỉ vào một link duy nhất là vào http://192.168.1.199.132 /xampp 192.168.1.101 - - [20/Jun/2014:22:32:36 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:40 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:40 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 63 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 64 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” 192.168.1.101 - - [20/Jun/2014:22:32:41 +0700] “GET /xampp/ HTTP/1.1” 403 1292 “-“ “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)” Như vậy có khả năng cao là bị tấn công DoS từ máy tính 192.168.1.101. Chúng ta cần bắt các gói tin bằng Wireshark để kiếm tra thông tin tìm mẫu để viết luật cho Snort. Hình 3.8: Theo dõi gói tin đi vào WebServer sử dụng Wireshark 65 Ta nhận thấy có khá nhiều kết nối TCP được tạo trước khi có một cú HTTP GET từ IP 192.168.1.101. Như vậy chúng ta nên chặn kết nối bắt tay TCP này trước để tránh tạo các cú HTTP GET sau này. Có thể xem như hình thức tấn công này là gửi rất nhiều HTTP Request liên tục trong 1 thời điểm để làm giảm hiệu năng hệ thống hay làm giảm hiệu năng của mạng. Vì thế chúng ta sẽ viết luật tạo ngưỡng để phát hiện các kết nối TCP quá nhiều trong một thời điểm từ một máy. Trong mô hình Demo này chúng tôi tạm thời chỉ coi như có 1 máy truy cập Webserver thôi, như vậy chúng tôi sẽ tạo 1 luật như sau: alert tcp any any -> 192.168.199.132 80 (msg:”Co nguoi dang DoS”; flow:stateless; flags:S; threshold:type both, track by_src, count 10, seconds 1; sid:20090011;) Với ý nghĩa như sau: Từ một IP bất kỳ nào mà vào WebServer 192.168.199.132 mà có số gói tin TCP khởi tạo với cờ S gửi đến 10 gói trên 1 giây thì sẽ sinh cảnh báo. Giao diện ghi luật : Hình 3.9: Xây dựng luật Snort phát hiện tấn công DoS qua giao diện Web Sau khi áp luật vào hệ thống chạy thử nghiệm sẽ thấy khi có tấn công hệ thống sẽ sinh cảnh báo như sau: 66 Hình 3.10: Màn hình cảnh báo tấn công từ chối dịch vụ của Module giám sát an ninh mạng Như vậy chúng ta đã sinh được cảnh báo về tấn công DoS. 3.3.3. Tấn công thăm dò Chúng tôi sẽ thử khả năng phát hiện tấn công thăm dò sử dụng phần mềm quét cổng Nmap vào WebServer. Mặc định Hệ thống Giám sát An ninh mạng có 1 plugin là portscan khá tốt, trong đó có nhận dạng được hầu hết các kiểm tham dò, trong demo này sẽ sử dụng module này. Module này được khai báo trong file snort.eth0.conf. Nội dung như sau: preprocessor sfportscan: proto { all } \ memcap { 10000000 } \ sense_level { low } - Trên máy Attacker: Sử dụng phần mềm Nmap để dò quét các cổng trên máy WebServer: 67 Hình 3.11: Sử dụng phần mềm Nmap dò quét các cổng trên máy WebServer - Theo dõi qua giao diện Web của Module giám sát an ninh mạng: Hình 3.12: Màn hình cảnh báo tấn công dò quét của Module giám sát an ninh mạng Như vậy chúng ta đã phát hiện được hành động quét cổng của kẻ tấn công, từ đây chúng ta có thể tải gói tin sinh cảnh báo về và xem chi tiết cách kẻ tấn công quét cổng như thế nào để từ đó tìm cách đối phó (dùng tưởng lửa, hay tìm cách phản ứng). Tải về file Pcap và mở ra bằng Wireshark 68 Hình 3.13: Chức năng lưu trữ file giám sát của Module giám sát an ninh mạng Hình 3.14: Phân tích file Pcap sử dụng phần mềm Wireshark Nhận thấy rằng kẻ tấn công sử dụng cách quét cổng đó là gửi các gói tin có cờ SYN liên tục với dải port đến máy WebServer, như vậy chúng ta nắm được hành vi quét cổng và từ đó sẽ tìm cách chống lại bằng firewall …. 3.3.4. Đánh giá kết quả Như vậy sau khi tiến hành thử nghiệm các chức năng của Snort chạy trên hệ điều hành nhân Linux tạo thành Module giám sát an ninh mạng và theo dõi hoạt động thì thấy Module giám sát an ninh mạng hoạt động ổn định, không xảy ra hiện 69 tượng chậm hay xung đột phần mềm. Đồng thời Module giám sát an ninh mạng có thể thực hiện các chức năng như: - Giám sát được hầu hết các gói tin mà không làm giảm hiệu suất hoạt động của hệ thống mạng. - Phát hiện ra được các hành vi bất thường. - Thống kê được các luồng lưu thông mạng. - Trong suốt với người sử dụng. - Dễ dàng vận hành. - Có thể quản trị qua giao diện Website. - Thích ứng nhanh khi có thay đổi từ phía người quản trị: Thêm luật, thay đổi cấu hình, chỉnh sửa luật, … Module đã được thử nghiệm trên hai phương pháp tấn công và đều cho ra kết quả cảnh báo khá chính xác. Các kết quả cảnh báo có thể hiển thị nhanh theo thời gian thực ngay trên giao diện Website. Thành phần quản trị và cập nhật luật cho Snort hoạt động ổn định, có thể hoạt động ngay sau khi người quản trị tạo luật mà không cần khởi động lại toàn bộ Module giám sát. 70 KẾT LUẬN Trong thời đại công nghệ thông tin ngày càng phát triển như hiện nay, vấn đề đảm bảo an toàn thông tin được đặt ra hàng đầu với các cơ quan, doanh nghiệp. Và hệ thống giám sát an ninh mạng đóng vai trò trọng tâm trong quá trình bảo vệ đó. Hệ thống giám sát an ninh mạng giúp cho người quản trị có được cái nhìn tổng thể về hệ thống mạng của mình, về các mối nguy hại có thể xảy đến đồng thời có đưa ra các biện pháp phòng tránh các mối nguy hại gây hậu quả nghiêm trọng cho hệ thống mạng. Tuy nhiên, để xây dựng được một hệ thống giám sát an ninh mạng như thế không phải là công việc dễ dàng. Nó đòi hỏi phải có sự hiểu biết sâu rộng về các phần mềm, các kiến thức về hệ thống, về lập trình, .. cùng các kiến thức về an toàn thông tin. , dưới sự hướng Sau một thờ dẫn tận tình của TS. Trần Đức Sự và sự giúp đỡ tận tình của các thầy cô giáo, các kỹ sư tại Khoa An toàn thông tin – Học viện Kỹ thuật mật mã đã giúp tôi : - Tìm hiểu cơ bản về hệ thống giám sát an ninh mạng, các thành phần và chức năng của hệ thống giám sát an ninh mạng - Nghiên cứu, tìm hiểu các phần mềm mã nguồn mở với các chức năng khác nhau. - Xây dựng thành công Module giám sát an ninh mạng kết hợp tính năng của các phần mềm mã nguồn mở . Snort tôi nhiều , được trực tiếp thử nghiệm trên mô hình tại học viện Kỹ thuật mật mã. Tuy nhiên, trong khuô 71 : - Phát hiện thêm nhiều kiểu tấn công khác. - Có thêm chức năng tự động phản ứng trước các cuộc tấn công. - Xây dựng giao diện quản trị trực quan hơn với người sử dụng, có thể trích xuất ra các báo cáo dạng văn bản: Word, PDF, … - Tích hợp thêm nhiều phần mềm khác với nhiều tính năng hơn, giúp cho hệ thống giám sát an ninh mạng có thể giám sát được hệ thống chặt chẽ hơn. - Hiện nay trái tim của Module giám sát an ninh mạng là Snort với khả năng phát hiện xâm nhập dựa vào các mẫu sẵn có. Vì thế đối với các kiểu tấn công mới sẽ không thể phát hiện ra. Do vậy cần xây dựng thêm chức năng phân tích dựa vào sự kiện bất thường và phân tích dựa trên giao thức để có thể phát hiện tấn công một cách chính xác nhất. Hy vọng trong thời gian sắp tới, tôi có thể nghiên cứu sâu hơn nữa để . 72 TÀI LIỆU THAM KHẢO [1]. VNCERT (2007), “Nghiên cứu xây dựng mô hình hệ thống quản lý An toàn Internet theo cấu trúc phân bổ”, Hà Nội [2]. Học viện kỹ thuật mật mã (2008), “Bộ giao thức TCP/IP”, Học viện kỹ thuật mật mã, Hà Nội [3]. Vũ Bảo Thạch (2006), “Giáo trình Thực hành An toàn Mạng”, Học viện mật mã, Hà Nội. [4]. Richard Bejtlich (2004), “The Tao Of Network Security Monitoring”, The United States of America. [5]. Website: http://www.alienvault.com [6]. Website: http://www.snort.org/ [7]. Website: http://www.securityfocus.com 73 [...]... dụng trong việc hỗ trợ giám sát, đi sâu vào phân tích phần mềm mã nguồn mở Snort Chương 3: Xây dựng module giám sát an ninh mạng: Đưa ra một mô hình hệ thống giám sát, phân tích, thiết kế xây dựng một module tích hợp trong mô hình trên sử dụng phần mềm mã nguồn mở Snort Cuối cùng là phần đánh giá, kết luận và hướng phát triển của đề tài 2 Chương 1 – TỔNG QUAN VỀ GIÁM SÁT AN NINH MẠNG 1.1 Khái niệm 1.1.1... dụng sử dụng phần mềm Snort Luận văn gồm 3 chương như sau: Chương 1: Tổng quan về an ninh mạng và giám sát an ninh mạng: khái quát về tình hình an ninh mạng, đi sâu tìm hiểu về hệ thống phát hiện xâm nhập, phân tích một mô hình giám sát phổ biến hiện đang được áp dụng Chương 2: Kỹ thuật xây dựng hệ thống giám sát an ninh: Phân tích một số kỹ thuật giám sát, một số phần mềm mã nguồn mở thường được ứng... cứu xây dựng chương trình hỗ trợ phát hiện xâm nhập dựa trên phần mềm mã nguồn mở Snort và các công cụ mã nguồn mở được phát triển hỗ trợ cho hệ thống này 3 Đối tượng và phạm vi nghiên cứu - Các kỹ thuật và phương pháp giám sát trên hệ thống mạng; - Các kỹ thuật xâm nhập trái phép vào mạng máy tính; - Cơ sở, kiến trúc hệ thống phát hiện xâm nhập; - Hệ thống phát hiện xâm nhập Snort 4 Hướng nghiên cứu. .. dụng trường hợp hệ thống mạng của mình một cách hợp lý nhất Chương tiếp theo sẽ đi sâu chi tiết hơn về phân tích một số kỹ thuật được áp dụng trong việc thiết kế một hệ thống giám sát an ninh mạng 14 Chương 2 – KỸ THUẬT XÂY DỰNG HỆ THỐNG GIÁM SÁT AN NINH MẠNG Một hệ thống giám sát an ninh mạng hoạt động dựa trên việc tìm kiếm, phát hiện các cuộc xâm nhập trái phép vào hệ thống mạng để đưa ra những phân... hệ thống mạng máy tính; - Tìm hiểu các kỹ thuật và phương pháp giá sát các xâm nhập trái phép trên; - Xây dựng một Modul giám sát các xâm nhập trái phép 5 Bố cục của đề tài Sau phần mở đầu, nội dung chính của luận văn đi vào tìm hiểu các phương pháp tấn công mạng, tổng quan về hệ thống phát hiện xâm nhập (IDS), một số phần mềm mã nguồn mở thường sử dụng trong các hệ thống IDS, nghiên cứu xây dựng một... dụng dữ liệu trên toàn bộ lưu thông mạng, cùng với dữ liệu kiểm tra từ một hoặc một vài máy trạm để phát hiện xâm nhập 1.4.1 Giám sát toàn bộ mạng (NIDS) Trong hình thức này NIDS xác định các truy cập trái phép bằng việc giám sát các hoạt động mạng được tiến hành trên toàn bộ các phân mạng của hệ thống, NIDS sử dụng bộ dò và bộ cảm biến cài đặt trên toàn mạng Những bộ dò này theo dõi trên mạng nhằm tìm... trọn vẹn được 1.2 Giám sát mạng 1.2.1 Khái niệm Giám sát mạng là việc giám sát, theo dõi và ghi nhận những luồng dữ liệu mạng, từ đó sử dụng làm tư liệu để phân tích mỗi khi có sự cố xảy ra Trong các hệ thống thông tin, việc khắc phục các sự cố thường tốn một chi phí rất lớn vì vậy, giải pháp giám sát mạng để phát hiện sớm các sự cố là một sự lựa chọn được nhiều người ưa thích nhằm mang lại hiệu quả... thông điệp báo lỗi trên hệ thống máy chủ Trong khi những đầu dò của mạng có thể phát hiện một cuộc tấn công, thì chỉ có hệ thống dựa trên máy chủ mới có thể xác định xem cuộc tấn công có thành công hay không HIDS thường được cài đặt trên một máy tính nhất định Thay vì giám sát hoạt động của một Network segment, HIDS chỉ giám sát các hoạt động trên một máy tính Nó thường được đặt trên các Host xung... khó khăn khi phát hiện các cuộc tấn công mạng từ các gói tin phân mảnh Các gói tin định dạng sai này có thể làm cho NIDS hoạt động sai 1.4.2 Giám sát máy tính đơn lẻ (HIDS) Bằng cách cài đặt một phần mềm trên tất cả các máy tính chủ, IDS dựa trên máy chủ quan sát tất cả những hoạt động hệ thống, như các file log và những lưu lượng mạng thu thập được Hệ thống dựa trên máy chủ cũng theo dõi OS, những cuộc... thống giám sát an ninh nên không nhận biết được các cuộc tấn công + Dễ lây lan virus trên diện rộng, và từ máy Client lây sang máy trạm lên sever + Không theo dõi, quản lý được các máy client dùng vào việc gì Kết chương: Như vậy trong nội dung chương 1 đã chỉ ra được thực trạng an toàn thông tin hiện nay, yêu cầu cấp thiết của thực tế, nêu và làm rõ một số khái niệm, phân loại được các mô hình giám sát ... Hỡnh 3.1: Mụ hỡnh Module giỏm sỏt an ninh mng 35 Hỡnh 3.2: Cỏc c s d liu ca Module giỏm sỏt an ninh mng 42 Hỡnh 3.3: Giao din qun lý cỏc s kin ca Module giỏm sỏt an ninh mng 59 Hỡnh... Detection) vi phn mm mó ngun m Snort 34 Chng - XY DNG MODULE GIM ST AN NINH MNG DA TRấN PHN MM SNORT 3.1 Mụ hỡnh Module giỏm sỏt an ninh mng 3.1.1 Mụ hỡnh tng quan Sau nghiờn cu cỏc thnh phn v... chng: .34 Chng - XY DNG MODULE GIM ST AN NINH MNG DA TRấN PHN MM SNORT 35 3.1 Mụ hỡnh Module giỏm sỏt an ninh mng 35 3.1.1 Mụ hỡnh tng quan 35 3.1.2 Mụ hỡnh chi

Ngày đăng: 24/10/2015, 15:34

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan