Tăng cường phòng thủ: Giám sát an ninh với Wazuh (Phiên bản phát triển từ OSSEC)

Security tutorial - IT technology blog
Security tutorial - IT technology blog

Bắt đầu Nhanh: Cài đặt và Chạy Wazuh chỉ trong 5 Phút

Bạn có nhớ cảm giác chùng xuống khi kiểm tra nhật ký và nhận ra có điều gì đó bất chính đang gõ cửa hệ thống của mình không? Đối với tôi, đó là đêm máy chủ của tôi bị tấn công brute-force SSH vào lúc nửa đêm. Đó là lý do tại đó tôi ưu tiên bảo mật ngay từ khâu thiết lập ban đầu. Và một phần quan trọng của điều đó là giám sát an ninh chủ động.

Hôm nay, tôi sẽ hướng dẫn bạn cách thiết lập Wazuh, một nền tảng bảo mật mã nguồn mở mạnh mẽ, ra đời từ OSSEC. Hãy nghĩ nó như vệ sĩ kỹ thuật số của bạn, liên tục theo dõi các hệ thống của bạn. Chúng ta sẽ kết nối một agent cơ bản với một manager chỉ trong vài bước.

1. Thiết lập Wazuh Manager (Tất cả trong Một)

Để triển khai ngay lập tức, chúng ta sẽ cài đặt Wazuh manager, indexer và dashboard tất cả trên một máy Linux duy nhất. Phương pháp ‘tất cả trong một’ này hoạt động tốt cho các môi trường nhỏ hoặc các thiết lập proof-of-concept. Tôi sẽ giả định bạn đang sử dụng một máy chủ Ubuntu 22.04 LTS mới.

Đầu tiên, nhập khóa GPG của Wazuh và thêm kho lưu trữ Wazuh:

sudo apt update
sudo apt install curl apt-transport-https -y
curl -sO https://packages.wazuh.com/key/GPG-KEY-WAZUH
sudo apt-key add GPG-KEY-WAZUH
echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee -a /etc/apt/sources.list.d/wazuh.list

Sau đó, cài đặt Wazuh manager, indexer và dashboard:

sudo apt update
sudo WAZUH_VERSION=4.7.2 apt install wazuh-manager wazuh-indexer wazuh-dashboard -y

Sau khi các gói đã được cài đặt, bước tiếp theo của bạn là tạo chứng chỉ tự ký cho indexer và dashboard. Sau đó, bạn cần triển khai chúng. Khi tạo, hãy đảm bảo điều chỉnh địa chỉ IP để phản ánh IP thực của manager của bạn.

/usr/share/wazuh-indexer/bin/indexer-certs-tool.sh -ip <MANAGER_IP>
mv admin-key.pem admin.pem ca.pem certs.zip /etc/wazuh-indexer/
cd /etc/wazuh-indexer/
unzip certs.zip
chmod 500 admin-key.pem admin.pem
chmod 400 ca.pem
chown wazuh-indexer:wazuh-indexer admin-key.pem admin.pem ca.pem
rm certs.zip

Bây giờ, hãy kích hoạt và khởi động các dịch vụ:

sudo systemctl daemon-reload
sudo systemctl enable wazuh-indexer wazuh-manager wazuh-dashboard
sudo systemctl start wazuh-indexer wazuh-manager wazuh-dashboard

Hãy đợi vài phút để tất cả các dịch vụ khởi động. Bạn có thể truy cập Bảng điều khiển Wazuh (Wazuh Dashboard) tại https://<MANAGER_IP>. Thông tin đăng nhập mặc định là admin cho cả tên người dùng và mật khẩu. Hãy thay đổi điều này ngay lập tức!

2. Cài đặt Wazuh Agent trên máy khách

Bây giờ, hãy cài đặt một agent trên hệ thống bạn muốn giám sát, ví dụ như một máy chủ Ubuntu khác.

sudo apt update
sudo apt install curl apt-transport-https -y
curl -sO https://packages.wazuh.com/key/GPG-KEY-WAZUH
sudo apt-key add GPG-KEY-WAZUH
echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee -a /etc/apt/sources.list.d/wazuh.list
sudo apt update
sudo WAZUH_VERSION=4.7.2 apt install wazuh-agent -y

