Task AR¶
SOAR gọi Task Active Response¶
Bổ sung Task SOAR, thêm các Active Response mới: kill process, delete file, run command, run custom active response
Mục đích:
SOAR task run active response trên agent bất kỳ, để xử lý sự cố trực tiếp trên máy bị ảnh hưởng một cách nhanh chóng và tự động
Yêu cầu: Cài agent mới có onexar
1. Luồng xử lý¶
SOAR Observer Trigger -> Run Task Active Response -> POST API gửi lệnh xuống sensor run AR, chờ kết quả trả về (subscribe mqtt, timeout 5s) -> Response API -> SOAR set data output
1.1. POST API xuống sensor¶
Bổ sung category ”run-active-response” cho /service-api
Laravel gửi request body với payload:
1.2. Sensor nhận request, gửi lệnh run Active Response tới agent¶
Parse alert data, bổ sung thêm thông tin mqtt
Agent sẽ nhận lệnh AR, thực thi lệnh, xử lý xong mqtt sẽ public trả kết quả về topic reply_to
Hàm processArResponse() lắng nghe và xử lý message trả về
Timeout xử lý: 5s
Trả về kết quả cho API
(Không có kết quả thực thi trên agent thì sensor sẽ trả về thông tin gọi API AR thành công hay không)
2. Use Case¶
2.1. Run command trên agent¶
Setting command:
Chọn manager name, agent name, nhập command và output lưu kết quả như hình minh họa
Dữ liệu thực thi run command xong sẽ lưu kết quả vào output, truyền giá trị này sang node tiếp theo tùy mục đích, ví dụ bắn kết quả vào telegram
Output telegram:
2.2. Kill Process¶
Input: đường dẫn binary thực thi
- Kill process: check xem process có đang chạy không, đang chạy thì kill process
- Trả về logs (Successful / Fail)
Setting Kill Process như sau:
- Truyền đường dẫn file thực thi (chương trình sẽ tự check và kill process)
Kết quả thực thi xong sẽ lưu lại vào biến output, lấy giá trị biến này truyền vào node tiếp theo trong SOAR
Minh họa output hiển thị trên Telegram:
1 trường hợp file không thực thi và 1 trường hợp file thực thi và đã kill thành công
2.3. Remove file¶
Input: đường dẫn file
- Delete file: Check tồn tại và tiến hành delete file. Check thêm 2 lần nữa để xem có tự sinh file mới không.
- Trả về logs (Successful / Fail)
Setting Delete file như sau:
- Truyền file path cần delete file
Minh họa output hiển thị trên Telegram:
Log cũng sẽ lưu lại trong Workflow logs
2.4. Run custom AR¶
Ví dụ API active response gốc:
# Get MD5
curl -k -X PUT "https://localhost:55000/active-response?agents_list=056&wait_for_complete=true" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{`
`"command":"onexar-linux0",`
`"arguments":["get-md5"],`
`"alert": {`
`"data": {`
**`"file_path": "/usr/bin/anydesk"`**
**`}`**
`}`
`}'
Thì setting gọi AR get md5 file như sau:
Args: get-md5
Alert data: chuỗi json cần điền khi gọi AR đó (alert.data)
Output telegram: