+1

Lab suricata tích hợp ELK STACK

Tổng quan

image.png

Vị trí đặt Suricata và ELK trong hệ thống mạng:

  • Suricata được đặt sau các thiết bị mạng để lắng nghe và phân tích lưu lượng mạng
  • ELK stack (Elasticsearch, Logstash/Filebeat, Kibana) được đặt sau Suricata, trên cùng một máy bảo Ubuntu 22.04 với cấu hình 4 core CPU, 8GBRAM, 60GB Disk, xử lý việc thu thập, lưu trữ, hiển thị log, alert

Vai trò từng thành phần:

  • Suricata: công cụ IDS/IPS, lắng nghe traffic, phân tích gói tin, sinh ra log/alert theo format JSON
  • ELK stack:
    • ElasticSearch: lưu trữ và tìm kiếm log
    • Filebeat hoặc Logstash: nhận log từ Suricata và gửi vào ElasticSearch
    • Kibana: dashboard

=> Luồng dữ liệu (Flow) :Traffic được chuyển đến Suricata thu thập, phân tích => sinh log dưới dạng JSON (EVE log) => log này được gửi sang ELK qua Filebeat/Logstash => log được lưu trữ ở ElasticSearch => Kibana hiển thị và phân tích

Cài đặt và cấu hình Suricata + ELK stack

Bước 1: Cài đặt và cấu hình cho Suricata:

sudo apt update && sudo apt upgrade -y

sudo add-apt-repository ppa:oisf/suricata-stable -y sudo apt update sudo apt install suricata -y Cấu hình Suricata: sudo nano /etc/suricata/suricata.yaml Kích hoạt Community ID (khoảng dòng 200-300): Tìm phần # Community Flow ID và thay community-id: false thành: true Đặt giao diện mạng ở af-packet và pcap: ens160

image.png

Cập nhật rule: sudo suricata-update

image.png

Kiểm tra cấu hình: sudo suricata -T -c /etc/suricata/suricata.yaml -v

image.png

Chạy và kiểm tra suricata: sudo systemctl start suricata sudo systemctl status suricata

image.png

Để đảm bảo Suricata đang chạy, kiểm tra nhật ký, theo dõi log khởi động: sudo tail /var/log/suricata/suricata.log: có log là được Mô phỏng lưu lượng đáng ngờ, kiểm tra Suricata xem đã phát hiện chưa

image.png

Bước 2: Cài đặt và cấu hình Elasticsearch

sudo apt install openjdk-17-jdk -y Kiểm tra phiên bản Java: java -version

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

sudo apt update

sudo apt install elasticsearch

Mở file cấu hình ElasticSearch và chỉnh một số thông tin: sudo nano /etc/elasticsearch/elasticsearch.yml

Thêm network.bind_host: ["127.0.0.1", “private id”] để chấp nhận kết nối từ Kibana

image.png

Ở xpack.security.enabled để false: không yêu cầu xác thực. Còn nếu để true thì cần cấu hình username/password với tên đăng nhập mặc định là elastic và mật khẩu tạo khi cài đặt

Nên để là true, tạo tài khoản, mật khẩu nếu muốn search alert về sau

Thêm cuối file: discovery.type: single-node và xpack.security.enabled: true (cho single-node; bỏ discovery nếu multi-node).

Uncomment dòng này: cluster.initial_master_nodes: ["suricata-virtual-machine"] (nếu cài elasticsearch 8.x)

Firewall: sudo ufw allow in/out on (ví dụ: enp6s0) cho private network.

image.png

sudo systemctl enable elasticsearch

sudo systemctl start elasticsearch

Tạo khóa tự động cho các tài khoản phụ thuộc:

cd /usr/share/elasticsearch/bin

sudo ./elasticsearch-setup-passwords auto

image.png

Bước 3. Cài đặt và cấu hình Kibana

sudo apt install kibana

Tạo encryption keys: ./kibana-encryption-keys generate -q --force trong /usr/share/kibana/bin

image.png

Chỉnh sửa file cấu hình: sudo nano /etc/kibana/kibana.yml paste 3 dòng xpack trước đó vào cuối /etc/kibana/kibana.yml.

image.png

sudo systemctl start kibana

Mở firewall nếu cần (vì cùng máy, có thể skip, nhưng nếu truy cập từ ngoài sau):

sudo ufw allow 5601/tcp

sudo ufw reload

Bước 4. Cài đặt Filebeat - cấu hình cho Filebeat nhận được log của Suricata

Thêm key/repo giống Elasticsearch

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

sudo apt update

rồi sudo apt install filebeat

sudo nano /etc/filebeat/filebeat.yml: Đặt : host: "192.168.229.139:5601".

image.png

Elasticsearch output: hosts: ["192.168.229.139:9200"], username: "elastic", password từ trước.

image.png

sudo filebeat modules enable suricata

Load dashboards: sudo filebeat setup

Khởi động: sudo systemctl start filebeat

Bước 5. Điều hướng bảng điều khiển SIEM của Kibana

Mở trình duyệt, truy cập vào 192.168.229.139:5601

Tìm kiếm: suricata

image.png

2 Dashboard chính của Suricata. Trong đó:

  • Alert Overview: tổng quan về các cảnh báo (alerts) mà Suricata sinh ra

image.png

  • Events Overview: tổng quan về sự kiện (events) mà Suricata ghi nhận, không chỉ giới hạn ở alert

image.png

Thử nghiệm Suricata Rules

Dùng nmap scan

image.png

Trên log thu được alert:

image.png

Xem được vài thông tin như source port, source id của nguồn tấn công

image.png


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí