HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN ---------- BÁO CÁO CUỐI KỲ Môn học: CHUYÊN ĐỀ AN NINH MẠNG TRIỂN KHAI HỆ THỐNG PHÁT HIỆN XÂM NHẬP WAZUH Giảng viên: TS.Nguyễn Ngọc Điệp Lớp: D18-026 Nhóm: 03 Sinh viên: Trần Thế Quân – B18DCAT194 Nguyễn Thanh Hưng – B18DCAT117 Phạm Gia Khiêm – B18DCAT129 Hà Nội, tháng 11 năm 2022 MỤC LỤC MỤC LỤC ...................................................................................................................1 DANH SÁCH BẢNG .................................................................................................3 DANH SÁCH HÌNH VẼ ............................................................................................4 LỜI MỞ ĐẦU .............................................................................................................6 I. GIỚI THIỆU ............................................................................................................7 1. Danh sách sinh viên .............................................................................................7 2. Mục đích ..............................................................................................................7 II. CƠ SỞ LÝ THUYẾT .............................................................................................8 1. Tổng quan về xâm nhập, kỹ thuật và các hệ thống phát hiện xâm nhập .............8 1.1. Hệ thống phát hiện xâm nhập ........................................................................8 1.2. Kỹ thuật phát hiện xâm nhập.......................................................................10 2. Giới thiệu về WAZUH ......................................................................................12 2.1. Định nghĩa ...................................................................................................12 2.2. Các thành phần ............................................................................................13 2.3. Kiến trúc của Wazuh ...................................................................................17 2.4. Rules trong Wazuh ......................................................................................20 2.5. Các chức năng tiêu biểu của Wazuh ...........................................................25 III. NỘI DUNG THỰC HIỆN DEMO......................................................................30 1. Chuẩn bị môi trường ..........................................................................................30 1.1. Yêu cầu cài đặt ............................................................................................30 1.2.Cài đặt elasticsearch .....................................................................................31 1.3.Cài đặt wazuh manger ..................................................................................32 1.4.Cài đặt filebeat..............................................................................................33 1.5.Cài đặt kibana và cấu hình ...........................................................................33 1.6. Cài đặt wazuh agent trên window ...............................................................34 1.7. Cài đặt agent trên Ubuntu server ..............................................................37 2. Demo ..................................................................................................................38 2.1. Brute force: ..................................................................................................38 2.1.1. Môi trường thực hiện .....................................................................38 1 2.1.2. Các bước thực hiện ........................................................................38 2.1.3. Kết quả mong muốn .......................................................................41 2.2. SQL injection: .............................................................................................41 2.2.1. Chuẩn bị môi trường ......................................................................41 2.2.2. Các bước thực hiện ........................................................................42 2.2.3. Kết quả mong muốn .......................................................................44 2.3. Brute force vào cổng dịch vụ SSH ...........................................................44 2.3.1. Chuẩn bị môi trường ......................................................................44 2.3.2. Các bước thực hiện ........................................................................44 2.3.3. Kết quả mong muốn .......................................................................46 2.4. Phát hiện các file độc xuất hiện trong máy ..............................................46 2.4.1. Môi trường chuẩn bị.......................................................................46 2.4.2. Các bước thực hiện ........................................................................47 2.4.3. Kết quả mong muốn .......................................................................48 IV. KẾT LUẬN .........................................................................................................48 4.1. Ưu điểm: ...................................................................................................49 4.2. Nhược điểm: .............................................................................................49 V. TÀI LIỆU THAM KHẢO ....................................................................................49 2 DANH SÁCH BẢNG Bảng 1. Các mức level của rules trong wazuh ..................................................23 Bảng 2. Một số cú pháp decode ........................................................................24 Bảng 3. Một số cú pháp của rules .....................................................................25 Bảng 4. Yêu cầu cấu hình máy wazuh-server ...................................................31 3 DANH SÁCH HÌNH VẼ Hình 1. Hệ thống phát hiện xâm nhập IDS .........................................................8 Hình 2. Lưu đồ giám sát phát hiện tấn công, xâm nhập dựa trên chữ ký .........10 Hình 3. Giá trị emtropy của IP nguồn của các gói tin lưu lượng hợp pháp (Phần giá trị cao, đều) và entropy của IP nguồn của các gói tin từ lưu lượng tấn công DDoS (phần giá trị thấp) .................................................11 Hình 4. Các thành phần của Wazuh .................................................................12 Hình 5. Agent trong Wazuh ...............................................................................14 Hình 6. Server trong Wazuh ..............................................................................15 Hình 7. Multi-node deployment ........................................................................17 Hình 8. Single-node deployment .......................................................................18 Hình 9. Phương thức hoạt động của luồng dữ liệu...........................................18 Hình 10. Cấu trúc Rules ...................................................................................20 Hình 11. Phân tích bảo mật trong Wazuh .........................................................26 Hình 12. Phát hiện xâm nhập trong Wazuh ......................................................27 Hình 13. Phát hiện lỗ hổng trong Wazuh..........................................................28 Hình 14. Phân tích log trong Wazuh.................................................................29 Hình 15. Cài đặt Wazuh server .........................................................................30 Hình 16. Thêm agent trong kibana ...................................................................35 Hình 17. Các agent đã được thêm vào wazuh-server .......................................35 Hình 18. Các bước thêm agent .........................................................................36 Hình 19. Cài đặt Wazuh agent ..........................................................................36 Hình 20: Deploy a new Linux system agent ......................................................37 Hình 21: Command để đăng kí agent trên Ubunt server ..................................37 Hình 22: Cài đặt thành công agent Ubuntu Server ..........................................38 Hình 23. Sử dụng nmap thực hiện rà quét lỗ hổng ...........................................39 Hình 24. Thực hiện tấn công Brute force..........................................................39 Hình 25. Wazuh nhận được alert Brute force ...................................................40 Hình 26. Nội dung alert Brute force .................................................................40 Hình 27. Rules Brute force ................................................................................41 Hình 28. Web server trên máy windows 11 ......................................................41 Hình 29. Câu lệnh tấn công SQL injection .......................................................42 Hình 30. Sử dụng máy kali tấn công SQL injection vào web server ................42 Hình 31. Wazuh nhận được alert SQL injection ...............................................43 Hình 32. Nội dung alert SQL injection .............................................................43 Hình 33. Rules SQL injection ............................................................................44 Hình 34: Quét các cổng trên Ubuntu Server ....................................................44 Hình 35: Tấn công Brute force vào dịch vụ SSH ..............................................45 Hình 36: Cảnh báo Brute force hiện lên ...........................................................45 Hình 37: Cấu hình file ossec.conf .....................................................................47 4 Hình 38: Custom rule phát hiện file độc hại.....................................................47 Hình 39: Restart Wazuh manager .....................................................................47 Hình 40: Tải file độc hại về máy .......................................................................48 Hình 41: Cảnh báo phát hiện file độc ...............................................................48 5 LỜI MỞ ĐẦU Thế kỷ XXI, chứng kiến sự phát triển nhanh chóng của Internet và những ảnh hưởng sâu rộng tới mọi lĩnh vực đời sống của con người. Song song với những lợi ích mà mạng máy tính đem lại thì nó cũng trở thành mục tiêu lợi dụng của những kẻ tấn công, xâm nhập trái phép nhằm thực hiện những mưu đồ xấu, đe dọa tới tính an toàn về bảo mật thông tin của các tổ chức hay những người dùng kết nối mạng. Mặc dù, mỗi hệ thống máy tính đều có những cơ chế tự bảo vệ riêng nhưng có thể chưa đủ để phát hiện hay ngăn chặn những cuộc tấn công ngày một tinh vi hơn. Vấn đề đặt ra là làm sao xây dựng được một hệ thống có thể phát hiện sớm và có hiệu quả các cuộc tấn công hay xâm nhập trái phép từ đó đưa ra những cảnh báo và biện pháp xử lý kịp thời. Một số các hệ thống phát hiện xâm nhập mạng truyền thống được áp dụng khá phổ biến và rộng rãi trên thế giới như hệ thống phát hiện xâm nhập dựa trên tập luật, phân tích thống kê,…Các hệ thống trên đã phát hiện tốt những cuộc tấn công đã biết với tỷ lệ cảnh báo sai thấp. Tuy nhiên, chúng tại tỏ ra kém hiệu quả đối với những cuộc tấn công mới, đồng thời phải luôn cập nhật luật mới. Phát hiện xâm nhập cũng là một kỹ thuật liên quan được áp dụng. Các phương thức phát hiện xâm nhập xuất hiện vài năm gần đây. Với các phương pháp này người quản trị có thể thu thập và sử dụng thông tin từ các dạng tấn công chưa được biết hoặc phát hiện cuộc tấn công đang diễn ra. Những thông tin thu thập được sẽ giúp người quản trị gia cố an ninh mạng, đưa ra các chính sách an toàn cho hệ thống nhằm giảm thiểu những tấn công bất hợp pháp. Vì vậy chúng em chọn đề tài: “Triển khai hệ thống phát hiện xâm nhập WAZUH.” 6 I. GIỚI THIỆU 1. Danh sách sinh viên Tên các sinh viên trong nhóm: Nguyễn Thanh Hưng - B18DCAT117 Phạm Gia Khiêm - B18DCAT129 Trần Thế Quân - B18DCAT194 2. Mục đích Bảo mật vốn là một vấn đề lớn đối với môi trường doanh nghiệp hiện nay. Trong lịch sử đã có nhiều trường hợp tin thành công trong việc xâm nhập vào mạng công ty và đem ra ngoài rất nhiều thông tin giá trị. Đã có nhiều phương pháp phát triển để đảm bảo cho hạ tầng mạng và giao tiếp trên internet như : sử dụng Firewall, VPN trong đó có hệ thống phát hiện và ngăn chặn xâm nhập. Phát hiện xâm nhập là một trong những công nghệ và phương thức dùng để phát hiện hành động khả nghi trên cả Host và mạng. Các phương pháp phát hiện xâm nhập bắt đầu xuất hiện những năm gần đây, sử dụng phương thức phát hiện xâm nhập , ta có thể thu thập, sử dụng thông tin từ những lỗ hổng tấn công đã biết để tìm ra và cảnh báo một ai đó đang cố gắng tấn công vào mạng hay máy cá nhân. Vì vậy, là sinh viên được trang bị những kiến thức của ngành An toàn thông tin, với những kiến thức đã tiếp thu và vận đụng lý thuyết đó vào công việc thực tế nên chúng em đã chọn đê tài “Triển khai hệ thống phát hiện xâm nhập WAZUH.” với mục đích xây dựng được hệ thống phát hiện và phòng chống xâm nhập trái phép nhằm đảm bảo an toàn hệ thống mạng cho doanh nghiệp và cá nhân. 7 II. CƠ SỞ LÝ THUYẾT 1. Tổng quan về xâm nhập, kỹ thuật và các hệ thống phát hiện xâm nhập 1.1. Hệ thống phát hiện xâm nhập 1.1.1 Định nghĩa: Hệ thống phát hiện xâm nhập (IDS - Intrusion Detection System) là một lớp phòng vệ quan trọng, là giải pháp đảm bảo an toàn cho hệ thống thông tin và mạng theo mô hình phòng thủ nhiều lớp theo chiều sâu. Các hệ thống IDS có thể được triển khai ở trước hoặc sau tường lửa trong mô hình mạng tùy theo mục đích sử dụng. Hình sau cung cấp vị trí hệ thống IDS trong sơ đồ mạng, trong đó IDS thường được kết nối vào các bộ định tuyến, switch, card mạng và chủ yếu làm nhiệm vụ giám sát và cảnh báo, không có khả năng chủ động ngăn chặn tấn công, xâm nhập. Hình 1. Hệ thống phát hiện xâm nhập IDS Nhiệm vụ chính của các IDS bao gồm: Giám sát lưu lượng mạng hoặc các hành vi trên một hệ thống để nhận dạng các dấu hiệu của tấn công, xâm nhập Khi phát hiện các hành vi tấn công, xâm nhập, thì ghi log các hành vi này cho phân tích bổ sung sau này Gửi thông báo, cảnh báo cho người quản trị về các các hành vi tấn công, xâm nhập đã phát hiện được. 1.1.2. Phân loại: 8 Có 2 phương pháp phân loại chính các hệ thống IDS gồm phân loại theo nguồn dữ liệu và phân loại theo phương pháp phân tích dữ liệu: 1.1.2.1. Phân loại theo nguồn dữ liệu: Gồm 2 loại: hệ thống phát hiện xâm nhập mạng (NIDS – Network-based IDS) và hệ thống phát hiện xâm nhập máy (HIDS – Host-based IDS). Hệ thống phát hiện xâm nhập mạng (NIDS): Hệ thống phát hiện xâm nhập mạng giám sát cổng mạng và thực hiện thu thập, phân tích lưu lượng mạng gồm các gói tin để phát hiện tấn công, xâm nhập cho cả mạng hoặc một phân đoạn mạng. Ưu điểm của NIDS là có khả năng giám sát phát hiện các dạng xâm nhập cho cả mạng, hoặc phân đoạn mạng do nó thường được triển khai tại cổng mạng và sử dụng lưu lượng mạng gồm các gói tin đi/đến làm nguồn dữ liệu. Hạn chế của NIDS là gặp nhiều khó khăn khi phải giám sát cổng mạng có lưu lượng lớn, hoặc lưu lượng bị mã hóa và các dạng xâm nhập trên các máy không phát sinh lưu lượng qua cổng mạng. Có nhiều hệ thống NIDS dựa trên phần cứng và phần mềm, thương mại hoặc mã mở được phát triển và ứng dụng trên thực tế. Có thể kể đến một số hệ thống NIDS nối tiếng như Check Point IPS, McAfee Network Security Platform, Snort, Bro và Suricata. Hệ thống phát hiện xâm nhập máy (HIDS): Hệ thống phát hiện xâm nhập cho máy giám sát các hoạt động của một máy, thu thập và thực hiện phân tích các sự kiện xảy ra trong máy, hoặc dịch vụ chạy trên máy để phát hiện tấn công, xâm nhập, hoặc các hành vi lạm dụng. Ưu điểm của HIDS là có khả năng phát hiện chính xác các xâm nhập và các hành vi lạm dụng trên từng máy cụ thể do HIDS được cài đặt trên từng máy để giám sát các sự kiện xảy ra trong hệ thống. Hạn chế của HIDS là phải triển khai trên từng máy và điều này có thể phát sinh chi phí lớn cho cài đặt và bảo trì với các hệ thống mạng lớn. Cũng như NIDS, các HIDS cũng được phát triển và ứng dụng rộng rãi trên thực tế. Có thể kể đến các HIDS nổi tiếng như IMB QRadar, Tripwire, OSSEC, Security Onion và Wazuh. 1.1.2.2. Phân loại theo phương pháp phân tích dữ liệu: Theo phương pháp phân tích dữ liệu, có 2 kỹ thuật phát hiện được sử dụng, bao gồm: Phát hiện xâm nhập dựa trên chữ ký, dấu hiệu, hoặc phát hiện sự lạm dụng (Signature-based / misuse intrusion detection) và phát hiện xâm nhập dựa trên bất thường (Anomaly intrusion detection). Chi tiết hai kỹ thuật này sẽ được nói rõ tại phần sau. 9 1.2. Kỹ thuật phát hiện xâm nhập Bản chất của kỹ thuật phát hiện xâm nhập là việc giám sát thu thập và phân tích dữ liệu nhằm phát hiện các dấu hiệu xuất hiện tấn công, xâm nhập. Để có thể nhận dạng được các hành vi tấn công, xâm nhập, trước hết cần xây dựng cơ sở dữ liệu các dấu hiệu, hoặc chữ ký của các tấn công, xâm nhập đã biết, hoặc xây dựng hồ sơ mô tả tập các hành vi bình thường của đối tượng cần giám sát. 1.2.1. Phát hiện xâm nhập dựa trên chữ ký Phát hiện xâm nhập dựa trên chữ ký trước hết cần xây dựng cơ sở dữ liệu các chữ ký, hoặc các dấu hiệu của các loại tấn công, xâm nhập đã biết. Hầu hết các chữ ký, dấu hiệu được nhận dạng và mã hóa thủ công và dạng biểu diễn thường gặp là các luật phát hiện. Bước tiếp theo là sử dụng cơ sở dữ liệu các chữ ký để giám sát các hành vi của hệ thống, hoặc mạng, và cảnh báo nếu phát hiện dấu hiệu, chữ ký của tấn công, xâm nhập. Hình dưới biểu diễn lưu đồ giám sát phát hiện tấn công, xâm nhập dựa trên chữ ký điển hình, trong đó CSDL chữ ký là cơ sở dữ liệu lưu các dấu hiệu, chữ ký của các tấn công, xâm nhập đã biết. Hình 2. Lưu đồ giám sát phát hiện tấn công, xâm nhập dựa trên chữ ký Ưu điểm lớn nhất của phát hiện xâm nhập dựa trên chữ ký là có khả năng phát hiện các tấn công, xâm nhập đã biết một cách hiệu quả. Ngoài ra, phương pháp này cho tốc độ xử lý cao, đồng thời yêu cầu tài nguyên tính toán tương đối thấp. Nhờ vậy, các hệ thống phát hiện xâm nhập dựa trên chữ ký đã và đang được ứng dụng rộng rãi trong thực tế. Tuy nhiên, nhược điểm chính của phương pháp này là không có khả năng phát hiện các tấn công, xâm nhập mới, hoặc các biến thể của xâm nhập đã biết, do chữ ký của chúng chưa tồn tại trong cơ sở dữ liệu chữ ký. Hơn nữa, phương pháp này cũng đòi hỏi nhiều công sức chuyên gia cho xây dựng và cập nhật cơ sở dữ liệu chữ ký, dấu hiệu của các tấn công, xâm nhập. 1.2.2. Phát hiện xâm nhập dựa trên bất thường 10 Phát hiện xâm nhập dựa trên bất thường dựa trên giả thiết: các hành vi tấn công, xâm nhập thường có quan hệ chặt chẽ với các hành vi bất thường. Quá trình xây dựng và triển khai một hệ thống phát hiện xâm nhập dựa trên bất thường thường gồm 2 giai đoạn: (1) huấn luyện và (2) phát hiện. Trong giai đoạn huấn luyện, hồ sơ của đối tượng cần giám sát trong chế độ làm việc bình thường được xây dựng. Để thực hiện giai đoạn huấn luyện, cần giám sát đối tượng trong một khoảng thời gian đủ dài để thu thập được đầy đủ dữ liệu mô tả các hành vi của đối tượng trong điều kiện bình thường làm dữ liệu huấn luyện.Tiếp theo, thực hiện huấn luyện dữ liệu để xây dựng mô hình phát hiện, hay hồ sơ của đối tượng. Trong giai đoạn phát hiện, thực hiện giám sát hành vi hiện tại của đối tượng và cảnh báo nếu có khác biệt rõ nét giữa hành vi hiện tại và các hành vi lưu trong hồ sơ của đối tượng. Có nhiều kỹ thuật xử lý, phân tích dữ liệu cho xây dựng hồ sơ của đối tượng cần giám sát đã được nghiên cứu, đề xuất cho phát hiện xâm nhập dựa trên bất thường. Mục tiêu của các kỹ thuật xử lý, phân tích dữ liệu là có thể xây dựng hồ sơ phát hiện tự động từ dữ liệu huấn luyện, cải thiện được hiệu quả phát hiện, bao gồm tăng tỷ lệ phát hiện đúng, giảm tỷ lệ phát hiện sai và giảm yêu cầu sử dụng tài nguyên tính toán. Một số kỹ thuật xử lý, phân tích dữ liệu cho phát hiện xâm nhập dựa trên bất thường có thể kể đến bao gồm: phân tích thống kê, khai phá dữ liệu, học máy và phân tích tương quan. Hình dưới biểu diễn giá trị entropy IP nguồn (IP entropy) của các gói tin theo cửa sổ trượt từ lưu lượng bình thường và entropy IP nguồn của các gói tin từ lưu lượng tấn công DDoS theo quan sát thực nghiệm và dựa trên kỹ thuật phân tích thống kê. Có thể thấy sự khác biệt rõ nét giữa giá trị IP entropy của lưu lượng bình thường và lưu lượng tấn công và như vậy nếu một ngưỡng entropy được chọn phù hợp ta hoàn toàn có thể phát hiện sự xuất hiện của cuộc tấn công DDoS dựa trên sự thay đổi đột biến của giá trị entropy. Hình 3. Giá trị emtropy của IP nguồn của các gói tin lưu lượng hợp pháp (Phần giá trị cao, đều) và entropy của IP nguồn của các gói tin từ lưu lượng tấn công DDoS (phần giá trị thấp) Ưu điểm của phát hiện xâm nhập dựa trên bất thường là có tiềm năng phát hiện các loại tấn công, xâm nhập mới mà không yêu cầu biết trước thông tin về chúng. Tuy nhiên, phương pháp này thường có tỷ lệ cảnh báo sai tương đối cao so với phát 11 hiện dựa trên chữ ký do một số hành vi xâm nhập không tại ra bất thường và ngược lại một hành vi bất thường nhưng không phải là xâm nhập. Điều này làm giảm khả năng ứng dụng thực tế của phát hiện xâm nhập dựa trên bất thường. Ngoài ra, phương pháp này cũng tiêu tốn nhiều tài nguyên hệ thống cho việc xây dựng hồ sơ đối tượng và phân tích hành vi hiện tại. Mặc dù vậy, đây vẫn là một hướng nghiên cứu phát hiện xâm nhập đang rất được quan tâm nhằm cải thiện tỷ lệ phát hiện, giảm tỷ lệ cảnh báo sai và giảm yêu cầu sử dụng tài nguyên tính toán, lưu trữ. 2. Giới thiệu về WAZUH 2.1. Định nghĩa Wazuh là hệ thống phát hiện xâm nhập máy (HIDS) dùng cho việc bảo vệ an ninh, phát hiện mối đe doa, giám sát toàn vẹn và ứng phó sự cố. Wazuh là 1 project mã nguồn mở, được xây dựng từ các thành phần : OSSEC HIDS, OpenSCAP và Elastic Stack. Hình 4. Các thành phần của Wazuh ● OSSEC HIDS : host-based Intrusion Detection System (HIDS) được dùng cho việc phát hiện xâm nhập, hiển thị và giám sát. Nó dựa vào 1 multi-platform agent cho việc đẩy dữ liệu hệ thống (log message, file hash và phát hiện bất thường) tới 1 máy quản lý trung tâm, nơi sẽ phân tích và xử lý, dựa trên các cảnh báo an ninh. Các agent truyền event data event data tới máy quản lý trung tâm thông qua kênh được bảo mật và xác thực. ● OpenSCAP được dùng để kiểm tra cấu hình hệ thống và phát hiện các ứng dụng dễ bị tấn công. Nó được biết đến như là một công cụ được thiết kế để kiểm tra việc tuân thủ an ninh của hệ thống sử dụng các tiêu chuẩn an ninh dùng cho môi trường doanh nghiệp 12 ● ELK Stack Sử dụng cho việc thu thập, phân tích, index, store, search và hiển thị dữ liệu log. 2.2. Các thành phần 2.2.1. Wazuh agent Chạy trên : Windows, Linux, Solaris, BSD hoặc MAC OS. Dùng thu thập các dạng khác nhau của dữ liệu hệ thống và ứng dụng. Dữ liệu được chuyển tới Wazuh server thông qua 1 kênh được mã hóa và xác thực. Để thiết lập kênh này, 1 quá trình đăng ký bao gồm pre-shared key duy nhất được thiết lập. Các agent có thể dùng để giám sát server vật lý, máy ảo, cloud instance (AWS, Azure hoặc Google cloud). Các các cài đặt pre-compile agent có sẵn cho các OS : Linux, AIX, Solaris, Windows và Darwin (Mac OS X). Trên các OS Unix-based, agent chạy trên multiple process, các process này liên lạc với nhau thông qua local Unix domain socket. 1 trong các process này phụ trách việc liên lạc và gửi dữ liệu tới Wazuh server. Trên Windows, chỉ có 1 agent process chạy trên multiple task sử dụng mutexes. Các agent task hoặc process khác nhau được dùng để giám sát hệ thống theo các cách khác nhau (giám sát sự thay đổi về file, đọc log, quét các thay đổi hệ thống). Sơ đồ sau thể hiện các internal task và process diễn ra trên các agent level. 13 Hình 5. Agent trong Wazuh Tất cả các process agent có mục tiêu và thiết lập khác nhau. ● Rootcheck: Thực hiện các task liên quan đến phát hiện về Rootkits, malware và các bất thường của hệ thống. Nó chạy 1 số công cụ kiểm tra an ninh cơ bản dựa vào các file cấu hình hệ thống. ● Log Collector: Dùng để đọc và thu thập các log message, bao gồm các các file như Windows event log. Nó cũng được cấu hình để chạy định kỳ và bắt 1 số output của các câu lệnh cụ thể. ● Syscheck: Process này thực hiện file integrity monitoring (FIM) (Giám sát tính toàn vẹn của file). Nó cũng có thể giám sát registry key trên Windows. Nó sẽ bắt các thay đổi về nội dung file, quyền và các thuộc tính khác, cũng như phát hiện việc tạo và xóa file. 14 ● OpenSCAP: dựa vào các hồ sơ bảo mật cơ bản, định kỳ quét hệ thống, nó sẽ phát hiện được các ứng dụng và cấu hình sẽ bị tấn công, không tuân theo các chuẩn được xác định theo CIS (Center of Internet Security) ● Agent Daemon: Process nhận dữ liệu được tạo hoặc được thu thập bởi tất cả các thành phần agent khác. Nó nén, mã hóa và phân phối dữ liệu tới server thông qua kênh được xác thực. Process này chạy trên "chroot" environment được cô lập, có nghĩa rằng nó sẽ hạn chế truy cập tới các hệ thống được giám sát. Điều này cải thiện được an toàn cho agent vì process đó là process duy nhất kết nối tới mạng. 2.2.2. Wazuh server Thành phần server phụ trách việc phân tích dữ liệu nhận từ agent, tạo các ngưỡng cảnh báo khi 1 event ánh xạ với rule (phát hiện xâm nhập, thay đổi file, cấu hình không tương thích với policy, rootkit...) Hình 6. Server trong Wazuh Server thông thường chạy các thành phần agent với mục tiêu giám sát chính nó. Một số thành phần server chính là : 15 ● Registration service: Được dùng để register agent mới được việc cung cấp và phân phối các key xác thực pre-shared, các key này là độc nhất với mỗi agent. Process này chạy như 1 network service và hỗ trợ việc xác thực qua TLS/SSL ● Remote daemon service: Service này nhận dữ liệu từ agent. Nó sử dụng pre- shared key để xác thực định danh của mỗi agent và mã hóa giao tiếp với chúng. ● Analysis daemon: Process này thực hiện việc phân tích dữ liệu. Nó sử dụng các bộ giải mã để nhận dạng thông tin được xử lý (các Windows event, SSHD logs...) và sau đó giải nén các yếu tố dữ liệu thích hợp từ log message (source ip, event id, user...) Sau đó, bằng cách sử dụng các rule được định nghĩa bằng các mẫu đặc biệt trên bộ giải mã, nó sẽ tạo các cảnh báo thậm chí ra lệnh để thực hiện các biện pháp đối phó như chặn IP trên firewall. ● RESTful API: Cung cấp interface để quản lý và giám sát cấ hình và trạng thái triển khai của các agent. Nó cũng được dùng bởi Wazuh web interface (Kibana) 2.2.3. ELK 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. Elasticsearch được tổ chức phân phối, nghĩa là dữ liệu (index) sẽ được chia thành các phân đoạn cơ sở dữ liệu (shard) và mỗi phân đoạn có thể có 0 hoặc nhiều bản sao. Kibana: Cung cấp một giao diện web linh hoạt và trực quan cho mining, 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à index 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 văn bản có các đặc trưng tương tự. 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. 16 • 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” Với các index trên, document là các cảnh báo, archived event hoặc status event riêng lẻ. Các index của Elasticsearch có thể được chia thành nhiều phân đoạn (shard) và nhân thành các bản sao. Mỗi thực thể này là một Lucene index. Vì vậy, có thể coi một Elasticsearch index là một tập các Lucene index. Khi một yêu cầu tìm kiếm được thực hiện trên một Elasticsearch index, yêu cầu này sẽ được thực thi song song trên các phân đoạn của index và kết quả sau đó sẽ được được trộn lại với nhau. Việc chia nhỏ các index của Elasticsearch được sử dụng trong multiple-node Elasticsearch cluster với mục đích mở rộng tìm kiếm để đảm bảo tính sẵn sàng. Đối với các singlenode Elasticsearch cluster thì thường mỗi index sẽ chỉ tồn tại một phân đoạn duy nhất và không có bản sao. 2.3. Kiến trúc của Wazuh Mô hình kiến trúc của Wazuh được chia thành 2 dạng : ● Multi-node deployment ● Single node deployment Multi-node deployment Khi Wazuh server và Elasticsearch cluster chạy trên các host khác nhau, Filebeat được dùng để truyền một cách an toàn các cảnh báo, archived event tới Elasticsearch server sử dụng TLS. Hình 7. Multi-node deployment Single-node deployment 17 Wazuh và Elastic stack chạy với 1 single-node Elasticsearch cluster (số lượng agent < 50), có thể triển khai trên một single server. Ở triển khai này, Logstash sẽ đọc các cảnh báo, event từ Wazuh trực tiếp từ local file system và đẩy chúng tới local Elasticsearch instance. Hình 8. Single-node deployment 2.3.1 Phương thức liên lạc và luồng dữ liệu Hình 9. Phương thức hoạt động của luồng dữ liệu 2.3.2 Agent-server communication Wazuh agent sử dụng OSSEC message protocol để gửi các event thu thập được tới Wazuh server thông qua port 1514 (UDP hoặc TCP). Wazuh server giải mã và thực hiện rule-check với các event nhận được với công cụ phân tích. Các event ứng với các rule được bổ sung dữ liệu cảnh báo như rule-id và rule-name. Các event có thể được đẩy tới 1 hoặc cả 2 file sau, dựa vào việc có được event có tương ứng với rule hay không: ● File /var/ossec/logs/archives/archives.json chứa tất cả các event dù có tương ứng với rule hay không. 18 ● File /var/ossec/logs/alerts/alerts.json chỉ chứa các event tương ứng với rule đã đặt ra. OSSEC message protocol dùng mã hóa Blowfish với full 16-round. 2.3.3 Wazuh-elastic communication Trên mô hình triển khai diện rộng, Wazuh server sử dụng Filebeat để chuyển dữ liệu về cảnh báo và event tới Logstash (5000/TCP) trên Elastic Stack server, sử dụng TLS. Với kiến trúc single-host, Logstash đọc trực tiếp từ local file system mà không cần dùng Filebeat. Logstash định hình incoming data, và có thể là GeoIP, trước gửi tới Elasticsearch (port 9200/TCP). Một khi dữ liệu được index tới Elasticsearch, Kibana (port 5601/TCP) được dùng để khai thác và hiển thị thông tin. Wazuh App chạy bên trong Kibana liên tục truy vấn tới RESTful API (port 55000/TCP trên Wazuh manager) để hiển thị cấu hình và thông tin trạng thái liên quan của server và agent, cũng như restart agent theo yêu cầu. Liên lạc này được mã hóa với TLS và được xác thực với username và password. 2.3.4 Lưu trữ dữ liệu Các event về alert và non-alert được lưu trữ cùng nhau trong file trên Wazuh server và sau để gửi tới Elasticsearch. Các file này được viết với dạng JSON hoặc với plain text format. Các file này được nén hàng ngày và được đánh dấu với MD5 và SHA1 checksums. Cấu trúc thư mục và tên file như sau : root@wazuh-server:/var/ossec/logs/archives/2017/Jan# ls -l total 176 -rw-r----- 1 ossec ossec 234350 Jan 2 00:00 ossec-archive-01.json.gz -rw-r----- 1 ossec ossec 350 Jan 2 00:00 ossec-archive-01.json.sum -rw-r----- 1 ossec ossec 176221 Jan 2 00:00 ossec-archive-01.log.gz -rw-r----- 1 ossec ossec 346 Jan 2 00:00 ossec-archive-01.log.sum -rw-r----- 1 ossec ossec 224320 Jan 2 00:00 ossec-archive-02.json.gz -rw-r----- 1 ossec ossec 350 Jan 2 00:00 ossec-archive-02.json.sum -rw-r----- 1 ossec ossec 151642 Jan 2 00:00 ossec-archive-02.log.gz -rw-r----- 1 ossec ossec 346 Jan 2 00:00 ossec-archive-02.log.sum -rw-r----- 1 ossec ossec 315251 Jan 2 00:00 ossec-archive-03.json.gz -rw-r----- 1 ossec ossec 350 Jan 2 00:00 ossec-archive-03.json.sum -rw-r----- 1 ossec ossec 156296 Jan 2 00:00 ossec-archive-03.log.gz 19 -rw-r----- 1 ossec ossec 346 Jan 2 00:00 ossec-archive-03.log.sum Việc Rotation và backup các file nén được khuyến khích, tùy theo khả năng lưu trữ của Wazuh Manager server. Sử dụng cron job để rà soát các file nén. Ngoài ra, bạn có thể lựa chọn việc bỏ qua việc lưu trữ các file nén, và sử dụng Elasticsearch cho các tài liệu lưu trữ, đặc biệt nếu bạn chạy Elasticsearch snapshot backup hoặc multi-node Elasticsearch cluster cho shard replica. Bạn có thể sử dụng cron job để di chuyển các index đã được snapshot tới một server lưu trữ và đánh dấu chúng với MD5 và SHA1. 2.4. Rules trong Wazuh Luật (rules) là một phần vô cùng quan trọng trong hệ thống Wazuh, nó chính là cốt lõi trong việc đảm bảo hệ thống Wazuh có được hoạt động theo quy trình, chính xác và hiệu quả hay không. Rules có định dạng XML, được cấu hình trong Wazuh server /var/ossec/etc/ossec.conf và nằm trong thẻ. Rules được lưu trong /var/ossec/rules. 2.4.1 Cấu trúc Rules Hình 10. Cấu trúc Rules 2.4.2 Thuộc tính của rules 20 Id: bắt buộc có ( mỗi rules sẽ có 1 id riêng k trùng lặp là các số từ 100-99999, khi tạo mới thì thường từ trên 100000) Level: bắt buộc có 16 level từ 0-15 Level Name Chú thích 00 Ignored Không thực hiện hành động nào. Khi gặp luật có cấp độ này thì sẽ không có thông báo. Các luật này được quét trước tất cả các luật khác. Chúng bao gồm các sự kiện không có sự liên quan về bảo mật. 252 01 None (không). 02 System low priority notificatio n (hệ thống thông báo ưu tiên thấp): Thông báo hệ thống hoặc thông báo trạng thái. Không có sự liên quan về bảo mật. 03 Successful/ Bao gồm các lần đăng nhập thành công, tường lửa cho phép sự Authorized kiện, v.v events (sự kiện thành công/được ủy quyền): 04 System low priority error(lỗi ưu tiên hệ thống thấp): Các lỗi liên quan đến cấu hình hoặc thiết bị/ứng dụng không sử dụng.không có sự liên quan về bảo mật và thường được gây ra bởi các cài đặt mặc định hoặc kiểm thử phần mềm. 05 User generated error(lỗi do người dùng tạo): Chúng bao gồm mật khẩu bị bỏ lỡ, hành động bị từ chối, v.v. Chính chúng không có sự liên quan về bảo mật 21 06 Low Chỉ ra một con sâu hoặc virus không ảnh hưởng đến hệ thống relevance (như mã màu đỏ cho các máy chủ apache, vv). Chúng cũng bao attack (tấn gồm các sự kiện IDS thường xuyên và các lỗi thường xuyên công mức độ liên quan thấp): 07 “Bad word” matching (kết hợp “Từ xấu”): Chúng bao gồm các từ như "bad", "error", v.v. Những sự kiện này hầu như không được phân loại và có thể có một số mức độ liên quan về bảo mật. 08 First time seen (lần đầu tiên nhìn thấy): Bao gồm các sự kiện lần đầu tiên được xem. Lần đầu tiên một sự kiện IDS được kích hoạt hoặc lần đầu tiên người dùng đăng nhập. Nếu bạn mới bắt đầu sử dụng OSSEC HIDS, những thông báo này có thể sẽ thường xuyên.Sau một thời gian sẽ giảm dần, Nó cũng bao gồm các hành động bảo mật có liên quan (như bắt đầu của một sniffer) 09 Error from invalid source(lỗi từ nguồn không hợp lệ): Bao gồm các lần đăng nhập dưới dạng người dùng không xác định hoặc từ nguồn không hợp lệ. Có thể có sự liên quan về bảo mật (đặc biệt nếu được lặp lại). Chúng cũng bao gồm các lỗi liên quan đến tài khoản "quản trị" (root). 10 Multiple user generated errors (tập hợp lỗi do người dùng tạo): Chúng bao gồm nhiều mật khẩu không hợp lệ, nhiều lần đăng nhập không thành công, v.v. Họ có thể chỉ ra một cuộc tấn công hoặc có thể chỉ là người dùng vừa quên thông tin đăng nhập của mình. 11 Integrity checking warning (cảnh báo kiểm tra tính toàn vẹn): Chúng bao gồm các thông báo liên quan đến việc sửa đổi các tệp nhị phân hoặc sự hiện diện của rootkit (bằng kiểm tra root). Nếu bạn chỉ cần sửa đổi cấu hình hệ thống của bạn, bạn sẽ được báo về các thông báo "syscheck". Nó có thể chỉ ra một cuộc tấn công thành công. Cũng bao gồm các sự kiện IDS sẽ bị bỏ qua (số lần lặp lại cao). 12 High Chúng bao gồm các thông báo lỗi hoặc cảnh báo từ hệ thống, importancy hạt nhân, v.v. Chúng có thể chỉ ra một cuộc tấn công chống lại 22 event (sự kiện quan trọng cao): một ứng dụng cụ thể. 13 Unusual error (high importance ) - Lỗi bất thường (mức độ quan trọng cao): Hầu hết các lần khớp với một kiểu tấn công chung. 14 High importance security event (sự kiện bảo mật quan trọng cao) Hầu hết thời gian được thực hiện với sự tương quan và nó chỉ ra một cuộc tấn công. 15 Severe attack (tấn công nghiêm trọng): Cần chú ý ngay lập tức. Bảng 1. Các mức level của rules trong wazuh Noalert : không bắt buộc : không kích hoạt cảnh báo nếu rules hợp lệ. Frequency: chỉ định số lần rules được kiểm tra trước khi thực hiện. Số lần kích hoạt phải gấp đôi số lần cài đặt. Ví dụ: tần sô = 2 => rule phải được so sánh 4 lần.(từ 1- 99999) Timeframe: khung thời gian tính bằng giây, được sử dụng để kết hợp với frequency.(1-99999) Ignore: thời gian (s) bỏ qua rule này. ( 1-99999) Overwrite: Cho phép chỉnh sửa rule ( overwrite= "yes or no") Ví dụ: Rule được tạo bằng ID: 3151 và nó sẽ kích hoạt cảnh báo cấp 10 nếu Rule 3102 khớp 8 lần trong 120 giây qua. 23 2.4.3 Phân loại rules Trong Wazuh, luật được chia thành 2 loại: Luật nguyên tố và luật kết hợp: Luật nguyên tố - các luật xử lý 1 sự kiện: cảnh báo, thông báo hay hành động ứng phó sẽ xuất hiện khi có 1 sự kiện thỏa mãn. Ví dụ: Bao nhiêu lần đăng nhập thất bại sẽ xuất hiện bấy nhiêu lần thông báo. Luật kết hợp – xử lý nhiều sự kiện một lúc trong 1 luật: Có thể sử dụng với thẻ Frequency và Timeframe để xử lý một xự kiện được diễn ra nhiều lần. Các luật được kết hợp với nhau thông qua id, sử dụng thẻ<if_sid> hoặc ( <if_match_sid>hoặc <same_id> hoặc<same_source_ip> - các thẻ này được kết hợp với Frequency và Timeframe). 2.4.4 Cách thức hoạt động của rules Từ cấu trúc thư mục của Rule sẽ bao gồm Decoders và rule: 2.4.4.1 Một số cú pháp của decode Bảng 2. Một số cú pháp decode Ví dụ: 24 2.4.4.2.Một số cú pháp của rule Bảng 3. Một số cú pháp của rules <rule> .. </rule>. : là nhãn bắt đầu khối xác định quy tắc . Trong phần này, các tùy chọn khác nhau cho nhãn này sẽ được giải thích ở bảng bên dưới. 2.5. Các chức năng tiêu biểu của Wazuh 2.5.1.Phân tích bảo mật 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 đem đến một giải pháp SIEM rất toàn diện. 25 Hình 11. Phân tích bảo mật trong Wazuh 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à những sự cố xâm nhập trái phép, có khả năng phát hiện các mối đe dọa sớm trong nhiều môi trường khác nhau. Ví dụ, Wazuh có thể được sử dụng trong văn phòng, cũng như trong môi trường đám mây để những người làm việc từ xa vẫn có thể thu được những lợi ích của Wazuh. Cải thiện bảo mật kỹ thuật số sẽ không chỉ giới hạn trong cài đặt thực tế. 2.5.2.Phát hiện xâm nhập Phần mềm Wazuh có các tác nhân đa nền tảng giám sát hệ thống, phát hiện các mối đe dọa và kích hoạt các phản ứng tự động khi cần thiết. Cụ thể hơn, Wazuh tập trung vào rootkit và phần mềm độc hại, cũng như các điểm bất thường đáng ngờ. Ngoài ra, những tác nhân này có thể phát hiện công nghệ tấn công nguy hiểm khác như tệp ẩn, quy trình được che giấu và các trình xử lý mạng chưa đăng ký. 26 Hình 12. Phát hiện xâm nhập trong Wazuh Ngoài các khả năng phát hiện xâm nhập này, máy chủ của Wazuh có cách tiếp cận dựa trên chữ ký. Chúng phân tích dữ liệu nhật ký được thu thập và có thể xác định các điểm xâm phạm bằng cách so sánh chúng với các chữ ký đã biết. Tính năng này ngay lập tức có thể xác định và ngăn chặn nhân viên tải xuống và cài đặt các ứng dụng độc hại. Điều này tạo cho nơi làm việc một mạng lưới an toàn. Luôn chú ý , giáo dục nhân viên về an ninh mạng phải là tuyến phòng thủ đầu tiên. 2.5.3.Phát hiện lỗ hổng Wazuh cũng có thể xác định những lỗ hổng mạng. Điều này cho phép các doanh nghiệp tìm ra các liên kết yếu nhất của họ và bịt các lỗ hổng trước khi tội phạm mạng có thể khai thác chúng . 27 Hình 13. Phát hiện lỗ hổng trong Wazuh Các đại lý Wazuh sẽ lấy dữ liệu kiểm kê phần mềm và gửi đến máy chủ của họ. Ở đây, nó được so sánh với các lỗ hổng bảo mật phổ biến và cơ sở dữ liệu phơi nhiễm (CVE) được cập nhật liên tục. Do đó, những tác nhân này sẽ tìm và xác định bất kỳ phần mềm nào dễ bị tấn công. Trong nhiều trường hợp, phần mềm chống vi-rút có thể xử lý các lỗ hổng này. Các chương trình này thường xuyên phát hành các bản vá bảo mật. Nhưng trong một số trường hợp hiếm hoi, các nhà phát triển chống vi-rút sẽ không tìm thấy lỗ hổng bảo mật kịp thời. Hoặc họ có thể không tìm thấy chúng, điều này có thể khiến doanh nghiệp bị lộ. Có Wazuh có nghĩa là các doanh nghiệp có thêm một bộ mắt để đảm bảo an ninh mạng của họ được kín đáo. 2.5.4.Phân tích log Wazuh không chỉ thu thập dữ liệu mạng và nhật ký ứng dụng mà còn gửi chúng một cách an toàn đến người quản lý trung tâm để phân tích và lưu trữ dựa trên quy tắc. Việc phân tích dữ liệu nhật ký này dựa trên hơn 3000 quy tắc khác nhau để xác định bất kỳ điều gì sai sót, cho dù đó là tác động từ bên ngoài hay lỗi của người dùng. Ví dụ: các quy tắc được áp dụng có thể phát hiện lỗi ứng dụng hoặc hệ thống, vi phạm chính sách, cấu hình sai, cũng như hoạt động độc hại đã cố gắng hoặc thành công. 28 Hình 14. Phân tích log trong Wazuh Ngoài ra, phân tích dữ liệu nhật ký có thể xác định cả hoạt động độc hại đã cố gắng và thành công. Phát hiện sớm là chìa khóa để giữ an toàn cho mạng. Doanh nghiệp có thể học hỏi từ các hoạt động độc hại đã cố gắng và nâng cấp an ninh mạng của họ cho phù hợp. Và đối với các hoạt động độc hại thành công, hệ thống có thể nhanh chóng cách ly các tệp bị nhiễm. Hoặc họ có thể xóa chúng trước khi chúng có thể gây ra nhiều thiệt hại hơn. Một điều khác mà phân tích dữ liệu nhật ký có thể cho thấy là vi phạm chính sách. Cho dù là cố ý hay vô ý, những vi phạm này đều có thể bị ban giám đốc chú ý. Sau đó, họ có thể nhanh chóng hành động để khắc phục tình hình 29 III. NỘI DUNG THỰC HIỆN DEMO 1. Chuẩn bị môi trường Chuẩn bị một máy centos 7 cài đặt wazuh-server và ELK, 2 máy windows 7, windows 11, 1 máy Ubuntu server cài đặt wazuh-agent, 1 máy kali-linux để thực hiện tấn công. 1.1. Yêu cầu cài đặt Nhu cầu giám sát an ninh và thu thập log tập trung cho hệ thống từ 15-20 server. Vì vậy chọn mô hình Single-node deployment Hình 15. Cài đặt Wazuh server 30 Yêu cầu về cấu hình máy giám sát Agents CPU RAM Storage(90days) 1–25 4 vCPU 8 GiB 50 GB 25–50 8 vCPU 8 GiB 100 GB 50–100 8 vCPU 8 GiB 200 GB Bảng 4. Yêu cầu cấu hình máy wazuh-server 1.2.Cài đặt elasticsearch Import the GPG key: o rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch Thêm repo o cat > /etc/yum.repos.d/elastic.repo << EOF o [elasticsearch-7.x] o name=Elasticsearch repository for 7.x packages o baseurl=https://artifacts.elastic.co/packages/7.x/yum o gpgcheck=1 o gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch o enabled=1 o autorefresh=1 o type=rpm-md o EOF Cài đặt elasticsearch o yum install elasticsearch-7.17.5 Download file configuration theo hướng dẫn sau: o curl -so /etc/elasticsearch/elasticsearch.yml https://packages.wazuh.com/4.3/tpl/elasticbasic/elasticsearch_all_in_one.yml Download configuration file để tạo certificates o curl -so /usr/share/elasticsearch/instances.yml https://packages.wazuh.com/4.3/tpl/elastic-basic/instances_aio.yml Tạo certificates o /usr/share/elasticsearch/bin/elasticsearch-certutil cert ca --pem --in instances.yml --keep-ca-key --out ~/certs.zip 31 Giải nén file .zip o unzip ~/certs.zip -d ~/certs Tạo thư mục /etc/elasticsearch/certs, chuyển file CA, certificate và key o o o o o mkdir /etc/elasticsearch/certs/ca -p cp -R ~/certs/ca/ ~/certs/elasticsearch/* /etc/elasticsearch/certs/ chown -R elasticsearch: /etc/elasticsearch/certs chmod -R 500 /etc/elasticsearch/certs chmod 400 /etc/elasticsearch/certs/ca/ca.* /etc/elasticsearch/certs/elasticsearch.* o rm -rf ~/certs/ ~/certs.zip Bật và khởi tạo dịch vụ Elasticsearch o systemctl daemon-reload o systemctl enable elasticsearch o systemctl start elasticsearch Sinh key tự động o /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto 1.3.Cài đặt wazuh manger Install java 8 o yum install java-1.8.0-openjdk -y Import the GPG key: o rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH Thêm repo : o cat > /etc/yum.repos.d/wazuh.repo << EOF o [wazuh] o gpgcheck=1 o gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH o enabled=1 o name=EL-\$releasever - Wazuh o baseurl=https://packages.wazuh.com/4.x/yum/ o protect=1 o EOF Cài đặt wazuh-manger o yum install wazuh-manager -y Bật wazuh-manger và bật dịch vụ khi khởi chạy 32 o systemctl daemon-reload o systemctl enable wazuh-manager o systemctl start wazuh-manager Kiểm tra trạng thái wazuh-manger systemctl status wazuh-manager 1.4.Cài đặt filebeat Cài đặt filebeat o yum install filebeat-7.17.5 Download filebeat config để chuyển cảnh báo từ Wazuh sang Elasticsearch o curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/4.3/tpl/elastic-basic/filebeat_all_in_one.yml Download alert templates cho Elasticsearch o Curl-so/etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.3/extensions/elasticsea rch/7.x/wazuh-template.json o chmod go+r /etc/filebeat/wazuh-template.json Download wazuh module cho Filebeat o curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.2.tar.gz | tar -xvz -C /usr/share/filebeat/module Thự hiện thêm mật khẩu của elastic vừa mới tạo bên trên trong file /etc/filebeat/filebeat.yml theo dòng sau: o output.elasticsearch.password: <elasticsearch_password> Copy certificates vào file /etc/filebeat/certs/ o cp -r /etc/elasticsearch/certs/ca/ /etc/filebeat/certs/ o cp /etc/elasticsearch/certs/elasticsearch.crt /etc/filebeat/certs/filebeat.crt o cp /etc/elasticsearch/certs/elasticsearch.key /etc/filebeat/certs/filebeat.key Bật và khởi động filebeat tự động o systemctl daemon-reload o systemctl enable filebeat o systemctl start filebeat Kiểm tra filebeat đã hoạt động chưa o filebeat test output 1.5.Cài đặt kibana và cấu hình Cài đặt kibana o yum install kibana-7.17.5 33 Copy Elasticsearch certificates vào Kibana configuration folder: o mkdir /etc/kibana/certs/ca -p o cp -R /etc/elasticsearch/certs/ca/ /etc/kibana/certs/ o cp /etc/elasticsearch/certs/elasticsearch.key /etc/kibana/certs/kibana.key o cp /etc/elasticsearch/certs/elasticsearch.crt /etc/kibana/certs/kibana.crt o chown -R kibana:kibana /etc/kibana/ o chmod -R 500 /etc/kibana/certs o chmod 440 /etc/kibana/certs/ca/ca.* /etc/kibana/certs/kibana.* Download file cấu hình kibana o curl -so /etc/kibana/kibana.yml https://packages.wazuh.com/4.3/tpl/elastic-basic/kibana_all_in_one.yml o Cấu hình file /etc/kibana/kibana.yml bằng mật khẩu tạo bên trên elasticsearch.password: <elasticsearch_password> Tạo thư mục /usr/share/kibana/data o mkdir /usr/share/kibana/data o chown -R kibana:kibana /usr/share/kibana Cài Wazuh Kibana plugin o cd /usr/share/kibana o sudo -u kibana /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/4.x/ui/kibana/wazuh_kibana-4.3.8_7.17.51.zip Link Kibana với port 443 o setcap 'cap_net_bind_service=+ep' /usr/share/kibana/node/bin/node Bật và khởi tạo kibana o systemctl daemon-reload o systemctl enable kibana o systemctl start kibana Tắt cập nhật wazuh và elasticsearch o sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/wazuh.repo o sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/elastic.repo 1.6. Cài đặt wazuh agent trên window Mở giao diện kibana vào phần agent 34 Hình 16. Thêm agent trong kibana Chọn phần deploy new agent Hình 17. Các agent đã được thêm vào wazuh-server Chọn phần window, nhập ip server và group 35 Hình 18. Các bước thêm agent Copy command vào powershell với quyền administrator trên máy client và khởi chạy agent Hình 19. Cài đặt Wazuh agent 36 1.7. Cài đặt agent trên Ubuntu server - Trên wazuh Manager thực hiện chọn Deploy new agent Hình 20: Deploy a new Linux system agent - Tiến hành chạy các câu lệnh để cài đặt agent: Hình 21: Command để đăng kí agent trên Ubunt server - Cài đặt thêm agent thành công: 37 Hình 22: Cài đặt thành công agent Ubuntu Server 2. Demo 2.1. Brute force: 2.1.1. Môi trường thực hiện - - Chuẩn bị 3 máy Centos 7, Windows 7 và Kali Linux trong cùng 1 mạng LAN. o Máy Centos 7 dùng làm Wazuh Server o Máy Windows 7 là Wazuh Agent để thử nghiệm tấn công Brute force o Máy Kali Linux để thực hiện tấn công Brute force Kịch bản: Sử dụng máy kali-linux thực hiện tấn công brute force vào máy windows 7 có cài đặt wazuh agent. Sau đó tiến hành kiểm tra xem wazuh có bắt được alert hay không. 2.1.2. Các bước thực hiện - Bước 1: Trên kali-linux sử dụng công cụ nmap để tìm kiếm lỗ hổng trong máy windows 7. 38 Hình 23. Sử dụng nmap thực hiện rà quét lỗ hổng - Bước 2: Phát hiện cổng 445 mở, thông qua cổng này, sử dụng công cụ medusa thực hiện tấn công brute force vào máy windows 7 với file tài khoản, mật khẩu chuẩn bị trước. Hình 24. Thực hiện tấn công Brute force - Bước 3: Mở wazuh trong kibana kiểm tra xem wazuh có bắt được alert không. 39 Hình 25. Wazuh nhận được alert Brute force - Ta thấy wazuh đã bắt được alert của một cuộc tấn công brute force. Ta thực hiện xem nội dung cảnh báo. Hình 26. Nội dung alert Brute force - Rules giúp ta bắt được alert của cuộc tấn công brute force này: 40 Hình 27. Rules Brute force 2.1.3. Kết quả mong muốn - Phát hiện được cuộc tấn công Brute force và đưa ra được hướng xử lí ngăn chặn. 2.2. SQL injection: 2.2.1. Chuẩn bị môi trường - - Chuẩn bị 3 máy Centos 7, Windows 11 và Kali Linux trong cùng 1 mạng LAN. o Máy Centos 7 dùng làm Wazuh Server o Máy Windows 11 là Wazuh Agent có cài web server thông qua xampp dùng để thử nghiệm tấn công SQL injection o Máy Kali Linux để thực hiện tấn công SQL injection Kịch bản: Sử dụng máy kali-linux thực hiện tấn công SQL injection vào web server trong máy windows 11 có cài đặt wazuh agent. Sau đó tiến hành kiểm tra xem wazuh có bắt được alert hay không. Hình 28. Web server trên máy windows 11 41 2.2.2. Các bước thực hiện - Bước 1: Trên kali-linux sử dụng công cụ sqlmap để thực hiện tấn công SQL injection vào web server Hình 29. Câu lệnh tấn công SQL injection Hình 30. Sử dụng máy kali tấn công SQL injection vào web server - Bước 2: Mở wazuh trong kibana kiểm tra xem wazuh có bắt được alert không. 42 Hình 31. Wazuh nhận được alert SQL injection - Ta thấy wazuh đã bắt được alert của một cuộc tấn côngSQL injection. Ta thực hiện xem nội dung cảnh báo. Hình 32. Nội dung alert SQL injection - Rules giúp ta bắt được alert của cuộc tấn công SQL injection này: 43 Hình 33. Rules SQL injection 2.2.3. Kết quả mong muốn - .Phát hiện được cuộc tấn công SQL injection và đưa ra được hướng xử lí ngăn chặn. 2.3. Brute force vào cổng dịch vụ SSH 2.3.1. Chuẩn bị môi trường - Chuẩn bị 3 máy Centos 7, Ubuntu Server và Kali Linux trong cùng 1 mạng LAN. o Máy Centos 7 dùng làm Wazuh Server o Máy Ubuntu Server là Wazuh Agent để thử nghiệm tấn công vào cổng SSH o Máy Kali Linux để thực hiện tấn công 2.3.2. Các bước thực hiện - Bước 1: Dùng Nmap quét các cổng trên Ubuntu server: Hình 34: Quét các cổng trên Ubuntu Server 44 - Bước 2: Phát hiện cổng 22 đang mở, tiến hành tấn công bằng công cụ Hydra với tệp Username và Password có sẵn: Hình 35: Tấn công Brute force vào dịch vụ SSH - Khi có quá nhiều lần đăng nhập thất bại, cảnh báo brute force được hiện lên: Hình 36: Cảnh báo Brute force hiện lên - - Từ đây ta có thể xem được thông tin về lần đăng nhập thất bại và xử lí IP xấu này: Nov 13 09:49:13 quansao sshd[10141]: Failed password for invalid user Administrator from 192.168.43.137 port 56992 ssh2 Rule giúp ta bắt được cuộc tấn công này: </rule> <rule id="600204" level="12" frequency="20" timeframe="260" > <if_matched_sid>5710</if_matched_sid> 45 <same_source_ip /> <description>Brute force user or password</description> <mitre> <id>T1110</id> </mitre> <options>no_full_log</options> <group>authentication_failures,pci_dss_10.2.4,pci_dss_10.2.5,pci_dss_11.4, gdpr_IV_35.7.d,gdpr_IV_32.2,hipaa_164.312.b,nist_800_53_AU.14,nist_800 _53_AC.7,nist_800_53_SI.4,tsc_CC6.1,tsc_CC6.8,tsc_CC7.2,tsc_CC7.3,</gr oup> </rule> - Với mỗi cảnh báo với ID 5710 được lặp lại 20 lần trong 260 giây và tới cùng từ một địa chỉ IP, cảnh báo Brute force sẽ được hiện lên với level là 12. 2.3.3. Kết quả mong muốn - Phát hiện được cuộc tấn công Brute force và đưa ra được hướng xử lí ngăn chặn. 2.4. Phát hiện các file độc xuất hiện trong máy 2.4.1. Môi trường chuẩn bị - Chuẩn bị 2 máy Centos 7, Windows 10 trong cùng 1 mạng LAN. o Máy Centos 7 dùng làm Wazuh Server o Máy Windows 10 là Wazuh Agent để thử nghiệm phát hiện file độc hại 46 2.4.2. Các bước thực hiện - Bước 1: Cấu hình file ossec.conf trên windows 10 agent, ở đây ta sẽ đặt thư mục cần theo dõi là C:\Users\Administor\Downloads : Hình 37: Cấu hình file ossec.conf - Bước 2: Tạo rule trên Wazuh: Hình 38: Custom rule phát hiện file độc hại - Với IOC là mã băm của file với giá trị như trên, nếu hệ thống phát hiện có file nào xuất hiện trong thư mục đã định thì sẽ đưa cảnh báo với level là 10. Bước 3: Restart Wazuh manager: Hình 39: Restart Wazuh manager - Bước 4: Thử nghiệm tải một file độc hại về máy: 47 Hình 40: Tải file độc hại về máy - Wazuh đã phát hiện được và đưa ra cảnh báo: Hình 41: Cảnh báo phát hiện file độc 2.4.3. Kết quả mong muốn - Hệ thống phát hiện được file độc hại được tải xuống và đưa ra cảnh báo cho người quản trị. IV. KẾT LUẬN Wazuh là một dự án nguồn mở được phát triển dựa trên OSSEC, HIDS và đượ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 tốt trong thời điểm các cuộc tấn công, xâm nhập mạng ngày càng nhiều. Xây dựng hệ thống wazuh bằng docker container dễ dàng. Giao diện kibana, wazuh thân thiện với người dùng, thuận lợi cho việc quản lý. 48 Khả năng bảo mật hệ thống tốt. Các log system của agent cập nhật thường xuyên, có thông tin chi tiết kèm mức cảnh báo của các alert khiến việc đánh giá khả năng hệ thống bị tấn công hay không dễ dàng. Các rule đã cài sẵn khá đầy đủ để cảnh báo các trường hợp xâm nhập mạng phổ biến khiến việc tấn công vào rất khó khăn. 4.1. - 4.2. - - Ưu điểm: Là mã nguồn mở với cộng đồng phát triển mạnh mẽ. Triển khai tốt với các mô hình quản lý nhỏ. Tích hợp giao diện kibana dưới dạng plugin đem đến trải nghiệm tuyệt vời trong việc cấu hình, quản lý các agent, nhận các alert bảo mật. Khả năng monitoring đáp ứng được nhu cầu cơ bản, đảm bảo khả năng bảo mật của container chạy trong agent. Cung cấp trải nghiệm hệ thống wazuh tốt với virtual machine image (OVA) được tạo sẵn. Rule cấu hình sẵn khá đầy đủ, đối phó được với các trường hợp tấn công phổ biến, cảnh báo tốt về khả năng hệ thống bị tấn công. Nhược điểm: Cài đặt phức tạp khi triển khai mô hình quy mô lớn Triển khai theo mô hình phân tán (Distributed deployment) cung cấp khả năng mở rộng cao của các dịch vụ nhưng cài đặt khó khăn, thường gặp vấn đề lỗi liên quan đến version khi cài đặt wazuh server. Triển khai wazuh bằng ansible dễ bị lỗi về vấn đề remote hosts connection. Nhận những alert không cần thiết nếu cấu hình rule sai. Không có biểu đồ tương quan với việc sử dụng tài nguyên của các containers. Giao diện hệ thống wazuh kết hợp kibana khởi động chậm. V. TÀI LIỆU THAM KHẢO - - Index (2022). Available at: https://documentation.wazuh.com/current/index.html (Accessed: 14 November 2022). (2022). Available at: http://infosecptit.com/cs-attt/Giaotrinh-cs-attt-2018int1472new.pdf?fbclid=IwAR1qvrKz8_GVB4NWyinwjWeekWUX5InXBSKAuDk LHGgsd2HMRqeZxK0kYZ8 (Accessed: 14 November 2022). 49 - - Detecting a brute-force attack (2022). Available at: https://documentation.wazuh.com/current/proof-of-concept-guide/detectbrute-force-attack.html (Accessed: 14 November 2022). (4) Tutorial: Wazuh SIEM - Installation and Configuration (Complete Steps)- YouTube (2022). Available at: https://www.youtube.com/watch?v=kd5THDYTarM&t=1206s (Accessed: 14 November 2022). 50