สวนแห่งความคิดของนายเขียว#
ยินดีต้อนรับสู่พื้นที่ซึ่งรวม:
- ความเงียบสงบของสวน
- ความเข้มข้นของระบบเครือข่าย
- ความเรียบง่ายของ Linux
- และการทดลองจริงผ่าน Labs และ Case Studies
พื้นที่เรียนรู้หลัก#
Networking#
เรียนรู้ตั้งแต่พื้นฐาน OSI / TCP-IP ไปจนถึงการวิเคราะห์แพ็กเก็ตและกรณีศึกษาจริง
เข้าสู่คอร์ส Networking
Linux#
เส้นทางการเรียนรู้ Linux จากศูนย์: filesystem, users, process, systemd, networking และ security
เข้าสู่คอร์ส Linux
Labs & Case Studies#
ทดลองจากเหตุการณ์จริง, PCAP จริง, และสถานการณ์ที่พบนอกสนาม
ดู Labs
ดู Case Studies
หมายเหตุสำหรับผู้มาเยี่ยมสวน#
ที่นี่ไม่ใช่แค่บันทึกส่วนตัว แต่เป็นพื้นที่แบ่งปันความรู้ที่พี่ค่อย ๆ ปลูกทีละบท ทีละ Lab
ถ้าวันใดกลับมาอ่านใหม่ ยังคงต่อยอดได้ง่ายเสมอ
! การแทรก 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) ตัวอย่างเช่น:
...
🔍 บทนำ (เนื้อหาเริ่มต้นของบทความ 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) นักสืบต้องจำลำดับนี้ให้ขึ้นใจ เพราะหากลำดับผิดเพี้ยนไปแม้แต่นิดเดียว นั่นคือ “จุดผิดปกติ” ครับ:
...
🔍 บทนำ (เนื้อหาเริ่มต้นของบทความ TLS Fingerprinting: การระบุมัลแวร์ใน Traffic ที่เข้ารหัส)
บทที่ 13 นี้คือการก้าวเข้าสู่ “อาวุธลับ” ของนักสืบเครือข่ายสมัยใหม่ครับ ในยุคที่ Traffic กว่า 90% บนอินเทอร์เน็ตถูกเข้ารหัส (Encrypted) ด้วย TLS/SSL จนเราไม่สามารถแอบดู “เนื้อหา” ข้างในได้เหมือนสมัยก่อน แต่นักสืบสาย Deep อย่างเรายังมีวิธีระบุตัวตนของโปรแกรมที่คุยกันได้ โดยการดูจาก “ลายนิ้วมือในการทักทาย” ครับ
🔐 13-TLS Fingerprinting: การระบุมัลแวร์ใน Traffic ที่เข้ารหัส เมื่อข้อมูลถูกเข้ารหัส นักสืบส่วนใหญ่อาจจะถอดใจเพราะมองเห็นแต่ข้อมูลขยะ (Garbage Data) แต่ในความเป็นจริง ก่อนที่การเข้ารหัสจะเริ่มขึ้น ทั้งสองฝั่งต้องมีการตกลงกันก่อนในขั้นตอน TLS Handshake ซึ่งในขั้นตอนนี้เองที่แต่ละซอฟต์แวร์จะมี “นิสัย” การเลือกใช้ Algorithm และการตั้งค่าที่ไม่เหมือนกัน เราเรียกสิ่งนี้ว่า Fingerprinting ครับ
📖 พจนานุกรมฉบับนักสืบ (The Investigator’s Glossary) คำศัพท์ คำอ่าน ความหมายในเชิงเทคนิค Cipher Suite ไซ-เฟอร์ สวีท ชุดของอัลกอริทึมที่ใช้สำหรับการเข้ารหัส, แลกเปลี่ยนคีย์ และตรวจสอบความถูกต้อง JA3 / JA3S เจ-เอ-ทรี มาตรฐานการทำลายนิ้วมือ TLS (Client/Server) ที่ถูกคิดค้นโดยทีมวิศวกรของ Salesforce SNI เอส-เอ็น-ไอ (Server Name Indication) ส่วนของข้อมูลที่ระบุว่าเรากำลังจะเข้าเว็บชื่ออะไร (ยังไม่ถูกเข้ารหัสในขั้นตอนแรก) Certificate เซอร์-ทิ-ฟิ-เกต ใบรับรองดิจิทัลที่บอกว่า Server นี้คือตัวจริง (นักสืบใช้เช็คผู้ออกใบเซอร์เพื่อหาจุดพิรุธ) Cipher Stacking ไซ-เฟอร์ สแต็ก-กิ้ง ลำดับการเรียงรายชื่ออัลกอริทึมที่รองรับ ซึ่งมักจะเฉพาะเจาะจงตามเวอร์ชันของซอฟต์แวร์นั้นๆ 🔍 กลไกการสืบสวน: JA3 Fingerprint คืออะไร? เมื่อโปรแกรม (เช่น Chrome, Python Script, หรือ Malware) ส่ง Packet Client Hello ออกไป มันจะส่งรายการสิ่งที่มันทำได้ (Cipher Suites, Extensions, Elliptic Curves) ไปด้วย
...
🔍 บทนำ (เนื้อหาเริ่มต้นของบทความ Zeek for Investigators: เปลี่ยน Log มหาศาลให้กลายเป็นเบาะแส)
ในบทที่ 8 นี้ เราจะขยับจากการจ้องมอง Packet ทีละบรรทัด มาสู่การใช้เครื่องมือระดับ “สมองกล” อย่าง Zeek (เดิมชื่อ Bro) ครับ
หาก Tshark คือการมองผ่าน “กล้องจุลทรรศน์” เพื่อดูทุกรายละเอียด Zeek ก็คือ “สายสืบหน้าจอ” ที่คอยจดบันทึกพฤติกรรมสรุป (Summary) ของทุกคนที่เดินผ่านเครือข่ายให้เราโดยอัตโนมัติ สำหรับนักสืบแล้ว Zeek คือเครื่องมือที่จะเปลี่ยนไฟล์ PCAP ขนาด 1GB ให้กลายเป็นไฟล์ Log ขนาดเล็กที่อ่านง่ายและเต็มไปด้วย “เบาะแส” ครับ
🦉 08-Zeek for Investigators: เปลี่ยน Log มหาศาลให้กลายเป็นเบาะแส ในการสืบสวนเครือข่ายที่มี Traffic หนาแน่น เราไม่สามารถนั่งอ่าน Packet ทีละตัวได้ Zeek เข้ามาแก้ปัญหานี้โดยการทำตัวเป็น Network Security Monitor (NSM) ซึ่งไม่ได้แค่ดักจับ Packet แต่จะ “ตีความ” (Interpret) ว่าเกิดอะไรขึ้น แล้วสรุปเป็นไฟล์ Log แยกตามประเภท เช่น ใครคุยกับใคร (conn.log), ใครเข้าเว็บอะไร (http.log) หรือใครกำลังขอไฟล์อะไร (files.log)
...
🛠 ปัญหาที่พบ บางครั้งการใส่รูปภาพหน้าปกขนาดใหญ่เกินไป ทำให้หน้าแรกของบล็อกดูรกและโหลดช้า
💡 วิธีการแก้ไข/การตั้งค่า แนะนำให้เก็บรูปภาพไว้ในโฟลเดอร์เดียวกับบทความ (Page Bundles) หรือใน static/images/ และตั้งค่าใน Front Matter ดังนี้:
cover: image: "images/my-lab-thumb.png" relative: false # ตั้งเป็น false ถ้าเก็บรูปใน static hidden: false # แสดงรูปทั้งในหน้าลิสต์และหน้าบทความ
🐧 สภาพแวดล้อมที่ใช้ OS: Arch Linux Kernel: Latest Stable ⚙️ ขั้นตอนการตั้งค่า (Configuration) หลังจากติดตั้ง Base System แล้ว สิ่งที่สาย Network ต้องมีคือชุดเครื่องมือวิเคราะห์:
# ติดตั้งเครื่องมือพื้นฐานสำหรับการวิเคราะห์ sudo pacman -S tshark tcpdump nmap net-tools iproute2 # ตั้งค่าให้ User ปกติสามารถจับ Packet ได้ (ไม่ต้องใช้ sudo ตลอดเวลา) sudo usermod -a -G wireshark $USER ทำไมต้อง Arch? เพราะเราต้องการ Kernel ที่ใหม่ที่สุดเพื่อรองรับ Driver ของ Network Card รุ่นใหม่ๆ และความเบาของระบบที่ไม่มี Service ส่วนเกินมากวนการดักจับ Packet ของเรา
📝 ทำไมต้องเริ่มที่ Packet? Network ส่วนใหญ่มักเริ่มที่ทฤษฎีที่จับต้องไม่ได้ แต่ในการทำงานจริง โดยเฉพาะการแก้ไขปัญหา (Troubleshooting) และความปลอดภัย (Security) “Packet ไม่เคยโกหกใคร” ในบทความแรกนี้ เราจะมาดูวิธีการดึงข้อมูลดิบจากสายสัญญาณด้วยเครื่องมือที่ทรงพลังที่สุดบน Linux นั่นคือ Tshark
🛠 เครื่องมือที่ใช้ใน Lab นี้ OS: Linux (Arch/Kali) Tool: Tshark (Terminal-based Wireshark) 🔍 ขั้นตอนการวิเคราะห์ (Analysis) การตรวจสอบ Interface: ก่อนจะเริ่มดักจับข้อมูล เราต้องรู้ก่อนว่าเราจะฟังที่ช่องทางไหน
tshark -D## 📝 ทำไมต้องเริ่มที่ Packet? ลองจับ Packet แรก (The First Capture): ลองดักจับข้อมูล HTTP หรือ ICMP (Ping) เพื่อดูโครงสร้างเบื้องต้น
sudo tshark -i eth0 -c 5 สิ่งที่ต้องสังเกต: ในการสอนคนอื่น ให้เขาพยายามมองหา 3 ส่วนนี้ในทุกๆ Packet: Source/Destination: ใครคุยกับใคร?
Protocol: คุยกันด้วยภาษาอะไร? (TCP, UDP, ICMP)
...