Kiến trúc và cơ chế hoạt động luồng dữ liệu của Wazuh

Một phần của tài liệu PHÁT TRIỂN và TÍCH hợp CHỨC NĂNG GIÁM sát TOÀN vẹn tệp TIN vào hệ THỐNG GIÁM sát AN TOÀN MẠNG (Trang 39 - 42)

Chương 2 Giới thiệu về giải pháp giám sát an toàn mạng Wazuh

2.1. Tổng quan giới thiệu về Wazuh

2.1.2. Kiến trúc và cơ chế hoạt động luồng dữ liệu của Wazuh

a) Kiến trúc xây dựng của Wazuh

Kiến trúc Wazuh dựa trên các Agent chạy trên các máy chủ được giám sát để chuyển tiếp dữ liệu nhật ký đến một máy chủ trung tâm. Ngồi ra, các thiết bị khơng có tác nhân ( firewall, switch, router, access point, thiết bị mạng,... ) được hỗ trợ và có thể chủ động gửi dữ liệu nhật ký qua syslog hoặc thăm dò định kỳ các thay đổi cấu hình của các thiết bị này để sau đó chuyển tiếp dữ liệu đến máy chủ trung tâm. Máy chủ trung tâm giải mã và phân tích thơng tin đến và chuyển các kết quả cùng với cụm Elaticsearch để lập index và lưu trữ.

Mơ hình xây dựng của Wazuh được chia thành 2 dạng:

- Single node deployment: Wazuh và Elastic stack có thể triển khai trên một máy chủ ( số lượng agent < 50 ). Ở triển khai này, Filebeat sẽ đọc các cảnh báo, sự kiện từ Wazuh trực tiếp từ local file system và đẩy chúng tới local Elasticsearch instance.

Hình 2.9 Mơ hình xây dựng Single-node clusters

- Multi-node deployment: Multi-node clusters được khuyến nghị khi có một số lượng lớn các hệ thống được giám sát, khi khối lượng lớn dữ liệu cần xử lý hoặc khi cần có tính sẵn sàng cao. Khi máy chủ Wazuh và cụm Elaticsearch ở trên các máy chủ khác nhau, Filebeat được sử dụng để chuyển dữ liệu được lưu trữ đến máy chủ Elaticsearch.

Hình 2.10 Mơ hình xây dựng Multi-node clusters

b) Cơ chế luồng dữ liệu của Wazuh

Trong kiến trúc hoạt động Wazuh bao gồm các thành phần Agent, máy chủ trung tâm Wazuh server, hệ thống lưu trữ log Elasticsearch. Khi Wazuh hoạt động các giao tiếp sẽ xuất hiện từ Agent đến Wazuh server và Wazuh server đến hệ thống log Elasticsearch.

Hình 2.11 Cơ chế luồng dữ liệu giao tiếp của Wazuh

Giao tiếp giữa Agent và Wazuh server. Wazuh agent sử dụng giao thức OESSEC message để gửi các sự kiện thu thập được tới Wazuh server thông qua port 1514 ( UDP hoặc TCP ). Wazuh server giải mã và thực hiện rule-check với các sự kiện nhận được bằng các cơng cụ phân tích. Các sự kiện ứng với các rule được đặt ra sẽ được bổ sung dữ liệu cảnh báo như rule-id và rule-name. Các event có thể được đẩy tới một hoặc cả hai file sau, dựa vào việc có được sự kiện có tương ứng với rule.

- File /var/ossec/logs/archives/archives.json chứa tất cả các sự kiện dù có tương ứng với rule hay khơng.

- File /var/ossec/logs/alerts/alerts.json chỉ chứa các event tương ứng với rule đã đặt ra.

Giao thức giao tiếp sử dụng mã hóa Blowfish 192 bit với thực hiện đầy đủ 16 vịng hoặc mã hóa AES với 128 bit cho mỗi block và 256 bit cho khóa. Phiên bản Wazuh trước v3.5, q trình mã hóa mặc định được sử dụng bằng Blowfish. Kể từ phiên bản Wazuh v3.5, mã khóa mặc định được sử dụng là AES, với AES mọi dữ liệu các agent được gửi đi một an toàn hơn đến Wazuh server. Đồng thời tăng tốc độ mã hóa và giải mã cho hệ thống Wazuh.

Giao tiếp giữa Wazuh và Elasticsearch. Wazuh server sử dụng Filebeat để chuyển dữ liệu về cảnh báo và sự kiện tới Elastic Stack server thơng qua mã hóa TLS.

Filebeat sẽ định dạng, lọc các dữ liệu đầu vào trước gửi tới Elasticsearch ( port 9200/TCP ). Một khi dữ liệu được index tới Elasticsearch và Kibana ( port 5601/TCP ) được dùng để hiển thị thông tin.

Wazuh App chạy bên trong Kibana liên tục truy vấn tới RESTful API ( port 55000/TCP trên Wazuh manager ) để hiển thị cấu hình và thơng tin trạng thái liên quan của server và agent, cũng như restart agent theo yêu cầu. Liên lạc này được mã hóa với TLS và được xác thực với username và password.

Cơ chế lưu giữ liệu trên Wazuh server. Các sự kiện cảnh báo và khơng có cảnh báo đều được lưu trữ trong các tệp trên máy chủ Wazuh trước khi được gửi đến Elasticsearch. Các tệp này có thể được viết ở định dạng JSON ( .json ) hoặc ở định dạng văn bản thuần túy ( .log - khơng có trường được giải mã nhưng nhỏ gọn hơn ). Các tệp này được nén và ký hàng ngày sử dụng MD5 và SHA1. Cấu trúc thư mục và tên tệp như sau:

Hình 2.12 Cấu trúc thư mục và tệp lưu trữ trên Wazuh server

Việc Rotation và backup các file nén được khuyến khích, tùy theo khả năng lưu trữ của Wazuh Manger server. Sử dụng cron job để kiểm sốt các file nén.

Ngồi ra, có thể lựa chọn việc bỏ qua việc lưu trữ các file nén, và sử dụng Elasticsearch cho các dữ liệu lưu trữ, đặc biệt chạy Elasticsearch snapshot backup hoặc multi-node Elasticsearch cluster cho shard replica. Có thể sử dụng cron job để di chuyển các index đã được snapshot tới một server lưu trữ và đánh dấu với MD5 và SHA1.

Một phần của tài liệu PHÁT TRIỂN và TÍCH hợp CHỨC NĂNG GIÁM sát TOÀN vẹn tệp TIN vào hệ THỐNG GIÁM sát AN TOÀN MẠNG (Trang 39 - 42)