Thiết lập quy tắc phát hiện cảnh báo theo ngưỡng (Threshold rule)
Các bước tạo Threshold rule
Bước 1: Truy cập tính năng Rule
- Từ thanh menu trái, chọn Detections → Rule.
- Trên giao diện màn Rules, nhấn button "Create Rule" → "Correlation rule"
- Hệ thống hiển thị popup, người dùng chọn "Threshold rule"
Bước 2: Cấu hình Rule
Điền thông tin cơ bản
| Trường | Bắt buộc | Mô tả |
|---|---|---|
| Title | ✅ | Tên của rule |
| Description | ❌ | Mô tả ngắn gọn về mục đích của rule |
| Product source | ✅ | Xác định rule thuộc log source nào. Hệ thống hiển thị danh sách log source sẵn có trong Project |
| Level | ✅ | Mức độ nghiêm trọng của cảnh báo khi rule được kích hoạt: Low (mặc định), Medium, High, Critical. |
| Select Tactic & Technique (MITRE ATT&CK) | ❌ | Cho phép ánh xạ rule với 1 hoặc nhiều cặp Tactic – Technique trong thư viện MITRE ATT&CK. Cấu hình Tactic & Technique (MITRE ATT&CK): 1. Tick checkbox "Select Tactic & Technique from MITRE ATT&CK". 2. Chọn ATT&CK Library: - Enterprise (Doanh nghiệp) - Mobile (Thiết bị di động) 3. Chọn Tactic ID từ danh sách. 4. Sau khi chọn Tactic, hệ thống sẽ tự động lọc và hiển thị các Technique ID tương ứng. 5. Chọn Technique phù hợp để tạo một cặp Tactic – Technique Thao tác: - Nhấn button "Add Mapping" để thêm cặp ATT&CK - Nhấn biểu tượng thùng rác 🗑️ để xóa. Giới hạn: Có thể thêm tối đa 10 cặp Tactic & Technique trong một rule. |
| Sigma's Status | ✅ | Trạng thái sẵn sàng sử dụng của rule: - Experimental (mặc định) - Test - Stable - Deprecated - Unsupported |
| References | ❌ | Đường dẫn tham khảo hoặc tài liệu bên ngoài liên quan đến rule. |
| False Positive Description | ❌ | Giải thích ngắn gọn về trường hợp cảnh báo sai (false positive). |
Bước 3: Tạo điều kiện phát hiện cảnh báo
1. Xây dựng bộ quy tắc phát hiện cảnh báo (Detection)
Phần này cho phép người dùng định nghĩa logic phát hiện (Detection Logic). Khi các sự kiện (event) thỏa mãn điều kiện đã cấu hình, hệ thống sẽ tự động sinh cảnh báo (Alert).
Cấu trúc của một Rule:
- Mỗi rule gồm một hoặc nhiều Selection.
- Mỗi Selection bao gồm một hoặc nhiều Condition.
- Các Condition trong cùng một Selection được kết hợp với nhau bằng toán tử AND.
- Các Selection được kết hợp với nhau bằng các toán tử logic (AND, OR, AND NOT, OR NOT).
Cách để tạo 1 condition?
| Trường | Bắt buộc | Mô tả |
|---|---|---|
| Selection | ✅ | Đặt tên nhóm điều kiện (Selection) Không được chứa khoảng trắng hoặc ký tự đặc biệt. |
| Field | ✅ | Hệ thống hiển thị danh sách trường dữ liệu (CSM field) sau khi log được parse thành công. Ví dụ: host.name, event.category, … |
| Operator | ✅ | Chọn toán tử phù hợp từ danh sách cho sẵn Hệ thống hiện tại đang hỗ trợ các toán tử sau: |
| Kiểu dữ liệu | Toán tử | Mô tả |
|---|---|---|
| Nếu type = Scalar và Field = String | Equal | Giá trị là đoạn text được input |
| Contains | Giá trị có chứa đoạn text xác định. | |
| Starts with | Bắt đầu bằng giá trị xác định. | |
| Ends with | Kết thúc bằng giá trị xác định. | |
| Regex | So khớp theo biểu thức chính quy (regex). | |
| Nếu type = Scalar và Field = Number | Equal | Giá trị bằng đúng giá trị số được input |
| Greater than | Giá trị lớn hơn giá trị số được input | |
| Greater than or equal | Giá trị lớn hơn hoặc bằng giá trị số được input | |
| Less than | Giá trị nhỏ hơn giá trị số được input | |
| Less than or equal | Giá trị nhỏ hơn hoặc bằng giá trị số được input | |
| Nếu type = Array | In | Giá trị trường nằm trong danh sách giá trị được cung cấp. |
| Trường | Bắt buộc | Mô tả |
|---|---|---|
| Value | ✅ | Người dùng nhập các giá trị thực để hệ thống so sánh với trường dữ liệu. Type = Scalar: - Chỉ cho phép nhập một giá trị duy nhất. Type = Array: - Cho phép nhập nhiều giá trị. - Mỗi giá trị được ngăn cách bằng phím Enter. - Tối đa 10 giá trị khác nhau tại một thời điểm. |
Cách tạo nhiều Selection?
- Nhấn button "Add Selection" để thêm nhóm điều kiện mới.
- Một selection sẽ hiển thị lên để người dùng cấu hình
- Để xóa một nhóm không cần thiết → nhấn biểu tượng "x".
Note: Có thể tạo tối đa 10 Selection trong một rule.
Cách để kết hợp nhiều Selection?
- Sau khi tạo ít nhất 1 Selection, nhấn Add Selection ở phần Condition để cấu hình
- Hệ thống sẽ mặc định dùng toán tử AND để kết hợp.
- Bạn có thể thay đổi sang các toán tử khác:
- AND NOT – Cả 2 điều kiện đúng và sai xen kẽ.
- OR – Chỉ cần 1 điều kiện đúng.
- OR NOT – Một điều kiện đúng, điều kiện kia sai.
2. Thiết lập quy tắc ngưỡng (Threshold)
Group result by (Bắt buộc)
| Trường | Bắt buộc | Mô tả |
|---|---|---|
| Field | ✅ | Phần này dùng để nhóm kết quả sự kiện theo một hoặc nhiều trường dữ liệu. VD: - Group theo source.ip- Group theo user.name- Group theo host.name + user.name |
| Operator | ✅ | Sau khi group dữ liệu, người dùng thiết lập điều kiện ngưỡng để xác định khi nào rule được kích hoạt. Các toán tử hệ thống hỗ trợ: - Greater than (default) - Greater than or equal |
| Value | ✅ | Nhập giá trị ngưỡng (số nguyên). |
Count unique value (Tùy chọn)
Cho phép bật/tắt chế độ đếm số lượng giá trị duy nhất (unique value) thay vì đếm tổng số sự kiện. Khi bật tính năng này, hệ thống sẽ đếm số lượng giá trị khác nhau của một trường dữ liệu trong mỗi group.
| Trường | Bắt buộc | Mô tả |
|---|---|---|
| Target field | ✅ | Chọn trường dữ liệu cần đếm giá trị duy nhất. Chỉ Count unique theo 1 trường duy nhất. |
| Operator | ✅ | Chọn toán tử so sánh cho số lượng giá trị duy nhất. Các toán tử hệ thống hỗ trợ: - Greater than (default) - Greater than or equal |
| Value | ✅ | Nhập giá trị ngưỡng (số nguyên). |
3. Preview KQL
- Nhấn nút 'Generate KQL' để hệ thống tự động gen cú pháp truy vấn dựa trên các điều kiện đã cấu hình.
- Nhấn nút 'Test' để kiểm tra tính chính xác và xem trước kết quả dữ liệu trả về từ câu lệnh.
Bước 4: Cấu hình thời gian
1. Tần suất (Frequency)
Xác định chu kỳ rule được thực thi. Rule sẽ chạy lại sau mỗi khoảng thời gian được cấu hình.
| Trường | Bắt buộc | Mô tả |
|---|---|---|
| Period of time | ✅ | Điền thời gian mà rule chạy lại (số nguyên) Giá trị mặc định: 5 |
| Unit | ✅ | Đơn vị thời gian để rule chạy lại. Hệ thống hỗ trợ các đơn vị: - Minutes (mặc định) - Hours - Days |
2. Thời gian rule query (Look back time window)
Xác định thời gian rule query mỗi lần chạy
| Trường | Bắt buộc | Mô tả |
|---|---|---|
| Period of time | ✅ | Điền thời gian mà rule query mỗi lần chạy (số nguyên) Giá trị mặc định: 5 |
| Unit | ✅ | Đơn vị thời gian để rule query lại Hệ thống hỗ trợ các đơn vị: - Minutes (mặc định) - Hours - Days |
3. Thời gian rule bắt đầu chạy (Start running time)
Có 2 cấu hình cho người dùng chọn:
- Now (default): Khi chọn option này thì Rule sẽ bắt đầu chạy ngay khi Rule tạo thành công.
- Specific time: Khi chọn option này, người dùng được phép chọn 1 khoảng thời gian bất kỳ trong tương lai để Rule chạy.
4. Giảm độ nhiễu (Suppresion)
Xác định khoảng thời gian mà rule không đẩy alert.
| Trường | Bắt buộc | Mô tả |
|---|---|---|
| Period of time | ✅ | Điền thời gian rule chạy nhưng không sinh alert Giá trị mặc định: 0 |
| Unit | ✅ | Đơn vị thời gian để rule không sinh alert Hệ thống hỗ trợ các đơn vị: - Minutes (mặc định) - Hours - Days |