You are on page 1of 12

GIỚI THIỆU VỀ WAZUH 4.

0
1. Khái niệm
WAZUH là một dự án mã nguồn mở với các chức năng security detection,
visibility, và compliance monitoring. Wazuh ban đầu được phát triển dựa trên
OSSEC HIDS và sau đó được tích hợp thêm Elastic Stack cùng với OpenSCAP
để trở thành một giải pháp an ninh toàn diện với các khả năng như

Các chức năng của WAZUH

Wazuh tự động thu thập và tổng hợp dữ liệu bảo mật từ các hệ thống chạy
Linux, Windows, macOS, Solaris, AIX và các hệ điều hành khác trong miền
được giám sát, làm cho nó trở thành một giải pháp SIEM cực kỳ toàn diện.

Nhưng quan trọng hơn, Wazuh cũng phân tích và đối chiếu dữ liệu để phát hiện
các điểm bất thường và xâm nhập. Loại thông minh này có nghĩa là có khả năng
phát hiện mối đe dọa sớm trong các môi trường khác nhau.

Phản ứng sự cố là một tính năng rất hữu ích của Wazuh đối với các mối đe dọa
đang hoạt động. Có các phản hồi hoạt động ngoài hộp, có nghĩa là người dùng
không phải làm bất cứ điều gì để thiết lập chúng. Nếu hệ thống phát hiện ra các
mối đe dọa đang hoạt động, các biện pháp đối phó sẽ bắt đầu hành động ngay
lập tức.

Ví dụ, nhiều tin tặc sử dụng các cuộc tấn công brute-force để đoán kết hợp tên
người dùng và mật khẩu. Wazuh sẽ lưu ý mỗi lần xác thực không thành công.

Với đủ lỗi, hệ thống sẽ nhận ra chúng là một phần của cuộc tấn công vũ phu. Vì
một tiêu chí nhất định được đáp ứng (ví dụ: năm lần đăng nhập không thành
công), nó sẽ chặn địa chỉ IP đó khỏi các lần thử tiếp theo. Điều này có nghĩa là
Wazuh không chỉ có thể hứng chịu các cuộc tấn công bạo lực mà còn có thể tắt
chúng

1.1. OSSEC HIDS


OSSEC là một HIDS (Host-based Intrusion Detection System) với kiến
trúc gồm các agent vệ tinh đa nền tảng và một hệ thống quản lý trung tâm
(central manager). Các agent này sẽ forward dữ liệu hệ thống (chẳng hạn log
messages, file hashes, và các hoạt động bất thường) đến cho trung tâm quản lý
để được phân tích và xử lý và đưa ra các alert thích hợp. Các dữ liệu này sẽ
được gửi thông qua các kênh truyền an toàn và được xác thực.
Ngoài ra, OSSEC cũng có thể được triển khai với cấu hình một syslog server
trung tâm cùng hệ thống giám sát phi tác nhân (agentless configuration
monitoring system). Ở cấu hình này, OSSEC sẽ đưa ra các security insight từ
các sự kiện và thay đổi diễn ra trên các thiết bị agentless như firewall, switch,
routers, access point, network appliance, …

1.2. OpenSCAP
OpenSCAP là trình thông dịch cho chuẩn ngôn ngữ thẩm định OVAL
(Open Vulnerability Assess - ment Language) và định dạng cấu hình an ninh hệ
thống ECCDF (Extensible Configuration Checklist Description Format).
OpenSCAP có được sử dụng để kiểm tra các cấu hình của hệ thống và phát hiện
các ứng dụng có lỗ hổng. Đây là một công cụ được thiết kế với khả năng thẩm
định và gia cố của các hệ thống áp dụng các tiêu chuẩn an ninh công nghiệp cho
môi trường doanh nghiệp.

1.3. Elastic Stack


Elastic Stack là một bộ phần mềm (Wazuh sử dụng Filebeat,
Elasticsearch, Kibana) được dùng để thu thập, phân giải, index, lưu trữ, tìm
kiếm và biểu diễn log. Elastic Stack cung cấp một high-level dashboard ở phía
front-end để phục vụ các thao tác phân tích nâng cao cũng như data mining.

2. Các thành phần của WAZUH


2.1. Wazuh Server
Wazuh server chịu trách nhiệm phân tích dữ liệu gửi từ agent và trigger
alert khi có một sự kiện khớp với rule (chẳng hạn phát hiện xâm nhập, file bị
thay đổi, cấu hình không tuân thủ chính sách, rootkit,...)

