Sử Dụng SNORT Để Dò Tìm Tấn Công DOS & SCANNING
Hướng Dẫn Dùng Snort Để Dò Tìm Tấn Công DoS & Scanning Với Nmap
1. Snort Là Gì?
Snort là một công cụ mã nguồn mở mạnh mẽ dùng để phát hiện xâm nhập (Intrusion Detection System - IDS). Nó phân tích lưu lượng mạng theo thời gian thực và phát hiện các mối đe dọa như tấn công từ chối dịch vụ (DoS) và hoạt động quét mạng (Scanning) từ công cụ như Nmap.
Chức năng chính của Snort:
- Sniffer: Chỉ lắng nghe và ghi nhận lưu lượng mạng.
- Packet Logger: Ghi lại các gói tin mạng để phân tích sau.
- Intrusion Detection: Phát hiện và thông báo các mối đe dọa dựa trên tập luật được định nghĩa.
2. Môi Trường Lab
Yêu cầu:
- Hệ điều hành: Kali Linux (hoặc Ubuntu) với Snort cài đặt sẵn.
- Công cụ tấn công: Máy ảo khác chạy Nmap để thực hiện quét mạng.
- Cấu hình mạng: Cả hai máy phải trong cùng một mạng (NAT hoặc Host-Only).
3. Cài Đặt Snort
Bước 1: Cài Đặt Snort
Nếu chưa cài đặt, bạn có thể thực hiện trên Kali Linux:
sudo apt update
sudo apt install snort
Bước 2: Kiểm Tra Snort
Xác minh cài đặt:
snort --version
Bước 3: Cấu Hình Interface
Tìm interface mạng:
ip a
Cấu hình Snort để sử dụng interface chính (ví dụ: eth0
).
4. Phát Hiện Tấn Công DoS
Bước 1: Tạo Quy Tắc Phát Hiện DoS
-
Tạo file luật Snort:
sudo nano /etc/snort/rules/dos.rules
-
Thêm quy tắc để phát hiện DoS:
alert tcp any any -> any any (msg:"Possible DoS - SYN flood"; flags:S; threshold:type threshold, track by_src, count 20, seconds 5; sid:1000001; rev:1;)
- flags:S: Theo dõi gói tin TCP SYN.
- threshold: Kích hoạt cảnh báo nếu 20 gói SYN từ cùng một nguồn được gửi trong 5 giây.
-
Lưu file luật.
Bước 2: Thêm File Luật Vào Cấu Hình Snort
- Mở file cấu hình Snort:
sudo nano /etc/snort/snort.conf
- Thêm dòng sau vào cuối:
include /etc/snort/rules/dos.rules
Bước 3: Khởi Chạy Snort
- Chạy Snort với file luật:
sudo snort -A console -q -i eth0 -c /etc/snort/snort.conf
Bước 4: Thực Hiện Tấn Công DoS
-
Trên máy tấn công (dùng hping3 để mô phỏng DoS SYN Flood):
hping3 -S -p 80 --flood
-
Quan sát console của Snort. Nếu DoS được phát hiện, bạn sẽ thấy cảnh báo:
[**] [1:1000001:1] Possible DoS - SYN flood [**]
5. Phát Hiện Quét Mạng (Scanning)
Bước 1: Tạo Quy Tắc Phát Hiện Nmap Scan
-
Mở file luật Snort:
sudo nano /etc/snort/rules/scan.rules
-
Thêm quy tắc để phát hiện quét mạng:
alert tcp any any -> any any (msg:"Nmap Scan Detected"; flags:S; threshold:type threshold, track by_src, count 5, seconds 2; sid:1000002; rev:1;)
- Quy tắc này cảnh báo nếu 5 gói SYN từ một nguồn được gửi đến các cổng khác nhau trong 2 giây.
-
Lưu file luật.
Bước 2: Thêm File Luật Vào Cấu Hình Snort
Thêm file scan.rules vào cấu hình:
include /etc/snort/rules/scan.rules
Bước 3: Khởi Chạy Snort
Chạy Snort với file cấu hình cập nhật:
sudo snort -A console -q -i eth0 -c /etc/snort/snort.conf
Bước 4: Thực Hiện Quét Mạng
-
Trên máy tấn công, chạy Nmap:
nmap -sS -p-
- -sS: Quét SYN.
- -p-: Quét tất cả các cổng.
-
Quan sát console của Snort. Nếu Nmap scan được phát hiện, bạn sẽ thấy cảnh báo:
[**] [1:1000002:1] Nmap Scan Detected [**]
6. Phân Tích Kết Quả
File Log
Kết quả cảnh báo từ Snort được ghi lại trong file log:
/var/log/snort/alert
Phân Tích Lưu Lượng
Bạn có thể sử dụng Wireshark để phân tích lưu lượng chi tiết:
sudo wireshark
7. Lưu Ý Khi Sử Dụng Snort
-
Độ chính xác:
- Quy tắc cần được tối ưu hóa để giảm cảnh báo sai (false positives).
-
Giới hạn tài nguyên:
- Snort có thể tiêu thụ nhiều CPU khi giám sát mạng lớn.
-
Tính hợp pháp:
- Chỉ thực hiện các bài kiểm tra này trong môi trường có sự cho phép.
8. Kết Luận
Snort là một công cụ mạnh mẽ để phát hiện tấn công DoS và các hoạt động quét mạng từ Nmap. Bằng cách tùy chỉnh các quy tắc, bạn có thể giám sát và bảo vệ hệ thống mạng hiệu quả. Thực hành thường xuyên và phân tích kết quả sẽ giúp bạn hiểu rõ hơn về các mối đe dọa mạng.