NGUYEN XUAN CUONG

https://nxcuong.ued.vn

Phát hiện mối đe dọa với Wazuh - Threat Detection with Wazuh

Wazuh là một giải pháp bảo mật nguồn mở hoạt động như một hệ thống Quản lý sự kiện và thông tin bảo mật (SIEM) và hệ thống “phát hiện và phản hồi điểm cuối” (EDR). SIEM là một nền tảng bảo mật thu thập và phân tích dữ liệu liên quan đến bảo mật từ các điểm cuối, sau đó tạo cảnh báo để Nhà phân tích bảo mật điều tra.
Phát hiện mối đe dọa với Wazuh - Threat Detection with Wazuh
SIEM cũng có thể có các chức năng khác như xác định mối đe dọa, tìm kiếm mối đe dọa, phát triển kế hoạch ứng phó sự cố, leo thang sự kiện thông qua hệ thống bán vé, v.v. Wazuh ban đầu bắt đầu như một nhánh của dự án OSSEC, đây là hệ thống phát hiện xâm nhập dựa trên máy chủ nguồn mở (HIDS) được sử dụng rộng rãi. Các tính năng từ dự án đó được sử dụng trong Wazuh để biến nó thành nền tảng “EDR”. EDR là tác nhân phần mềm được cài đặt trên các điểm cuối để theo dõi và phát hiện hành vi nguy hiểm, lây nhiễm phần mềm độc hại, và các hoạt động độc hại của người dùng. Wazuh cũng có thể tích hợp với IDS dựa trên mạng có tên là Suricata mà tôi sẽ trình bày trong bài viết này. Các khả năng khác trong Wazuh bao gồm:
  • Phân tích dữ liệu nhật ký
  • Kiểm tra tính toàn vẹn của tệp
  • phát hiện rootkit
  • Kiểm kê tài sản
  • Mối đe dọa tình báo
  • Phát hiện lỗ hổng
  • Kiểm tra tuân thủ quy định
  • Giám sát vi phạm chính sách
  • Đánh giá cấu hình
Có ba thành phần chính tạo nên Wazuh: máy chủ Wazuh, (các) tác nhân Wazuh và Ngăn xếp ELK (Bộ lập chỉ mục). Sơ đồ dưới đây xuất phát từ tài liệu chính thức:
data flow1 1024x462
The Wazuh Agent – Wazuh Agent là phần mềm được triển khai trên các điểm cuối để cung cấp khả năng giám sát, phát hiện/ngăn chặn mối đe dọa, bảo vệ phần mềm độc hại và ghi nhật ký dựa trên máy chủ. Quan trọng nhất, các tác nhân chuyển tiếp dữ liệu đến công cụ phân tích của máy chủ Wazuh. Dữ liệu được gửi đến máy chủ Wazuh được bảo mật bằng giao tiếp TCP/UDP được mã hóa. Đại lý Wazuh cũng có thể thực hiện phản ứng tích cực. Điều này có nghĩa là bất cứ khi nào các mối đe dọa được phát hiện trên một điểm cuối, nó sẽ thực hiện ngăn chặn xâm nhập bằng cách chặn các kết nối mạng hoặc dừng các quy trình độc hại một cách tự động và theo thời gian thực.

The Wazuh Server – Wazuh Server chịu trách nhiệm phân tích dữ liệu được thu thập từ các tác nhân và tạo cảnh báo nếu dữ liệu kích hoạt bất kỳ quy tắc nào. Sau đó, nó sử dụng Filebeat để gửi các sự kiện bảo mật này tới ELK Stack để xử lý và lập chỉ mục. Hơn nữa, nó chịu trách nhiệm đăng ký, quản lý và theo dõi trạng thái của các Tác nhân được cài đặt trên các điểm cuối. Máy chủ Wazuh cũng có tính năng thông minh về mối đe dọa và tuân thủ quy định bằng cách so sánh dữ liệu với khung MITER và một số tiêu chuẩn tuân thủ như PCI DSS, HIPAA và NIST 800-53.

