GIỚI THIỆU VỀ WAZUH
Khái niệm
WAZUH là một dự án mã nguồn mở với các chức năng security detection(phát hiện lỗ hổng bảo mật),visibility(tăng cường khả năng quan sát), và compliance monitoring(giám sát tuân thủ các quy định và tiêu chuẩn an ninh thông tin) 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ư:
Hình 1 Các chức năng của WAZUH
• Giám sát ứng dụng là việc theo dõi các hoạt động của các ứng dụng trên hệ thống, bao gồm cả việc kiểm tra tính sẵn sàng, hiệu suất và bảo mật của chúng
• Các hệ thống giám sát thường thu thập thông tin về việc sử dụng tài nguyên của ứng dụng, lưu lượng mạng, các truy cập không hợp lệ hoặc hoạt động đáng ngờ từ các ứng dụng
• User Behavior (Hành vi người dùng):
• Giám sát hành vi người dùng là việc theo dõi cách mà người dùng tương tác với hệ thống, bao gồm cả việc đăng nhập, truy cập vào các tài nguyên và hoạt động trên các ứng dụng và thiết bị
• Mục tiêu là phát hiện các hoạt động bất thường hoặc nguy hiểm từ phía người dùng, như việc sử dụng thông tin đăng nhập bị đánh cắp hoặc cố gắng truy cập vào các tài nguyên không được phép
• File Integrity (Tính toàn vẹn của tập tin):
• Giám sát tính toàn vẹn của tập tin liên quan đến việc theo dõi sự thay đổi trong các tập tin và thư mục trên hệ thống
• Mục tiêu là phát hiện các sự thay đổi không mong muốn hoặc không được phép trên các tập tin quan trọng, có thể chỉ ra một cuộc tấn công hoặc một sự cố bảo mật
• Container & Cloud (Container & Đám mây):
• Trong môi trường hiện đại, việc giám sát các container và môi trường đám mây cũng trở nên quan trọng
• Các công cụ giám sát có thể theo dõi việc triển khai, quản lý và hoạt động của các container và các dịch vụ đám mây, đảm bảo tính ổn định và bảo mật của chúng
• Intrusion Attempts (Cố gắng xâm nhập):
• Theo dõi và phát hiện các cố gắng xâm nhập vào hệ thống hoặc mạng, bao gồm cả các cuộc tấn công từ bên ngoài và từ bên trong
• Các kỹ thuật phát hiện này có thể dựa trên việc theo dõi các hoạt động không hợp lệ như đăng nhập thất bại, quét cổng mạng, hoặc các biểu hiện của các loại tấn công phổ biến như SQL injection, cross-site scripting (XSS), và brute force attacks
• Malware Activity (Hoạt động của phần mềm độc hại):
• Phát hiện và giám sát hoạt động của các phần mềm độc hại trên hệ thống
• Các kỹ thuật phát hiện này có thể bao gồm việc theo dõi các mẫu tập tin có hại, phát hiện các tiến trình hoặc dịch vụ kỳ lạ, và phân tích các hành vi không bình thường của các ứng dụng
• Policy Violations (Vi phạm chính sách):
• Phát hiện các hoạt động không tuân thủ các chính sách bảo mật và quản lý của tổ chức
• Các kỹ thuật phát hiện này có thể bao gồm việc theo dõi việc truy cập vào các tài nguyên cấm, sử dụng các ứng dụng không được phép, hoặc chuyển dữ liệu không an toàn
• Vulnerabilities (Lỗ hổng bảo mật):
• Phát hiện các lỗ hổng bảo mật trong hệ thống và ứng dụng
• Các kỹ thuật phát hiện này có thể bao gồm việc sử dụng các công cụ quét lỗ hổng tự động để tìm ra các lỗ hổng đã được công bố, theo dõi các cập nhật phần mềm, và phân tích các dấu hiệu của các cuộc tấn công có thể sử dụng lỗ hổng đó
• Phản ứng bằng các biện pháp ngăn chặn để ngăn chặn các mối đe dọa và cuộc tấn công tiềm ẩn
• Các biện pháp này có thể bao gồm cấu hình hệ thống, áp dụng chính sách bảo mật, cập nhật phần mềm, và triển khai các giải pháp bảo mật như tường lửa và phần mềm diệt virus
• Thu thập và phân tích dữ liệu để xác định nguyên nhân và phạm vi của một sự cố hoặc cuộc tấn công đã xảy ra
• Các phương tiện pháp y có thể bao gồm việc xem xét log files, giải mã dữ liệu định dạng, và theo dõi lại các hoạt động trên hệ thống và mạng
• Telemetry (Dữ liệu tình hình): // mối đe dọa tiềm ẩn
• Thu thập và phân tích dữ liệu từ nhiều nguồn khác nhau để hiểu rõ hơn về môi trường an ninh và các mối đe dọa tiềm ẩn
• Các dữ liệu tình hình có thể bao gồm thông tin từ các thiết bị mạng, endpoint, ứng dụng, và các dịch vụ bảo mật bên ngoài
• Workflows (Quy trình làm việc):
• Thực hiện các quy trình làm việc và các biện pháp hành động để ứng phó với các sự cố và mối đe dọa an ninh
• Các quy trình này có thể bao gồm việc cấp phát các nhiệm vụ cho nhóm an ninh, triển khai các biện pháp cần thiết để ngăn chặn hoặc xử lý sự cố, và theo dõi tiến trình và kết quả của các biện pháp hành động
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
OSSEC HIDS
OSSEC là một HIDS 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 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(giao thức TTL/SSL) 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 Ở 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ị agentlessnhư firewall, switch, routers, access point, network appliance, …
OpenSCAP
OpenSCAP là trình thông dịch cho chuẩn ngôn ngữ thẩm định OVAL và định dạng cấu hình an ninh hệ thống ECCDF 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
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 Nó cung cấp tính năng lưu trữ và tìm kiếm nhật kí (logs) 1 cách nhanh chóng và tiện lợi
• Kibana: Cung cấp một giao diện web linh hoạt và trực quan cho dò tìm ,phân tích, và trình bày dữ liệu
• 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à đánh chỉ số 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 tài liệu có các đặc trưng tương tự hoặc liên quan đến nhau.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”
KIẾN TRÚC
Wazuh Server
Wazuh server chịu trách nhiệm phân tích dữ liệu gửi từ agent và gửi lại cảnh báo 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 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:
Agent enrollment 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
Filebeat: Filebeat được sử dụng để gửi các sự kiện và cảnh báo đến trình lập chỉ mục Wazuh Filebeat đọc đầu ra của công cụ phân tích Wazuh và vận chuyển các sự kiện trong thời gian thực Filebeat cũng cung cấp cân bằng tải khi được kết nối với cụm chỉ mục Wazuh đa nút
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ụ: source 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 thiết bị đầu 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 Wazuh cluster daemon là thứ mà các máy chủ Wazuh sử dụng để giao tiếp với nhau và giữ đồng bộ hóa( ví dụ khi có 1 lỗ hổng mới của 1 agent cụ thể được phát hiện , lỗ hổng sẽ được cập nhật trên toàn bộ các cụm và toàn hệ thống , nhờ vậy mỗi agent luôn nắm được bức tranh tổng thể về các lỗi hiện có ).
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 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 hoặc đa tiến trình (multiprocessing) để 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)
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áocá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 hỗ trợ thẩm định cấu hình liên tục, sử dụng các tiêu chuẩn có sẵ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:Agent module này quét định kỳ, thu thập các quy ước dữ liệu như phiên bản hệ điều hành, giao diện mạng, tiến trình đang chạy, ứng dụng đã cài đặt và danh sách các cổng mở Kết quả quét được lưu trữ trong cơ sở dữ liệu SQLite cục bộ nên có thể được truy vấn từ xa
• Malware detection: Sử dụng cách tiếp cận non-signature-based, 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 , gửi phản hồi nhằm chặn kết nối mạng, dừng tiến 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 sandbox ( môi trường độc lập để phân tích và theo dõi các tập tin, chương trình tiềm ẩn rủi ro mà không ảnh hưởng tới hệ thống chính) , 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:Agent module này được tích hợp với API Docker Engine để theo dõi các thay đổi trong môi trường lưu trữ cục bộ Ví dụ: nó phát hiện các thay đổi đối với vùng lưu trữ hình ảnh, 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ự động 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.)
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 đượcgiám sát và forward (chuyển tiếp) 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 đánh chỉ mục 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ệ 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 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 lưu trữ mọi sự kiện kể cả có vi phạm rule hay không
• /var/ossec/logs/alerts/alerts.json lưu trữ 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
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ẽ dò tìm 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
Một số dịch vụ được sử dụng để liên lạc với các thành phần của Wazuh Dưới đây là danh sách các cổng mặc định được sử dụng bởi các dịch vụ này
Hình 4 Cổng mặc định của một số dịch vụ
Cả cảnh báo và sự kiện không cảnh báo đều được lưu trữ trong các tệp trên máy chủ Wazuh, ngoài việc được gửi đến trình lập chỉ mục Wazuh Các tệp này có thể được viết ở định dạng JSON (), hoặc định dạng văn bản thuần túy () Các tệp này được nén và ký hàng ngày bằng tổng kiểm MD5, SHA1 và SHA256
CÀI ĐẶT
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 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, đồng thời cung cấp khả năng phân tích và tìm kiếm dữ liệu gần như theo thời gian thực
Hệ điều hành đề xuất: Linux 64-bit Wazuh hỗ trợ các phiên bản hệ điều hành sau:
Hình 6 Hệ điều hành wazuh hỗ trợ
Hình 7 Yêu cầu phần cứng
Hình 8 Yêu cầu dung lượng trống ổ đĩa
Tải xuống trợ lý cài đặt Wazuh và tệp cấu hình curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh curl -sO https://packages.wazuh.com/4.7/config.yml
Chỉnh sửa và thay thế tên nút và giá trị IP bằng tên và địa chỉ IP tương ứng Cần thực hiện việc này cho tất cả các nút
Hình 9 Cấu hình file config.yml
Chạy trợ lý cài đặt Wazuh với tùy chọn generate-config-files để tạo khóa, chứng chỉ và mật khẩu cụm Wazuh cần thiết để cài đặt Bạn có thể tìm thấy những tệp này trong /wazuh-install-files.tar bash wazuh-install.sh generate-config-files
Sao chép tệp wazuh-install-files.tar vào tất cả các máy chủ triển khai phân tán Điều này có thể được thực hiện bằng cách sử dụng tiện ích scp
Chạy trợ lý cài đặt Wazuh với tùy chọn wazuh-indexer và tên node để cài đặt và định cấu hình bộ chỉ mục Wazuh Tên node phải giống với tên được sử dụng trong wazuh- indexer, ví dụ: node-1 bash wazuh-install.sh wazuh-indexer node-1
Khởi tạo cluster: Chạy trợ lý cài đặt Wazuh với tùy chọn start-cluster trên bất kỳ node Wazuh indexer nào để tải thông tin chứng chỉ mới và khởi động cluster bash wazuh-install.sh start-cluster
Chú ý: Bạn chỉ phải khởi tạo cluster một lần, không cần chạy lệnh này trên mọi node
Chạy lệnh sau để lấy mật khẩu admin: tar -axf wazuh-install-files.tar wazuh-install- files/wazuh-passwords.txt -O | grep -P "\'admin\'" -A 1
Chạy lệnh sau để xác nhận rằng quá trình cài đặt thành công Thay thế
Deploy new agent, Chọn hệ điều hành bạn đang sử dụng:
Hình 16 Chọn hệ điều hành
Khai báo server address, có thể sử dụng IP address hoặc FDQN:
Hình 17 Khai báo địa chỉ ip server
Chọn tên cho Agent, có thể để trống (mặc định là default):
Chạy dòng lệnh để tải và cài đặt Agent:
Hình 19 Tải và cài đặt Agent
Hình 21 Agent kết nối tới server thành công
CẤU HÌNH, TẠO LUẬT
Cấu hình
Wazuh agent là một phần mềm được cài đặt trên các hệ thống cần được bảo vệ Agent thu thập dữ liệu từ hệ thống và gửi dữ liệu đến Wazuh server để phân tích Việc cấu hình agent đúng cách là điều cần thiết để đảm bảo Wazuh hoạt động hiệu quả
• Mở file cấu hình agent (/etc/wazuh/agent.conf trên Linux)
• Chỉnh sửa các cài đặt sau: o Wazuh server IP: Địa chỉ IP của Wazuh server o Wazuh server port: Cổng giao tiếp với Wazuh server o Pre-shared key: Khóa bí mật được chia sẻ giữa agent và Wazuh server o Directories to monitor: Danh sách các thư mục cần được giám sát o Files to monitor: Danh sách các file cần được giám sát o Logs to monitor: Danh sách các file log cần được giám sát
Wazuh Server đóng vai trò trung tâm trong hệ thống Wazuh, nhận và phân tích dữ liệu từ các agent, đồng thời tạo cảnh báo khi phát hiện hành vi khả nghi Việc cấu hình Wazuh Server đúng cách giúp đảm bảo hiệu quả hoạt động và khả năng mở rộng của hệ thống
Sửa file cấu hình: /etc/wazuh/ossec.conf
• Cấu hình giao diện mạng: o bind_address: Địa chỉ IP của server o port: Cổng của server
• Cấu hình agent: o active-response: Kích hoạt chức năng phản hồi chủ động o decoders: Danh sách các decoder được sử dụng o disabled_rules: Danh sách các quy tắc bị vô hiệu hóa
• Cấu hình email: o email_alert: Kích hoạt cảnh báo qua email o smtp_server: Máy chủ SMTP o smtp_from: Địa chỉ email người gửi o smtp_to: Danh sách địa chỉ email người nhận
• Cấu hình syslog: o syslog_enabled: Kích hoạt ghi log syslog o syslog_facility: Loại syslog o syslog_level: Mức độ log
Cấu hình Wazuh Indexer (hay còn gọi là Wazuh-ELK) là bước quan trọng để thiết lập hệ thống giám sát bảo mật hiệu quả với Wazuh Dưới đây là các bước cơ bản:
Sửa file cấu hình: /etc/wazuh-indexer.conf
• Cấu hình Elasticsearch: o elasticsearch.url: Địa chỉ IP của Elasticsearch o elasticsearch.port: Cổng của Elasticsearch
• Cấu hình Kibana: o kibana.url: Địa chỉ IP của Kibana o kibana.port: Cổng của Kibana
• Cấu hình Wazuh API: o api.url: Địa chỉ IP của Wazuh API o api.port: Cổng của Wazuh API
• Cấu hình dung lượng ổ cứng: o index.max_bytes: Dung lượng tối đa cho mỗi index (GB) o index.number_of_replicas: Số lượng bản sao lưu cho mỗi index
Wazuh Dashboard là giao diện người dùng web cung cấp cho bạn khả năng giám sát và quản lý hệ thống Wazuh Việc cấu hình Wazuh Dashboard đúng cách giúp bạn dễ dàng theo dõi tình trạng bảo mật, nhận cảnh báo và thực hiện các hành động khắc phục sự cố
Wazuh dashboard bao gồm một tập tin cấu hình nằm ở /usr/share/wazuh- dashboard/data/wazuh/config/wazuh.yml, nơi có thể định nghĩa các giá trị tùy chỉnh cho một số tùy chọn Phần này mô tả tất cả các thiết lập có sẵn trong tập tin này
Tập tin cấu hình hiển thị các giá trị mặc định cho tất cả các tùy chọn khả dụng Ta có thể chỉnh sửa tập tin, bỏ chú thích bất kỳ tùy chọn nào trong số đó và áp dụng các giá trị mong muốn Ta cũng có thể chỉnh sửa các thiết lập này từ bảng điều khiển Wazuh trong Cài đặt > Cấu hình Đây là một ví dụ về cấu hình nhiều máy chủ:
Hình 22 Cấu hình nhiều máy chủ
Tạo luật
Tạo luật của wazuh bao gồm những quy tắc Các quy tắc này được hệ thống sử dụng để phát hiện tấn công, xâm nhập, sử dụng sai phần mềm, vấn đề cấu hình, lỗi ứng dụng, phần mềm độc hại, rootkit, bất thường hệ thống hoặc vi phạm chính sách bảo mật OSSEC cung cấp một bộ quy tắc mặc định nhằm mục đích nâng cao khả năng phát hiện của Wazuh
4.2.1 Cấu trúc cây thư mục tạo luật
Ta có thể tùy chỉnh bộ quy tắc Wazuh để phù hợp với nhu cầu và nâng cao khả năng phát hiện bằng cách sửa đổi các quy tắc và bộ giải mã mặc định, thêm quy tắc và bộ giải mã tùy chỉnh mới Các quy tắc tùy chỉnh sử dụng số ID từ 100000 đến 120000 Để thêm mới các quy tắc và bộ giải mã thì cần sửa file local_decoder.xml và local_rules.xml
Hình 23 Tạo luật mặc định của Wazuh
4.2.1 Thêm mới bộ quy tắc và giải mã
Ta có thể thêm bộ giải mã mới vào /var/ossec/etc/decoders/local_decoder.xml để giải mã log
Hình 24 Thêm bộ giải mã mới
Ta có thể thêm quy tắc vào /var/ossec/etc/rules/local_rules.xml
Hình 25 Thêm quy tắc mới
Có thể thay đổi quy tắc Wazuh mặc định Đầu tiền sao chép các quy tắc vào một tệp trong thư mục/var/ossec/etc/rules/, thực hiện các thay đổi cần thiết và thêm overwrite="yes"thẻ vào các quy tắc đã sửa đổi
Mở tệp quy tắc /var/ossec/ruleset/rules/0095-sshd_rules.xml
Tìm và sao chép định nghĩa quy tắc cho id quy tắc 5710:
Dán định nghĩa quy tắc đã sao chép vào /var/ossec/etc/rules/local_rules.xml Sửa đổi giá trị cấp độ và thêm overwrite="yes"để cho biết rằng quy tắc này sẽ ghi đè quy tắc đã được xác định
Hình 27 Quy tắc 5710 sau khi thay đổi
4.2.4 Thay đổi bộ giải mã Để thay đổi bộ giải mã mặc định, có thể ghi lại tệp của nó trong thư mục/var/ossec/etc/decoders, thực hiện các thay đổi và loại trừ tệp bộ giải mã gốc khỏi danh sách
Ví dụ cấu hình phòng chống tấn công SQL injection:
Bước 1: Ở máy agent ubuntu cập nhật các gói cục bộ: sudo apt update sudo apt install apache2
Bước 2: Cài đặt máy chủ web Apache: sudo systemctl status apache2
Bước 3: Sử dụng curl lệnh hoặc mở http:// trong trình duyệt để xem trang đích Apache và xác minh cài đặt: curl http://
Bước 4: Thêm các dòng sau vào tệp cấu hình /var/ossec/etc/ossec.conf của Wazuh agent Điều này cho phép Wazuh agent giám sát các nhật ký truy cập của máy chủ Apache của bạn:
syslog
/var/log/apache2/access.log
Câu lệnh cho phép Wazuh agent giám sát các nhật ký truy cập của máy chủ Apache Bước 4: Khởi động lại máy Agent Ubuntu để cập nhật thay đổi các cấu hình: sudo systemctl restart wazuh-agent
KỊCH BẢN TẤN CÔNG
Tấn công Brute-force
Brute-force là phương thức tấn công để có được quyền truy cập trái phép vào các điểm cuối và dịch vụ, phổ biến là tấn công vào SSH trên Linux endpoint hoặc RDP trên Windows endpoint
Với kịch bản tấn công này, chúng ta có máy Wazuh Server để giám sát, thu thập log, phân tích và hiển thị cảnh báo cho máy agent là Ubuntu 22.04 Máy Attacker là máy Window thực hiện tấn công lên máy Ubuntu qua giao thức SSH
Máy tấn công sử dụng công cụ Hydra là công cụ tấn công mạnh mẽ Để tấn công, người tấn công sẽ tạo ra 2 file là username và password, trong 2 file này lưu danh sách ký tự dùng để đoán username và password Người tấn công dùng lệnh
• Nếu đã biết username: hydra -l sonnv -P passwords.txt 192.168.52.157 ssh sonnv: tên đăng nhập máy Ubuntu
192.168.52.157: Đây là địa chỉ ip máy linux bị tấn công
• Nếu chưa biết user - name: hydra -l username.txt -P passwords.txt 192.168.52.157 ssh
Lúc này wazuh sẽ thu thập log hành động đăng nhập và phân tích Ví dụ như đăng nhập sai liên tục 5 lần sẽ cảnh báo mức độ nguy hiểm lv5 (tuỳ vào người dùng cấu hình), đăng nhập sai liên tục rất nhiều lần sẽ cảnh báo mức độ nguy hiểm lv10 cho máy agent Khi đó wazuh sẽ ngăn chặn cuộc tấn công bằng cách chặn địa chỉ ip tấn công.
Tấn công SQL Injection
SQL Injection là tấn công chèn mã độc dựa trên các chuỗi cú pháp thực thi truyền đến máy chủ cơ sở dữ liệu Kết quả của tấn công SQL Injection thành công sẽ cho phép truy cập trái phép vào thông tin bí mật có trong cơ sở dữ liệu
Với kịch bản tấn công này, chúng ta có máy Wazuh Server để giám sát, thu thập log, phân tích và hiển thị cảnh báo cho máy agent là Ubuntu 22.04.Máy Attacker là máy Window
Với máy agent ubuntu sẽ cập nhật gói cục bộ, cài đặt máy chủ web apache 2 Máy Attacker thực hiện tấn công SQL injection bằng công cụ Hydra curl -XGET "http:///users/?id=SELECT+*+FROM+users";
Khi đó wazuh server phân tích log và đưa ra cảnh báo về cuộc tấn công
Tấn công Shell Shock
Tấn công Shellshock là một loại tấn công mạng nhắm vào lỗ hổng bảo mật trong trình Bash, một chương trình xử lý dòng lệnh phổ biến trên các hệ thống Unix và Linux
Lỗ hổng này cho phép kẻ tấn công thực thi mã độc hại trên máy tính mục tiêu bằng cách khai thác các biến môi trường được thiết lập độc hại
Với kịch bản tấn công này, chúng ta có máy Wazuh Server để giám sát, thu thập log, phân tích và hiển thị cảnh báo cho máy agent là Ubuntu 22.04.Máy Attacker là máy Window
Với máy agent ubuntu sẽ cập nhật gói cục bộ, cài đặt máy chủ web apache 2 Máy Attacker thực hiện tấn công Shellshock bằng công cụ Hydra với câu lệnh: sudo curl -H "User-Agent: () { :; }; /bin/cat /etc/passwd"
Khi đó wazuh server phân tích log và đưa ra cảnh báo về cuộc tấn công