WAZUH SERVER
Wazuh server thường sẽ được cài đặt trên một máy chủ vật lý hoặc máy ảo riêng
biệt, hay cũng có thể là một máy trên cloud và chạy các agent để tự giám sát
chính nó. Các thành phần chính của Wazuh Server:

 Agents registration service: Được sử dụng để đăng ký Agent mới bằng


cách cung cấp và phân phối khóa xác thực chia sẻ trước dành riêng cho
từng Agent. Quá trình này chạy như một dịch vụ mạng và hỗ trợ xác thực
thông qua chứng chỉ TLS / SSL hoặc bằng cách cung cấp mật khẩu cố
định.

 Agents registration service: Đây là dịch vụ nhận dữ liệu từ các Agent. Nó


sử dụng các khóa được chia sẻ trước để xác thực danh tính từng tác nhân
và mã hóa thông tin liên lạc giữa tác nhân và Wazuh Serever. Ngoài ra,
dịch vụ này được sử dụng để cung cấp quản lý cấu hình tập trung, có thể
đẩy các cài đặt tác nhân mới từ xa.

 Analysis engine: Đây là quá trình thực hiện phân tích dữ liệu. Nó sử dụng
bộ giải mã để xác định loại thông tin đang được xử lý (ví dụ: Windows
events, SSHD logs, web server logs, v.v.) và trích xuất các phần tử dữ liệu
có liên quan từ thông báo nhật ký (ví dụ: ource IP address, event ID,
username, v.v.) . Tiếp theo, bằng cách sử dụng các quy tắc (Rules), nó xác
định các mẫu cụ thể trong các sự kiện được giải mã có thể kích hoạt cảnh
báo và thậm chí có thể gọi các biện pháp đối phó tự động (ví dụ: lệnh cấm
IP trên tường lửa).
 Wazuh RESTful API:Dịch vụ này cung cấp giao diện để tương tác với cơ
sở hạ tầng Wazuh. Nó được sử dụng để quản lý các tác nhân và cài đặt cấu
hình máy chủ, để theo dõi trạng thái cơ sở hạ tầng và tình trạng tổng thể,
quản lý và chỉnh sửa các quy tắc (Rule) và bộ giải mã Wazuh cũng như
truy vấn về trạng thái của các điểm cuối được giám sát. Nó cũng được sử
dụng bởi giao diện người dùng web Wazuh, đó là ứng dụng Kibana.

 Wazuh cluster daemon: Dịch vụ này được sử dụng để mở rộng các Wazuh
Server theo chiều ngang, triển khai chúng dưới dạng một cụm. Loại cấu
hình này, kết hợp với bộ cân bằng tải mạng, cung cấp tính khả dụng cao
và cân bằng tải. Daemon cụm Wazuh là thứ mà các máy chủ Wazuh sử
dụng để giao tiếp với nhau và giữ đồng bộ hóa.

 Filebeat:Nó được sử dụng để gửi các sự kiện và cảnh báo tới


Elasticsearch. Nó đọc kết quả của công cụ phân tích Wazuh và gửi các sự
kiện trong thời gian thực. Nó cũng cung cấp khả năng cân bằng tải khi
được kết nối với một cụm Elasticsearch nhiều nút

2.2. Wazuh Agent


Wazuh agent có thể được cài đặt trên các hệ điều hành Windows, Linux,
Solaris, BSD, và Mac . Các agent sẽ thu thập dữ liệu từ hệ thống và ứng dụng và
sau đó gửi chúng đến Wazuh server qua một kênh truyền đã được mã hóa và xác
thực. Kênh truyền an ninh này sẽ được khởi tạo bởi một tiến trình đăng ký sử
dụng các khóa duy nhất với mỗi agent.
Các agent có thể được sử dụng để giám sát các máy chủ vật lý, các máy ảo và
cloud instance (Amazon AWS, Azure, Google Cloud). Các gói cài đặt agent khả
dụng hiện tại bao gồm các gói cài đặt cho Linux, HP-UX, AIX, Solaris,
Windows, và Darwin (Mac OS X).
Trên các hệ điều hành Unix-based, Wazuh agent sẽ chạy nhiều tiến trình riêng và
giao tiếp với nhau thông qua local Unix domain socket. Một trong số các tiến
trình này sẽ chịu trách nhiệm giao tiếp và gửi dữ liệu đến Wazuh server. Đối với
các hệ điều hành Windows, chỉ có một tiến trình agent duy nhất sử dụng mutex
để chạy đa nhiệm các tác vụ. Các tác vụ hoặc tiến trình khác nhau của agent sẽ
chịu trách nhiệm giám sát khác nhau (chẳng hạn file kiểm tra tính toàn vẹn của
file, đọc log, quét các cấu hình hệ thống).

