2.2. Thuật toán K-means với phát hiện xâm nhập
2.2.2 Mô hình phát hiện bất thường dựa trên thuât toán K-means
Hệ thống phát hiện bất thường dựa trên K-means áp dụng kỹ thuật phát hiện phần tử dị biệt để xác định tấn công, nó bao gồm các môdun chính:
- Môđun lọc thông tin nhằm hạn chế bớt khối lượng thông tin cần phân tích và theo dừi.
- Môđun trích xuất thông tin giúp trích xuất các yếu tố quan sát.
- Môđun phát hiện phần tử dị biệt là môđun chính xác định các cuộc xâm nhập.
- Môđun phản ứng (đối với hệ thống IPS) đưa ra các phản ứng tức thời ngăn chặn, chấm dứt các cuộc xâm nhập.
- Môđun tổng hợp nhằm rút gọn cảnh báo gửi lên Chuyên gia và xây dựng luật rút gọn để bổ sung tri thức cho hệ thống, môđun này cũng sử dụng một kỹ thuật khác của K-means là kỹ thuật tổng hợp (Summarization).[7]
Ngoài ra hệ thống còn sử dụng một bộ lọc các cuộc tấn công với dấu hiệu đã biết được rút ra từ môđun tổng hợp.
Hình 2.11: Mô hình hệ thống phát hiện bất thường sử dụng thuật toán K-means a. Môđun lọc tin
Dữ liệu cần phân tích của hệ thống được tổng hợp từ nhiều nguồn khác nhau như Sensor, thiết bị mạng, SNMP hoặc là các file log, khối lượng dữ liệu này là rất lớn nên không thể lưu trữ hết toàn bộ chúng, mà chúng ta phải sử dụng các kỹ thuật để lọc bớt thông tin, một trong những kỹ thuật hay được sử dụng nhất là kỹ thuật
cửa sổ thời gian. Ví dụ như chỉ lưu thông tin trong vòng một giờ trở lại. Nói chung, độ dài của cửa sổ thời gian phụ thuộc vào từng hệ thống mạng và do người quản trị chọn sao cho phù hợp. Nếu thời gian lưu thông tin ngắn, hệ thống có thể bỏ sót các cuộc tấn công, nhưng trong trường hợp thời gian dài có thể sẽ không đảm bảo tốc độ, không áp dụng được cho trường hợp thời gian thực.
Dữ liệu cần phân tích chủ yếu được lưu trên file ở dưới dạng bản ghi, hệ thống sẽ truy cập các file này để lấy thông tin. Môdun lọc thông tin sẽ loại bỏ những thông tin thừa, các lưu lượng mạng mà hệ thống biết chắc không có tấn công. Thông thường các thông tin cần thiết cho việc phân tích chỉ chiếm khoảng 20% đến 25%
lượng tin được thu thập.
b. Môđun trích xuất thông tin
Dữ liệu sau khi qua Môđun lọc thông tin sẽ được tiến hành trích xuất các thành phần cần quan sát, mỗi một thuật toán phát hiện bất thường sẽ có một tập các thông số cần quan sát riêng. Đối với các gói tin mạng, thông tin quan trọng chủ yếu nằm ở phần Header của gói tin. Một số thông tin quan trọng có thể được sử dụng là:
- Đối với header của Ethernet các thông tin trích xuất bao gồm : Packet size, Source address, Destination address, Protocol.
- IP header các thông tin trích xuất bao gồm : Source address, Destination address, Header length, TOS, Packet size, IP Fragment ID, IP Flag & Pointer, TTL, Checksum.
- TCP header gồm : Source port, Destination port, Sequence & ACK Number, Header length, Window size, Checksum.
- UDP header gồm : Source port, Destination port, Checksum, Length - ICMP bao gồm : Type & Code, Checksum
c. Môđun phát hiện xâm nhập dựa trên thuật toán K-means
Phân nhóm dữ liệu là quá trình nhóm các tài liệu văn bản thành một hoặc nhiều danh mục định trước dựa trên nội dung của chúng.
Hình 2.12 minh họa bốn mối quan hệ khác nhau mà một cuộc tấn công có thể có và các cuộc tấn công khác hành vi bình thường trong không gian đặc trưng.
Các tam giác đại diện cho hành vi bình thường ánh xạ trong không gian đặc trưng, trong khi các vòng tròn đại diện cho các cuộc tấn công. Các vòng tròn đen hiển thị bốn kịch bản mối quan hệ của một cuộc tấn công. Ta quan sát thấy rằng các thuật toán chỉ có thể phát hiện các cuộc tấn công trong kịch bản 1 và 3, vì chúng đi chệch đáng kể với bộ bình thường. Các thuật toán cũng có thể xác định các cuộc tấn công trong kịch bản 2 và 3, vì chúng gần gũi hơn với các mẫu tấn công hơn so với các mẫu bình thường. Còn tại kịch bản 4 các thuật toán khó phát hiện tấn công vì nó không đi chệch đáng kể các dữ liệu bình thường cũng không nằm gần với bất kỳ cuộc tấn công mẫu tham khảo nào.
Các giả mã cho phù hợp thuật toán Kmeans được trình bày như sau:
... Bắt đầu...
1. Chọn ngẫu nhiên các điểm dữ liệu làm trọng tâm trong K cụm ban đầu.
2 Repeat.
3 Vòng lặp For: Mỗi điểm dữ liệu x từ tập dữ liệu D 4. Tính khoảng cách từ x đến các trọng tâm.
5. Nhóm x vào nhóm có khoảng cách đến trọng tâm gần nhất.
6. Kết thúc For
7. Tính toán lại giá trị trung bình (Cập nhật lại trọng tâm).
8 Dừng khi cụm ổn định.
9. Sử dụng kết quả phân cụm.
10. Lựa chọn 20 thuộc tính của 2 cụm.
11. So sánh, đối chiếu với dữ liệu chuẩn 12. X là bất thường; thoát.
13.Ngược lại
14. X là bình thường
Hình 2.12: Bốn quan hệ của một cuộc tấn công d. Môđun phản ứng
Dựa vào tín hiệu cảnh báo từ môđun phát hiện dị biệt trong trường hợp có hiện tượng bất thường, môđun phản ứng sẽ lập tức đưa ra các biện pháp nhằm ngăn chặn cuộc tấn công. Như chúng ta đã biết môđun phản ứng dựa trên một số kỹ thuật cơ bản : terminate session – gửi gói tin reset thiết lập lại kênh giao tiếp tới cả client và server, drop attack – dùng firewall để hủy bỏ gói tin, phiên làm việc hay luồng thông tin từ hacker đến victim, Modify firewall polices – tự động cấu hình lại một số chính sách bảo mật khi có cuộc tấn công, Real-time Alerting - gửi cảnh báo thời gian thực đến người quản trị, Log packet: lưu lại thông tin các gói tin trong các file log.
e. Môđun tổng hợp
Trong các hệ thống mạng thời gian thực thông thường số lượng kết nối được hình thành là rất lớn, với một khoảng thời gian ngắn vài phút có thể lên đến hàng triệu kết nối nếu chỉ 0,1% số kết nối này được đánh giá là có dấu hiệu bất thường thì sẽ tương đương với hàng trăm cảnh báo được gửi đến cho chuyên gia giám sát, để kiểm soát được hết lượng cảnh báo này đối với các chuyên gia là tương đối khó.
Vì vậy cần một giải pháp nhằm tổng hợp các kết nối được đánh dấu là bất thường để rút gọn dữ liệu đầu ra. Hơn thế hệ thống cũng cần có chức năng bổ sung các
dạng tấn công đã biết để tạo cơ sở dữ liệu giúp hệ thống nhận biết nhanh hơn các cuộc tấn công trong tương lai.
Các môđun tổng hợp sử dụng một kỹ thuật trong Khai phá dữ liệu đó là kỹ thuật Tổng hợp (Summarization). Có nhiều thuật toán được sử dụng trong kỹ thuật Tổng hợp của K-means nhưng thông thường một thuật toán tổng hợp dựa trên 2 yếu tố là độ nén và tỉ lệ mất tin. Độ nén đại diện cho tính rút gọn của dữ liệu, tỉ lệ mất tin chỉ sự mất mát thông tin sau khi sử dụng quá trình tổng hợp dữ liệu. Độ nén và tỉ lệ mất tin là tỉ lệ thuận với nhau nếu ta tăng độ nén, tỷ lệ mất tin cũng tăng theo. Vì vậy cần có sự lựa chọn hợp lý giữa hai yếu tố này. Chúng ta có thể sử dụng hàm định lượng:
M = k*(độ nén) – (tỉ lệ mất tin)
Với k là hằng số mà ta sẽ lựa chọn, k được điều chỉnh tùy theo mục đích mà ta mong muốn tỉ lệ nén hay tỉ lệ mất gói tin.
Hình 2.13: Mô tả hoạt động của môđun tổng hợp
Chúng ta có thể xem xét một ví dụ về tổng hợp luật như sau. Giả sử ta có một tập các số liệu :
{SrcIP:X.Y.Z.86, StartTime:10:08:20, DestIP:A.B.C.215, DestPort:158}
{SrcIP:X.Y.Z.86, StartTime:10:15:04, DestIP:A.B.C.217, DestPort:158}
{SrcIP:X.Y.Z.86, StartTime:10:29:08, DestIP:A.B.C.213, DestPort:158}
{SrcIP:X.Y.Z.86, StartTime:10:29:20, DestIP:A.B.C.219, DestPort:158}
{SrcIP:X.Y.Z.86, StartTime:10:32:29, DestIP:A.B.C.213, DestPort:158}
{SrcIP:X.Y.Z.86, StartTime:10:38:10, DestIP:A.B.C.225, DestPort:158}
{SrcIP:X.Y.Z.86, StartTime:10:38:40, DestIP:A.B.C.228, DestPort:158}
{SrcIP:X.Y.Z.86, StartTime:10:38:51, DestIP:A.B.C.235, DestPort:158}
{SrcIP:X.Y.Z.86, StartTime:10:42:16, DestIP:A.B.C.217, DestPort:158}
è dựa vào quy tắc tổng hợp luật ta có thể rút gọn lại thành : {SrcIP:X.Y.Z.86,DestPort:158}
Đối với một môđun tổng hợp đầu vào là các kết nối được xác định là bất thường từ Môđun phát hiện phần tử dị biệt, đầu ra là các mẫu rút gọn mô tả các cuộc tấn công. Môđun tổng hợp sử dụng các thuật toán heuristic để lựa chọn cách rút gọn tập cảnh báo một cách phù hợp. Các thuật toán này bao gồm các bước sau:
- Xuất phát từ các cảnh báo của môđun phát hiện phần tử dị biệt, xác định các tần suất xuất hiện của các tập yếu tố quan sát.
- Đưa ra một danh sách các ứng cử viên rút gọn
- Sử dụng vét cạn đối với từng trường hợp sử dụng hàm định lượng S=k*(độ nén) – ( tỉ lệ mất tin).
- Xác định ứng cử viên có hàm định lượng S lớn nhất. Thực hiện rút gọn theo ứng cử viên này. Loại bỏ các cảnh báo đã nằm trong quá trình rút gọn. Cứ thế tiệp tục với các ứng cử viên khác cho đến khi toàn bộ danh sách đã được rút gọn.
Ta có thể xem xét danh sách cảnh báo sau:
Bảng 2.18: danh sách các cảnh báo chưa rút gọn
SrcIp sPort dstIP dPort Pro Flags Packet Bytes
T1 T2 T3 T4 T5 T6 T7 T8
12.190.84.122 88.34.224.2 12.190.19.23 98.198.66.23 192.168.22.4 192.168.22.4 67.118.25.23 192.168.22.4
3217 8 51989
2234 2764
3 5002 5001 43532
2765
100.10.20.
4 100.10.20.
4 100.10.20.
4 100.10.20.
4 100.10.20.
3 100.10.20.
3 100.10.20.
3 100.10.20.
4
80 80 80 80 21 21 21 113
Tcp Tcp Tcp Tcp Tcp Tcp Tcp Tcp
APRS APRS APRS ARSF APRS APRS ARSF APRS
[2,20]
[2,20]
[2,20]
[2,20]
[2,20]
[40,68]
[40,68]
[2,20]
[504,1200]
[220,500]
[220,500]
[42,200]
[42,200]
[200,500]
[42,200]
[504,1200]
Tập các ứng cử viên có thể bao gồm các yếu tố quan sát hoặc bộ yếu tố quan sát có tần suất xuất hiện cao như:
{[srcIP=192.168.22.4],[dstIP=100.10.20.4;pro=tcp;flags=_APRPS_, packets=2,20], [dport=80],[srcIP=192.168.22.4;dstIP=100.10.20.3],[dstIP=100.10.20.4;dport=80]
…}
Sử dụng các thuật toán rút gọn, các cảnh báo sẽ chỉ còn như sau:
Bảng 2.19: Danh sách các cảnh báo sau khi đã rút gọn
SrcIp sPort dstIP dPort Pro Flags Packet Bytes
S1 S2 S3
*.*.*.*
*.*.*.*
192.168.22.4
***
***
2765
100.10.20.4 100.10.20.3 100.10.20.4
* 21 113
Tcp Tcp Tcp
_APRS_
***
_APRS_
[2,20]
***
[2,20]
***
***
[504,1200]
Các hệ thống phát hiện bất thường trước đây có một điểm rất hạn chế đó là không có quá trình học phản hồi từ các chuyên gia. Nghĩa là các cảnh báo sai sẽ tiếp
tục xuất hiện ở những lần sau. Đối với hệ thống sử dụng K-means, một khi đã hình thành các cảnh báo rút gọn, Môđun tổng hợp sẽ chuyển cho các chuyên gia xem xét và quyết định những cảnh báo nào là cảnh báo đúng và thực sự có tấn công, các dữ liệu này sẽ được cập nhật vào kho dữ liệu của hệ thống giúp cho việc phát hiện các cuộc tấn công lần sau đơn giản hơn.
Chương 3
XÂY DỰNG CHƯƠNG TRÌNH PHÁT HIỆN XÂM NHẬP DỰA TRÊN THUẬT TOÁN K-MEANS