Skip to content

มาตรฐานการจัดการการเปลี่ยนแปลงและการ Deploy (Change Management & Deployment Standard)

เอกสารนี้ระบุขั้นตอนมาตรฐานในการจัดการการเปลี่ยนแปลง (Change) และการติดตั้งระบบ (Deployment) ภายในสภาพแวดล้อมของ SOC

1. กระบวนการจัดการการเปลี่ยนแปลง (Change Management Process)

การแก้ไขทั้งหมดในสภาพแวดล้อม Production (เช่น กฎแจ้งเตือน, Parser, โครงสร้างพื้นฐาน) ต้องปฏิบัติตามขั้นตอนที่กำหนด

sequenceDiagram
    participant Eng as วิศวกร
    participant Mgr as หัวหน้างาน
    participant CAB as คณะกรรมการ
    participant Prod as ระบบจริง

    Eng->>Mgr: ส่งใบ RFC
    Mgr->>Mgr: ประเมินความเสี่ยง
    alt ความเสี่ยงต่ำ
        Mgr->>Prod: อนุมัติและนัดหมาย
    else ความเสี่ยงสูง
        Mgr->>CAB: ขออนุมัติ
        CAB->>Prod: อนุญาตให้ติดตั้ง
    end
    Prod-->>Eng: ติดตั้งเสร็จสมบูรณ์

1.1 การร้องขอ (RFC)

  • ส่งคำร้องขอการเปลี่ยนแปลง (Request for Change - RFC) โดยระบุ:
    • รายละเอียดการเปลี่ยนแปลง
    • เหตุผล/ผลกระทบ
    • ระดับความเสี่ยง
    • แผนการถอยกลับ (Rollback plan)

1.2 การทบทวนและอนุมัติ (Review & Approval)

  • Change Advisory Board (CAB) จะพิจารณาการเปลี่ยนแปลงที่มีความเสี่ยงสูง
  • การแก้ไขกฎตรวจจับ (Alert Rule) ต้องผ่านการ Peer Review เสมอ

2. ขั้นตอนการ Deployment

2.1 กลยุทธ์สภาพแวดล้อม (Environment Strategy)

  • Development/Lab: พื้นที่ Sandbox สำหรับทดสอบกฎและ Integration ใหม่ๆ
  • Staging: สภาพแวดล้อมจำลองเหมือน Production เพื่อการตรวจสอบขั้นสุดท้าย
  • Production: ระบบจริงที่ใช้งานอยู่

2.2 ขั้นตอนการติดตั้ง

  1. ทดสอบ (Test): ตรวจสอบความถูกต้องใน Lab
  2. สำรองข้อมูล (Snapshot): สำรองค่า Configuration ปัจจุบัน
  3. ติดตั้ง (Deploy): ทำการเปลี่ยนแปลงบน Production ในช่วงเวลาที่ได้รับอนุมัติ
  4. ตรวจสอบ (Verify): ยืนยันสถานะการทำงานและตรวจสอบ Error

2.3 CI/CD สำหรับกฎตรวจจับ

  • จัดการ Detection Rules ในรูปแบบ Code (Detection-as-Code)
  • ใช้ Version Control (Git) สำหรับเก็บ Logic ของกฎทั้งหมด
  • ทำ Automated Testing (เช็ค Syntax, Unit test) ผ่าน CI pipeline ก่อน Merge เข้า main

3. แผนการถอยกลับ (Rollback Plan)

  • ทุกการ Deployment ต้องมีแผน Rollback ที่เตรียมไว้ล่วงหน้า
  • หากขั้นตอนการตรวจสอบล้มเหลว ให้ย้อนกลับไปยังสถานะก่อนหน้าทันที
  • ทำ Root Cause Analysis (RCA) สำหรับการเปลี่ยนแปลงที่ล้มเหลว

การประเมินความเสี่ยงของการเปลี่ยนแปลง

ระดับความเสี่ยง เกณฑ์ การอนุมัติ หน้าต่างบำรุงรักษา
ต่ำ เอกสาร, การเปลี่ยนแปลงที่ไม่กระทบ SOC Lead ทุกเวลา
กลาง Detection rule ใหม่, อัปเดต Parser SOC Manager เวลาทำการ
สูง Config SIEM, เปลี่ยน Integration SOC Manager + CAB หน้าต่างบำรุงรักษา
วิกฤต โครงสร้างพื้นฐาน, เครือข่าย, Auth CISO + CAB Downtime ที่กำหนด

รายการตรวจสอบการ Deploy

# ขั้นตอน ผู้รับผิดชอบ เสร็จ
1 RFC ถูกส่งและอนุมัติ Engineer
2 Peer review เสร็จสมบูรณ์ Detection Eng
3 สร้าง Snapshot/Backup ก่อน Deploy Engineer
4 ทดสอบในสภาพแวดล้อม Staging Engineer
5 แผน Rollback มีเอกสารและทดสอบ Engineer
6 แจ้งผู้มีส่วนได้ส่วนเสีย SOC Lead
7 Deploy ไปยัง Production Engineer
8 ตรวจสอบหลัง Deploy 30 นาที SOC Lead
9 ปิด RFC พร้อมบันทึกผลลัพธ์ Engineer

ขั้นตอน Rollback

เมื่อไรต้อง Rollback

สัญญาณ การดำเนินการ
SIEM หยุดรับ log Rollback ทันที
ปริมาณ alert ลดเป็น 0 ตรวจสอบก่อน, rollback ถ้าแก้ไม่ได้ใน 15 นาที
FP rate พุ่ง > 50% Rollback rule change, สืบสวน
Dashboard/query error Rollback config change
Agent crash หลัง update Rollback agent version

Rollback Checklist

□ ระบุการเปลี่ยนแปลงที่ทำให้เกิดปัญหา
□ แจ้ง SOC Manager ว่ากำลัง rollback
□ Apply rollback จาก backup/git
□ ตรวจสอบว่าระบบกลับสู่สภาพปกติ
□ บันทึก failed change และ root cause
□ นัด post-mortem ภายใน 48 ชม.

ตาราง Change Window

ประเภท Change ช่วงเวลาอนุญาต ต้อง Approval เวลา Rollback
Detection rule (ใหม่) เวลาไหนก็ได้ (test mode) SOC Lead < 5 นาที
Detection rule (production) เวลาทำการ SOC Lead + peer review < 5 นาที
SIEM configuration Maintenance window (อา. 02:00-06:00) SOC Manager < 30 นาที
Agent update (fleet) Staged: 10% → 50% → 100% ใน 3 วัน SOC Manager + IT < 1 ชม.
Major platform upgrade Maintenance window + CAB approval CISO < 4 ชม.

Smoke Test หลัง Deploy

หลังจาก deployment ใดๆ ให้รันขั้นตอนตรวจสอบ:

#!/bin/bash
# smoke_test.sh — ตรวจสอบหลัง deployment

echo "=== Post-Deployment Smoke Test ==="

# 1. เชื่อมต่อ SIEM
echo -n "SIEM API: "
curl -s -o /dev/null -w "%{http_code}" https://siem.internal/api/health && echo " ✅" || echo " ❌"

# 2. ตรวจ log ingestion (5 นาทีล่าสุด)
echo -n "Log ingestion: "
RECENT=$(curl -s 'localhost:9200/_count?q=@timestamp:>now-5m' | grep -o '"count":[0-9]*')
echo "$RECENT events ใน 5 นาทีล่าสุด"

# 3. Detection rules
echo -n "Active rules: "
echo "$(curl -s 'localhost:9200/_cat/count/sigma-*' | awk '{print $3}') rules loaded"

# 4. Alert routing
echo "ส่ง test alert..."

Deployment Checklist

Phase Checklist Item Status
Pre-deploy Backup current config
Pre-deploy Test in staging
Pre-deploy Change approval
Deploy Execute change
Deploy Verify functionality
Post-deploy Monitor 30 min
Post-deploy Update documentation
Post-deploy Close change record

Rollback Criteria

Condition Action
Core function broken Immediate rollback
Performance > 20% drop Rollback within 1 hr
Non-critical issue Hotfix preferred
Cosmetic only Fix in next release

References