Professional Documents
Culture Documents
Suricata là một công cụ phát hiện xâm nhập dựa trên mã nguồn mở, miễn phí,
nhanh chóng và mạnh mẽ.
Suricata có khả năng phát hiện xâm nhập theo thời gian thực (IDS – Intrusion
Detection System), ngăn chặn xâm nhập nội tuyến (IPS – Intrusion Prevention
System) và giám sát an ninh mạng (NSM – Network Security Monitoring). IDS phát
hiện (detect), cảnh báo (alert), giám sát và ghi lại lưu lượng truy cập đáng ngờ trong
mạng. IPS sử dụng để cảnh báo, ghi nhật ký và ngăn chặn lưu lượng mạng độc hại.
Suricata sử dụng bộ quy tắc (rule-sets) và ngôn ngữ chữ ký (signature language)
mạnh mẽ và rộng rãi, đồng thời hỗ trợ tập lệnh Lua mạnh mẽ để phát hiện và ngăn
chặn các mối de dọa phức tạp. Khi phát hiện lưu lượng truy cập mạng độc hại và khớp
với bộ quy tắc (rule-sets), cảnh báo sẽ được tạo và lưu lượng truy cập sẽ được ghi lại.
Suricata được viết bằng ngôn ngữ lập trình C, được phát triển bởi tổ chức phi lợi
nhuận Open Information Security Foundation (OISF). Suricata có thể chạy trên các hệ
điều hành Windows, Mac, Unix, Linux, Ubuntu.
Suricata có một công cụ cốt lõi hoạt động với kiến trúc đa luồng, cho phép sử
dụng hiệu quả hơn cho các hệ thống đa lõi, thực hiện phân tích mạng đồng thời và khả
năng mở rộng lớn hơn. Ngoài ra, khi sử dụng trên các máy lõi đơn, Suricata có thể
chạy ở chế độ đơn luồng, trong đó các gói tin sẽ được xử lý cùng một lúc.
Khi Suricata hoạt động, nó sẽ thực hiện bắt các gói tin trực tiếp từ mạng
(Network). Sau đó, các gói được giải mã (Decode) và trong công cụ tái tạo luồng
(Stream Reassembly), các gói được tập hợp thành hàng đợi luồng, sau đó sẽ được tìm
nạp để xử lý bởi một luồng nhất định. Người dùng có thể cấu hình số lượng module
Detect. Sau khi so sánh các bộ quy tắc và các chữ ký xâm nhập được xác định trước
và quyết định xem các gói nhất định nên được loại bỏ hay chấp nhận, nhật ký đầu ra
sẽ được tạo ra (Output). Sau đây chúng ta sẽ đi vào chi tiết.
Packet Acquisition (Thu thập gói tin) là quá trình mà Suricata thu thập dữ liệu
mạng để phân tích và phát hiện các hoạt động đáng ngờ hoặc có hại.
- Suricata sử dụng các thư viện và công cụ như libpcap hoặc PF_RING để
chụp các gói tin mạng từ giao diện mạng (Network Interface) của hệ
thống. Bao gồm các gói tin vào và ra hệ thống, đảm bảo theo dõi và phân
tích cả hai hướng giao tiếp mạng.
- Giao diện mạng (Network Interface) có thể là một card mạng vật lý hoặc
một giao diện mạng ảo (Loopback Interface). Suricata cần được cấu hình
để lắng nghe trên giao diện mạng đó để thu nhập dữ liệu mạng.
Packet Acquisition là bước quan trọng đầu tiên trong quá trình phân tích và phát
hiện các mối đe dọa mạng bằng Suricata, đảm bảo rằng dữ liệu mạng cần thiết được
thu thập chính xác, hiệu quả để phân tích và bảo vệ hệ thống.
1.2.2. Decode and Stream app.layer – Giải mã và tái tạo luồng
Decode – Giải mã
- Suricata xác định các giao thức mạng được sử dụng trong dữ liệu mạng
như TCP, UDP, ICMP, cũng như các giao thức ứng dụng HTTP, FTP,
DNS, và nhiều giao thức khác.
- Suricata sử dụng các cơ chế giải mã tương ứng để giải mã các dữ liệu
mạng từ dạng mã hóa hoặc không biết thành dạng văn bản hoặc dữ liệu
cấu trúc có ý nghĩa, giúp cho Suricata có thể phân tích sâu hơn về các
hoạt động mạng.
Stream Reassembly – Tái tạo luồng
- Sau khi được giải mã, các gói tin được tập hợp thành hàng đợi luồng mà
sau này sẽ được tìm nạp để xử lý bởi một luồng nhất định.
Application Layer – Lớp ứng dụng
- Sau khi đã giải mã và tái tạo luồng, Suricata sẽ có thể tiếp cận các dữ liệu
ở lớp ứng dụng để phân tích các hoạt động mạng cụ thể như truy vấn
HTTP, các tệp tin FTP, các gói tin DNS độc hại,...
Đây là module quan trọng nhất, chịu trách nhiệm phát hiện các hoạt động đáng
ngờ, các mối đe dọa dựa trên dữ liệu mạng mà Suricata thu nhập và phân tích. Module
Detection sử dụng các bộ quy tắc được định nghĩa sẵn, các chữ ký xâm nhập được xác
định trước để so sánh và quyết định xem các gói tin nên được loại bỏ hay chấp nhận.
Người dùng có thể cấu hình số lượng luồng “Detection”, tùy thuộc vào số lượng lõi
CPU, mỗi luồng tương ứng với một lõi. “Detection” có thể được thực hiện song song
và một gói tin có thể được xử lý trong nhiều luồng “Detection” cùng một lúc.
Sau quá trình phân tích và phát hiện các hoạt động đáng ngờ hoặc độc hại trên
mạng, Output được đưa ra.
Tùy thuộc vào cấu hình và môi trường triển khai, Suricata có thể tạo ra nhiều
loại đầu ra để cung cấp thông tin chi tiết và hỗ trợ cho quá trình phân tích và quản lý
mạng.
- Sau đó, có thể cài đặt bản Suricata ổn định và mới nhất với:
[1] https://docs.suricata.io/en/latest/index.html