WAZUH AGENT
Các thành phần chính của Wazuh Agent:
 Log collector: Tiến trình này sẽ chịu trách nhiệm đọc log hệ thống và ứng
dụng, bao gồm flat log, các log sự kiện tiêu chuẩn và cả các kênh sự kiện
Windows. Ngoài ra, log collector còn có thể được cấu hình để định kỳ bắt
các output từ một số lệnh nhất định.

 Command execution: Agent có thể chạy các lệnh được ủy quyền theo định
kỳ, thu thập kết quả đầu ra của chúng và báo cáo lại cho Wazuh Server để
phân tích thêm. Mô-đun này có thể được sử dụng để đáp ứng các mục
đích khác nhau (ví dụ: theo dõi dung lượng ổ cứng còn lại, nhận danh
sách người dùng đăng nhập lần cuối, v.v.).

 File integrity monitoring (FIM): Mô-đun này giám sát hệ thống tệp, báo
cáo khi tệp được tạo, xóa hoặc sửa đổi. Nó theo dõi các thuộc tính tệp,
quyền, quyền sở hữu và nội dung. Khi một sự kiện xảy ra, nó nắm bắt
thông tin chi tiết về ai , cái gì và khi nào trong thời gian thực. Ngoài ra,
mô-đun này xây dựng và duy trì cơ sở dữ liệu với trạng thái của các tệp
được giám sát, cho phép các truy vấn được chạy từ xa

 Security configuration assessment (SCA): Thành phần này cung cấp đánh
giá cấu hình liên tục, sử dụng các kiểm tra bên ngoài dựa trên điểm chuẩn
của Trung tâm Bảo mật Internet (CIS). Người dùng cũng có thể tạo kiểm
tra SCA của riêng họ để giám sát và thực thi các chính sách bảo mật của
họ.

 System inventory:Thành phần này cung cấp đánh giá cấu hình
liên tục, sử dụng các kiểm tra bên ngoài dựa trên điểm chuẩn của Trung
tâm Bảo mật Internet (CIS). Người dùng cũng có thể tạo kiểm tra SCA
của riêng họ để giám sát và thực thi các chính sách bảo mật của họ

 Malware detection: Sử dụng cách tiếp cận không dựa trên chữ ký, thành
phần này có khả năng phát hiện sự bất thường và sự hiện diện có thể có
của rootkit. Giám sát các cuộc gọi hệ thống, nó tìm kiếm các quy trình ẩn,
tệp ẩn và cổng ẩn. • Active response:Mô-đun này chạy các hành động tự
động khi các mối đe dọa được phát hiện. Trong số những thứ khác, nó có
thể chặn kết nối mạng, dừng quá trình đang chạy hoặc xóa tệp độc hại.
Người dùng cũng có thể tạo phản hồi tùy chỉnh khi cần thiết (ví dụ: chạy
tệp nhị phân trong hộp cát, nắm bắt lưu lượng kết nối mạng, quét tệp bằng
phần mềm chống vi-rút, v.v.).

 Containers security monitoring:Mô-đun tác nhân này được tích hợp với
API Docker Engine để theo dõi các thay đổi trong môi trường được chứa
trong vùng chứa. Ví dụ: nó phát hiện các thay đổi đối với hình ảnh vùng
chứa, cấu hình mạng hoặc khối lượng dữ liệu. Bên cạnh đó, nó cảnh báo
về các vùng chứa đang chạy ở chế độ đặc quyền và về việc người dùng
thực hiện các lệnh trong vùng chứa đang chạy.
 Cloud security monitoring:Thành phần này giám sát các nhà cung cấp
đám mây như Amazon AWS, Microsoft Azure hoặc Google GCP. Nó tự
nhiên giao tiếp với các API của họ. Nó có khả năng phát hiện các thay đổi
đối với cơ sở hạ tầng đám mây (ví dụ: người dùng mới được tạo, nhóm
bảo mật được sửa đổi, phiên bản đám mây bị dừng, v.v.) và thu thập dữ
liệu nhật ký dịch vụ đám mây (ví dụ: AWS Cloudtrail, AWS Macie, AWS
GuardDuty , Azure Active Directory, v.v.)

