Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 82 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
82
Dung lượng
2,05 MB
Nội dung
®¹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