Tổng quan

Suricata là một hệ thống phát hiện và ngăn chặn xâm nhập (Intrusion Detection System – IDS và Intrusion Prevention System – IPS) mã nguồn mở, được phát triển và duy trì bởi Tổ chức Open Information Security Foundation (OISF). Suricata có khả năng phân tích lưu lượng mạng theo thời gian thực, phát hiện các mối đe dọa và ngăn chặn các cuộc tấn công mạng.

Các tính năng chính của Suricata

Phát hiện xâm nhập (IDS): Suricata có thể phân tích dữ liệu mạng và phát hiện các hoạt động đáng ngờ hoặc các dấu hiệu của tấn công mạng dựa trên các quy tắc và chữ ký.

Ngăn chặn xâm nhập (IPS): Ngoài việc phát hiện, Suricata còn có khả năng ngăn chặn các cuộc tấn công bằng cách thả các gói tin hoặc chặn các kết nối đáng ngờ.

Phân tích lưu lượng mạng: Suricata có thể phân tích và giải mã nhiều giao thức mạng khác nhau như HTTP, TLS, FTP, DNS, SMB, và nhiều giao thức khác. Điều này cho phép phát hiện các mối đe dọa phức tạp hơn.

Hiệu suất cao: Suricata được thiết kế để tận dụng tối đa các kiến trúc phần cứng hiện đại, bao gồm việc sử dụng nhiều luồng (multi-threading) và các khả năng tăng tốc phần cứng khác.

Hỗ trợ các dạng dữ liệu khác nhau: Suricata có thể xử lý các tệp nhật ký (log files), các gói tin (pcap files), và dữ liệu trực tiếp từ mạng (live traffic).

Tích hợp với các công cụ khác: Suricata có thể được tích hợp với nhiều công cụ và hệ thống khác như Elasticsearch, Kibana, Logstash (ELK Stack), Splunk, và nhiều công cụ phân tích và giám sát mạng khác.

Cách thức hoạt động

Suricata hoạt động dựa trên các quy tắc (rules) và chữ ký (signatures) để phát hiện các mối đe dọa. Các quy tắc này có thể được cập nhật từ các nguồn khác nhau, bao gồm các quy tắc cộng đồng mã nguồn mở hoặc các quy tắc thương mại từ các nhà cung cấp bảo mật.

Cài đặt Suricata

Đầu tiên các bạn cần cập nhật hệ thống để đảm bảo các phụ thuộc của suricata đều được cập nhật

sudo apt-get update && sudo apt-get upgrade

Để bắt đầu cài đặt Suricata, chúng ta cần thêm repository của Open Information Security Foundation (OISF) vào hệ thống của mình.

sudo add-apt-repository ppa:oisf/suricata-stable

Sau khi chúng ta đã thực hiện repository vào hệ thống của chúng ta và cập nhật danh sách các packages thì tiến hành cài đặt Suricata với lệnh dưới

sudo apt install suricata -y

Tiếp theo, chúng ta sẽ kích hoạt suricata.service để Suricata sẽ chạy khi hệ thống khi khởi động lại

sudo systemctl enable suricata.service

Kiểm tra trạng thái của suricata.service

sudo systemctl status suricata.service

Cấu hình Suricata

Bật community-id giúp tạo ra một nhận dạng duy nhất cho mỗi luồng mạng. Điều này rất hữu ích khi bạn muốn kết hợp dữ liệu từ Suricata với các công cụ phân tích và giám sát khác như Zeek), Moloch (Arkime), hay các hệ thống SIEM (Security Information and Event Management) khác.

Kiểm tra trạng thái

Tiếp đó các bạn sẽ sữa từ false -> true

Tiến hành kiểm tra network interface, ở đây là ens3

ip -p -j route show default

Sau đó ta tiến hành kiểm tra network interface mặc định hoặc các Interface mà chúng ta muốn Suricata kiểm tra lưu lượng truy cập

Chúng ta sẽ mở file cấu hình /etc/suricata/suricata.yaml và chỉnh interface từ eth0 -> ens33

Cấu hình Live Rule Reloading, có nghĩa là chúng ta có thể thêm, xóa và chỉnh sửa quy tắc mà không cần khởi động lại tiến trình Suricata đang chạy. Chúng ta thêm dòng

detect-engine:
  - rule-reload: true

Cập nhật suricata rulesets với lệnh

sudo kill -usr2 $(pidof suricata)

Với cài đặt này, chúng ta sẽ có thể gửi SIGUSR2 tín hiệu hệ thống đến quá trình đang chạy và Suricata sẽ tải lại mọi quy tắc đã thay đổi vào bộ nhớ.

Suricata bao gồm một công cụ được gọi là suricata-update có thể lấy các bộ quy tắc từ các nhà cung cấp bên ngoài. Chạy nó như sau để tải xuống bộ quy tắc cập nhật cho máy chủ Suricata

sudo suricata-update

Các dòng trên cho biết đã tìm nạp quy tắc mới bởi suricata-update và lưu chúng vào file cấu hình của Suricata

Các bạn có thể liệt kê nhóm nhà cung cấp Ruleset mặc định bằng cách sử dụng

sudo suricata-update list-sources

Ví dụ: Nếu chúng ta muốn thêm nhà cung cấp Ruleset et/open, chúng ta có thể bật bộ Ruleset này bằng cách sử dụng lệnh sau

sudo suricata-update enable-source et/open

Chúng ta sẽ cập nhật lại suricata để rules trên sẽ được thêm vào

Khởi động máy chủ suricata

sudo suricata -T -c /etc/suricata/suricata.yaml -v

Trong đó:

  • T: Chạy Suricata ở chế độ thử nghiệm.
  • v: Sẽ in một số thông tin bổ sung.
  • c: Cho Suricata biết nơi tìm tệp cấu hình của nó.

Như vậy suricata đã hoạt động trên hệ thống của bạn.

Cuối cùng chúng ta sẽ bật service và kiểm tra log mới nhất của suricata

sudo systemctl start suricata.service && sudo tail -f /var/log/suricata/suricata.log

Kết luận

Suricata là một hệ thống phát hiện và ngăn chặn xâm nhập mạng (IDS/IPS) mạnh mẽ và linh hoạt, được thiết kế để cung cấp khả năng giám sát và bảo vệ mạng hiệu quả. Quá trình cài đặt và cấu hình Suricata đòi hỏi sự hiểu biết về cấu trúc mạng và các yêu cầu bảo mật cụ thể của môi trường sử dụng. Ở bài viết tiếp theo tôi sẽ hướng dẫn các bạn cấu hình suricata phát hiện tấn công DDos.

Cảm ơn bạn đã đọc bài viết này. Nếu bạn có bất kỳ câu hỏi hoặc ý kiến đóng góp, đừng ngần ngại để lại bình luận bên dưới. Chúng ta hãy tiếp tục chia sẻ kiến thức và học hỏi từ nhau.

Danh sách bài viết:

vanluong