dụng nguồn mở (Snort)
Giới thiệu về hệ thống phát hiện tấn công mạng nguồn mở Snort
Snort là một phần mềm mã nguồn mở hệ thống phòng chống xâm nhập và hệ thống phát hiện (IDS/IPS) được phát triển bởi Sourcefire. Kết hơp những lợi ích của dấu hiệu, giao thức, kiểm tra bất thường dựa trên snort triển khai công nghệ rỗng rãi IDS/IPS trên toàn thế giới.
Snort được sử dụng trong hệ thống để phát hiện tấn công DDoS dựa theo số lượng kết nối tới hệ thống mạng được bảo vệ trong một khoảng thời gian.
Sử dụng option Flags trong bộ Non-Payload Detection Rule Options
Option Flags cho phép hệ thống phát hiện các gói tin đến hệ thống có các cờ (Flags) sau:
F - FIN - Finish (LSB in TCP Flags byte) S - SYN - Synchronize sequence numbers R - RST - Reset
P - PSH - Push
A - ACK - Acknowledgment U - URG - Urgent
C - CWR - Congestion Window Reduced (MSB in TCP Flags byte) E - ECE - ECN-Echo (If SYN, then ECN capable. Else, CE flag in IP header is set)
0 - No TCP Flags Set
The following modifiers can be set to change the match criteria: + - match on the specified bits, plus any others
* - match if any of the specified bits are set ! - match if the specified bits are not set
Hệ thống sử dụng Flags:S để phát hiện những gói tin khởi tạo kết nối. Ví dụ Snort phát hiện gói tin khởi tạo kết nối:
Alert TCP any any -> any any (msg:”Syn packet”; Flags:S; Sid:123456; Rev:1)
Sử dụng option Threshold trong bộ Post-Payload Detection Rule Options
Threshold Option cho phép phát hiện tần số xảy ra một sự kiện trong một khoảng thời gian. Option này được sử dụng để phát hiện tấn công dựa vào ngưỡng được thiết lập. Khi tấn công DDoS xảy ra, số lượng kết nối đến hệ thống sẽ tăng gấp nhiều lần bình thường. Do vậy ta sẽ đặt ngưỡng thích hợp để phát hiện tấn công DDoS. Có thể lấy mẫu các cuộc tấn công DDoS đã xảy ra để tính toán số kết nối đến trong một đơn vị thời gian để có cơ sở đặt ngưỡng.
Threshold Option có các tham số được mô tả trong bảng sau: Bảng 2.1. Mô tả các tham số của Threshold
Tuỳ chọn Mô tả
type limit|threshold|both Type limit cảnh báo trên các sự kiện trong khoảng thời gian, sau đó bỏ qua các sự kiện cho các phần còn lại của khoảng thời gian. Type threshold loại cảnh báo mỗi lần chúng ta thấy sự kiện này trong khoảng thời gian. Type both cảnh báo này khi mỗi khoảng thời gian sau khi nhìn thấy xuất hiện của sự kiện, sau đó bỏ qua bất kỳ sự kiện bổ sung trong khoảng thời
gian.
track by _rc|by_dst Tần số sự kiện được theo dõi bằng nguồn địa chỉ IP hoặc địa chỉ IP đích. Điều này có nghĩa số được duy trì cho mỗi địa chỉ IP nguồn, hoặc cho mỗi địa chỉ IP đích.
count c Số sự kiện xảy ra trong khoảng thời gian.
seconds s Thời gian đếm số sự kiện xảy ra để đưa ra cảnh báo.
Ví dụ về Threshold Option để phát hiện 10000 kết nối khởi tạo đến máy chủ web trong 30 giây
alert tcp $external_net any -> $http_servers $http_ports (msg:"DDoS Attack Detected"; FlagsS; threshold:type threshold, track by_src, count 10000 , seconds 30 ; sid:1000852; rev:1;)