2.3. Elastic Stack


Elastic Stack là một bộ gồm các công cụ mã nguồn mở phục vụ cho mục
đích quản lý log, bao gồm Elasticsearch, Kibana, Filebeat, Logstash,.... Các
công cụ của Elastic stack được sử dụng trong Wazuh gồm:

 Elasticsearch: Một công cụ tìm kiếm và phân tích mạnh mẽ với chức
năng full-text search cũng như khả năng mở rộng cao. Elasticsearch được
tổ chức phân phối, nghĩa là dữ liệu (index) sẽ được chia thành các phân
đoạn cơ sở dữ liệu (shard) và mỗi phân đoạn có thể có 0 hoặc nhiều bản
sao.
 Kibana: Cung cấp một giao diện web linh hoạt và trực quan cho mining,
phân tích, và trình bày dữ liệu. It runs on top of the content indexed on an
Elasticsearch cluster.
 Filebeat: Một công cụ gọn nhẹ để forward log trong mạng, thường được
sử dụng cho Elasticsearch.

Wazuh tích hợp Elastic Stack để lưu trữ và index các log đã được giải mã với
Elasticsearch, và sử dụng như một giao diện console real-time để theo dõi các
alert và phân tích log. Bên cạnh đó, giao diện người dùng của Wazuh (chạy trên
Kibana) cũng có thể được sử dụng để quản lý và giám sát hạ tầng của Wazuh.
Một Elasticsearch index là một tập hợp các văn bản có các đặc trưng tương tự.
Wazuh sử dụng 3 index sau:
 wazuh-alerts: các alert được tạo bởi Wazuh server.
 wazuh-events: mọi event được gửi đến từ agent.
 wazuh-monitoring: các dữ liệu liên quan đến trạng thái của agent. Nó
được sử dụng cho giao diện web của Wazuh để hiển thị các trạng thái của
agent như: “Active”, “Disconnected” hay “Never connected”
Như đã đề cập ở trên, các index của Elasticsearch có thể được chia thành nhiều
phân đoạn (shard) và nhân thành các bản sao. Mỗi thực thể này là một Lucene
index. Vì vậy, có thể coi một Elasticsearch index là một tập các Lucene index.
Khi một yêu cầu tìm kiếm được thực hiện trên một Elasticsearch index, yêu cầu
này sẽ được thực thi song song trên các phân đoạn của index và kết quả sau đó
sẽ được được trộn lại với nhau. Việc chia nhỏ các index của Elasticsearch được
sử dụng trong multiple-node Elasticsearch cluster với mục đích mở rộng tìm
kiếm để đảm bảo tính sẵn sàng. Đối với các single-node Elasticsearch cluster thì
thường mỗiindex sẽ chỉ tồn tại một phân đoạn duy nhất và không có bản sao.

3. Kiến trúc của WAZUH


Kiến trúc của Wazuh xoay quanh mô hình: agent chạy trên các host được
giám sát và forward dữ liệu đến server trung tâm. Bên cạnh đó, Wazuh cũng hỗ
trợ các thiết bị agentless (firewall, switch, router, access point,...) submit dữ liệu
thông qua syslog, hoặc có thể bị động chờ hệ thống quét các thay đổi trong cấu
hình của chúng và sau đó forward dữ liệu đến server trung tâm. Server trung tâm
sẽ chịu trách nhiệm giải mã và phân tích các thông tin được gửi đến và chuyển
tiếp kết quả đến Elasticsearch để được index và lưu trữ.

Một Elasticsearch cluster là một tập hợp của một hay nhiều node (server) giao
tiếp với nhau để thực hiện các thao tác đọc và ghi trên các index. Một single-
node Elasticsearch cluster có thể dễ dàng quản lý một hệ thống Wazuh cỡ nhỏ
với khoảng 50 agent đổ lại. Các multi-node Elasticsearch cluster thường được
khuyến cáo khi có một số lượng lớn hệ thống cần giám sát,hay có một lượng dữ
liệu lớn, hoặc những hệ thống có yêu cầu cao về tính sẵn sàng.

Khi mà Wazuh server và Elasticsearch cluster nằm trên các host khác nhau,
Filebeat sẽ chịu trách nhiệm truyền tải các alert hoặc các sự kiện hệ thống đến
các Elasticsearch server bằng giao thức TLS.

Mô hình bên dưới minh họa cách các thành phần của một hệt thống Wazuh.
Trong kiểu triển khai này, các thành phần sẽ được cài đặt trên các Host riêng
biệt. Kibana có thể được cài đặt trên cùng một Host của nút Elasticsearch hoặc
trên một Host riêng biệt. Kiểu triển khai này phù hợp với môi trường sản xuất vì
nó cung cấp tính khả dụng và khả năng mở rộng cao của các dịch vụ.

WAZUH DISTRIBUTED DEPLOYMENT


Các thành phần sẽ được cài đặt:
 Máy chủ Wazuh, bao gồm trình quản lý Wazuh dưới dạng một cụm nút
đơn(single-node) hoặc dưới dạng cụm nhiều nút(multi-node), API Wazuh
và Filebeat.

 Elastic Stack, bao gồm Open Distro cho Elasticsearch dưới dạng một cụm
nút đơn(single-node) hoặc dưới dạng cụm nhiều nút(single-node) và
Kibana, bao gồm cả plugin Wazuh Kibana, trên cùng một máy chủ lưu trữ
như nút Elasticsearch hoặc trên một máy chủ riêng biệt.

Đối với các triển khai Wazuh quy mô nhỏ thì chúng ta sẽ cài đặt và cấu hình
Wazuh server và Elastic Stack trên cùng một máy chủ.
WAZUH ALL-IN-ONE DEPLOYMENT
Các thành phần sau sẽ được cài đặt:
 Wazuh Server, Wazuh Manager dưới dạng một cụm nút đơn(single-node)
và API Wazuh

 Elastic Stack, bao gồm Open Distro cho Elasticsearch dưới dạng một cụm
nút đơn(single-node), Filebeat và Kibana bao gồm cả plugin Wazuh
Kibana

Về cấu hình đề nghị từ Wazuh:


 Tài nguyên cần thiết của Elasticsearch, Logstash và Kibana: 8 cores, tối
thiểu cần 32GB RAM, tối đa cho phép là 64G, dung lượng ổ cứng tối
thiểu 1TB.
 Tài nguyên cần thiết của Wazuh Manager: 4 cores, 16GB RAM , dung
lượng ổ cứng tối thiểu 1TB.

3.1. Giao tiếp Agent – Server

Wazuh Agent liên tục gửi các sự kiện đến máy chủ Wazuh Server để phân
tích và phát hiện mối đe dọa. Để bắt đầu vận chuyển chúng, Agent thiết lập kết
nối với dịch vụ Server để kết nối Agent, dịch vụ này sẽ lắng nghe trên port 1514
(cổng này có thể cấu hình được). Máy chủ Wazuh sau đó giải mã và kiểm tra
rule các sự kiện đã nhận, sử dụng công cụ phân tích. Các sự kiện liên quan đến
quy tắc được tăng cường với dữ liệu cảnh báo như Rule ID và Rule name. Sự
kiện có thể được lưu vào một hoặc cả hai tệp sau, tùy thuộc vào việc quy tắc có
bị chặn hay không:

 /var/ossec/logs/archives/archives.json mọi sự kiện kể cả có vi phạm rule


hay không.
 /var/ossec/logs/alerts/alerts.json các sự kiện vi phạm rule

Alert sẽ bị lặp nếu sử dụng cả 2 file này để tạo các alert. Bên cạnh đó, cả 2 file
này đều chứa các dữ liệu đã được giải mã.
Wazuh message protocol sử dụng mã hóa Blowfish 192-bit với đủ 16-round,
hoặc mã hóa AES 128 bit mỗi block và 256-bit khóa. Có thể đọc thêm bài viết
Benefits of using AES in Wazuh commu - nications để tìm hiểu thêm chi tiết

3.2. Giao tiếp Wazuh – Elastic

Filebeat sẽ định dạng các dữ liệu được gửi tới (có thể tùy chọn gắn thêm
thông tin GeoIP) trước khi gửi chúng đến Elasticsearch (port 9200/TCP). Một
khi dữ liệu đã được index tại Elasticsearch , Kibana (port 5601/TCP) sẽ mining
và trình bày dữ liệu ở phía front-end.
Wazuh App chạy trên Kibana sẽ thường xuyên query dữ liệu qua RESTful API
(port 55000/TCP trên Wazuh manager) để hiển thị cấu hình và các thông tin
trạng thái của các server và agent và có thể thực hiện các yêu cầu khởi động lại
agent khi cần thiết. Giao tiếp này sẽ được mã hóa TLS và xác thực với username
và password.

You might also like