Bỏ qua tới nội dung chính
Quay lại tin tức

Xây dựng Bot bảo mật kiểu XDR trong OpenClaw để giám sát nhật ký 24/7

Medium Towards AI· Aeon Flex, Elriel Assoc. 2133 [NEON MAXIMA]· 30/5/2026general

Các nhà cung cấp giải pháp bảo mật sẽ bán cho bạn một nền tảng XDR với chi phí đắt hơn chiếc ô tô của bạn, nhưng vẫn bỏ sót những sự cố bất thường vì nó được huấn luyện trên mạng lưới của người khác. Tôi đã quá mệt mỏi với việc phải trả tiền cho những giải pháp như vậy. Vì vậy, tôi đã tự xây dựng một hệ thống của riêng mình, trên một chiếc NUC cũ đặt dưới bàn làm việc, với chi phí khoảng 28 USD mỗi tháng cho tiền điện và lưu trữ đám mây. Đây là bản dựng đó. OpenClaw hoạt động như một công cụ giám sát nhật ký 24/7, chấm điểm bất thường, đối chiếu và thông báo qua Telegram. Không phụ thuộc vào đám mây. Không có phí cấp phép theo người dùng. Không có bảng điều khiển yêu cầu chứng chỉ để hiểu. OpenClaw thực sự là gì (và tại sao nó quan trọng ở đây) OpenClaw là một tác nhân AI mã nguồn mở, tự lưu trữ.

