Firewalls
Tìm hiểu hệ thống phát hiện xâm nhập Snort và giải pháp kết
hợp Snort với Iptable
Giáo viên hướng dẫn: Đinh Tiến Thành Nguyễn Ngọc Ánh
Sinh viên thực hiện: Trần Xuân Cương Bùi Văn Tươi
Trương Văn Trường
Nguyễn Hiển Hải Dương Trung Kiên
Lê Khắc Giang
Ngô Văn Hùng 1
Company
LOGO
Mar 11, 2024
Néi Dung
11..TTổổnnggqquuaannvvềềIIDDSS//IIPPSS
22.N.NgghhiiêênnccứứuuứứnnggddụụnnggSSNNOORRTTttrroonnggIIDDSS//IIPPSS
33.C.CààiiđđặặttvvààccấấuuhhììnnhhSSnnoorrttttrrêênnnnềềnnCCeennttOOSS..
KKếếtthhợợppSSNNOORRTTvvớớiiIIPPTTAABBLLEESS
Mar 11, 2024 2
1.Tổng quan về IDS/IPS
1.1 Định nghĩa
• Là hệ thống có nhiệm vụ theo dõi, phát hiện và có thể ngăn cản sự xâm
nhập, cũng như các hành vi trái phép
• Hệ thống IDS thu thập thông tin từ nhiều nguồn trong hệ thống rồi tiến
hành phân tích
1.2 Các thành phần và chức năng của IDS/IPS
Mar 11, 2024 3
Tổng quan về IDS/IPS
1.3 Phân loại IDS/IPS
1.3.1 Network Based IDS (NIDS)
Mar 11, 2024 4
1.3.2 Host Based IDS (HIDS)
Mar 11, 2024 5
Tổng quan về IDS/IPS
1.4 Cơ chế hoạt động của hệ thống IDS / IPS
1.4.1 Phát hiện sự lạm dụng
Hệ thống sẽ phát hiện bằng cách tìm kiếm các hành động tương ứng với các
kỹ thuật đã biết đến hoặc điểm dễ bị tấn công của hệ thống
1.4.2 Phát hiện sự bất thường: dựa trên việc định nghĩa và mơ tả đặc điểm các hành vi có
thể chấp nhận của hệ thống
• Phát hiện tĩnh
• Phát hiện động
Mar 11, 2024 6
1.4.3 So sánh giữa 2 mơ hình Phát hiện sự lạm dụng Phát hiện sự bất thường
Phát hiện sự lạm dụng và phát hiện
Sự bất thường Bao gồm: Bao gồm:
•Cơ sở dữ liệu các dấu hiệu tấn công. •Cơ sở dữ liệu các hành động thông thường.
•Tìm kiếm các so khớp mẫu đúng. •Tìm kiếm độ lệch của hành động thực tế so
với hành động thông thường.
Hiệu quả trong việc phát hiện các dạng tấn Hiệu quả trong việc phát hiện các dạng tấn
công đã biết, hay các biến thể (thay đổi nhỏ) của công mới mà một hệ thống phát hiện sự lạm
các dạng tấn công đã biết. Không phát hiện dụng bỏ qua.
được các dạng tấn công mới.
Dễ cấu hình hơn do địi hỏi ít hơn về thu Khó cấu hình hơn vì đưa ra nhiều dữ liệu
thập dữ liệu, phân tích và cập nhật hơn, phải có được một khái niệm tồn diện về
hành vi đã biết hay hành vi được mong đợi của
hệ thống
Đưa ra kết luận dựa vào phép so khớp mẫu Đưa ra kết quả dựa vào tương quan bằng
(pattern matching). thống kê giữa hành vi thực tế và hành vi được
mong đợi của hệ thống (hay chính là dựa vào độ
lệch giữa thông tin thực tế và ngưỡng cho phép).
Có thể kích hoạt một thông điệp cảnh báo Có thể hỗ trợ việc tự sinh thông tin hệ thống
nhờ một dấu hiệu chắc chắn, hoặc cung cấp dữ một cách tự động nhưng cần có thời gian và dữ
liệu hỗ trợ cho các dấu hiệu khác. liệu thu thập được phải rõ ràng.
Mar 11, 2024 7
1.5 Một số sản phẩm IDS/IPS
• Cisco IDS-4235: là hệ thống NIDS có khả năng theo dõi tồn bộ lưu thơng mạng và đối
sánh từng gói tin để phát hiện các dấu hiệu xâm nhập
• ISS Proventia A201: là sản phẩm của Internet Security Systems. Nó khơng chỉ là phần
cứng hay phần mềm mà là cả hệ thống các thiết bị được triển khai phân tán trong mạng
• Intrusion Protection Appliance: lưu trữ cấu hình mạng, các dữ liệu đối sánh. Nó là một
phiên bản Linux với các driver thiết bị mạng được xây dựng tối ưu
• Proventia Network Agent: đóng vai trị như bộ cảm biến Sensor. Bố trí tại vị trí nhạy cảm
• SiteProtector: là trung tâm điều khiển hệ thống proventia
• NFR NID-310: NFR là sản phẩm của NFR Security. Gồm nhiều bộ cảm biến thích ứng
với nhiều mạng khác nhau
• SNORT: 1.6 So sánh giữa IDS và IPS
Mar 11, 2024 8
2. NGHIÊN CỨU ỨNG DỤNG SNORT TRONG
IDS/IPS
2.1 Giới thiệu về Snort
2.2 Kiến trúc của Snort
2.3 Bộ luật của Snort
2.4 Chế độ ngăn chặn của Snort: Snort - Inline
Mar 11, 2024 9
2.1 Giới thiệu về Snort
• Snort là một NIDS được Martin Roesh phát triển dưới mơ hình mã nguồn mở
• Nhiều tính năng tuyệt vời phát triển theo kiểu module
• Cơ sở dữ liệu luật lên đến 2930 luật
• Snort hỗ trợ hoạt động trên các giao thức: Ethernet, Token Ring, FDDI, Cisco HDLC
SLIP, PPP, và PE của Open BDS
2.2 Kiến trúc của một Snort
• Modun giải mã gói tin (Packet Decoder)
• Modun tiền xử lý (Preprocessors)
• Modun phát hiện (Detection Eng)
• Modun log và cảnh báo (Logging and Alerting System)
• Modun kết xuất thông tin (Output module)
Mar 11, 2024 10
2.2.1 Modun giải mã gói tin
Snort sử dụng thư viện pcap để bắt mọi gói tin trên mạng lưu thơng qua hệ thống một gói ti
sau khi giải mã sẽ được đưa tiếp vào modun tiền xử lý
2.2.2 Modun tiền xử lý
• Là modun rất quan trọng để chuẩn bị gói dữ liệu đưa vào cho modun phát hiện phân tích
• 3 nhiệm vụ chính:
• Kết hợp các gói tin lại: thơng tin truyền đi khơng đóng gói tồn bộ vào 1 gói tin. Snor
sau khi nhận được phải thực hiện ghép nối để có được dữ liệu nguyên dạng
• Giải mã chuẩn hóa giao thức: cơng việc phát hiện xâm nhập dựa trên dấu hiệu nhận
dạng nhiều khi bị thất bại khi kiểm tra các giao thức có dữ liệu có thể được thể hiện
dưới nhiều dạng khác nhau
• Phát hiện các xâm nhập bất thường: đối phó với các xâm nhập khơng thể hoặc khó
Phát hiện bằng luật thông thường
2.2.3 Modun phát hiện:
• phát hiện các dấu hiệu xâm nhập. Nó sử dụng các luật được định nghĩa trước để so sánh vớ
dữ liệu thu thập được
• Có khả năng tách các thành của gói tin ra và áp dụng lên từng phần
Mar 11, 2024 11
2.2.4: Modun log và cảnh báo:
• Tùy thuộc vào modun phát hiện có nhận dạng được hay khơng mà gói tin có thể bị
ghi vào log hoặc đưa ra cảnh báo
2.2.5: Modun kết xuất thơng tin
• Thực hiện các thao tác khác nhau tùy thuộc vào việc bạn muốn lưu kết quả kết xuất
ra như thế nào. Nó có thể thực hiện nhiều công việc:
•Ghi log file
•Ghi syslog: là chuẩn lưu trữ các file log
•Ghi cảnh báo vào cơ sở dữ liệu
•Tạo file log dạng xml
•Cấu hình lại Router, Firewall
•Gửi các cảnh báo được gói trong các gói tin sử dụng giao thức SNMP
•Gửi các thơng điệp SMB
Mar 11, 2024 12
2.3 Bộ luật của Snort
2.3.1 Giới thiệu
• Thơng thường các tấn công hay xâm nhập đều để lại dấu hiệu riêng. Các thông tin
này được sử dụng để tạo nên các luật của Snort
• Các luật có thể được áp dụng cho tất cả các phần khác nhau của gói tin
• Một luật có thể được sử dụng để tạo nên một thông điệp cảnh báo, log một thông
điệp hay có thể bỏ qua một gói tin
2.3.2 Cấu trúc luật của Snort
Mar 11, 2024 13
2.3.2.1 Phần tiêu đề:
• Chứa thơng tin về hành động mà luật đó sẽ thực hiện
• Cấu trúc chung của phần header một luật của Snort
• Header của một luật bao gồm các phần:
• Hành động của luật (Rule Action): chỉ ra các hành động mà điều kiện của luật
được thỏa mãn. Một hành động được thực hiện khi tất cả các điều kiện phù hợp
• Pass: hành động này hướng dẫn snort bỏ qua gói tin này
• Log: có thể log gói tin vào file hay cơ sở dữ liệu
• Alert: gửi thơng điệp cảnh báo khi có dấu hiệu xâm nhập
• Activate: tạo cảnh báo và kích hoạt một luật khác kiểm tra thêm các điều kiện
• Dynamic: đây là luật được gọi bởi các luật khác có hành động là Activate
• Protocols: Chỉ ra loại gói tin mà luật sẽ áp dụng
• IP
• ICMP
• TCP/UDP
Mar 11, 2024 14
NGHIÊN CỨU ỨNG DỤNG SNORT
TRONG IDS/IPS
2.3.2.1 Phần tiêu đề
• Address: có địa chỉ nguồn và địa chỉ đích. Địa chỉ có thể là 1 địa chỉ IP đơn hoặc
địa chỉ của một mạng. Ta dùng từ any để áp luật cho tất cả các địa chỉ
alert tcp any any -> 192.168.1.10/32 80 (msg: “TTL=100”; ttl: 100;)
• Ngăn chặn địa chỉ hay loại trừ địa chỉ: sử dụng dấu (!) ở trước sẽ chỉ cho Snort
khơng kiểm tra gói tin đến hoặc đi từ địa chỉ đó
alert icmp ![192.168.2.0/24] any -> any any (msg: “Ping with
TTL=100”; ttl: 100;)
• Danh sách địa chỉ
alert icmp ![192.168.2.0/24, 192.168.8.0/24] any -> any any (msg:
“Ping with TTL=100”; ttl: 100;)
• Cổng (Port number): áp dụng luật cho gói tin đến hoặc đi từ 1 cổng hay phạm vi
cổng
alert tcp 192.168.2.0/24 23 -> any any (content: “confidential”;
msg: ”Detected confidential”;)
• Dãy cổng hay phạm vi cổng
alert udp any 1024:2048 -> any any (msg: “UDP ports”;)
• Hướng – direction: chỉ ra đâu là nguồn đâu là đích
Mar 11, 2024 15
NGHIÊN CỨU ỨNG DỤNG SNORT
TRONG IDS/IPS
2.3.2.2 Các tùy chọn: nằm ngay sau phần Rule Header được bao bọc trong dấu ngoặc
đơn. Nếu có nhiều option thì phân cách nhau bằng dấu “,” và các tùy chọn này phải
đồng thời thỏa mãn
• Từ khóa ack: trong TCP header thì trường ack dài 32bit chỉ ra số thứ tự tiếp theo của gói tin
alert tcp any any -> 192.168.1.0/24 any (flags: A; ack: 0; msg: “TCP ping detected”)
• Từ khóa classtype: file classification.conf bao gồmtrong file snort.conf. Mỗi dịng có cú pháp:
config classification: name, description, priority
• name: dùng để phân loại, được dùng với từ khóa classtype trong các luật
• description: mơ tả về loại lớp này
• priority: chỉ độ ưu tiên mặc định của lớp này
config classification: DoS , Denial of Service Attack, 2
• Từ khóa contents: khả năng đặc tả của snort là tìm một mẫu dữ liệu bên trong. Mẫu này có thể
Dưới dạng chuỗi ASCII, hoặc chuỗi nhị phân
alert tcp 192.168.1.0/24 any -> ![192.168.1.0/24] any (content: “GET”; msg: “GET match”;)
• Từ khóa dsize: dùng để đối sánh chiều dài phần dữ liệu
alert ip any any -> 192.168.1.0/24 any (dsize: > 6000; msg: “Goi tin co kich thuoc lon”;)
Mar 11, 2024 16
NGHIÊN CỨU ỨNG DỤNG SNORT
TRONG IDS/IPS
2.3.2.2 Các tùy chọn
•Từ khóa flags: phát hiện những bit cờ flag nào được bật
alert tcp any any -> 192.168.1.0/24 any (flags: SF; msg: “SYNC-FIN packet detected”;)
• Từ khóa fragbits: phần IP header của gói tin chứa 3bit dùng để chống phân mảnh
• Reserved Bit (RB): dùng để dành cho tương lai
• Don’t Fragment Bit (DF): bit này được thiết lập thì gói tin đó khơng bị phân mảnh
• More Fragments Bit (MF): bit này được thiết lập thì các phần khác của gói tin đang
trên đường đi mà chưa tới đích. Nếu bit này khơng được thiết lập thì có nghĩa đây là phần cuối
cùng của gói tin(gói tin duy nhất)
alert icmp any any -> 192.168.1.0/24 any (fragbits: D; msg: “Dont Fragment bit set”;)
Mar 11, 2024 17
2.4 Chế độ ngăn chặn của Snort: Snort – Inline
2.4.1 Tích hợp khả năng ngăn chặn vào Snort: ý tưởng là kết hợp khả năng ngăn chặn
của Iptables vào trong Snort. Điều này thực hiện bằng cách thay đổi modun phát hiện và xử lý
cho phép Snort tương tác với Iptable. Việc chặn bắt các gói tin thực hiện thông qua Netfilter
2.4.2 Những bổ xung cho cấu trúc luật của Snort hỗ trợ Inline mode
• DROP: yêu cầu Iptables loại bỏ gói tin và ghi lại thông tin như hành động Log
• SDROP: tương tự DROP nhưng khơng ghi lại Log
• REJECT: yêu cầu Iptable từ chối gói tin. Iptables sẽ loại bỏ gói tin và gửi lại một thông
báo cho nguồn gửi gó tin đó
Trình tự ưu tiên của các luật:
• Trong phiên bản gốc:
activation->dynamic-> alert->pass->log
• Trong inline – mode trình ưu tiên:
activation->dynamic->pass->drop->sdrop->reject->alert->log
Mar 11, 2024 18
3.CÀI ĐẶT VÀ CẤU HÌNH SNORT TRÊN NỀN
CENTOS.KẾT HỢP SNORT VỚI IPTABLES
Mời thầy giáo và các bạn cùng theo dõi phần demo
Mar 11, 2024 19