Các cơ chế hoạt động của SnortNetwork Intrusion Detection System mode: Ở chế độ IDS, snort không ghi lại từng gói tin bắt được như trong chế độ sniffer mode.. Bộ tiền xử lý PreprocessorP
Trang 1Các cơ chế hoạt động của Snort
Sniffer mode: snort bắt lấy các gói tin và
hiển thị nội dung của chúng.
Network Intrusion Detection System mode: làm việc như là hệ thống NIDS
Inline mode: kết hợp với iptables
Trang 2Các cơ chế hoạt động của Snort
Network Intrusion Detection System mode:
Ở chế độ IDS, snort không ghi lại từng gói tin bắt được như trong chế độ sniffer mode Thay vào đó, nó so sánh các rules vào tất cả các gói tin bắt được Nếu 1 gói tin phù hợp với rules, thì nó sẽ được ghi lại
và một cảnh báo sẽ được phát ra.
Trang 4- Phân tích hiệu suất mạng.
- Lắng nghe dữ liệu trên mạng (password, các dữ liệu nhạy cảm )
Trang 5Packet sniffer (tt)
Trang 6Bộ tiền xử lý (Preprocessor)
Preprocessor là những thành phần hay
những plug-in được sử dụng cùng với Snort để xem xét, sắp xếp và thay đổi những gói dữ liệu trước khi giao các gói này cho detection engine
Một vài preprocessor còn có thể thực hiện tìm ra những dấu hiệu bất thường trong tiêu đề gói và sinh ra cảnh báo.
Trang 7Bộ tiền xử lý (Preprocessor) (tt)
2 chức năng chính của Bộ tiền xử lý:
- Xem xét (kiểm tra) các gói tin đáng ngờ
- Chuẩn bị các gói tin để giao cho Detection
engine: các gói tin cụ thể và các thành phần của gói tin được chuẩn hóa (nomalized) để cho Detection engine có thể so sánh các dấu hiệu tấn công một cách chính xác.
Trang 9Bộ tiền xử lý (Preprocessor) (tt)
Trang 10Bộ máy phát hiện (Detection Engines)
Detection engine là thành phần quan trọng
nhất trong snort Nó chịu trách nhiệm phát hiện các hành vi bất thường trong các gói tin dựa trên các rule của snort.
Nếu gói tin nào khớp với rule, thì hành động thích hợp sẽ được thực hiện.
Trang 11Bộ máy phát hiện (Detection Engines) (tt)
Lưu ý: IDS/IPS có thể xem xét các gói tin
và áp dụng các rules vào các phần khác nhau của gói tin Các phần của gói tin:
- IP header.
- Header của lớp transport (TCP, UDP).
- Header của lớp application (DNS header, FTP header, SNMP header ).
- Phần tải của gói tin (packet payload).
Trang 12Bộ máy phát hiện (Detection Engines) (tt)
Trang 13Các thành phần Alerting/Logging
Nếu dữ liệu phù hợp với 1 rule trong detection engine, thì 1 cảnh báo sẽ được phát sinh Cảnh báo sẽ được gửi tới 1 tập tin log thông qua kết nối mạng, UNIX socket hay Window Popup hay SNMP traps.
Các cảnh báo có thể được lưu trong CSDL SQL như là MySQL và Postgres
Trang 14Các thành phần Alerting/Logging (tt)
Trang 15Kiến trúc Snort
Trang 16Snort Rules
Snort rules hoạt động trên lớp mang
(network (IP)) và vận chuyển (transport (TCP/UPD)) Tuy nhiên có các phương pháp để phát hiện sự bất thường ở lớp liên kết (data link) và các giao thức lớp ứng dụng (application).
Trang 17Snort Rules (tt)
Rule được chia làm 2 phần:
Rule Header Rule Option
Trang 18Các platform hỗ trợ:
Linux OpenBSD FreeBSD NetBSD Solaris (both Sparc and i386)
HP-UX AIX IRIX MacOS Windows
Trang 19Snort Rules (tt)
Rule Header: chứa thông tin về hành động
được thực hiện (log hay alert), loại gói tin (TCP, UDP, ICMP ), địa chỉ nguồn và đích
và cổng.
Trang 20Snort Rules (tt)
Rule Option: hành động trong rule header
chỉ được thực hiện khi tất cả các tiêu chí
trong rule option là đúng.
Trang 21Snort Rules (tt)
Cấu trúc Rule Option:
- Theo sau rule header.
- Nằm trong cặp dấu ().
- Nếu có nhiều option, thì các option sẽ kết
hợp với nhau theo thuật toán AND.
- Rule Option bao gồm 2 phần: từ khóa (keyword) và tham số (argument)
Trang 22Rule đầu tiên
Ví dụ 1: tất cả gói IP bị phát hiện và phát cảnh
báo
alert icmp any any -> any any (msg: "ICMP Packet found";)
Ví dụ 2: phát cảnh báo khi gặp gói ICMP
alert icmp any any -> 192.168.1.113/32 any \
(msg: "Ping with TTL=100"; ttl:100;)
Trang 23Một số từ khóa phổ biến
content content-list
flags logto msg priority session ttl
Trang 24Từ khóa: content
1 đặt tính quan trọng của snort là có khả năng tìm
ra dạng thức (pattern) dữ liệu bên trong 1 gói Dạng thức này có thể ở dạng ASCII hoặc binary.
Ví dụ:
alert tcp 192.168.1.0/24 any -> ![192.168.1.0/24] any \ (content: "GET"; msg: "GET matched";)
alert tcp 192.168.1.0/24 any -> ![192.168.1.0/24] any \
(content: "|47 45 54|"; msg: "GET matched";)
Trang 25Từ khóa: content-list
Từ khóa content-list được sử dụng với 1 tên tập
tin làm tham số Tập tin này sẽ chứa danh sách các chuỗi được tìm bên trong gói dữ liệu Mỗi chuỗi sẽ nằm trên các dòng riêng biệt trong nội dung tập tin.
Ví dụ: tập tin có tên là porn với nội dung sau:
“porn”
“hardcore”
“under 18”
alert ip any any -> 192.168.1.0/24 any (content-list: \
"porn"; msg: "Porn word matched";)
Trang 26Từ khóa: flags
Từ khóa flags được sử dụng để xem xét các bit
flag được thiết lập bên trong TCP header của gói dữ liệu.
alert tcp any any -> 192.168.1.0/24 any (flags: SF; \
msg: “SYNC-FIN packet detected”;)
Trang 27Từ khóa: flags (tt)
Trang 28Từ khóa: logto
Từ khóa logto được sử dụng để ghi log các gói
dữ liệu vào trong 1 file đặc biệt.
Cú pháp: logto:logto_log
Ví dụ:
alert icmp any any -> any any (logto:logto_log; ttl: 100;)
Trang 29Từ khóa: logto
Từ khóa logto được sử dụng để ghi log các gói
dữ liệu vào trong 1 file đặc biệt.
Cú pháp: logto:logto_log
Ví dụ:
alert icmp any any -> any any (logto:logto_log; ttl: 100;)
Trang 30Từ khóa: msg
Từ khóa msg được sử dụng để để thêm 1
chuỗi văn bản vào trong log và cảnh báo.
Ví dụ:
msg: "Your message text here";
Trang 31Từ khóa: msg
Từ khóa msg được sử dụng để để thêm 1
chuỗi văn bản vào trong log và cảnh báo.
Ví dụ:
msg: "Your message text here";
Trang 32Từ khóa: priority
Từ khóa priority sẽ gán giá trị ưu tiên
(priority) cho một rule.
Có 10 giá trị priority Giá trị 1 là ưu tiên cao nhất.
Ví dụ:
alert ip any any -> any any (ipopts: lsrr; \ msg: "Loose source routing attempt"; priority: 10;)
Trang 33Từ khóa: session
Từ khóa session được sử dụng để kết xuất tất
cả dữ liệu từ 1 session của TCP hoặc chỉ những ký
tự có thể in được (printable characters).
Ví dụ:
log tcp any any -> 192.168.1.0/24 110 (session: printable;)