Tiếp theo, cấu hình agent để kết nối với Wazuh manager của bạn. Chỉnh sửa /var/ossec/etc/ossec.conf và thay đổi địa chỉ IP của <manager>:

<ossec_config>
  ...
  <client>
    <server>
      <address><MANAGER_IP></address>
      <port>1514</port>
      <protocol>udp</protocol>
    </server>
  ...
</ossec_config>

Cuối cùng, kích hoạt và khởi động agent:

sudo systemctl daemon-reload
sudo systemctl enable wazuh-agent
sudo systemctl start wazuh-agent

Sau vài phút, bạn sẽ thấy agent của mình xuất hiện trong Bảng điều khiển Wazuh (Wazuh Dashboard) dưới mục ‘Agents’. Chúc mừng, bạn hiện đang giám sát máy chủ đầu tiên của mình!

Đi sâu: Tìm hiểu các Khả năng Cốt lõi của Wazuh

Wazuh không chỉ là một trình xem nhật ký thông thường; nó là một nền tảng bảo mật toàn diện. Việc hiểu các chức năng cốt lõi của nó sẽ giúp bạn tận dụng tối đa tiềm năng của nó.

Kiến trúc Agent-Manager

Wazuh hoạt động dựa trên kiến trúc agent-manager. Các agent được cài đặt trên các endpoint — như máy chủ, máy tính xách tay hoặc container — thu thập dữ liệu bảo mật và chuyển tiếp an toàn đến một Wazuh manager trung tâm. Manager sau đó phân tích dữ liệu này dựa trên cơ sở dữ liệu tình báo mối đe dọa được cập nhật liên tục, các bộ quy tắc và bộ giải mã của nó. Cuối cùng, các cảnh báo được tạo, lưu trữ trong Wazuh indexer (thường là OpenSearch) và được trực quan hóa thông qua bảng điều khiển Wazuh (OpenSearch Dashboards).

Các Tính năng Quan trọng

  • Giám sát Toàn vẹn Tệp (FIM): Đây là một tính năng cứu cánh. Wazuh giám sát các tệp và thư mục hệ thống quan trọng để phát hiện thay đổi. Nếu một tệp cấu hình bị giả mạo, hoặc kẻ tấn công đặt một tệp đáng ngờ, bạn sẽ biết ngay lập tức. Tôi sử dụng tính năng này để theo dõi các thay đổi đối với /etc/passwd, /etc/sudoers và các tệp cấu hình máy chủ web.
  • Phân tích Dữ liệu Nhật ký: Mọi sự kiện trên hệ thống của bạn đều tạo ra một nhật ký. Wazuh tổng hợp và phân tích các nhật ký này từ hệ điều hành, ứng dụng và thiết bị mạng. Nó tìm kiếm các mẫu cho thấy sự cố bảo mật, lỗi hoặc vi phạm chính sách. Hãy nghĩ đến các lần đăng nhập SSH thất bại, từ chối tường lửa hoặc thực thi quy trình đáng ngờ.
  • Phát hiện Xâm nhập (IDS): Bằng cách phân tích dữ liệu nhật ký và các lệnh gọi hệ thống, Wazuh có thể phát hiện các mẫu tấn công phổ biến, cài đặt rootkit và các hoạt động đáng ngờ cho thấy một cuộc xâm nhập.
  • Phát hiện Lỗ hổng: Các agent định kỳ quét phần mềm được cài đặt trên các endpoint để tìm các lỗ hổng đã biết (CVE) và báo cáo chúng cho manager, giúp bạn ưu tiên các nỗ lực vá lỗi.
  • Đánh giá Cấu hình Bảo mật (SCA): Wazuh có thể đánh giá cấu hình hệ thống của bạn dựa trên các thực tiễn bảo mật tốt nhất (ví dụ: CIS Benchmarks), xác định các cấu hình sai có thể bị khai thác.
  • Tuân thủ: Nó cung cấp hỗ trợ sẵn có cho các tiêu chuẩn tuân thủ như PCI DSS, GDPR, HIPAA và NIST, giúp bạn duy trì tư thế bảo mật và tạo báo cáo.

Quy tắc và Bộ giải mã: Bộ não đằng sau Hoạt động

