Skip to content

SOP ทดสอบ Detection Rule

รหัสเอกสาร: DRT-001
เวอร์ชัน: 1.0
อัปเดตล่าสุด: 2026-02-15
เจ้าของ: Detection Engineer / SOC Lead


Pipeline การทดสอบ

graph LR
    A[1. เขียน Rule] --> B[2. ตรวจ Syntax]
    B --> C[3. Backtest]
    C --> D[4. ทดสอบ Staging]
    D --> E[5. Peer Review]
    E --> F[6. Deploy]
    F --> G[7. ติดตาม 7 วัน]

ขั้นตอนสำคัญ:

2. ตรวจ Syntax:

python tools/sigma_validator.py path/to/rule.yml

3. Backtest (7–30 วัน): - ตรวจจับ known-bad ได้ไหม? - FP rate ≤ 20%? - Alert ≤ 50/วัน?

4. Staging: - Deploy เป็น disabled ก่อน - รัน Atomic Red Team test - ตรวจ alert trigger ถูกต้อง

5. Peer Review: - [ ] Logic ถูกต้อง - [ ] Whitelist เหมาะสม - [ ] MITRE mapping ถูก - [ ] คำอธิบายชัดเจนสำหรับ T1

7. ติดตาม 7 วัน:

ตัวชี้วัด เป้า ถ้าไม่ผ่าน
FP rate ≤ 20% ปรับ whitelist
Alert volume ≤ 50/วัน ปรับ threshold
Performance ≤ 5% เพิ่ม optimize query

Checklist คุณภาพ Rule

□ Title ชัดเจน
□ มี MITRE ATT&CK mapping
□ Level (severity) เหมาะสม
□ Detection logic ใช้ field name ถูกต้อง
□ มี false positive section
□ ผ่านทดสอบ: syntax, backtest, staging
□ Peer review อนุมัติแล้ว
□ Submit Change Request แล้ว

ตารางผลการทดสอบ

Rule ID ชื่อกฎ ผลลัพธ์ หมายเหตุ
[ID] [ชื่อ] [✅/⚠️/❌] [หมายเหตุ]

เกณฑ์การทดสอบ

ระดับ เกณฑ์ การดำเนินการ
✅ ผ่าน แจ้งเตือนถูกต้อง, context ครบ, severity ถูก Deploy ไปยัง Production
⚠️ บางส่วน แจ้งเตือนแต่ context ไม่ครบหรือ severity ผิด ปรับปรุงแล้ว retest
❌ ไม่ผ่าน ไม่มีแจ้งเตือนหรือ FP สูง แก้ไข logic แล้ว retest

รอบการทดสอบ

การทดสอบ ความถี่ ผู้รับผิดชอบ
ทดสอบกฎใหม่ ก่อน deploy ทุกครั้ง Detection Engineering
ทดสอบกฎที่มีอยู่ (regression) รายเดือน Detection Engineering
Full coverage test รายไตรมาส SOC Manager + Detection Eng

Rule Testing Methodology

Test Plan Template

Phase Activity Duration
1 Unit test (lab) 1-2 วัน
2 Integration test (staging) 2-3 วัน
3 Shadow mode (prod) 5-7 วัน
4 Active mode (prod) Go-live

Rule Quality Metrics

Metric Target Measurement
True Positive Rate > 90% Weekly
False Positive Rate < 10% Weekly
Detection Latency < 5 min Per alert
Coverage (tactics) > 70% Monthly

Test Evidence Template

Field Content
Rule Name [ชื่อ rule]
Test Date [วันที่]
Tester [ชื่อ]
Test Data [description]
Expected Alert [Yes/No + details]
Actual Result [Pass/Fail + evidence]

Test Status Tracking

Status Meaning
Draft ยังไม่ทดสอบ
Testing กำลังทดสอบ

กรอบทดสอบอัตโนมัติ

ขั้นตอน Test-Driven Detection (TDD)

graph LR
    Hypothesis["สมมติฐาน/<br/>Threat Intel"] --> Write["เขียน<br/>Sigma Rule"]
    Write --> Test["ทดสอบด้วย<br/>Atomic Red Team"]
    Test --> Validate{"Alert<br/>Trigger?"}
    Validate -->|ไม่| Refine["ปรับ<br/>Rule Logic"]
    Refine --> Test
    Validate -->|ใช่| FPCheck{"FP Rate<br/>< 5%?"}
    FPCheck -->|ไม่| Tune["ปรับ<br/>Exclusions"]
    Tune --> FPCheck
    FPCheck -->|ใช่| Deploy["Deploy ไป<br/>Production"]
    Deploy --> Monitor["ตรวจสอบ<br/>30 วัน"]

CI/CD Pipeline สำหรับ Detection Rules

# .github/workflows/detection-ci.yml
name: Detection Rule CI
on:
  pull_request:
    paths: ['rules/**/*.yml']

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: ตรวจ Sigma syntax
        run: sigma check rules/
      - name: ตรวจ duplicates
        run: python scripts/check_duplicates.py
      - name: ทดสอบกับ test logs
        run: python scripts/test_rules.py --log-dir test_logs/
      - name: MITRE coverage report
        run: python scripts/coverage_report.py

เกณฑ์คุณภาพ Detection Rule

Metric เป้าหมาย วิธีวัด
False Positive Rate < 5% ต่อ rule FP alerts / total alerts ต่อ rule
Detection Latency < 5 นาทีจาก event ถึง alert Timestamp delta: event → alert
Coverage > 60% MITRE ATT&CK techniques Covered techniques / total
Rule-to-Incident Ratio > 10% (1 ใน 10 alerts = จริง) Incidents / total alerts
Time to Deploy < 48 ชม. จากค้นพบถึง production PR created → merged → live
Documentation 100% rules มี description + references Automated check

สถานะ Rule Lifecycle

สถานะ นิยาม ต้องดำเนินการ
🔵 Draft เขียนแล้ว ยังไม่ทดสอบ นัดทดสอบใน lab
🟡 Testing Deploy ใน test environment ตรวจสอบ 7 วัน
🟢 Active Production, สร้าง alerts ตรวจสอบปกติ
🟠 Tuning Active แต่ FP rate สูง เพิ่ม exclusions, ปรับ logic
Deprecated ไม่เกี่ยวข้องแล้ว ลบหลัง 30 วัน
🔴 Broken Syntax error หรือไม่มี output แก้ภายใน 24 ชม.

เอกสารที่เกี่ยวข้อง