Hôm nay mình vừa hoàn thành xong chặng cuối cùng của chuỗi bài Lab về OpenSearch (SIEM/SOC) và muốn chia sẻ một chút thành quả cũng như kinh nghiệm với mọi người. Mục tiêu của bài Lab này là xây dựng một hệ thống giám sát an ninh mạng toàn diện, có khả năng tự động phản ứng và trực quan hóa dữ liệu.
Đây là các bước mình đã thực hiện và những lỗi "khoai" mình đã vượt qua:
|
Ban đầu mình cũng gặp chút lỗi Server Error khi gửi Test Message từ OpenSearch (Channel SOAR Webhook Receiver), nhưng sau khi debug file Python và chỉnh lại cấu hình Host/Port thì mọi thứ đã chạy trơn tru.
Tuy nhiên, mình gặp một pha khá "cấn" khi vẽ biểu đồ Bandwidth IN/OUT. Khi chọn Aggregation là Sum, OpenSearch báo lỗi "You've selected all available options" và không cho chọn trường destination.bytes. Nguyên nhân là do hệ thống không parse trường đó dưới dạng số (Number).
Giải pháp của mình: Xóa metric bị lỗi đi, chỉ tập trung vào source.bytes. Quan trọng nhất là phải thêm trục X-axis với Aggregation là Date Histogram (chọn trường @timestamp) thì biểu đồ mới vẽ thành đường (Line) chạy theo thời gian được, thay vì bị gom thành 1 cục "All docs".
Đây là các bước mình đã thực hiện và những lỗi "khoai" mình đã vượt qua:
1. Tích hợp SOAR Webhook & Cảnh báo tự động
Trước khi xây dựng Dashboard, mình đã setup một hệ thống nhận cảnh báo (Webhook Receiver) bằng Python. Hệ thống này liên tục lắng nghe các Alert bắn ra từ OpenSearch.Khi có sự kiện "Phát hiện tấn công dò quét thư mục Web", hệ thống không chỉ ghi nhận IP của Hacker mà còn kích hoạt Action giả lập Block IP đó trên Firewall.
Ban đầu mình cũng gặp chút lỗi Server Error khi gửi Test Message từ OpenSearch (Channel SOAR Webhook Receiver), nhưng sau khi debug file Python và chỉnh lại cấu hình Host/Port thì mọi thứ đã chạy trơn tru.
[Chèn ảnh lỗi Test Message nếu muốn chia sẻ kinh nghiệm debug: image_bdd207.png và cấu hình Monitor: image_bd70a8.png]
2. Vượt ải "Vẽ biểu đồ Line" cho Network Traffic
Bước sang việc tạo các biểu đồ (Visualizations) cho Dashboard, mình chia log thành các index rõ ràng như: logs-*, audit-logs-*, network-logs-* và auth-logs-*.Tuy nhiên, mình gặp một pha khá "cấn" khi vẽ biểu đồ Bandwidth IN/OUT. Khi chọn Aggregation là Sum, OpenSearch báo lỗi "You've selected all available options" và không cho chọn trường destination.bytes. Nguyên nhân là do hệ thống không parse trường đó dưới dạng số (Number).
Giải pháp của mình: Xóa metric bị lỗi đi, chỉ tập trung vào source.bytes. Quan trọng nhất là phải thêm trục X-axis với Aggregation là Date Histogram (chọn trường @timestamp) thì biểu đồ mới vẽ thành đường (Line) chạy theo thời gian được, thay vì bị gom thành 1 cục "All docs".
3. Lên đồ: SOC Overview Dashboard hoàn chỉnh
Sau khi gom đủ các "viên gạch", mình lắp ráp lên Dashboard tổng. Dashboard này giúp mình có cái nhìn bao quát về toàn bộ hệ thống:- Access Control: Theo dõi được xu hướng đăng nhập sai (Failed Login Trend) và đặc biệt là bảng Danh sách các user bị khóa (Locked Users). Bắt được cả các tài khoản hệ thống (SYSTEM) hay tài khoản user thường nhập sai mật khẩu nhiều lần.
- Sự kiện & Cảnh báo: Thống kê Alert Count và các loại sự kiện (Event Types)
4. Export thành quả (JSON)
Cuối cùng, để lưu trữ và báo cáo, mình tiến hành Export toàn bộ Dashboard.Lưu ý nhỏ cho anh em dùng bản OpenSearch mới: Mục này giờ nằm ở Dashboards Management -> Saved Objects chứ không còn tên là Stack Management nữa.Một "trick" sống còn khi export là bắt buộc phải bật công tắc "Include related objects" để nó gói theo toàn bộ biểu đồ con và Index Pattern. Kết quả là mình đã tải về được file export.ndjson nặng 171 KB ngon lành!