Skip to content

sensorctl

sensorctl là một công cụ dòng lệnh hỗ trợ gọi các phương thức JSON-RPC của alert-mqttx qua MQTT, đồng thời cung cấp khả năng SSH tới sensor và agent.

Mục đích

  • Tương tác với bất kỳ sensor nào.
  • Hỗ trợ SSH tới sensor (yêu cầu nhập mật khẩu).
  • Hỗ trợ SSH tới agent.
  • Hỗ trợ tải file từ máy agent về local để điều tra.

Sơ đồ luồng

Cài đặt

Tạo file .env để cấu hình MQTT và tên sensor:

X_API_KEY=NO
MQTT_BROKER=msg.broker.com
MQTT_PORT=8883
MQTT_USERNAME=soc
MQTT_PASSWORD=pass
SENSOR_NAME=sensor-20250526120306.852  # Nếu không đặt, cần truyền qua argument

Chạy ./sensorctl. Nếu hiển thị tài liệu hướng dẫn, cài đặt đã thành công.

Hướng dẫn sử dụng

1. SSH tới sensor

Cách 1: Sử dụng file .env

  • Đặt tên sensor trong file .env.
  • Chạy lệnh:

    bash ./sensorctl ssh

Cách 2: Truyền tên sensor qua argument

  • Chạy lệnh:

    bash ./sensorctl ssh --sensor-name <sensor-name>

Lưu ý:

  • Để thoát chương trình, nhấn Ctrl+W.
  • Do tính năng SSH qua MQTT, việc chỉnh sửa file có thể không hiển thị như mong muốn. Nên sao chép nội dung file thay vì gõ từng ký tự.

2. JSON-RPC

Cú pháp:

./sensorctl rpc [sensor-name] --method [RPC-method]

Ví dụ:

  • Health check sensor:

    bash ./sensorctl rpc [sensor-name] --method healthCheck

  • Lưu ý khi sử dụng Wazuh rule files:

    • Thay --filename bằng --src_file, --file bằng --dst_file.
    • Thêm --watch để theo dõi thay đổi khi lưu file.

3. SSH tới agent

3.1. Run Always-On Onexar

Chạy Always-On trước khi SSH tới agent:

  • Linux agent:

    bash agentctl ar run --agent 003 --command "alwayson-linux0"

  • Windows agent:

    bash agentctl ar run --agent 004 --command "alwayson-windows0"

3.2. SSH tới agent

Cú pháp:

./sensorctl ssh-agent <sensor-name> <agent-id>

Ví dụ:

./sensorctl ssh-agent sensor-20250526120306.852 004

3.3. Tải file từ agent về local

Cú pháp:

./sensorctl agent-download <sensor-name> <agent-id> --dst_file <file_path_download>

Ví dụ:

./sensorctl agent-download sensor-20250526120306.852 004 --dst_file /home/vagrant/Desktop/test.png

Phụ lục: Danh sách RPC methods

Method Mô tả
getAlert Trả về cảnh báo theo UUID
listAlerts Liệt kê cảnh báo gần đây
getAssets Liệt kê tài sản đã biết
getFlows Liệt kê tương quan giữa tài sản nội bộ
getWorldFlows Liệt kê tương quan tài sản với bên ngoài
getAssetNeighbors Liệt kê tài sản lân cận
getAssetGraph Trả về topology tương quan tài sản
getSensorStatus Trả về trạng thái của sensor & phiên bản các binary
healthCheck Trả về tổng quan trạng thái của sensor & các binary
shutdownSensor Tắt sensor một cách có kiểm soát
restartSensor Khởi động lại sensor
triggerUpdate Kích hoạt cơ chế cập nhật config/binary
triggerBackup Kích hoạt cơ chế sao lưu ClickHouse
getConfig Trả về cấu hình hiện tại của sensor
setConfig Cập nhật cấu hình mới cho sensor
getThresholds Trả về cấu hình CEL threshold
setThresholds Cập nhật cấu hình CEL threshold
getDBStatus Trả về thông số của cơ sở dữ liệu
setRetention Cập nhật thời gian lưu dữ liệu ClickHouse
pruneOldAlerts Xóa các cảnh báo cũ hơn cấu hình thời gian lưu
reloadCelRules Reload CEL rules trong cơ sở dữ liệu
exportPCAP Export nội dung PCAP theo ID
getPCAP Trả về tệp PCAP dạng bytes
getMetrics Trả về số liệu runtime
getCacheStats Trả về số liệu cache
getQueueDepth Trả về hàng đợi các tiến trình bất đồng bộ
getRuleCoverage Trả về số liệu độ phủ của rule
clearCaches Dọn dẹp bộ nhớ đệm
scanOsVulns Bắt đầu quét vuln hệ điều hành
scanPkgVulns Bắt đầu quét vuln các gói package
scanHotfixVulns Bắt đầu quét vuln các hotfix
listScapResults Truy vấn kết quả đánh giá SCAP rule
wazuhDecoders.listFiles Liệt kê các tệp XML nằm trong thư mục decoder
wazuhDecoders.getFileContent Trả về nội dung của decoder
wazuhDecoders.saveFile Upload tệp XML decoder từ local lên sensor
wazuhRules.listFiles Liệt kê các tệp XML nằm trong thư mục rule
wazuhRules.getFileContent Trả về nội dung của decoder
wazuhRules.saveFile Upload tệp XML rule từ local lên sensor
suricataRules.listFiles Liệt kê các tệp trong suricata rule
suricataRules.getFileContent Trả về nội dung của suricata rule
suricataRules.saveFile Upload tệp suricata.rules từ local lên sensor
getJobStatus Trả về trạng thái của tiến trình scan bất đồng bộ
cancelJob Hủy tiến trình scan bất đồng bộ
ackAlert Ghi nhận cảnh báo
tagAlert Cập nhật tag của cảnh báo với metadata
subscribeAlertsRPC Subscribe cảnh báo thông qua RPC
unsubscribeAlertsRPC Unsubscribe cảnh báo thông qua RPC

Tham khảo

Google Docs

Git repo alert-mqttx/cmd