Wazuh sử dụng một công cụ dựa trên quy tắc mạnh mẽ. Bộ giải mã (Decoders) đầu tiên phân tích dữ liệu nhật ký thô thành các sự kiện có cấu trúc. Sau đó, quy tắc (rules) đánh giá các sự kiện có cấu trúc này dựa trên các điều kiện được định nghĩa trước. Nếu một sự kiện khớp với một quy tắc, một cảnh báo sẽ được tạo. Ví dụ, một bộ giải mã có thể trích xuất IP nguồn và tên người dùng từ một lần thử đăng nhập SSH. Sau đó, một quy tắc có thể kích hoạt cảnh báo nếu có hơn 5 lần đăng nhập thất bại từ cùng một IP trong vòng một phút.

Sử dụng Nâng cao: Tùy chỉnh Tư thế Bảo mật của Bạn

Khi bạn đã nắm vững những điều cơ bản, bạn sẽ muốn điều chỉnh Wazuh cho môi trường và mô hình mối đe dọa cụ thể của mình.

Xây dựng Quy tắc Tùy chỉnh

Mặc dù các quy tắc tích hợp rất phong phú, nhưng mỗi môi trường đều có những nhu cầu riêng biệt. Có thể bạn có một ứng dụng tùy chỉnh ghi nhật ký các sự kiện bảo mật quan trọng, hoặc bạn cần theo dõi quyền truy cập vào một tệp rất cụ thể. Đây chính là lúc các quy tắc tùy chỉnh trở nên vô giá. Bạn định nghĩa các quy tắc này trong /var/ossec/etc/rules/local_rules.xml trên manager, và chúng được xử lý trước bất kỳ quy tắc mặc định nào.

Dưới đây là một ví dụ về một quy tắc tùy chỉnh đơn giản để cảnh báo nếu một người dùng cụ thể (ví dụ: devops_admin) đăng nhập vào hệ thống:

<group name="local,syslog,sshd,">
  <rule id="100001" level="7">
    <if_sid>5500</if_sid> <!-- SSHD xác thực thành công -->
    <field name="user">^devops_admin$</field>
    <description>Người dùng devops_admin đã đăng nhập vào hệ thống.</description>
    <group>authentication_success,pci_dss_10.2.5,pci_dss_10.6.1,gdpr_IV.35.7,nist_800_53_AU.12,nist_800_53_AC.7,</group>
  </rule>
</group>

Hãy nhớ khởi động lại Wazuh manager sau khi thêm các quy tắc tùy chỉnh: sudo systemctl restart wazuh-manager.

Tích hợp: Thực hiện hành động dựa trên Cảnh báo

Một cảnh báo chỉ hữu ích nếu có người nhìn thấy nó. Wazuh có thể tích hợp với nhiều công cụ bên ngoài khác nhau để thông báo và tự động hóa:

  • Email: Cơ bản nhưng hiệu quả. Cấu hình trong /var/ossec/etc/ossec.conf.
  • Nền tảng Nhắn tin: Tích hợp với Slack, Microsoft Teams hoặc Telegram để nhận thông báo theo thời gian thực. Điều này thường liên quan đến việc sử dụng mô-đun integrator của Wazuh và viết một tập lệnh nhỏ.
  • Công cụ SIEM/SOAR: Trong các tổ chức lớn hơn, việc đưa các cảnh báo của Wazuh vào một SIEM (Security Information and Event Management) tập trung như Splunk hoặc một Elastic Stack chuyên dụng (nếu không sử dụng indexer và bảng điều khiển tích hợp của Wazuh) là phổ biến. Ngoài ra, các cảnh báo có thể được gửi đến một nền tảng SOAR (Security Orchestration, Automation, and Response).
  • Hệ thống Quản lý Vé (Ticketing Systems): Tự động tạo vé trong Jira hoặc ServiceNow cho các cảnh báo quan trọng.

Ví dụ, để gửi cảnh báo đến một kênh Slack, bạn sẽ thêm một khối tích hợp trong ossec.conf:

<integration>
  <name>slack</name>
  <hook_url>https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX</hook_url>
  <level>10</level> <!-- Chỉ gửi cảnh báo có mức độ 10 trở lên -->
</integration>

Phản hồi Chủ động: Tự động chống trả

