Import và Export Rules
Import Rules
Người dùng có thể import Detection Rules từ tệp YAML. Hệ thống kiểm tra tất cả Rule trong lượt import trước khi nhập; nếu có lỗi, không có Rule nào được import.
Các bước thực hiện
- Tại màn hình Detections → Rule, nhấn Import Yaml. Hệ thống hiển thị popup Import Yaml.
- Nhấn Download sample để tải tệp mẫu cấu trúc Rule.
- Dựa theo cấu trúc trong tệp mẫu, khai báo các Rule cần import. Mỗi Rule là một tài liệu YAML riêng; nếu tệp có nhiều Rule, phân cách từng Rule bằng dòng
---. - Tải tệp
.yamlhoặc.ymllên popup bằng cách nhấn Click to upload hoặc kéo thả tệp vào vùng tải lên. - Nhấn Import. Hệ thống kiểm tra các Rule trước khi import.
- Nếu hệ thống hiển thị lỗi, chỉnh sửa tệp YAML theo thông báo lỗi rồi tải tệp lên và import lại.
- Khi import thành công, các Rule được tạo ở trạng thái Inactive trong tab Custom.
- Mỗi lượt import hỗ trợ tối đa 10 tệp
.yamlhoặc.yml; mỗi tệp không quá 1 MiB và tổng số Rule tối đa là 100. - Để chuyển Rule sang trạng thái Active, cần chọn Sources cho Rule.
Nguyên tắc import
- Tất cả hoặc không có gì: hệ thống kiểm tra toàn bộ Rule trước khi lưu. Nếu có một Rule không hợp lệ, không Rule nào được tạo và hệ thống liệt kê toàn bộ lỗi.
- Rule mới ở trạng thái Inactive: Sources thuộc về môi trường của bạn nên không nằm trong tệp. Cần chọn Sources rồi mới kích hoạt Rule.
- Rule thuộc về người import: mỗi Rule được tạo là Rule của người dùng, nằm trong nhóm Default, có ID mới và tác giả là người import. Số Rule import được tính vào hạn mức Rule (quota) và được kiểm tra trước khi lưu.
- Loại Rule hỗ trợ: Streaming (Sigma), Threshold Correlation và Custom Correlation. Không hỗ trợ Sequence Correlation.
- Quyền hạn: người dùng cần có quyền chỉnh sửa Rule.
| Giới hạn | Giá trị |
|---|---|
| Định dạng tệp | .yaml, .yml |
| Số tệp mỗi lượt import | Tối đa 10 |
| Dung lượng mỗi tệp | Tối đa 1 MiB |
| Số Rule mỗi lượt import | Tối đa 100 (tính trên tất cả các tệp) |
Cấu trúc tệp YAML
Mỗi Rule là một tài liệu YAML riêng. Nếu tệp có nhiều Rule, phân cách bằng dòng chỉ chứa ---. Có thể trộn Streaming và Correlation Rule trong cùng một tệp, theo thứ tự bất kỳ.
# Có thể ghi chú ở bất kỳ đâu
title: Suspicious cmd execution
logsource:
product: windows
category: process_creation
detection:
selection:
process.name: cmd.exe
condition: selection
level: high
---
title: Brute force login
detection_mode: correlation
correlation_type: threshold
# ... phần còn lại của Correlation Rule
Hệ thống cũng chấp nhận: dòng --- ở đầu hoặc cuối tệp (tài liệu rỗng được bỏ qua), tệp chỉ có một Rule và không có ---, hoặc tệp là một danh sách YAML (list) các Rule.
Loại Rule được xác định bởi detection_mode và correlation_type:
detection_mode | correlation_type | Loại Rule |
|---|---|---|
Bỏ trống hoặc streaming | Phải bỏ trống | Streaming (Sigma) |
correlation | threshold | Threshold Correlation |
correlation | custom | Custom Correlation (SQL) |
Các trường chung
Áp dụng cho mọi loại Rule.
| Trường | Bắt buộc | Mô tả |
|---|---|---|
title | Có | Tên Rule, tối đa 256 ký tự. |
version | Không | Văn bản tự do, tối đa 50 ký tự, ví dụ v1.0.0. Mặc định v1.0.0. |
status | Không | Trạng thái Sigma: experimental, test, stable, deprecated hoặc unsupported. Không phân biệt hoa thường. |
sigma_status | Không | Tương đương status. Nếu khai báo cả hai thì giá trị phải trùng nhau. |
description | Không | Mô tả Rule phát hiện điều gì. |
references | Không | Danh sách URL hoặc tài liệu tham khảo. |
tags | Không | Danh sách tag, ví dụ attack.execution. |
attack_matrix | Bắt buộc khi có MITRE | enterprise, mobile hoặc ics. Bắt buộc khi khai báo tactic_techniques. |
tactic_techniques | Không | Tối đa 10 ánh xạ MITRE ATT&CK, mỗi ánh xạ gồm tactic_id và/hoặc technique_id. |
logsource | Không | Gồm product, category, service, definition. Chỉ mang tính mô tả, không dùng để chọn dữ liệu. |
detection | Có | Logic phát hiện. Cấu trúc phụ thuộc loại Rule. |
falsepositives | Không | Danh sách các trường hợp cảnh báo sai đã biết. |
level | Không | Mức độ: critical, high, medium hoặc low. Không phân biệt hoa thường. |
MITRE ID phải tồn tại trong dữ liệu ATT&CK của hệ thống và thuộc đúng attack_matrix đã chọn. Ví dụ: không thể dùng technique của Enterprise với attack_matrix: mobile.
Streaming Rule (Sigma)
Streaming Rule dùng cấu trúc Sigma chuẩn. Tệp Sigma chuẩn có thể import trực tiếp, với điều kiện tên trường (field) có tồn tại trong môi trường của bạn.
| Trường | Bắt buộc | Mô tả |
|---|---|---|
detection_mode | Không | Bỏ trống hoặc đặt streaming. |
fields | Không | Sigma fields: các trường log đáng chú ý khi điều tra. |
Quy tắc cho detection:
- Cần ít nhất một selection có tên và một
condition. - Tên selection chỉ gồm chữ cái, chữ số và
_, và phải bắt đầu bằng chữ cái hoặc_. - Tên trường phải tồn tại trong môi trường, ví dụ
process.name,host.name. - Modifier hỗ trợ:
contains,startswith,endswith,re,gt,gte,lt,lte. - Ngày giờ có thể viết không có dấu nháy (
2026-03-11 10:28:02); hệ thống giữ nguyên dưới dạng văn bản.
title: Suspicious cmd execution
version: v1.0.0
status: test
description: Detects cmd.exe started outside trusted hosts
references:
- https://example.com/cmd
tags:
- attack.execution
attack_matrix: enterprise
tactic_techniques:
- tactic_id: TA0002
technique_id: T1059.003
logsource:
product: windows
category: process_creation
detection_mode: streaming
detection:
selection:
process.name|endswith: cmd.exe
filter:
host.name: trusted-host
condition: selection and not filter
falsepositives:
- Admin scripts
level: high
Correlation Rule
Correlation Rule chạy theo lịch trên một khoảng thời gian nhìn lại (lookback). Cả hai loại Correlation dùng chung các trường sau:
| Trường | Bắt buộc | Mô tả |
|---|---|---|
detection_mode | Có | correlation. |
correlation_type | Có | threshold hoặc custom. |
time_settings | Có | Cài đặt lịch chạy (xem bên dưới). |
Time Settings
Thời lượng gồm một số và đơn vị m (phút), h (giờ) hoặc d (ngày), ví dụ 5m, 1h, 1d.
| Trường | Bắt buộc | Quy tắc |
|---|---|---|
frequency | Có | Tần suất chạy Rule, từ 1 phút đến 7 ngày. |
lookback_window | Có | Khoảng thời gian mỗi lần chạy nhìn lại, từ 1 phút đến 7 ngày và không vượt quá 10 × frequency. |
suppression | Không | Cùng định dạng thời lượng. |
start_time. Rule import được lên lịch tính từ thời điểm import.Threshold Rule
Threshold Rule lọc sự kiện bằng detection theo kiểu Sigma, sau đó nhóm và đếm các sự kiện khớp.
| Trường | Bắt buộc | Mô tả |
|---|---|---|
threshold_config.group_result_by.fields | Có | Các trường dùng để nhóm kết quả. Mỗi trường phải tồn tại trong môi trường. |
threshold_config.group_result_by.operator | Có | greater_than hoặc greater_than_or_equals. |
threshold_config.group_result_by.value | Có | Số nguyên lớn hơn 0. |
threshold_config.count_unique | Không | Đếm số giá trị khác nhau của một trường trong mỗi nhóm. |
count_unique.target_field | Khi dùng count_unique | Trường cần đếm, phải tồn tại trong môi trường. |
count_unique.operator | Khi dùng count_unique | greater_than hoặc greater_than_or_equals. |
count_unique.value | Khi dùng count_unique | Số nguyên lớn hơn 0. |
Quy tắc detection của Streaming Rule cũng áp dụng cho Threshold Rule.
title: Brute force login
version: v1.0.0
sigma_status: experimental
description: Detects many failed logins from one source
attack_matrix: enterprise
tactic_techniques:
- tactic_id: TA0006
technique_id: T1110.001
logsource:
product: windows
service: security
detection_mode: correlation
correlation_type: threshold
detection:
failed_logins:
event.action:
- logon-failed
- authentication_failure
condition: failed_logins
threshold_config:
group_result_by:
fields:
- source.ip
operator: greater_than
value: 10
count_unique:
target_field: user.name
operator: greater_than_or_equals
value: 3
time_settings:
frequency: 5m
lookback_window: 15m
suppression: 30m
falsepositives:
- Service accounts with expired credentials
level: high
Custom Rule
Custom Rule dùng truy vấn SQL riêng thay cho logic Sigma.
detectionphải cósql_queryvàcondition: sql_query.- Không được khai báo
threshold_config. - Truy vấn chỉ được đọc từ bảng
events. Có thể viết câuSELECTđầy đủ hoặc chỉ điều kiệnWHERE. - Chỉ chấp nhận truy vấn chỉ đọc (read-only). Truy vấn khác sẽ báo lỗi
Invalid sql query.
title: Rare agent activity
version: v1.0.0
sigma_status: experimental
attack_matrix: enterprise
tactic_techniques:
- tactic_id: TA0009
technique_id: T1005
logsource:
product: linux
detection_mode: correlation
correlation_type: custom
detection:
sql_query: "select `agent.name` as agent_name, `event.id` from events where `agent.name` = 'agent-1' and `event.id` = '12345'"
condition: sql_query
time_settings:
frequency: 5m
lookback_window: 15m
level: low
Các trường bị bỏ qua
Trường không nhận diện được sẽ bị bỏ qua, nên metadata Sigma chuẩn không gây lỗi. Các giá trị do hệ thống quản lý không bao giờ được đọc từ tệp.
| Trường | Xử lý |
|---|---|
id, date, modified, related, license và các trường không nhận diện | Bỏ qua. |
author | Thay bằng người thực hiện import. |
data_sources, disabled, type, nhóm Rule, start_time | Bỏ qua. Hệ thống tự thiết lập khi import. |
Sau khi import
- Chọn Sources: mở từng Rule vừa import và chọn Sources (nguồn dữ liệu) cho Rule.
- Kích hoạt Rule: chuyển Rule sang Active từ danh sách Rule. Correlation Rule bắt đầu chạy theo lịch ngay khi được kích hoạt.
Xử lý lỗi khi import
Khi import thất bại, không Rule nào được tạo. Hệ thống liệt kê mọi lỗi kèm tên tệp, vị trí Rule trong tệp (tính từ 1) và tiêu đề Rule, ví dụ:
rules.yaml · Rule #2 · Brute force login: time_settings is required for correlation rules
other.yml: invalid YAML: yaml: line 7: did not find expected key
| Thông báo lỗi (trích) | Cách khắc phục |
|---|---|
invalid YAML: … line N … | Sửa cú pháp tại dòng được báo. Toàn bộ tệp bị từ chối. |
title is required / detection is required | Bổ sung trường còn thiếu. |
invalid status '…' | Dùng experimental, test, stable, deprecated hoặc unsupported. |
invalid level '…' | Dùng critical, high, medium hoặc low. |
… require 'detection_mode: correlation' | Thêm detection_mode: correlation, hoặc xoá các trường của Correlation. |
correlation_type is required … / unsupported correlation_type | Dùng threshold hoặc custom. Không thể import Sequence Rule. |
time_settings is required … | Thêm time_settings gồm frequency và lookback_window. |
lookback_window is too large relative to frequency | Giữ lookback_window không quá 10 × frequency. |
… does not exist in available fields | Dùng tên trường có tồn tại trong môi trường. |
Invalid tactic / Invalid technique / … does not match rule's attack matrix | Kiểm tra lại MITRE ID và attack_matrix. |
Invalid sql query | Viết lại thành truy vấn chỉ đọc trên bảng events. |
Quota exceeded: importing N rule(s) would exceed … | Xoá các Rule không dùng hoặc import ít Rule hơn. |
too many rules | Chia nhỏ lượt import, mỗi lượt tối đa 100 Rule. |
Export Rules
Tại màn hình Detections → Rule, người dùng có thể xuất Rule ra tệp YAML. Nút Export thay đổi theo trạng thái chọn Rule:
| Trạng thái | Nút hiển thị | Kết quả |
|---|---|---|
| Không có Rule nào được chọn | Export All | Xuất toàn bộ Rule trên tất cả các trang, không chỉ các Rule đang hiển thị ở trang hiện tại. |
| Đã chọn một hoặc nhiều Rule | Export kèm số lượng Rule được chọn | Chỉ xuất các Rule đã chọn. Số lượng trên nút được cập nhật theo số Rule đang chọn. |
Các bước thực hiện
- Từ thanh menu bên trái, chọn Detections → Rule.
- Nếu muốn xuất một số Rule cụ thể, tick checkbox tương ứng với các Rule cần xuất. Nếu không chọn Rule nào, hệ thống sẽ xuất toàn bộ Rule.
- Nhấn nút Export. Hệ thống tải tệp YAML chứa các Rule theo phạm vi đã chọn.
Tệp xuất có thể chứa nhiều Rule YAML; mỗi Rule là một tài liệu riêng, phân cách bằng dòng ---.