Chào mọi người,
Hôm nay team sẽ chia sẻ với mọi người một mã nguồn mở mới cùng với đó khá nhiều tính năng và có tính ứng dụng cao. Bài viết sẽ hơi dài, mong mọi người đọc hết và hy vọng sẽ đem lại kiến thức mới cho mọi người. Chúng ta sẽ tìm hiểu về Wazuh và khả năng mở rộng, truy xuất dữ liệu lớn theo thời gian thực của Wazuh indexer ( Thuật toán Elasticsearch).
Giới thiệu Wazuh
- Wazuh là một nền tảng bảo mật mã nguồn mở và miễn phí hợp nhất các khả năng của XDR và SIEM. Nó bảo vệ khối lượng công việc trên các môi trường tại chỗ, ảo hóa, vùng chứa và dựa trên đám mây.
- Wazuh cung cấp các tính năng để phát hiện các mối đe dọa phổ biến như tấn công từ chối dịch vụ (DoS), tấn công dò tìm xung đột (port scan), tấn công tìm lỗ hổng (vulnerability scan) và tấn công tràn đổ bộ nhớ đệm (buffer overflow).
- Wazuh có 4 thành phần chính:
- Wazuh indexer là một công cụ phân tích và tìm kiếm toàn văn bản có khả năng mở rộng cao. Thành phần này lập các chỉ mục và lưu trữ dữ liệu cảnh báo do máy chủ wazuh tạo ra, đồng thời cung cấp khả năng phân tích và tìm kiếm dữ liệu theo thời gian thực. Wazuh indexer được cấu hình dưới dạng cụm nút hoặc nhiều nút, cung cấp khả năng mở rộng và tính sẵn sàng cao. Wazuh indexer lưu trữ dữ liệu dưới dạng Json.
- Wazuh server có nhiệm vụ phân tích dữ liệu nhận được từ các agents. Wazuh server xử lí thông qua bộ giải mã và quy tắc, sử dụng thông tin tình báo về mối đe dọa để tìm kiếm các chỉ số thỏa hiệp (IOC). Wazuh server phân tích dữ liệu nhận được từ các agents, kích hoạt cảnh báo khi phát hiện thấy các mối đe dọa hoặc sự bất thường. Wazuh server sử dụng các nguồn thông tin tình báo như MITRE ATT&CK và tuân thủ các quy định như PCI DSS, GDPR, HIPAA, CIS, NIST 800-53. Wazuh server cũng có thể tích hợp với các phần mềm bên ngoài như ServiceNow, Jira và PagerDuty, Slack.
- Bảng điều khiển Wazuh là giao diện người dùng web linh hoạt và trực quan để khai thác, phân tích trực quan hóa dữ liệu cảnh báo các sự kiện bảo mật. Nó cũng được sử dụng để quản lý, giám sát nền tảng Wazuh. Ngoài ra, nó cung cấp các tính năng cho kiểm soát truy cập dựa trên vai trò (RBAC) và đăng nhập một lần (SSO).
- Wazuh agent có thể chạy hầu hết trên các hệ điều hành: Linux, Window, macOs, Solaris, AIX,… Wazuh agent giúp bảo vệ hệ thống của bạn bằng cách cung cấp khả năng ngăn chặn, phát hiện và phản hồi mối đe dọa. Nó cũng được sử dụng để thu thập các loại dữ liệu ứng dụng, dữ liệu hệ thống khác nhau rồi chuyển tiếp đến máy chủ Wazuh thông qua một kênh được mã hóa và xác thực.
Chi tiết thành phần Wazuh
1. Wazuh indexer
- Wazuh indexer là một công cụ phân tích và tìm kiếm toàn văn bản có khả năng mở rộng cao. Thành phần trung tâm này lập chỉ mục và lưu trữ các cảnh báo do máy chủ Wazuh tạo ra.
- Wazuh indexer được lưu trữ dưới dạng Json. Mỗi tài liệu tương ứng với một bộ khóa, tên trường hoặc thuộc tính, với các giá trị tương ứng của chúng có thể là chuỗi, số, booleans, ngày, mảng giá trị, vị trí địa lý hoặc các loại dữ liệu khác.
Định nghĩa | |
wazuh‑alerts | Lưu trữ các cảnh báo được tạo bởi máy chủ Wazuh. Chúng được tạo mỗi khi một sự kiện vượt qua quy tắc có mức độ ưu tiên đủ cao (có thể định cấu hình). |
wazuh‑archives | Lưu trữ tất cả các sự kiện (dữ liệu lưu trữ) mà máy chủ Wazuh nhận được, cho dù chúng có vi phạm quy tắc hay không. |
wazuh‑monitoring | Lưu trữ dữ liệu liên quan đến trạng thái Wazuh agent theo thời gian. Nó được giao diện web sử dụng để biểu thị thời điểm đang hoặc đã Hoạt động, ngắt kết nối hoặc chưa bao giờ được kết nối. |
wazuh‑statistics | Lưu trữ dữ liệu liên quan đến hiệu suất của Wazuh server, được giao diện web sử dụng để biểu thị thống kê hiệu suất. |
Hình ảnh mô tả chức năng wazuh indexer
- Wazuh indexer cho phép bạn tương tác thông qua REST API, cung cấp các tính năng linh hoạt: tìm kiếm, thêm, sửa xóa, đổi chỉ mục,…
INPUT |
GET /wazuh-alerts-4.x-*/_search
{ “query”: { “bool”: { “must”: [ {“term”: { “rule.mitre.tactic”: “Lateral Movement” } }, {“term”: { “rule.mitre.technique”: “SSH” } } ] } }, “sort”: [ { “timestamp”: { “order”: “desc” } } ], “size”: 1 } |
OUTPUT |
{
“timestamp” : “2022-04-24T17:24:56.110+0000”, “agent” : { “ip” : “10.0.1.52”, “name” : “Amazon”, “id” : “001” }, “data” : { “srcip” : “68.183.216.91”, “srcport” : “53820” }, “rule” : { “description” : “sshd: insecure connection attempt (scan).”, “id” : “5706”, “level” : 6, “pci_dss” : [“11.4”], “mitre” : { “technique” : [ “SSH” ], “id” : [“T1021.004”], “tactic” : [ “Lateral Movement” ] } }, “full_log” : “Apr 24 17:24:55 ip-10-0-1-52 sshd[32179]: Did not receive identification string from 68.183.216.91 port 53820”, “location” : “/var/log/secure”, “predecoder” : { “hostname” : “ip-10-0-1-52”, “program_name” : “sshd”, “timestamp” : “Apr 24 17:24:55” }, “decoder” : { “parent” : “sshd”, “name” : “sshd” }, “GeoLocation” : { “city_name” : “Frankfurt am Main”, “country_name” : “Germany”, “region_name” : “Hesse” } } |
ví dụ về truy vấn tới Wazuh indexer trả về cảnh báo hành động đầu cuối qua SSH
- Wazuh indexer rất thích hợp cho các tình huống nhạy cần thời gian phản ứng nhanh như phân tích bảo mật và giám sát cơ sở hạ tầng vì nó có thời gian tìm kiếm gần với thời gian thực.
- Ngoài tốc độ, khả năng mở rộng và khả năng phục hồi, wazuh indexer cũng cung cấp một số tính năng khác như: cảnh báo, phát hiện bất thường,…
2. Wazuh server
- Wazuh server sử dụng công cụ phân tích, API RESTful Wazuh, dịch vụ đăng kí máy khách, dịch vụ kết nối, cụm deamon wazuh và Filebeat.
- Wazuh server được cài trên hệ điều hành Linux và thường chạy trên máy vật lý độc lập, máy ảo, docker hoặc phiên bản đám mây.
Sơ đồ mô tả các thành phần của wazuh server
3. Wazuh dashbroad
-
- là giao diện người dùng web linh hoạt và trực quan để khai thác, phân tích và trực quan hóa dữ liệu cảnh báo và sự kiện bảo mật. Nó cũng được sử dụng để quản lý và giám sát nền tảng Wazuh. Ngoài ra, nó cung cấp các tính năng cho kiểm soát truy cập dựa trên vai trò (RBAC) và đăng nhập một lần (SSO).
- Trực quan hóa và phân tích dữ liệu
- Giao diện web giúp người dùng điều hướng qua các loại dữ liệu khác nhau do tác nhân Wazuh thu thập, cũng như các cảnh báo bảo mật do máy chủ Wazuh tạo ra. Người dùng cũng có thể tạo báo cáo, tạo bảng điều khiển và trực quan hóa các tùy chỉnh.
-
- Giám sát và cấu hình
- Bảng điều khiển Wazuh cho phép người dùng quản lý cấu hình agent và theo dõi trạng thái của họ.
- Ví dụ: đối với mỗi điểm cuối được giám sát, người dùng có thể xác định mô-đun tác nhân nào sẽ được bật, tệp nhật ký nào sẽ được đọc, tệp nào sẽ được giám sát để thay đổi tính toàn vẹn hoặc kiểm tra cấu hình nào sẽ được thực hiện.
- Giám sát và cấu hình
-
- Quản lí nền tảng
- Bảng điều khiển Wazuh cung cấp giao diện người dùng dành riêng để quản lý việc triển khai Wazuh của bạn. Điều này bao gồm theo dõi trạng thái, nhật ký và số liệu thống kê của các thành phần Wazuh khác nhau. Nó cũng bao gồm việc định cấu hình máy chủ Wazuh, đồng thời tạo các quy tắc và bộ giải mã tùy chỉnh để phân tích nhật ký và phát hiện mối đe dọa.
- Quản lí nền tảng
- Công cụ phát triển
- Bảng điều khiển Wazuh bao gồm một công cụ Kiểm tra bộ quy tắc có thể xử lý các thông báo nhật ký để kiểm tra cách nó được giải mã và liệu nó có phù hợp với quy tắc phát hiện mối đe dọa hay không. Tính năng này đặc biệt hữu ích khi bộ giải mã và quy tắc tùy chỉnh đã được tạo và người dùng muốn kiểm tra chúng.
-
- Bảng điều khiển Wazuh cũng bao gồm Bảng điều khiển API để người dùng tương tác với API Wazuh. Điều này có thể được sử dụng để quản lý việc triển khai Wazuh (ví dụ: quản lý cấu hình máy chủ hoặc tác nhân, theo dõi trạng thái và thông báo nhật ký, thêm hoặc xóa tác nhân,…
4. Wazuh agent
- Wazuh agent chạy trên Linux, Windows, macOS, Solaris, AIX và các hệ điều hành khác và có thể được triển khai cho máy tính xách tay, máy tính để bàn, máy chủ, phiên bản đám mây, bộ chứa hoặc máy ảo.
- Wazuh agent giúp bảo vệ hệ thống của bạn bằng cách cung cấp khả năng ngăn chặn, phát hiện và phản hồi mối đe dọa. Nó cũng được sử dụng để thu thập các loại dữ liệu ứng dụng, dữ liệu hệ thống khác nhau mà nó chuyển tiếp đến máy chủ Wazuh thông qua một kênh được mã hóa và xác thực.
- Wazuh agent có các chức năng như:
- Log collector: Thu thập các thông báo, sự kiện của hệ điều hành. Bộ thu thập cũng hỗ trợ bộ lọc XPath cho các sự kiện Windows và nhận dạng các định dạng nhiều dòng Linux Audit logs. Nó cũng có thể bổ sung thêm các sự kiện JSON bằng siêu dữ liệu bổ sung.
- Command execution: Các tác nhân chạy các lệnh được ủy quyền theo định kỳ, thu thập đầu ra của chúng và báo cáo lại cho máy chủ Wazuh để phân tích thêm.
- 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 thay đổi trong 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ó sẽ 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 FIM 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 và cho phép chạy các truy vấn 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 sẵn dùng dựa trên các điểm chuẩn của Trung tâm An ninh Internet (CIS). Người dùng cũng có thể tạo các kiểm tra SCA của riêng mình để theo dõi và thực thi các chính sách bảo mật dành riêng cho hệ thống của mình.
- System inventory: Mô-đun tác nhân này chạy quét định kỳ, thu thập dữ liệu kiểm kê như phiên bản hệ điều hành, giao diện mạng, quy trình đang chạy, ứng dụng đã cài đặt và danh sách các cổng đang mở. Kết quả quét được lưu trữ trong cơ sở dữ liệu SQLite cục bộ có thể được truy vấn từ xa.
- 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. Ngoài ra, nó tìm kiếm các quy trình ẩn, tệp ẩn và cổng ẩn trong khi giám sát các cuộc gọi hệ thống.
- Active response: Mô-đun này chạy các hành động tự động khi phát hiện thấy các mối đe dọa, kích hoạt các phản hồi để chặn kết nối mạng, dừng một quy trình đang chạy hoặc xóa một tệp độc hại. Người dùng cũng có thể tạo các phản hồi tùy chỉnh khi cần thiết.
- Container security monitoring: Mô-đun tác nhân này được tích hợp với Docker Engine API để giám sát các thay đổi trong môi trường được chứa.
- 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.
Ngoài ra, Wazuh agent còn có nhiệm vụ kết nối với wazuh server và gửi đi các dữ liệu đã thu thập ,sự kiện liên quan đến bảo mật. Giao tiếp giữa wazuh server và wazuh agent diễn ra qua kênh bảo mật (TCP hoặc UDP), cung cấp mã hóa và giải nén trong thời gian thực.
Phân tích khả năng mở rộng và truy xuất dữ liệu lớn theo thời gian thực của Wazuh indexer
- Wazuh indexer là là một tập hợp gồm một hoặc nhiều nút giao tiếp với nhau để thực hiện các thao tác đọc và ghi trên các chỉ mục. Các triển khai Wazuh nhỏ, không yêu cầu xử lý lượng dữ liệu lớn, có thể dễ dàng được xử lý bởi một cụm nút đơn. Các cụm nhiều nút được khuyến nghị khi có nhiều điểm cuối được giám sát, khi dự đoán khối lượng dữ liệu lớn hoặc khi cần tính sẵn sàng cao.
- Wazuh indexer sử dụng Elasticsearch, một cơ sở dữ liệu phân tán và lưu trữ dựa trên mã nguồn mở, để lưu trữ dữ liệu log và sự kiện. Dựa trên điều đó, Wazuh indexer có khả năng mở rộng vô hạn theo chiều ngang đồng thời cung câp khả năng truy xuất cao và cân bằng tải.
- Đặc điểm Elasticsearch:
- Elasticsearch là một search engine.
- Elasticsearch được phát triển dựa trên nền tảng Lucene Apache.
- Elasticsearch thực chất hoặt động như 1 web server, có khả năng tìm kiếm nhanh chóng (near realtime) thông qua giao thức RESTful.
- Elasticsearch có khả năng phân tích và thống kê dữ liệu.
- Elasticsearch có thể chạy trên server riêng và đồng thời giao tiếp thông qua RESTful do vậy nên nó không phụ thuộc vào client viết bằng gì hay hệ thống hiện tại của bạn viết bằng gì. Nên việc tích hợp nó vào hệ thống bạn là dễ dàng, bạn chỉ cần gửi request http lên là nó trả về kết quả.
- Elasticsearch hoạt động như một Cloud Server.
- Elasticsearch là hệ thống phân tán và có khả năng mở rộng tuyệt vời (horizontal scalability). Lắp thêm node cho nó là nó tự động auto mở rộng cho bạn.
- Elasticsearch là 1 open source được phát triển bằng Java.
- Wazuh server sử dụng node và cluster để lữu trữ:
- Node :
- Là trung tâm hoạt động của Elasticsearch. Là nơi lưu trữ dữ liễu ,tham gia thực hiện đánh indexcúa cluster cũng như thực hiện các thao tác tìm kiếm.
- Mỗi nodeđược định danh bằng 1 unique name.
- Cluster :
- Tập hợp các nodeshoạt động cùng với nhau, chia sẽ cùng thuộc tính name. Chính vì thế Cluster sẽ được xác định bằng 1 ‘unique name’. Việc định danh các cluster trùng tên sẽ gây nên lỗi cho các node vì vậy khi setup các bạn cần hết sức chú ý điểm này.
- Mỗi cluster có một nodechính (master), được lựa chọn một cách tự động và có thể thay thế nếu sự cố xảy ra. Một cluster có thể gồm 1 hoặc nhiều nodes. Các nodes có thể hoạt động trên cùng 1 server.
- Tuy nhiên trong thực tế, một clustersẽ gồm nhiều nodes hoạt động trên các server khác nhau để đảm bảo nếu 1 server gặp sự cố thì server khác (node khác) có thể hoạt động đầy đủ chức năng so với khi có 2 servers. Các node có thể tìm thấy nhau để hoạt động trên cùng 1 cluster qua giao thức unicast.
- Node :
- Tuy nhiên, ElasticSearch có nhược điểm là không có khái niệm database transaction, tức là nó không đảm bảo được toàn vẹn dữ liệu trong các hoạt động tác động đến dữ liệu trong bảng: Insert, Update, Delete. Vì vậy, Wazuh Indexer sẽ chỉ có chức nhận dữ liệu từ Logstash và Filebeat mà không có thể sửa, xóa để tránh sự mất mát dữ liệu.
=>Dựa trên những điều trên, Wazuh indexer là một thành phần không thể thiếu trong hệ thống wazuh, nó đảm bảo sự mở rộng, cân bằng tải, truy xuất theo thời gian thực. Điều mà rất cần thiết cho một máy chủ kiểm soát xâm nhập.
Kết quả đạt được:
Hiện tại khi chạy demo trong môi trường 1 máy ảo server và 2 máy ảo win10, Wazuh cho ra phản hồi rất tốt theo thời gian thực. Các cảnh báo, log được cập nhật liên tục trên dashbroad.
Wazuh cũng đang cập nhập thêm nhiều tính năng với trong các bản cập nhật gần đây.
Tóm lại, Wazuh là hệ thống có tính chịu tải tốt, có tính real-time và có khung hoạt động rõ ràng kèm với giao diện trực quan giúp quản trị viên có thể dễ dàng kiểm soát được các hành vi vi phạm của các agent.
Cảm ơn mọi người đã đọc bài chia sẻ và mong nhận được sự ủng hộ từ mọi người. ^^