The Wazuh Indexer – Tài liệu chính thức của Wazuh gọi thành phần ELK là “Wazuh Indexer”. ELK Stack là một công cụ phân tích dữ liệu hoạt động rất giống với công cụ phân tích 'Splunk' được áp dụng rộng rãi hơn. “ELK” trong ELK Stack là viết tắt của Elaticsearch, Logstash và Kibana. Đây là một gói các công cụ phần mềm nguồn mở và miễn phí thu thập, sắp xếp, lập chỉ mục và trình bày trực quan một lượng lớn dữ liệu từ các nguồn khác nhau. Elaticsearch giống như một công cụ tìm kiếm các loại dữ liệu khác nhau. Trong trường hợp của Wazuh, nó được sử dụng để truy vấn thông qua các loại nhật ký khác nhau được tạo bởi các điểm cuối và tác nhân Wazuh. Siêu dữ liệu có thể được truy vấn với Elaticsearch bao gồm chuỗi, địa chỉ IP, số cổng, vị trí địa lý và dấu thời gian. Logstash được sử dụng để xử lý và thu thập dữ liệu. Nó sẽ thu thập dữ liệu từ các đặc vụ Wazuh, chuyển đổi dữ liệu đã thu thập thành một định dạng chung (như JSON), sau đó gửi dữ liệu đến bộ lưu trữ. Cuối cùng, 'K' là viết tắt của Kibana. Kibana chịu trách nhiệm hiển thị dữ liệu đã xử lý trong giao diện web-GUI. Nó cung cấp cho người dùng Wazuh các đồ thị, biểu đồ và các hình ảnh trực quan khác.

Hai trong số các thành phần được đề cập ở trên, Máy chủ và Bộ lập chỉ mục (ELK Stack), thường được cài đặt trên một máy chủ độc lập. Điều này chia kiến ​​trúc của Wazuh thành hai phần: Tác nhân điểm cuối và Thành phần trung tâm.

Sơ đồ hiển thị bên dưới là từ phiên bản cũ hơn của tài liệu, nhưng tương tự như sơ đồ hiển thị ở trên. Tất cả các thành phần đều giống nhau ngoại trừ một vài thay đổi về tên. Nó cho thấy rằng “Wazuh Indexer” và “Dashboard” về cơ bản chỉ là Ngăn xếp ELK.
older data flow 1024x437

Cài đặt

SIEM network 2
Network Diagram (Everything in the blue area is running in ESXi)

Để thiết lập môi trường phòng thí nghiệm của mình, tôi sẽ chạy Wazuh, cùng với một số máy chủ và điểm cuối khác, trên trình ảo hóa VMWare ESXi của tôi dưới dạng máy ảo. Sẽ có một Máy ảo chạy Windows Server 2019 với Active Directory được định cấu hình. Máy chủ còn lại sẽ là một máy ảo Debian đang lưu trữ một Máy chủ Web Apache. Wazuh SIEM cũng sẽ chạy trên một máy ảo Debian riêng biệt. Cũng sẽ có hai máy ảo Windows 10 được kết nối với Miền thư mục hoạt động của tôi. Cuối cùng để kiểm tra khả năng của Wazuh, tôi sẽ phải mô phỏng các cuộc tấn công phổ biến và kỹ thuật liệt kê từ một máy '‘attacker'. Để làm điều này, tôi sẽ chạy một máy ảo Kali Linux từ máy trạm chính “Admin” của mình. Để đơn giản, mọi máy chủ trong phòng thí nghiệm này sẽ được kết nối với cùng một mạng con và không có VLAN nào được định cấu hình.

Điều quan trọng cần lưu ý là tôi có hai kết nối đi vào trình ảo hóa ESXi của mình: kết nối ethernet bình thường để quản trị và kết nối SPAN (đôi khi được gọi là 'port mirror') cho lưu lượng được nhân bản. Cổng SPAN chịu trách nhiệm gửi một bản sao của tất cả lưu lượng mạng đi qua một công tắc tới một giao diện duy nhất. Trong trường hợp này, giao diện đó sẽ là NIC vật lý thứ hai mà tôi đã cài đặt trên trình ảo hóa của mình. Từ đó, lưu lượng được nhân đôi sẽ được gửi qua một “vSwitch” (Virtual Switch) riêng biệt kết nối với giao diện mạng phụ trên máy ảo Wazuh.

The screenshots below show the two virtual switches, their configurations, and the virtual hardware configurations of the SIEM. Each vSwitch connects two its own physical adapter on the hypervisor.
vTopology
vSwitches

vSwitch0
vSwitch0 : Traffic bình thường

vsniffer
vSniffer (lưu lượng truy cập SPAN)

promisc mode vswitch
vSniffer được định cấu hình ở chế độ Promiscuous

Lý do tất cả những điều này quan trọng là vì sau này tôi cũng sẽ cài đặt Suricata , một IDS dựa trên mạng và tích hợp nó với Wazuh. Một NID yêu cầu giao diện phụ ở 'chế độ hỗn hợp' để giám sát toàn bộ lưu lượng của mạng. Thiết lập này sẽ cho phép tôi có khả năng hiển thị mạng hoàn chỉnh cho toàn bộ mạng. Ảnh chụp màn hình bên dưới hiển thị cấu hình SIEM VM.

vm
Cấu hình máy ảo SIEM

Điều quan trọng là phải xem xét các yêu cầu phần cứng cho Wazuh. Tài liệu chính thức đề xuất ít nhất 4 lõi CPU, 8GB RAM và 50 GB dung lượng lưu trữ cho mạng gồm 1-25 thiết bị. Các hệ điều hành được đề xuất là Amazon Linux 2, CentOS 7 hoặc 8, RHEL 7 hoặc 8 hoặc Ubuntu. Tuy nhiên, tôi đã có thể cài đặt nó trên Debian. Tham khảo tài liệu để biết thêm thông tin.

hardware

Cài đặt và cấu hình Wazuh

Khi cài đặt bất kỳ loại công cụ hoặc phần mềm mới nào, tốt nhất bạn nên làm theo tài liệu nếu nó được cung cấp. Tài liệu của Wazuh cung cấp hai loại triển khai chính: Triển khai tất cả trong một và Triển khai phân tán. Phương pháp tất cả trong một, là phương pháp tôi đã chọn, cài đặt tất cả “central components” của Wazuh trên một máy duy nhất. Các thành phần trung tâm là máy chủ Wazuh (trình quản lý) và ELK Stack (bộ chỉ mục và bảng điều khiển). Để biết thêm thông tin về các thành phần này, vui lòng tham khảo phần đầu của bài đăng trên blog này hoặc tài liệu chính thức. Phương thức triển khai “Distributed” tách hai thành phần này thành hai máy khác nhau. Phương pháp này cho phép khả năng mở rộng nhiều hơn cho các môi trường mạng lớn hơn. Tuy nhiên, đối với phòng thí nghiệm của tôi, tôi đã triển khai tất cả trong một.

all in one deployment1
All-in-One

distributed no title1 1024x537
Distributed

Wazuh cũng cung cấp một số lựa chọn thay thế cài đặt bao gồm máy ảo “sẵn sàng sử dụng” cho VMWare và AWS, bộ chứa cho Docker hoặc Kubernetes và thậm chí là phiên bản Wazuh sử dụng Splunk để lập chỉ mục thay vì ELK. Các phương pháp cài đặt tốt nhất phụ thuộc vào mục đích và môi trường mạng của bạn. Nếu bạn muốn phương pháp nhanh nhất và dễ dàng nhất, hãy sử dụng phương pháp “Installing from sources” tại đây : https://documentation.wazuh.com/current/deployment-options/wazuh-from-sources/wazuh-server/index.html .

Hầu hết các phương pháp cài đặt đều trải qua ba bước chính. Đầu tiên, họ sẽ yêu cầu bạn cài đặt bộ chỉ mục Wazuh. Đây có thể là một số biến thể của Elaticsearch (họ chính thức sử dụng OpenSearch ngay bây giờ) hoặc doanh nghiệp Splunk. Sau đó, bạn sẽ cài đặt máy chủ Wazuh. Điều này có thể trên một máy chủ khác hoặc cùng một máy chủ với bộ chỉ mục, nó sẽ phụ thuộc vào cách triển khai mà bạn đã chọn. Cuối cùng, bạn sẽ cài đặt Bảng điều khiển. Sau khi các thành phần trung tâm của bạn được thiết lập, có thể có một vài bước bảo mật mà tài liệu sẽ hướng dẫn bạn thực hiện. Cái chính là thay đổi mật khẩu mặc định của bạn. Cài đặt Wazuh của bạn có thể bao gồm một công cụ mật khẩu chỉ định mật khẩu được tạo ngẫu nhiên cho bạn. Cách tốt nhất là sử dụng trình quản lý mật khẩu để lưu mật khẩu mới vì nó tạo mật khẩu dài và phức tạp cho tám tài khoản khác nhau.

changepass 1024x419

Thay đổi mật khẩu

Cài đặt Agent

Bảng điều khiển Wazuh cung cấp một cách rất đơn giản để cài đặt Đại lý trên các điểm cuối. Để cài đặt một Đại lý trên thiết bị của bạn, hãy nhấp vào menu thả xuống và nhấp vào tab "Agents" sẽ đưa bạn đến trang quản lý Agents.
clickmenu