Các nhà cung cấp giải pháp bảo mật sẽ chào bán một nền tảng XDR với chi phí cao hơn giá trị chiếc xe của quý vị, nhưng vẫn bỏ sót những sự cố bất thường vì nền tảng đó được huấn luyện trên mạng lưới của người khác. Tôi đã quá mệt mỏi với việc chi trả cho những giải pháp như vậy. Vì thế, tôi đã tự xây dựng một hệ thống riêng, trên một chiếc NUC cũ đặt dưới bàn làm việc, với chi phí khoảng 28 USD mỗi tháng cho điện năng và lưu trữ đám mây. Đây là quá trình xây dựng hệ thống đó. OpenClaw hoạt động như một công cụ giám sát nhật ký 24/7, chấm điểm bất thường, tương quan hóa dữ liệu và thông báo qua Telegram. Hệ thống không phụ thuộc vào đám mây, không yêu cầu giấy phép theo từng người dùng, và không có bảng điều khiển phức tạp cần chứng chỉ để hiểu. **OpenClaw thực sự là gì (và tại sao nó quan trọng ở đây)** OpenClaw là một tác nhân AI mã nguồn mở, tự lưu trữ. Sự khác biệt so với một chatbot là quan trọng: nó đọc và ghi tệp, thực thi các lệnh shell, quản lý các quy trình làm việc nhiều bước và chạy theo lịch trình mà không cần sự can thiệp của người dùng. Quý vị cài đặt nó cục bộ và nó sẽ hoạt động tại đó. Ba khả năng khiến nó phù hợp cho việc giám sát an ninh: * **Kỹ năng (Skills).** Các mô-đun Python hoặc TypeScript nhỏ thực hiện một công việc duy nhất. Lên lịch cho chúng trong tệp claw.yaml và chúng sẽ tự chạy. Với cài đặt `every: "60s"`, chúng sẽ không bao giờ bỏ sót. * **Bộ nhớ bền vững (Persistent memory).** Nó lưu trữ những gì đã quan sát được ngày hôm trước. Phát hiện bất thường chỉ hoạt động khi "bình thường" được định nghĩa, và bộ nhớ là nơi lưu trữ định nghĩa đó. * **Trình kết nối (Connectors).** Nó gửi tin nhắn đến Telegram, Discord, email và các nền tảng khác mà không cần quý vị viết mã tích hợp. Đó là toàn bộ kiến trúc cho một công cụ giám sát nhật ký. Không có gì phức tạp. **Kiến trúc** Tôi đặt tên cho hệ thống của mình là Cerberus. Ba đầu, phù hợp với công việc. Cấu trúc của nó: | Kỹ năng | Công việc | Lịch trình | |---|---|---| | log-ingest | Chuẩn hóa nhật ký thành SQLite | Mỗi 60 giây | | baseline-nose | Xây dựng đường cơ sở hành vi | Mỗi 5 phút | | hunt-correlate | Tương quan các bất thường, tạo cảnh báo | Khi có kích hoạt | | notify-telegram | Thông báo phân cấp + phản hồi tương tác | Khi có cảnh báo | Cả bốn tác vụ đều chạy trên cùng một NUC. Toàn bộ hệ thống có chi phí thấp hơn một tháng sử dụng bất kỳ bản dùng thử EDR thương mại nào. **Cung cấp khả năng quan sát: Thu thập nhật ký không sai lệch** Lỗi phổ biến nhất trong giám sát an ninh tự làm là dữ liệu rác. Nếu quá trình chuẩn hóa sai, mọi quyết định tiếp theo đều sai. Các nguồn dữ liệu của tôi: * Syslog tường lửa pfSense * Nhật ký quyết định của CrowdSec trên hai máy Ubuntu * Nhật ký xác thực từ một máy chủ nhảy (jump host) * Nhật ký kiểm tra Cloudflare Zero Trust qua API * Docker stdout từ các ứng dụng tự lưu trữ Kỹ năng `log-ingest` giám sát `/var/log/remote/` bằng `inotify`, đọc các dòng mới và ghi JSON đã chuẩn hóa vào SQLite. Không có Elastic. Không có Splunk. SQLite được chọn vì nếu bị hỏng, quý vị có thể sửa chữa. Quý vị không thể tự tin sửa chữa một cụm Elastic bị hỏng vào lúc 2 giờ sáng. Quyết định quan trọng ở đây: không để LLM phân tích từng dòng nhật ký. Điều đó tốn kém và không đáng tin cậy. Ưu tiên biểu thức chính quy (regex) xác định trước, LLM chỉ là phương án dự phòng cho các định dạng không xác định: ```python def normalize(line): m = AUTH_RE.match(line) if m: return {"src": "ssh", "user": m[1], "ip": m[2], "result": m[3]} # Chỉ chuyển cho LLM nếu định dạng thực sự không xác định return claw.llm_extract(line, schema=GENERIC_EVENT) ``` OpenClaw thực thi mã Python này một cách tự nhiên, bên trong tiến trình tác nhân. Không có lambda bên ngoài. Không có chuyến đi khứ hồi HTTP. Lên lịch cho nó bằng một khối trong `claw.yaml`: ```yaml jobs: - name: ingest every: "60s" skill: log-ingest ``` Hệ thống im lặng khi không có thay đổi. Hoạt động khi dữ liệu đến. Đó là hành vi đúng đắn. **Dạy nó nhận biết điều gì là bình thường** Hầu hết các dự án SOC tự làm đều thất bại ở đây. Ai đó viết 400 quy tắc Sigma, bị ngập trong các cảnh báo sai, tắt tiếng cảnh báo, và giờ đây có một tập lệnh shell rất đắt tiền nhưng không làm gì cả. Giải pháp thay thế là xây dựng đường cơ sở (baselining). Hãy để nó học trước khi đưa ra phán đoán. Kỹ năng `baseline-nose` chạy mỗi năm phút. Nó truy vấn SQLite trong 14 ngày gần nhất và xây dựng hồ sơ thống kê cho từng thực thể: Người dùng lu tổng hợp các phiên SSH từ 2 địa chỉ IP, trong khoảng thời gian từ 7 giờ sáng đến 11 giờ tối, không bao giờ vào cuối tuần. Tường lửa ghi nhận khoảng 400 truy vấn DNS đi mỗi giờ, trong đó 92% đến Cloudflare và Quad9. Container Home Assistant khởi động lại một lần sau khi cập nhật, không bao giờ vào 3 giờ sáng. Các hồ sơ này được lưu trữ trong bộ nhớ của OpenClaw dưới dạng các embedding. Khi một sự kiện mới xuất hiện, kỹ năng sẽ tính toán khoảng cách cosine từ tâm đường cơ sở. Đây là phương pháp thống kê truyền thống, không cần đến phép màu thần kinh. Một ví dụ cụ thể: hệ thống đã cảnh báo tôi đăng nhập từ một quán cà phê ở Asheville lúc 6 giờ sáng. Nó đã gửi một tin nhắn Telegram: “Bạn dậy sớm. Bạn bị xâm nhập hay chỉ đang hối hận về những lựa chọn trong cuộc sống?” Cả hai đều đúng. Vấn đề là, nó đã nhận ra. Một bộ quy tắc sẽ không làm được điều đó. Lớp ngữ cảnh đó là giá trị thực sự của phương pháp này. Sự tương quan mà không có ngữ cảnh chỉ là nhiễu. Phát hiện có lý do, không chỉ khớp Kỹ năng săn lùng-tương quan được kích hoạt khi điểm bất thường vượt qua một ngưỡng. Nó thu thập các sự kiện liên quan trong giờ gần nhất từ tất cả các nguồn và xây dựng một dòng thời gian, sau đó chuyển cho LLM để phân tích. Lời nhắc tôi sử dụng: Bạn là Cerberus, một nhà phân tích bảo mật. Bạn có quyền truy cập hệ thống cục bộ nhưng bạn không được xóa, mã hóa hoặc trích xuất dữ liệu. Với các sự kiện JSON này, hãy xác định các kỹ thuật ATT&CK, giải thích câu chuyện bằng tiếng Anh đơn giản, đánh giá mức độ tin cậy là thấp/trung bình/cao và đề xuất chính xác một hành động ngăn chặn có thể đảo ngược. Vì OpenClaw chạy cục bộ, kỹ năng có thể gọi ss -tulpn hoặc docker ps để làm phong phú ngữ cảnh trước khi phân tích. Sự làm phong phú này là điều phân biệt nó với một công cụ tổng hợp nhật ký có giao diện trò chuyện được gắn vào. Ví dụ thực tế từ tháng trước: ba lần thử SSH không thành công từ một địa chỉ IP của DigitalOcean, sau đó là một lần đăng nhập thành công từ điện thoại của tôi qua Tailscale, sau đó là sudo apt update. Một SIEM truyền thống sẽ kích hoạt ba cảnh báo riêng biệt mà không có mối quan hệ nào giữa chúng. Cerberus đã viết: “Nỗ lực tấn công nhồi nhét thông tin đăng nhập bị fail2ban chặn, sau đó là đăng nhập quản trị hợp pháp từ thiết bị đã biết. Không phát hiện di chuyển ngang. Mức độ tin cậy: trung bình. Hành động đề xuất: thêm DO /24 vào danh sách chặn tạm thời trong 24 giờ.” Sau đó, nó đã gọi API của pfSense và thực hiện chính xác điều đó. Một cảnh báo. Một câu chuyện. Một hành động có thể đảo ngược. Hệ thống thông báo không khiến bạn bỏ qua nó Nếu bot ping bạn 40 lần một đêm, bạn sẽ tắt tiếng nó. Khi đó, bạn có một quy trình nền tốn kém và không có giám sát thực tế. Kỹ năng notify-telegram có ba cấp độ: Thì thầm: Chỉ ghi nhật ký. Được sử dụng trong thời gian học và cho các bất thường có độ tin cậy thấp cần thêm dữ liệu trước khi leo thang. Chạm: Tin nhắn trực tiếp trên Telegram

Nguồn tin: Medium Towards AI — Tác giả: Aeon Flex, Elriel Assoc. 2133 [NEON MAXIMA]. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.