Professional Documents
Culture Documents
L P 02 - Nhóm 13
L P 02 - Nhóm 13
1
BẢNG PHÂN CÔNG CÔNG VIỆC
Nguyễn Văn Sơn Kịch bản tấn công, Báo cáo, Demo
2
LỜI NÓI ĐẦU
Kính gửi cô, em xin gửi đến cô bản báo cáo bài tập lớn về chủ đề "Hệ thống phát hiện
tấn công đột nhập Wazuh" mà nhóm em đã hoàn thành. Báo cáo này là sản phẩm của sự
nỗ lực và cống hiến của các thành viên trong nhóm, trong quá trình hợp tác và cùng nhau
nghiên cứu chủ đề này.
Nhóm được hình thành trong môn học an toàn bảo mật hệ thống thông tin , chúng em
đã cùng nhau thảo luận, chia sẻ ý tưởng và đề xuất các giải pháp để thực hiện bài tập
lớn. Mỗi thành viên trong nhóm đã nỗ lực hết mình để đạt được kết quả tốt nhất. Trong
quá trình làm việc, nhóm đã đối mặt rất nhiều khó khăn. Tuy nhiên, nhờ sự kiên nhẫn
và tinh thần hợp tác của toàn bộ thành viên, chúng em đã vượt qua được những trở ngại
và hoàn thành bài tập. Chúng em đã dành nhiều tuần nghiên cứu, phát triển và thử
nghiệm để mang đến một sản phẩm tối ưu và hiệu quả.
Wazuh là lựa chọn lý tưởng cho các tổ chức muốn có một giải pháp SIEM và XDR miễn
phí, tiết kiệm chi phí cho phần mềm an ninh mạng. Nền tảng mã nguồn mở này mang
đến sự linh hoạt và khả năng tùy chỉnh theo nhu cầu cụ thể, đồng thời được hỗ trợ bởi
cộng đồng lớn các nhà phát triển và người dùng. Giao diện đơn giản và dễ sử dụng của
Wazuh giúp chúng ta dễ dàng triển khai và quản lý hệ thống bảo mật mạng của mình.
Nhóm chúng em hiểu rằng báo cáo này chỉ có ý nghĩa thực sự khi nó được nhận xét và
đánh giá bởi cô. Chúng em rất mong muốn nhận được sự phản hồi, nhận xét, và hướng
dẫn từ cô để chúng em có thể phát triển và hoàn thiện kiến thức của mình.
Chúng em xin chân thành cảm ơn cô vì sự tận tâm và động viên trong suốt quá trình
thực hiện bài tập lớn này. Chúng em hy vọng rằng báo cáo này sẽ mang lại giá trị và
hữu ích cho cô.
Chúng em cảm ơn cô!
3
MỤC LỤC
5
CHƯƠNG 1. GIỚI THIỆU VỀ WAZUH
6
• 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.
Detection(Phát hiện):
Response(phản hồi):
7
• 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.
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ét cạn. 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 và
báo cáo các cuộc tấn công brute-force mà còn có thể tắt chúng.
1.3. 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.
8
1.4. 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”
9
CHƯƠNG 2. KIẾN TRÚC
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.
10
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ó ).
11
Hình 2. WAZUH AGENT
• 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.
12
• 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.)
13
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ụ.
14
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.
15
2.3.4. Archival data storage
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.
16
CHƯƠNG 3. CÀI ĐẶT
17
Hình 8. Yêu cầu dung lượng trống ổ đĩa
18
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ế
<ADMIN_PASSWORD bằng mật khẩu nhận được từ đầu ra của lệnh. Thay thế
<WAZUH_INDEXER_IP> bằng địa chỉ IP của Wazuh indexer đã định cấu hình:
19
Thay thế <WAZUH_INDEXER_IP> và <ADMIN_PASSWORD>, rồi chạy lệnh sau để
kiểm tra xem cụm có hoạt động chính xác hay không:
curl -k -u admin:<ADMIN_PASSWORD>
https://<WAZUH_INDEXER_IP>:9200/_cat/nodes?v
Bây giờ bạn đã cài đặt và cấu hình Wazuh. Tìm tất cả mật khẩu mà trợ lý cài đặt Wazuh
đã tạo trong tệp wazuh-passwords.txt bên trong kho lưu trữ wazuh-install-files.tar. Để
in chúng, hãy chạy lệnh sau:
tar -O -xvf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt
20
Truy cập giao diện web Wazuh bằng thông tin đăng nhập của bạn.
URL: https://<wazuh-dashboard-ip>
Username: admin
Password: <ADMIN_PASSWORD>
Khi bạn truy cập bảng Wazuh dashboard lần đầu tiên, trình duyệt sẽ hiển thị cảnh báo
cho biết chứng chỉ không được cấp bởi cơ quan đáng tin cậy.
21
Hình 14. Wazuh sẽ tiến hành health check hệ thống
Hoàn tất quá trình cài đặt Wazuh server:
Hình 15. Hoàn tất quá trình cài đặt Wazuh Server
22
3.4. Cài đặt Wazuh agent
Truy cập Wazuh server chọn Agent -> Deploy new agent, Chọn hệ điều hành bạn đang
sử dụng:
23
Chọn tên cho Agent, có thể để trống (mặc định là default):
24
Hình 21. Agent kết nối tới server thành công
25
CHƯƠNG 4. CẤU HÌNH, TẠO LUẬT
26
4.1.3. Cấu hình Wazuh Indexer
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
27
4.2 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.
28
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
29
Hình 26. 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.
30
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://<UBUNTU_IP> trong trình duyệt để xem
trang đích Apache và xác minh cài đặt:
curl http://<UBUNTU_IP>
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:
<localfile>
<log_format>syslog</log_format>
<location>/var/log/apache2/access.log</location>
</localfile>
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
31
CHƯƠNG 5. KỊCH BẢN TẤN CÔNG
32
5.3. 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" <WEBSERVER-IP>
Khi đó wazuh server phân tích log và đưa ra cảnh báo về cuộc tấn công.
33
KẾT LUẬN
Wazuh là một giải pháp giám sát an ninh miễn phí, mã nguồn mở được sử dụng để bảo
vệ an ninh, phát hiện mối đe dọa, giám sát toàn vẹn và ứng phó sự cố, được phát triển
dựa trên nền tảng OSSEC HIDS, tích hợp với OpenSCAP và Elastic Stack, tạo nên một
hệ thống mạnh mẽ và linh hoạt.
Wazuh trở nên phổ biến với những ưu điểm nổi bật như miễn phí và mã nguồn mở, dễ
dàng triển khai và sử dụng, hỗ trợ đa dạng điều hành và thiết bị, bao gồm Linux,
Windows, macOS, Solaris, BSD, v.v., giúp bảo vệ toàn diện môi trường CNTT của tổ
chức. Ngoài ra Wazuh còn có tính năng bảo mật tiên tiến và cộng đồng hỗ trợ mạnh mẽ
luôn sẵn sàng hỗ trợ và cung cấp tài nguyên phong phú.
Tuy nhiên, Wazuh cũng có một số hạn chế như yêu cầu kiến thức chuyên môn để cấu
hình và quản lý, khó khăn khi triển khai ở quy mô lớn về mặt kỹ thuật và quản lý cũng
như hiệu suất có thể bị ảnh hưởng bởi số lượng dữ liệu được giám sát.
34
TÀI LIỆU THAM KHẢO
35