Đây là lúc Wazuh chuyển từ giám sát thụ động sang phòng thủ chủ động. Phản hồi Chủ động (Active Response) cho phép manager thực thi các tập lệnh được định nghĩa trước trên các agent để phản ứng với các cảnh báo cụ thể. Ví dụ, nếu một địa chỉ IP kích hoạt quá nhiều lần đăng nhập SSH thất bại, Wazuh có thể tự động chặn IP đó ở cấp tường lửa trên máy chủ bị ảnh hưởng. Điều này tương tự như cách Fail2Ban hoạt động, nhưng được tập trung hóa và dựa trên chính sách.

Bạn định nghĩa các tập lệnh phản hồi chủ động và các yếu tố kích hoạt của chúng trong ossec.conf. Một phản hồi chủ động phổ biến là chặn IP của kẻ tấn công bằng cách sử dụng firewall-drop.

Mẹo Thực tế để có Tư thế Bảo mật Vững chắc

Triển khai Wazuh là bước đầu tiên. Để thực sự hưởng lợi, bạn cần tích hợp nó vào các hoạt động bảo mật của mình.

  • Đừng chết chìm trong cảnh báo – Hãy tinh chỉnh chúng: Ban đầu, bạn có thể nhận được rất nhiều nhiễu. Điều quan trọng là phải tinh chỉnh các quy tắc của bạn. Triệt tiêu các cảnh báo ưu tiên thấp không thể hành động và nâng mức độ của các cảnh báo quan trọng. Tập trung vào những gì thực sự cho thấy một sự xâm nhập hoặc cấu hình sai trong môi trường của bạn. Sử dụng bảng điều khiển Wazuh để phân tích các mẫu cảnh báo và tinh chỉnh các quy tắc của bạn.
  • Xây dựng đường cơ sở cho hệ thống của bạn: Hiểu rõ trạng thái ‘bình thường’ trông như thế nào. Điều này giúp xác định các điểm bất thường. Nếu máy chủ web của bạn đột nhiên bắt đầu thực thi các lệnh từ /tmp, nhưng trước đây chưa bao giờ như vậy, đó là một dấu hiệu đỏ lớn. Việc xây dựng đường cơ sở giúp định nghĩa cái gì là bất thường.
  • Thường xuyên xem xét các cảnh báo của bạn: Đừng chỉ thiết lập rồi bỏ quên. Tích hợp việc xem xét cảnh báo vào thói quen hàng ngày hoặc hàng tuần của bạn. Điều này giúp bạn hiểu rõ bối cảnh mối đe dọa và xác định các vectơ tấn công đang phát triển.
  • Giữ Wazuh luôn cập nhật: Bối cảnh bảo mật thay đổi hàng ngày. Các lỗ hổng và kỹ thuật tấn công mới luôn xuất hiện. Việc giữ cho Wazuh manager và các agent của bạn được cập nhật đảm bảo bạn có các quy tắc, bộ giải mã và tính năng mới nhất để phát hiện các mối đe dọa hiện tại.
  • Nghĩ về Tự động hóa Triển khai Agent: Đối với các môi trường lớn hơn, việc cài đặt agent thủ công là một điều phiền toái. Khám phá các công cụ quản lý cấu hình như Ansible, Puppet hoặc Chef để tự động hóa việc triển khai và cấu hình agent. Wazuh thậm chí còn cung cấp các playbook Ansible.
  • Sao lưu Cấu hình của Bạn: Cấu hình của Wazuh manager (ossec.conf, các quy tắc, bộ giải mã) là rất quan trọng. Hãy đảm bảo nó được sao lưu thường xuyên.
  • Giám sát chính Wazuh: Vâng, hãy giám sát giải pháp giám sát an ninh của bạn. Đảm bảo các agent đang kiểm tra, các dịch vụ manager đang chạy và không gian đĩa cho indexer của bạn không bị thiếu.

Việc triển khai một công cụ như Wazuh đòi hỏi một cam kết liên tục, nhưng sự yên tâm và tư thế bảo mật được tăng cường mà nó mang lại là vô giá. Nó cho phép bạn chuyển từ việc khắc phục sự cố một cách thụ động sau khi chúng gây ra thiệt hại sang việc chủ động phát hiện và thậm chí ngăn chặn chúng. Chúc bạn bảo mật thành công!

Share: