Hệ Thống Ngăn Chặn Xâm Nhập (IPS) và Cách Viết Quy Tắc Snort
Giới thiệu
Hệ thống ngăn chặn xâm nhập (IPS – Intrusion Prevention System) là một lớp bảo mật chủ động được triển khai nhằm giám sát, phát hiện và ngăn chặn các hành vi tấn công trong thời gian thực. Khác với firewall (tường lửa) thường hoạt động dựa trên các tiêu chí đơn giản như địa chỉ IP, cổng và giao thức, IPS hoạt động ở tầng ứng dụng và có khả năng phân tích sâu nội dung gói tin (Deep Packet Inspection – DPI).
Một trong những công cụ IPS mã nguồn mở phổ biến và mạnh mẽ nhất hiện nay là Snort, được phát triển bởi Sourcefire (nay thuộc Cisco). Snort sử dụng các quy tắc (rules) để định nghĩa các hành vi đáng ngờ cần được giám sát hoặc chặn lại.
IPS Hoạt Động Như Thế Nào?
Tùy vào cấu hình, IPS có thể hoạt động theo một trong hai chế độ:
Snort hỗ trợ cả hai chế độ, nhưng trong bài viết này, chúng ta tập trung vào chế độ ngăn chặn (IPS).
Cấu Trúc Một Quy Tắc Snort
Một quy tắc Snort bao gồm hai phần chính: 1. Header – Phần đầu quy tắc
Phần này xác định:
Ví dụ:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (…)
Giải thích:
Đây là nơi diễn ra kiểm tra nội dung gói tin, bao gồm:
Ví dụ phần thân:
(content:"/etc/passwd"; nocase; sid:1000001; rev:1;)
Phân Tích Kết Quả Phát Hiện: 4 Loại Phản Hồi
Một quy tắc Snort có thể tạo ra các kết quả như sau:
Các Tùy Chọn Điều Khiển Quy Tắc
Trong Snort, các quy tắc có thể được:
Ví dụ suppress:
suppress gen_id 1, sig_id 1000001, track by_src, ip 192.168.1.1
Quy tắc trên sẽ bỏ qua cảnh báo từ signature 1000001 nếu xuất phát từ IP 192.168.1.1.
Ứng Dụng Thực Tế
Nếu bạn muốn chặn truy cập trái phép vào một ứng dụng web đang chạy trên cổng 80. Bạn có thể viết quy tắc như sau:
drop tcp any any -> $HTTP_SERVERS 80 (content:"/admin"; nocase; sid:1000010; rev:1; msg:"Attempt to access admin page";)
Giải thích:
Kết luận
Việc triển khai IPS – đặc biệt là với Snort – không chỉ đơn giản là cài phần mềm, mà còn đòi hỏi người quản trị hiểu rõ:
Hiểu và làm chủ Snort chính là một kỹ năng thiết yếu cho bất kỳ kỹ sư an ninh mạng hoặc SOC analyst nào trong thời đại các mối đe dọa ngày càng tinh vi.
Nếu bạn đang học CCNA Security, CCNP SCOR hoặc chuẩn bị triển khai hệ thống giám sát trong SOC, hãy bắt đầu làm quen với cách viết và tinh chỉnh quy tắc Snort ngay từ bây giờ. Đây là một trong những công cụ hiệu quả nhất để bảo vệ mạng nội bộ khỏi các mối đe dọa ẩn danh.
Giới thiệu
Hệ thống ngăn chặn xâm nhập (IPS – Intrusion Prevention System) là một lớp bảo mật chủ động được triển khai nhằm giám sát, phát hiện và ngăn chặn các hành vi tấn công trong thời gian thực. Khác với firewall (tường lửa) thường hoạt động dựa trên các tiêu chí đơn giản như địa chỉ IP, cổng và giao thức, IPS hoạt động ở tầng ứng dụng và có khả năng phân tích sâu nội dung gói tin (Deep Packet Inspection – DPI).
Một trong những công cụ IPS mã nguồn mở phổ biến và mạnh mẽ nhất hiện nay là Snort, được phát triển bởi Sourcefire (nay thuộc Cisco). Snort sử dụng các quy tắc (rules) để định nghĩa các hành vi đáng ngờ cần được giám sát hoặc chặn lại.
IPS Hoạt Động Như Thế Nào?
Tùy vào cấu hình, IPS có thể hoạt động theo một trong hai chế độ:
- Detection Mode (IDS): chỉ ghi nhận và cảnh báo các hành vi nghi vấn.
- Prevention Mode (IPS): chủ động chặn lưu lượng khi phát hiện hành vi xâm nhập.
Snort hỗ trợ cả hai chế độ, nhưng trong bài viết này, chúng ta tập trung vào chế độ ngăn chặn (IPS).
Cấu Trúc Một Quy Tắc Snort
Một quy tắc Snort bao gồm hai phần chính: 1. Header – Phần đầu quy tắc
Phần này xác định:
- Hành động: alert, log, pass, drop, reject...
- Giao thức: tcp, udp, icmp...
- Nguồn: IP nguồn và cổng.
- Đích: IP đích và cổng.
- Hướng lưu lượng: -> hoặc <->.
Ví dụ:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (…)
Giải thích:
- Nếu một kết nối TCP từ bên ngoài ($EXTERNAL_NET) đến một máy chủ HTTP nội bộ ($HTTP_SERVERS) qua cổng HTTP ($HTTP_PORTS) thì quy tắc sẽ được áp dụng.
Biến như $EXTERNAL_NET, $HTTP_SERVERS là các biến môi trường được định nghĩa trong file cấu hình Snort (snort.conf).
2. Body – Phần thân quy tắcĐây là nơi diễn ra kiểm tra nội dung gói tin, bao gồm:
- content: tìm kiếm chuỗi trong payload.
- pcre: biểu thức chính quy để phát hiện mẫu phức tạp.
- reference: trích dẫn CVE hoặc tài liệu liên quan.
- sid: mã định danh duy nhất cho quy tắc.
- rev: số lần chỉnh sửa quy tắc.
- threshold: giới hạn số lần khớp để giảm false positive.
- classtype: loại tấn công (web-application-attack, attempted-admin...)
Ví dụ phần thân:
(content:"/etc/passwd"; nocase; sid:1000001; rev:1;)
Phân Tích Kết Quả Phát Hiện: 4 Loại Phản Hồi
Một quy tắc Snort có thể tạo ra các kết quả như sau:
- ✅ True Positive: Gói tin thực sự là tấn công và được phát hiện.
- ✅ True Negative: Không có tấn công, và hệ thống không phản hồi gì.
- ❌ False Positive: Gói tin hợp lệ nhưng bị báo động nhầm.
- ❌ False Negative: Gói tin là tấn công nhưng bị bỏ qua.
False Negative là kịch bản tồi tệ nhất vì một cuộc tấn công đã xảy ra mà hệ thống không hề phát hiện.
Các Tùy Chọn Điều Khiển Quy Tắc
Trong Snort, các quy tắc có thể được:
- Vô hiệu hóa (disable) nếu không còn phù hợp.
- Kích hoạt ngưỡng (thresholding) – chỉ cảnh báo nếu khớp đủ số lần.
- Suppress (triệt tiêu) – bỏ qua các cảnh báo thừa, giúp giảm nhiễu.
Ví dụ suppress:
suppress gen_id 1, sig_id 1000001, track by_src, ip 192.168.1.1
Quy tắc trên sẽ bỏ qua cảnh báo từ signature 1000001 nếu xuất phát từ IP 192.168.1.1.
Ứng Dụng Thực Tế
Nếu bạn muốn chặn truy cập trái phép vào một ứng dụng web đang chạy trên cổng 80. Bạn có thể viết quy tắc như sau:
drop tcp any any -> $HTTP_SERVERS 80 (content:"/admin"; nocase; sid:1000010; rev:1; msg:"Attempt to access admin page";)
Giải thích:
- Nếu một kết nối TCP có chứa chuỗi "/admin" đi đến máy chủ web, Snort sẽ drop gói tin này và ghi nhận sự kiện.
Kết luận
Việc triển khai IPS – đặc biệt là với Snort – không chỉ đơn giản là cài phần mềm, mà còn đòi hỏi người quản trị hiểu rõ:
- Cách viết và kiểm soát quy tắc.
- Phân tích đúng loại phản hồi (false/true positive).
- Kết hợp triệt tiêu và ngưỡng để giảm nhiễu.
Hiểu và làm chủ Snort chính là một kỹ năng thiết yếu cho bất kỳ kỹ sư an ninh mạng hoặc SOC analyst nào trong thời đại các mối đe dọa ngày càng tinh vi.
Nếu bạn đang học CCNA Security, CCNP SCOR hoặc chuẩn bị triển khai hệ thống giám sát trong SOC, hãy bắt đầu làm quen với cách viết và tinh chỉnh quy tắc Snort ngay từ bây giờ. Đây là một trong những công cụ hiệu quả nhất để bảo vệ mạng nội bộ khỏi các mối đe dọa ẩn danh.