🔍 บทนำ
(เนื้อหาเริ่มต้นของบทความ TCP Handshake Investigation: การตรวจจับความพยายามเชื่อมต่อ)
บทที่ 6 นี้เราขยับขึ้นมาสู่ Transport Layer (Layer 4) ซึ่งเป็นชั้นที่ซับซ้อนและสำคัญที่สุดสำหรับการสืบสวนพฤติกรรมเครือข่ายครับ
ถ้า Layer 3 คือการหาบ้านเลขที่เจอแล้ว Layer 4 คือวินาทีที่คนสองคน “ยื่นมือมาจับกัน” เพื่อตกลงว่าจะคุยกันเรื่องอะไร หากคุณอ่านจังหวะการจับมือ (Handshake) นี้ไม่ออก คุณจะไม่สามารถแยกแยะได้เลยว่านี่คือการเชื่อมต่อปกติ หรือการพยายามเจาะระบบครับ
🤝 06-TCP Handshake Investigation: การตรวจจับความพยายามเชื่อมต่อ
ในโลกของ TCP (Transmission Control Protocol) ทุกการสื่อสารต้องเริ่มด้วย “สัญญาจ้าง” ที่เรียกว่า Three-way Handshake เสมอ ในฐานะนักสืบ การเห็นแค่ว่าเขาส่งข้อมูลอะไรกันนั้นไม่พอ แต่เราต้องดูว่าเขา “เริ่มคุยกันท่าไหน” เพราะโจรส่วนใหญ่มักจะทิ้งร่องรอยไว้ตั้งแต่วินาทีแรกที่ยื่นมือมาครับ
📖 พจนานุกรมฉบับนักสืบ (The Investigator’s Glossary)
| คำศัพท์ | คำอ่าน | ความหมายในเชิงเทคนิค |
|---|---|---|
| Flag | แฟลก | “ธง” หรือบิตพิเศษใน TCP Header ที่บอกสถานะของ Packet เช่น SYN, ACK, FIN, RST |
| Stateful | สเตท-ฟูล | ระบบที่ “จำความจำ” ได้ ว่าตอนนี้การเชื่อมต่ออยู่ในขั้นตอนไหนแล้ว |
| Sequence Number | ซี-เควนซ์ นัม-เบอร์ | “หมายเลขลำดับ” เปรียบเสมือนรหัสติดตามพัสดุ เพื่อให้ปลายทางเรียงข้อมูลได้ถูกต้อง |
| Acknowledgment | แอค-นอล-เลจ-เมนท์ | การ “ตอบรับ” ว่าได้รับข้อมูลลำดับที่เท่าไหร่แล้ว |
| SYN Flood | ซิน-ฟลัด | การส่งคำทักทาย (SYN) รัวๆ เพื่อให้ Server ค้างเพราะมัวแต่รอจับมือให้เสร็จ (การโจมตีแบบ DoS) |
🔍 วิเคราะห์ขั้นตอนการจับมือ (The 3-Way Handshake)
นักสืบต้องจำลำดับนี้ให้ขึ้นใจ เพราะหากลำดับผิดเพี้ยนไปแม้แต่นิดเดียว นั่นคือ “จุดผิดปกติ” ครับ:
SYN (Synchronize): “ฮัลโหล ผมต้องการเริ่มคุยกับคุณที่พอร์ตนี้ นี่คือรหัสเริ่มต้นของผม (ISN)”
SYN-ACK (Synchronize-Acknowledge): “รับทราบครับ ผมก็อยากคุยด้วย นี่คือรหัสของผม และผมได้รับรหัสของคุณแล้วนะ”
ACK (Acknowledge): “โอเคครับ ผมได้รับรหัสของคุณแล้ว เริ่มส่งข้อมูลกันเลย!”
จุดสังเกต: หากมี SYN ส่งไป แต่ไม่มี SYN-ACK ตอบกลับมา อาจหมายถึงพอร์ตนั้น ปิด หรือมี Firewall กั้นอยู่
🕵️ เทคนิคสืบสวนด้วย Tshark: มองหาความผิดปกติ
เราจะใช้ Tshark กรองดูเฉพาะ “ความพยายามในการจับมือ” เพื่อดูว่ามีใครกำลังแอบสแกนเราอยู่หรือไม่
1. ดักจับเฉพาะ Packet ที่เป็นจุดเริ่มต้นการสื่อสาร (SYN)
Bash
sudo tshark -i eth0 -f "tcp[tcpflags] & (tcp-syn) != 0"
หากคุณเห็น IP เดียวกันส่ง SYN เข้ามาหาคุณหลายร้อยพอร์ตในเวลาสั้นๆ นั่นคือการทำ Port Scanning แน่นอน
2. วิเคราะห์การเชื่อมต่อที่ “ค้าง” (Half-Open)
โจรบางคนส่ง SYN มาแต่ไม่ยอมส่ง ACK กลับ (SYN Flood) เพื่อให้เครื่องเราทรัพยากรเต็ม:
Bash
sudo tshark -i eth0 -Y "tcp.flags.syn==1 && tcp.flags.ack==0"
🕵️ จุดที่นักสืบต้องสงสัย (Investigative Insights)
Sequence Number Prediction: ในสมัยก่อนถ้ารหัสลำดับ (Sequence Number) เดาง่าย โจรสามารถสวมรอยการเชื่อมต่อได้ (Session Hijacking) แต่ OS รุ่นใหม่ๆ อย่าง Arch Linux จะสุ่มรหัสนี้มาอย่างดี
Retransmission: หากเห็น SYN เดิมส่งซ้ำๆ (Retransmission) แสดงว่าเน็ตอาจจะมีปัญหา หรือเป้าหมายกำลังจงใจเมินเฉยต่อ Packet ของเรา
Port Knocking: นักสืบสายลับบางคนตั้งค่า Server ให้ “เคาะพอร์ต” ตามลำดับที่กำหนด (เช่น เคาะพอร์ต 100, 200, 300) แล้วพอร์ตลับถึงจะเปิดให้เข้าใช้งาน
📝 บันทึกการวิเคราะห์
การสืบสวนใน Layer 4 คือการดู “เจตนา”
SYN เฉยๆ แล้วหายไป: อาจเป็นการสแกน
SYN แล้วตามด้วย RST: อาจเป็นการเช็คว่าพอร์ตเปิดไหมแบบรวดเร็ว
SYN -> SYN-ACK -> ACK: คือการเริ่มทำงานจริงของแอปพลิเคชัน
💡 ขั้นตอนต่อไปที่คุณควรลอง:
ลองเปิด Tshark ด้วยคำสั่งกรอง SYN แล้วลองเปิด Browser เข้าเว็บดู คุณจะเห็นการจับมือเกิดขึ้นมากมายในพอร์ต 443 (HTTPS)
ลองสังเกตค่า Win (Window Size) ใน Packet SYN มันจะบอกเราว่าเครื่องนั้นสามารถรับข้อมูลได้เร็วแค่ไหนในหนึ่งครั้ง