Tiếp theo bấm vào “Deploy new agent”. Thao tác này sẽ hiển thị bảng điều khiển cho phép bạn nhập thông số kỹ thuật cho đại lý mới của mình.
create agent 839x1024

Trước tiên, nó sẽ yêu cầu bạn chọn hệ điều hành của mình. Nếu bạn chọn HĐH Linux, nó cũng sẽ hỏi bạn về kiến ​​trúc. Sau đó, bạn sẽ nhập địa chỉ IP của máy chủ Wazuh của mình, rồi chỉ định tác nhân cho một nhóm (nếu bạn đã tạo bất kỳ nhóm nào, nếu không thì nhóm đó sẽ là “default). Sau đó, Wazuh sẽ tạo một lệnh mà bạn sẽ nhập vào dòng lệnh trên thiết bị chủ của mình. Lệnh này sẽ tải xuống Tác nhân và sau đó là một lệnh khác khởi động dịch vụ Tác nhân Wazuh. Đối với máy Windows, bạn cần sử dụng PowerShell 3.0 trở lên và đảm bảo chạy PowerShell với tư cách Quản trị viên. Đối với Linux, bạn chỉ cần sử dụng 'sudo' hoặc đăng nhập với quyền root.

Nếu cài đặt này không phù hợp với bạn, bạn cũng có thể tải xuống trình cài đặt thủ công được hiển thị trong Tài liệu ( https://documentation.wazuh.com/current/installation-guide/wazuh-agent/index.html

Sau khi cài đặt và khởi động Đại lý trên các điểm cuối của bạn, bạn sẽ có thể xem chúng trên Trang tổng quan. Trong phòng thí nghiệm của mình, tôi đã cài đặt các tác nhân trên Windows Server chạy Active Directory, hai máy Windows 10 và một máy Debian chạy Apache.

activeagents 1024x337

Security Events
Mô-đun 'Security Events' cho phép nhà phân tích giám sát và tìm kiếm thông qua các cảnh báo bảo mật do công cụ phân tích của Wazuh tạo ra. Biểu đồ và đồ thị được tạo dựa trên các cảnh báo bảo mật. Điều này cho phép nhà phân tích trực quan hóa các cảnh báo này và cung cấp cho họ 'cái nhìn toàn cảnh' về cơ sở hạ tầng.

graphs 1536x701

Tab 'Events' cung cấp công cụ tìm kiếm cho phép nhà phân tích truy vấn thông qua các cảnh báo dựa trên 'trường' và 'giá trị'. Ví dụ: nhà phân tích có thể truy vấn Elaticsearch dựa trên trường “agent.id” để chỉ bao gồm giá trị “003”. Truy vấn này sẽ lọc tất cả các sự kiện để chỉ bao gồm các sự kiện có giá trị “003” trong trường “agent.id”. Bạn có thể làm điều này cho mọi trường, chẳng hạn như “rule.description”, “rule.level”, “timestamp”, v.v.

eventstab 1536x660

Bạn cũng có thể nhấp vào các trường được hiển thị ở phía bên trái để xem 5 giá trị hàng đầu của chúng. Điều này cho phép bạn hình dung giá trị nào thường xuyên nhất trong truy vấn hiện tại. Ví dụ: nếu bạn nhấp vào trường “agent.name”, bạn có thể xác định tác nhân nào đang tạo ra nhiều sự kiện nhất.

fields values

Phát hiện lỗ hổng - Vulnerability Detection

Tab "Vulnerabilities" sẽ hiển thị tất cả các lỗ hổng đã được phát hiện trên một máy. Các tác nhân Wazuh quét định kỳ hệ thống tệp của điểm cuối của họ, sau đó gửi thông tin đó đến máy chủ Wazuh. Máy chủ sử dụng dữ liệu đó để so sánh với cơ sở dữ liệu lỗ hổng nhằm phát hiện các lỗ hổng đã biết công khai cần được vá. Cơ sở dữ liệu này được tạo bằng cách sử dụng các kho lưu trữ CVE có sẵn công khai từ các nguồn như:
  • https://canonical.com/
  • https://www.debian.org/
  • https://www.redhat.com/
  • https://nvd.nist.gov/
Trên máy ảo Windows Server 2019 của tôi, Wazuh đã phát hiện tổng cộng 1.562 CVE. 49 lỗ hổng trong số đó được gắn nhãn là “Nghiêm trọng”, có nghĩa là chúng tạo ra Điểm CVSS3 ít nhất là 9 trên 10.
vulnerabilities 1140x530

Điểm chuẩn CIS

CIS là viết tắt của “Center for Internet Security” là một tổ chức phi lợi nhuận chuyên phát triển các chính sách “thực hành tốt nhất” để bảo mật thông tin. Theo Tài liệu của Microsoft : (https://docs.microsoft.com/en-us/compliance/regulatory/offering-cis-benchmark)

“ Điểm chuẩn CIS là cơ sở cấu hình và phương pháp hay nhất để định cấu hình hệ thống một cách an toàn. Mỗi đề xuất hướng dẫn đề cập đến một hoặc nhiều biện pháp kiểm soát CIS được phát triển để giúp các tổ chức cải thiện khả năng phòng thủ mạng của họ. CIS kiểm soát ánh xạ tới nhiều tiêu chuẩn và khung quy định đã được thiết lập, bao gồm Khung an ninh mạng NIST (CSF) và NIST SP 800-53, loạt tiêu chuẩn ISO 27000, PCI DSS, HIPAA và các tiêu chuẩn khác. “

Đánh giá điểm chuẩn CIS được thực hiện bởi các đại lý Wazuh và kết quả được báo cáo lại cho máy chủ. Trên các máy Windows, các tác nhân thường thực hiện các điểm chuẩn này bằng cách kiểm tra Windows Registry để tìm các cấu hình sai. Trên các hệ thống Linux, các tác nhân chạy các lệnh cụ thể trên máy chủ để xác định xem mọi thứ có bị cấu hình sai hay không. Mỗi bài kiểm tra đều cho kết quả “Đạt”, “Không đạt” hoặc “Không áp dụng”. Các đánh giá cấu hình bảo mật này cũng đưa ra các đề xuất Mô tả, Cơ sở lý luận và Biện pháp khắc phục chi tiết cho từng điểm chuẩn.

Trên máy ảo Windows Server của mình, tôi đã cố tình tắt tính năng ký SMB để có thể tìm hiểu cách thực hiện Tấn công chuyển tiếp SMB trên Active Directory. Cấu hình sai này dẫn đến một trong các điểm chuẩn CIS không thành công trên máy chủ đó:
cis benchmark 1536x623

Phát hiện các cuộc tấn công SSH Brute Force

Để kiểm tra Wazuh, tôi đã thực hiện Tấn công SSH Brute Force trên máy chủ Debian để xem liệu nó có bị phát hiện hay không. Từ máy ảo Kali Linux của tôi, tôi đã sử dụng một công cụ có tên là “Hydra”, đây là một công cụ cưỡng bức vũ phu dòng lệnh, để cưỡng bức SSH.kali

Sau khi chạy hydra trong khoảng 2 phút, Wazuh đã có thể phát hiện ra cuộc tấn công và tạo ra khoảng 300 cảnh báo mới. Các cảnh báo này dựa trên các quy tắc đã được kích hoạt sau đây:
  • 5760: sshd: xác thực không thành công.
Cấp độ quy tắc: 5
  • 5758: Đã vượt quá số lần xác thực tối đa.
Cấp độ quy tắc: 8
  • 2502: syslog: Người dùng bỏ lỡ mật khẩu nhiều lần
Cấp độ quy tắc: 10
  • 40111: Nhiều lỗi xác thực.
Cấp độ quy tắc: 10

ssh attack 1024x452

Đi sâu vào các cảnh báo này đã cho tôi thông tin có giá trị về đối tượng tấn công và hoạt động của chúng, chẳng hạn như địa chỉ IP, tài khoản mà chúng đã cố đăng nhập và thời gian của cuộc tấn công.

Khi xem trường “location” trong ảnh chụp màn hình bên dưới, bạn có thể thấy rằng Tác nhân Wazuh đọc dữ liệu nhật ký được lưu trữ trong “/var/log/auth.log” để phát hiện các lần thử xác thực không thành công.
2022 06 18 20 08 1024x439

Phần kết luận

Wazuh là một nền tảng mạnh mẽ để phát hiện mối đe dọa và lỗ hổng mà tôi sẽ sử dụng trong tương lai để tìm hiểu thêm về bảo mật phòng thủ. Bước tiếp theo cho dự án này là tìm hiểu về Suricata NIDS và tích hợp nó với Wazuh để hiển thị mạng.
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây