Playbook: Brute Force / Password Spray
ID: PB-04
ระดับความรุนแรง: ต่ำ/ปานกลาง/สูง | หมวดหมู่: Identity & Access
MITRE ATT&CK: T1110 (Brute Force)
ทริกเกอร์: SIEM alert (Event 4625 spike), IdP lockout, VPN failed logins, SSH fail2ban
หลังเหตุการณ์ (Post-Incident)
ผังรูปแบบการโจมตี
graph TD
Attacker["🔨 ผู้โจมตี"] --> Type{"📋 ประเภท?"}
Type -->|Brute Force| BF["🔑 ลองทุก password"]
Type -->|Password Spray| PS["🌊 1 password หลาย accounts"]
Type -->|Credential Stuffing| CS["📦 ใช้ leaked creds"]
BF --> Target["🎯 บัญชีเดียว"]
PS --> Target2["🎯 หลายบัญชี"]
CS --> Target2
style Attacker fill:#e74c3c,color:#fff
style BF fill:#f39c12,color:#fff
style PS fill:#e67e22,color:#fff
style CS fill:#8e44ad,color:#fff
ผัง Smart Lockout
sequenceDiagram
participant Attacker
participant IdP
participant SOC
participant User as ผู้ใช้จริง
Attacker->>IdP: ❌ Login fail x5
IdP->>IdP: 🔒 Smart lockout (ผู้โจมตีเท่านั้น)
User->>IdP: ✅ Login สำเร็จ (ไม่ถูกล็อก)
IdP->>SOC: 🚨 Alert: failed attempts
SOC->>SOC: ตรวจ IP + success/fail ratio
ผังการตัดสินใจ
graph TD
Alert["🚨 Login ล้มเหลวหลายครั้ง"] --> Type{"⚙️ ประเภท?"}
Type -->|IP เดียว → บัญชีเดียว| BF["🔑 Brute Force"]
Type -->|IP เดียว → หลายบัญชี| Spray["🌊 Password Spray"]
Type -->|หลาย IP → บัญชีเดียว| Dist["📡 Distributed BF"]
BF --> Success{"✅ มี Login สำเร็จ?"}
Spray --> Success
Dist --> Success
Success -->|ใช่| Compromised["🔴 บัญชีถูกบุกรุก"]
Success -->|ไม่| Block["🟠 บล็อก + ติดตาม"]
Compromised --> Reset["🔐 รีเซ็ต + เพิกถอน"]
1. การวิเคราะห์
1.1 ประเภทการโจมตี
| ประเภท |
ลักษณะ |
ความรุนแรง |
| Brute Force |
เดารหัสผ่านหลายรอบต่อบัญชีเดียว |
🟡 ปานกลาง |
| Password Spray |
รหัสผ่านเดียวกดต่อหลายบัญชี |
🟠 สูง |
| Credential Stuffing |
ใช้ credentials ที่รั่วไหล |
🔴 สูง |
| Distributed |
หลาย IP → หลีกเลี่ยง lockout |
🔴 สูง |
1.2 รายการตรวจสอบ
| รายการ |
วิธีตรวจสอบ |
เสร็จ |
| จำนวน login ล้มเหลว |
SIEM (Event 4625) |
☐ |
| Source IP / ประเทศ |
SIEM / GeoIP |
☐ |
| บัญชีที่ถูกโจมตี (เดียว/หลาย) |
SIEM |
☐ |
| มี login สำเร็จในช่วงเดียวกัน? |
Event 4624 |
☐ |
| IP อยู่ใน TI feeds? |
VirusTotal, AbuseIPDB |
☐ |
| Target protocol (SSH/RDP/O365/VPN) |
SIEM |
☐ |
2. การควบคุม
2.1 ไม่มี Login สำเร็จ
| # |
การดำเนินการ |
เสร็จ |
| 1 |
บล็อก source IP ที่ firewall/WAF |
☐ |
| 2 |
เพิ่ม rate limiting |
☐ |
| 3 |
ติดตาม บัญชีเป้าหมาย |
☐ |
2.2 มี Login สำเร็จ
| # |
การดำเนินการ |
เสร็จ |
| 1 |
รีเซ็ตรหัสผ่าน ทันที |
☐ |
| 2 |
เพิกถอน sessions ทั้งหมด |
☐ |
| 3 |
บล็อก source IP |
☐ |
| 4 |
ตรวจ กิจกรรมหลัง login สำเร็จ |
☐ |
| 5 |
ยกระดับไป PB-05 Account Compromise |
☐ |
3. การฟื้นฟู
| # |
การดำเนินการ |
เสร็จ |
| 1 |
บังคับ MFA ทุกบัญชี |
☐ |
| 2 |
ใช้ Smart Lockout / Account lockout policies |
☐ |
| 3 |
พิจารณา Passwordless authentication |
☐ |
| 4 |
เปิด credential leak monitoring |
☐ |
4. เกณฑ์การยกระดับ
| เงื่อนไข |
ยกระดับไปยัง |
| Login สำเร็จ — บัญชีถูกบุกรุก |
PB-05 |
| Admin account ถูกโจมตี |
CISO |
| Distributed attack (>100 IPs) |
SOC Lead |
ผัง Password Policy Hardening
graph TD
Policy["🔐 Password Policy"] --> Length["📏 Min 14 chars"]
Policy --> Complex["🔤 Complexity required"]
Policy --> History["📋 Remember 24"]
Policy --> Lockout["🔒 Lockout 10 fails"]
Lockout --> Duration["⏱️ 30 min lockout"]
Length --> MFA["📱 MFA required"]
Complex --> MFA
style MFA fill:#27ae60,color:#fff
style Lockout fill:#e74c3c,color:#fff
ผังแหล่งที่มา Credential
graph LR
Source{"🔑 แหล่งที่มา?"} --> Dark["🌑 Dark Web dump"]
Source --> Phish["🎣 Phishing"]
Source --> Reuse["♻️ Password reuse"]
Source --> Keylog["⌨️ Keylogger"]
Dark --> Check["✅ ตรวจ HaveIBeenPwned"]
Phish --> Check
Reuse --> Check
Keylog --> EDR["🛡️ สแกน EDR"]
style Dark fill:#2c3e50,color:#fff
style Phish fill:#e74c3c,color:#fff
กฎตรวจจับ (Sigma)
เอกสารที่เกี่ยวข้อง
Account Lockout Impact Assessment
| System Type |
Lockout Policy |
Business Impact |
| Active Directory |
5 attempts / 30 min |
Medium-High |
| VPN Gateway |
3 attempts / 15 min |
High |
| Web Application |
10 attempts / 60 min |
Low-Medium |
| Database |
5 attempts / 30 min |
High |
| Cloud Console |
3 attempts / 5 min |
Critical |
Brute Force Attack Patterns
| Pattern |
Detection |
Response |
| Horizontal (password spray) |
Multiple users, same password |
Block source IP |
| Vertical (single target) |
Many attempts, one user |
Lock account |
| Credential stuffing |
Known breach list |
Rate limit + CAPTCHA |
| Reverse brute force |
Common passwords, all users |
Alert + block |
Response Automation
flowchart TD
A[Failed logins > threshold] --> B{Source type?}
B -->|Internal| C[Alert + investigate]
B -->|External| D{Known bad IP?}
D -->|Yes| E[Auto-block + log]
D -->|No| F[Rate limit + monitor]
C --> G{Compromised?}
G -->|Yes| H[Reset creds + scan]
G -->|No| I[User awareness]
Password Policy Recommendations
| Setting |
Recommended |
Rationale |
| Min length |
14 chars |
Resist offline crack |
| Lockout |
5 attempts |
Limit online attempts |
| MFA |
Required |
Prevent credential-only |
| Password history |
12 |
Prevent reuse |
Account Recovery Steps
| Step |
Action |
Verify |
| 1 |
Reset password |
Confirm with user |
| 2 |
Enable MFA |
New device enroll |
| 3 |
Review login history |
Check for success |
อ้างอิง