You are on page 1of 6

Chương I.

Tổng quan về Suricata

1.1. Giới thiệu về Suricata

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.

1.2. Kiến trúc của Suricata

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.

1.2.1. Packet Acquisiton – Thu thập gói tin

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,...

1.2.3. Detection – Phát hiện

Đâ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.

1.2.4. Output – Đầu ra

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.

 Cảnh báo (Alerts)


- Suricata tạo ra cảnh báo khi phát hiện một hoạt động mạng đáng ngờ, mối
đe dọa.
- Cảnh báo thường bao gồm thông tin chi tiết về mẫu hoạt động bị phát
hiện, như loại cuộc tấn công, giao thức mạng, địa chỉ IP liên quan, và thời
gian xảy ra.
- Cảnh báo có thể được gửi đến các hệ thống quản lý sự kiện và thông tin
bảo mật (SIEM - Security Information and Event Management) hoặc ghi
lại vào các bản ghi log.
 Ghi nhật ký (Logs)
- Suricata có thể tạo ra các bản ghi log chứa thông tin về các sự kiện mà nó
phát hiện.
- Logs có thể chứa thông tin về các cảnh báo đã kích hoạt, các gói tin mạng
liên quan, thông tin chi tiết về bộ quy tắc đã khớp, và các thông tin khác
về môi trường mạng.

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.

3. Cài đặt Suricata

 Hệ điều hành Windows


- Truy cập trang web https://suricata.io/download/, chọn “Windows 64-bit
installer: Suricata-7.0.3-1-64bit.msi” để tải về Suricata về máy và giải nén.
 Máy ảo Ubuntu
- Vào Terminal trên máy ảo Ubuntu đã cài trên VMware hoặc VirtualBox và
thực hiện các lệnh.
- Thiết lập để cài đặt Suricata ổn định và mới nhất:

- Sau đó, có thể cài đặt bản Suricata ổn định và mới nhất với:

- Nâng cấp Suricata:

- Xóa Suricata khỏi hệ thống:


TÀI LIỆU THAM KHẢO

[1] https://docs.suricata.io/en/latest/index.html

[2] R. Fekolkin, “Intrusion Detection and Prevention Systems: Overview of Snort


and Suricata,” 01 2015.

[3] Andre Alves, “Integrating an Intrusion Detection System with Heterogeneous


IoT Endpoint Devices”, 09 2020.

You might also like