! การแทรก Suricata ไว้ที่ช่วงรอยต่อของ L3/L4 นั้นเหมาะสมที่สุด เพราะ Suricata คือเครื่องมือระดับ “รุ่นใหญ่” ที่ทำหน้าที่เป็น IDS/IPS (ระบบตรวจจับและป้องกันการบุกรุก)
หาก Tshark คือ “กล้องวงจรปิด” และ Zeek คือ “คนจดบันทึก” Suricata ก็คือ “ยามหน้าประตู” ที่ถือบัญชีดำ (Signatures) คอยตรวจดูว่า Packet ไหนมีพฤติกรรมเป็นผู้ร้ายตามที่ได้รับแจ้งมาหรือไม่ครับ
🛡️ 05b-Suricata: ยามเฝ้าประตูและระบบตรวจจับผู้บุกรุก (IDS/IPS)
ในขณะที่เราเรียนรู้วิธีการสืบสวนด้วยตัวเอง (Manual Investigation) ไปมากแล้ว ในโลกความเป็นจริงมีภัยคุกคามเกิดขึ้นวินาทีละหลายหมื่นครั้ง เราจึงต้องมี Suricata เป็นระบบอัตโนมัติที่คอย “เฝ้าบ้าน” และส่งเสียงเตือน (Alert) เมื่อพบสิ่งผิดปกติครับ
📖 พจนานุกรมฉบับนักสืบ (The Investigator’s Glossary)
| คำศัพท์ | คำอ่าน | ความหมายในเชิงเทคนิค |
|---|---|---|
| IDS | ไอ-ดี-เอส | (Intrusion Detection System) ระบบที่คอย “เตือน” เมื่อเจอผู้บุกรุก แต่ไม่ขวางทางไว้ |
| IPS | ไอ-พี-เอส | (Intrusion Prevention System) ระบบที่ “เตือนและเตะออก” คือบล็อก Packet ทิ้งทันที |
| Signature | ซิก-เน-เจอร์ | “ลายนิ้วมือ” ของไวรัสหรือรูปแบบการโจมตีที่ถูกบันทึกไว้ในฐานข้อมูล |
| False Positive | ฟอลส์ โพ-ซิ-ทิฟ | “การเตือนผิด” เช่น เพื่อนบ้านมาเคาะประตูแต่ระบบนึกว่าเป็นโจร |
| Threshold | เธรช-โฮลด์ | “จุดขีดสุด” หรือค่าที่ตั้งไว้ว่าถ้าเกินระดับนี้ให้เริ่มทำการแจ้งเตือน |
🔍 กลไกการทำงาน: การตรวจจับด้วย “กฎ” (Rules)
Suricata ทำงานโดยการเปรียบเทียบ Packet กับชุดกฎ (Rules) ตัวอย่างเช่น:
“ถ้าเห็นใครส่ง Packet SYN มาหาเราเกิน 100 ครั้งใน 1 วินาที ให้ขึ้นเตือนว่าโดนสแกนพอร์ต!”
ความต่างของ Suricata:
- Multithreading: Suricata ฉลาดกว่าเครื่องมือรุ่นเก่า (อย่าง Snort) เพราะสามารถใช้ CPU ทุก Core ในเครื่องทำงานพร้อมกันได้ ทำให้ไม่ค่อยทำ Packet หล่นหาย
🛠 การติดตั้งและใช้งานเบื้องต้นบน Arch Linux
ติดตั้ง Suricata:
Bash
sudo pacman -S suricata
1. การอัปเดตลายนิ้วมือผู้ร้าย (Rules Update)
ก่อนเริ่มสืบสวน เราต้องบอกยามก่อนว่าตอนนี้โจรหน้าตาเป็นอย่างไร:
Bash
sudo suricata-update
2. การรัน Suricata เพื่อตรวจจับจากไฟล์ PCAP
นักสืบมักจะเอาไฟล์ที่เก็บมาได้ มาให้ Suricata ช่วย “กรอง” หาความผิดปกติ:
Bash
sudo suricata -r evidence.pcap -l logs/
-r: อ่านไฟล์ PCAP-l: เก็บไฟล์ Log ไว้ที่โฟลเดอร์ logs/
🕵️ วิธีการอ่านเบาะแสจาก Suricata
หลังจากรันแล้ว คุณจะพบไฟล์สำคัญ 2 ไฟล์ในโฟลเดอร์ logs/:
fast.log: ไฟล์สรุปสั้นๆ ว่าเจออะไรบ้าง (ใครโจมตี ใครคือเหยื่อ โจมตีท่าไหน)
- ตัวอย่าง:
[**] [1:2010935:2] ET SCAN Potential SSH Scan [**] [Priority: 3] {TCP} 192.168.1.50:45678 -> 192.168.1.1:22
- ตัวอย่าง:
eve.json: ไฟล์ที่ละเอียดที่สุด (ทุกอย่างอยู่ในรูปแบบ JSON) ซึ่งเราสามารถใช้เครื่องมืออย่าง
jqเพื่อดึงข้อมูลมาดูได้:Bash
cat eve.json | jq 'select(.event_type=="alert") | .alert.signature'
📝 บันทึกการวิเคราะห์: เมื่อไหร่ที่ต้องเรียกใช้ Suricata?
เมื่อต้องการ “คัดกรอง” เบื้องต้น: หากคุณมีไฟล์ PCAP ขนาด 10GB การใช้ Tshark ไล่หาจะเหนื่อยมาก ให้รันผ่าน Suricata ก่อนเพื่อให้มันชี้เป้าว่า “วินาทีที่เท่าไหร่” ที่น่าจะเกิดเหตุร้าย
เมื่อต้องการทำ IPS: หากคุณต้องการป้องกันเครื่อง Arch Linux ของคุณจากการสแกนพอร์ตแบบ Real-time คุณสามารถตั้งค่า Suricata ให้ทำงานคู่กับ
iptablesเพื่อบล็อก IP โจรได้ทันที
💡 ขั้นตอนต่อไปที่คุณควรลอง:
ลองรัน Nmap สแกนพอร์ตเครื่องตัวเอง (localhost) ในขณะที่รัน Suricata ทิ้งไว้ แล้วไปเปิดดูใน
fast.logว่ามันขึ้นเตือนไหมลองใช้
suricata-updateเพื่อดูว่ามีแหล่งข่าว (Rulesets) อื่นๆ ที่ฟรีและดีอีกบ้างในอินเทอร์เน็ต