Những rule này có thể được tạo ra hoặc điều chỉnh để sử dụng trong ứng dụng... Rule action là hành động sẽ xảy ra khi một gói tin khớp với các điều kiện định nghĩa trong rule... Rule Act
Trang 1Nguyễn Tuấn Anh 07520011
Nguyễn Anh Linh 07520193
Trương Đình Huy 07520 151
Ứng dụng TT &ANTT
Trang 2SNORT FUNDAMENTALS
Snort bao gồm 4 thành phần chính
• Packet capture, thực hiện bởi LibPcap hoặc
WinPcap
• Preprocessor nhiệm vụ là xem xét các gói tin
trước khi chuyển tới engine phát hiện thật sự
• Detection Engine – Tại đây cái rules sẽ được
áp dụng lên các gói tin
• Output – xuất ra kết quả, thông báo.
Trang 4Vài chỉnh sửa cần thiết sau khi cài đặt snort
hiện tại ví dụ 192.168.1.0/24
(lưu ý : $SnortInstallationPath là đường dẫn tới thư mục cài đặt snort, mặc định là C:\Snort)
include classification.config
=> include SnortInstallationPath\etc\classification.config
include reference.conf
=> include $SnortInstallationPath\etc\reference.config
Trang 6 Cài đặt Snort như các chương trình thông thường, cứ để mặc định.
mục $SnortInstallationPath\bin
alert.ids
Trang 71 Mở file snort.config và chỉnh sửa (lưu ý, nên lưu lại 1 bản backup đề phòng chỉnh
sửa xong gặp lỗi)
2 Chỉnh sửa 1 số biến
CẤU HÌNH VÀ THỰC THI SNORT
var HOME_NET var HOME_NET địa chỉ mạng
var EXTERNAL_NET var EXTERNAL_NET !$HOME_NET
var include reference var include F:\Snort\etc\reference.config
var RULE_PATH….\rules var RULE_PATH F:\Snort\rules
# include threshold.conf var F:\Snort\etc\threshold.conf
dynamicpreprocessor directory …. dynamicpreprocessor directory F:\Snort\lib\
snort_dynamicpreprocessor
dynamicengine F:\Snort\lib\snort_dynamicengine\
sf_engine.dll
Trang 83 Chạy thử snort
Trang 9 Để thử bắt gói tin ta sẽ sử dụng lệnh sau: snort –ix –v
Trang 10 Mục đích của việc này là để bạn ghi lại toàn bộ hoạt động để dễ dàng kiểm tra lại khi cần thiết
snort
snort –ix –dev –l \snort\log
LOGGING VỚI SNORT
Trang 11 Đối với một hệ thống IDS, rule là tất cả
Snort sử dụng các rule để kiểm tra chữ ký và
các vi phạm Những rule này có thể được tạo ra hoặc điều chỉnh để sử dụng trong ứng dụng.
Trang 12Các rule của snort bao gồm 2
phần:
Rule Header: chỉ hành động của rule,
giao thức, hướng xử lý, địa chỉ IP đích
và nguồn, port đích và port nguồn
Các lựa chọn của rule: là các thông
điệp cảnh báo và các đặc tả xác định
gói tin
alert tcp any any -> any 80 (content: “adult”; msg: “Adult Site Access”)
Trang 13Header của rule:
Rule Action Protocol Source IP Source Port Direction Destination IP Destination Port
1.Định nghĩa rule action.
Rule action là hành động sẽ xảy ra khi một gói tin khớp với các điều kiện định nghĩa trong rule
Trang 14Rule
Action Mô tả
alert Tạo một cảnh báo với bất kì phương thức nào được định nghĩa Đồng thời cũng log gói tin với phương thức được
định nghĩa bất kì.
log Log gói tin theo định nghĩa.
pass Snort sẽ bỏ qua gói tin này.
activate Tạo một cảnh báo và kích hoạt dynamic rule.
dynamic Duy trì ở trạng thái không sử dụng nếu không có rule khác gọi nó Nếu được gọi, nó hành xử tương tự như
một log rule.
Bảng các rule action:
Trang 15Alert tcp any any -> [10.0.10.0/24, 10.10.10.0/24] any
(content: “Password”; msg: “Password Tranfer Possible!”;)
Trang 164 Xác định port cho snort kiểm tra
cả các port đối với địa chỉ IP
Log tất cả traffic từ tất cả địa chỉ IP trên tất cả các port tới port 23 của mạng 10.0.10.0/24:
Log tcp any any -> 10.0.10.0/24 23
Log tất cả traffic từ tất cả địa chỉ IP trên tất cả các port tới tất cả các port trong khoảng từ 1 tới 1024 tới mọi host trong mạng 10.0.10.0/24:
Log tcp any any -> 10.0.10.0/24 1:1024
Trang 17Log toàn bộ traffic từ mọi địa chỉ IP có port nhỏ hơn hoặc bằng 1024 tới mọi host trên mạng 10.0.10.0/24 có port lớn hơn hoặc bằng 1024:
Log tcp any :1024 -> 10.0.10.0/24 1024:
Log toàn bộ traffic từ mọi host trừ (ta dùng dấu: “!”) host 172.16.40.50 trên mọi port tới mọi host trong mạng 10.0.10.0/24 trên mọi port:
Log tcp ! 172.16.40.50/32 any -> 10.0.10.0/24 any
Log toàn bộ traffic từ mọi host trên mọi port tới tới mạng 10.0.10.0/24 đang làm việc trên các port ngoài port 23:
Log tcp any any -> 10.0.10.0/24 ! 23
“->” là kí hiệu dùng để xác định hướng kiểm tra gói tin của snort
“<>” để snort kiểm tra gói tin từ cả 2 hướng:
Log tcp 10.0.10.0/2 any <> 172.16.30.0/24 23
Trang 18Rule
Option
năng của Snort
dấu “;”
“value” VD: msg: “text”.
Trang 19Keyword Mô tả
msg In ra một thông điệp
ttl Chỉ định điều kiện về giá trị Time To Live của IP header của gói tin mà rule muốn capture.
id Chỉ định điều kiện về giá trị phân mảnh của một IP header cụ thể của gói tin mà rule muốn capture. flags Chỉ định điều kiện về các cờ tcp của gói tin.
ack Chỉ định điều kiện về TCP ack của gói tin
content Chỉ định điều kiện về phần nội dung của gói tin.
Một số keyword thông dụng:
Trang 20Sử dụng các option
Msg option :
Khi dùng msg option trong một rule, bộ máy log và cảnh báo của snort sẽ được báo là có một thông điệp cần phải được chèn vào một packet dump hay trong một cảnh báo Vd: msg: “thông điệp nào đó”;
Trang 21 Id option làm điều kiện để snort lọc gói tin với một giá
trị chính xác của trường Fagment trong IP header.
Trang 22Một số rule ví dụ đơn giản:
Log tất cả các traffic đang cố kết nối tới port telnet:
log tcp any any -> 10.0.10.0/2 23
Log ICMP traffic tới mạng 10.0.10.0:
log icmp any any -> 10.0.10.0/24 any
Cho phép tất cả các truy cập web đi qua, không log:
pass tcp any 80 -> any 80
Tạo một cảnh báo với thông điệp bất kỳ:
alert tcp any any -> any 23 (msg: “Telnet Connection Attemp”;)
…
Trang 23Snort rule ID
phân loại nhiều loại Snort rule khác
Trang 24Có nhiều vùng Snort ID cần nhớ:
<100: để dùng trong tương lai
101 tới 1,000,000: dành cho các
distribution rule của Snort.org
>=1,000,001 : dùng cho các rule nội bộ.
Trang 25Tạo một ruleset đơn giản
Alert tcp any any -> any any (content: “password”; msg:
“Possible Password Transmitted”; sid: 10000003;)
B2: Lưu file với đường dẫn: C:\snort\
rules\”myrule.rules”
Trang 26Các tùy chọn Meta Data
Chứa các tính năng chi tiết của các rule
Msg: được sử dụng để chèn một message cho người dùng đọc
Sid: được sử dụng để định nghĩa một ID riêng duy nhất cho một rule trong Snort.
Classtype: được dùng để phân loại các loại sự kiện
Priority: được sử dụng để định nghĩa các mức độ ưu tiên của sự kiện
Reference: Được sử dụng để định nghĩa một URL nhằm cung cấp thêm thông tin về sự kiện
Rev:được sử dụng để định nghĩa số lần được duyệt lại của rule
Trang 27Classtype Decription Priority
Attempted information leak
An attempted login using a suspicious user name detected Denial-of-service attack
A network client was using an unusual port Generic ICMP event
Detection of a network scan
High High High High High High Medium Medium Medium Medium Low Low
Bảng classtype:
Trang 28 Một số IDS rule cơ bản đã được thiết lập sẵn và cho phép ta chọn sử dụng trong quá trình cài đặt Snort Ngoài ra có thể download nhiều rule khác tại trang www.snort.org
Ta có thể kiểm tra các rule đã được thiết lập sẵn qua các bước như sau:
B1: Download rule về.
B2: copy các rules file vào thư mục C:\Snort\rules.
B3: Truy cập tới thư mục C:\Snort\rules.
B4: Mở các file rules xem
Các rule được thiết lập sẵn:
Trang 29 Việc phát hiện kịp thời có thể giúp phần nào ngăn ngừa rất nhiều cuộc tấn công từ chối dịch vụ.
Dưới đây là ví dụ mẫu:
alert tcp $HOME_NET 12345:123456 -> $EXTERNAL_NET any
(msg: “DDOS Trin00 Attacker to Master default startup
password”);flow: established,to_server;
content:“Betaalmostdone”;reference:arachnids,197;
classtype:attempted-dos;sid: 109, rev: 5;)
Để kiểm tra DDoS rule, ta chỉnh sửa trong file ddos.rules
nằm trong thư mục C:\Snort\rules
Kiểm tra rule DDoS:
Trang 30 Khi một máy chủ đã bị thâm nhập và đã đoạt được chủ quyền, kẻ tấn công cài vào máy chủ một dịch vụ nào đó để tạo "cổng sau" nhằm mục đích để trở lại máy chủ này một cách dễ dàng và kín đáo khi nào cần.
Khi thiết lập rule này, ta có thể phát hiện khi backdoor được cài vào hệ thống
Dưới đây là ví dụ mẫu:
alert tcp $HOME_NET 12345:123456 -> $EXTERNAL_NET any
(msg: “BACKDOOR netbus active”);
flow: from_server,established; content “NetBus”;
Trang 31 Snort cũng có nhiều rule được thiết kế để kiểm tra các cuộc tấn công web
Dưới đây là ví dụ mẫu:
alert tcp $EXTERNAL_NET 12345:123456 ->
$EXTERNAL_NET any
(msg: “WEB-attack etc/shadow access”);
flow: to_server,established; content “/etc/shadow”;nocase; classtype:web-application-activity;sid: 109, rev: 5;)
Để kiểm tra DDoS rule, ta chỉnh sửa trong file
backdoor.rules nằm trong thư mục C:\Snort\rules
Kiểm tra rule Web Attack:
Trang 32Kiểm tra rule dành cho IIS Server
B1: tới thư mục C:\Snort\rules.
B2: Mở file web-iis lên bằng WordPad.
B3: xem một dòng rule nào đó, vd: Code Red exploit ida? trong nội
dung của rule:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-IIS ISAPI ida attempt"; flow:to_server,established;
uricontent:".ida?"; nocase; reference:arachnids,552;
reference:bugtraq,1065; reference:cve,2000-0071;
classtype:web-application-attack; sid:1243; rev:11;)alert tcp $EXTERNAL_NET any ->
$HTTP_SERVERS $HTTP_PORTS (msg:"WEB-IIS ISAPI ida access"; flow:to_server,established; uricontent:".ida"; nocase;
reference:arachnids,552; reference:bugtraq,1065;
reference:cve,2000-0071; classtype:web-application-activity; sid:1242; rev:10;)
Đây là rule dùng để phát hiện worm Code Red trong hệ thống
WebServer IIS.
Trang 33CẤU HÌNH SNORT ĐỂ
SỬ DỤNG VỚI CƠ SỞ
DỮLIỆU
Trang 34Ta phải khai báo database cho Snort và đưa cho nó thông tin cần thiết để tạo kết nối.
Hiệu chỉnh File Snort.Conf
Cấu hình Snort liên kết database
Trang 35Cài đặt MySQL vào Snort
Trang 361 Truy xuất thư mục C:\Snort\schemas, file create_mysql sẽ là file chúng ta sử dụng để xây dựng cơ sở dữ liệu.
Server 5.0 MySQL Command Line Client
database archivedb1; show database;
Tạo cơ sở dữ liệu Snort:
Trang 375 Kiểm tra 2 database mới được liệt kê
Trang 386. Để qua database mới gõ connect snortdb1;
7 entersource C:\Snort\schemas\create_mysql
Trang 398 Show table; (để hiễn thị bảng trong quá trình
Trang 401 Start All Programs MySQLMySQL Server 5.0
MySQL Command Line Client
3 Mysql> prompt, gõ show database;
snortdb1.* to snort identified by ‘root’;
snortdb1.* to snort@localhost identified by ‘root’;
Tài khoản người dùng MySQL
Trang 416 Gõ grant ALL on snortdb1.* to base identified by
Trang 4212 C:\Snort\mysql folder, open my.ini bằng Wordpad
13 Thay đổi:
‘sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_=
>USER,NO_ENGINE_SUBSTITUTION” bằng
“sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_=>SUB STITUTION”
14 Save & close my.ini
15 Restart máy tính.
Trang 43 Mở command prompt
C:\Snort\bin
Snort –d –e –v –iX (X để sử dụng card mạng)
Ta thấy rằng Snort có hiển thị gói tin trên màn
hình Nếu cần kiểm tra traffic mạng thì có thể ping
Trang 44CÀI ĐẶT IDS TRONG
LINUX
Trang 46Cài đặt
1 Chép snort vào /snort
2 Đến thư mục soft cd /soft
3 Giải nén snort
tar -zxvf snort-2.8.4.1.tar.gz
cd snort-2.8.4.1
4.Lần lượt thực hiện các sau để cài đặt snort
#./configure with-mysql enable-dynamicplugin
Trang 50 Tạo một liên kết mềm (symbolic link) của file snort binary đến /usr/sbin/snort
Trang 51 Đặt quyền lại cho file snortd :
chmod 755 /etc/init.d/snortd
chkconfig snortd on
service snortd start
Để khởi động snort ở chế độ debug nếu bạn muốn kiểm tra lỗi:
/snort/snort-2.8.4.1/src/snort -u snort -g
snort -d -c /etc/snort/snort.conf
Trang 52Quản lý snort bằng webmin
Trang 55Cài đặt & quản lí cơ sở dữ liệu IDS
Trước tiên ta cần set password cho root trong MySQL
#mysqladmin -u root password 123456
#mysql -p
Tạo password cho tài khoản snort.
mysql> use mysql;
mysql> CREATE USER 'snort'@'localhost' IDENTIFIED BY '123456';
Tạo CSDL cho snort.
mysql> create database snort;
mysql> GRANT CREATE, INSERT, SELECT, DELETE, UPDATE ON snort.* to snort@localhost;
mysql> flush privileges;
mysql> exit
Trang 56 Tạo các table từ
/snort/snort-2.8.4.1/schemas/create_mysql cho
database snort (thư mục giải nén snort)
mysql -u root -p < /snort/snort-2.8.4.1/schemas/create_mysql snort mysql -p
Trang 57Q&A