! การแทรก 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/:

  1. fast.log: ไฟล์สรุปสั้นๆ ว่าเจออะไรบ้าง (ใครโจมตี ใครคือเหยื่อ โจมตีท่าไหน)

    • ตัวอย่าง: [**] [1:2010935:2] ET SCAN Potential SSH Scan [**] [Priority: 3] {TCP} 192.168.1.50:45678 -> 192.168.1.1:22
  2. 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 โจรได้ทันที


💡 ขั้นตอนต่อไปที่คุณควรลอง:

  1. ลองรัน Nmap สแกนพอร์ตเครื่องตัวเอง (localhost) ในขณะที่รัน Suricata ทิ้งไว้ แล้วไปเปิดดูใน fast.log ว่ามันขึ้นเตือนไหม

  2. ลองใช้ suricata-update เพื่อดูว่ามีแหล่งข่าว (Rulesets) อื่นๆ ที่ฟรีและดีอีกบ้างในอินเทอร์เน็ต