PlusMagi's Blog By Pitt Phunsanit Backend,Cybersecurity,Database Network Traffic Monitoring & Analysis: การวิเคราะห์ Flow ด้วย sFlow, NetFlow และการดักจับแพ็กเก็ตผ่าน Wireshark/tcpdump

Network Traffic Monitoring & Analysis: การวิเคราะห์ Flow ด้วย sFlow, NetFlow และการดักจับแพ็กเก็ตผ่าน Wireshark/tcpdump

ในโลกของระบบเครือข่ายยุคดิจิทัลที่ข้อมูลไหลเวียนอย่างรวดเร็ว การมองเห็น (Visibility) คือหัวใจสำคัญของการรักษาความปลอดภัยและประสิทธิภาพ หากไม่มีการตรวจสอบทราฟฟิกอย่างต่อเนื่อง องค์กรก็เสี่ยงต่อปัญหาคอขวด (Bottleneck), การโจมตีทางไซเบอร์, หรือแม้แต่การล่มของบริการที่สำคัญ การวิเคราะห์ทราฟฟิกเครือข่ายจึงเป็นเครื่องมือที่ขาดไม่ได้

Network Traffic Monitoring: Flow Analysis vs. Packet Sniffing

การวิเคราะห์ทราฟฟิกเครือข่ายสามารถแบ่งออกเป็นสองแนวทางหลัก คือ Flow Analysis และ Packet Sniffing ซึ่งแต่ละวิธีมีจุดแข็งและวัตถุประสงค์ในการใช้งานที่แตกต่างกันอย่างสิ้นเชิง

📊 Flow Analysis (NetFlow, sFlow)

เทคนิค Flow Analysis ไม่ได้บันทึกทุกแพ็กเก็ต แต่จะเก็บรวบรวมเมตาดาต้าสรุปของการสื่อสาร (เช่น Source IP, Destination IP, Port, Protocol, และปริมาณไบต์) ซึ่งมีประสิทธิภาพสูงมากในการตรวจสอบภาพรวมการใช้งานเครือข่ายขนาดใหญ่ในระยะยาว เหมาะสำหรับการเฝ้าระวังเชิงสถิติ (Statistical Monitoring) และการวางแผนกำลังการผลิต (Capacity Planning) ข้อมูลเหล่านี้มักถูกส่งมายังระบบฐานข้อมูลเพื่อวิเคราะห์เชิงปริมาณ

สมมติว่าเราได้รวบรวมข้อมูล Flow เข้ามาในตาราง `flow_records` ใน PostgreSQL เราสามารถใช้คำสั่ง SQL เพื่อหาคู่ IP ที่มีการสื่อสารสูงสุดได้:

SQL

SELECT 
    source_ip, 
    destination_ip, 
    COUNT(*) AS total_flows, 
    SUM(bytes_transferred) AS total_bytes 
FROM 
    flow_records 
WHERE 
    timestamp >= '2024-01-01' 
GROUP BY 
    source_ip, 
    destination_ip 
ORDER BY 
    total_bytes DESC 
LIMIT 10;

🔬 Packet Sniffing (Wireshark, tcpdump)

Packet Sniffing คือการตรวจสอบระดับลึก (Deep Packet Inspection – DPI) ที่จับภาพแพ็กเก็ตข้อมูลทั้งหมด ทำให้เราเห็น Payload ของข้อมูล (Data Payload) ได้โดยตรง ซึ่งจำเป็นอย่างยิ่งเมื่อสงสัยว่ามีการรั่วไหลของข้อมูล (Data Leakage) หรือการโจมตีที่ซับซ้อน การใช้งานเครื่องมือเหล่านี้มักนำข้อมูลที่ได้มาจัดเก็บในรูปแบบที่สามารถ Query ได้ เช่น การโหลดข้อมูลเข้าสู่ PostgreSQL เพื่อการวิเคราะห์เชิงลึก

หากเรามีตาราง `packet_capture` ที่เก็บข้อมูล Header และ Payload เราสามารถใช้ PostgreSQL เพื่อกรองและวิเคราะห์ข้อมูลเฉพาะส่วนที่ต้องการได้:

SQL

SELECT 
    source_ip, 
    destination_ip, 
    protocol, 
    LENGTH(payload_data) AS payload_length 
FROM 
    packet_capture 
WHERE 
    protocol = 'TCP' 
    AND payload_length > 100 
    AND timestamp BETWEEN '2024-05-01' AND '2024-05-02' 
ORDER BY 
    timestamp ASC;

บทสรุป: การเลือกใช้เครื่องมือที่เหมาะสม

การเลือกใช้ระหว่าง Flow Analysis และ Packet Sniffing ขึ้นอยู่กับวัตถุประสงค์หลัก หากเป้าหมายคือการเฝ้าระวังภาพรวม การหาจุดคอขวด หรือการวางแผนทรัพยากร (Capacity Planning) Flow Analysis คือคำตอบที่เหมาะสมที่สุด เนื่องจากมีประสิทธิภาพสูงกว่าและใช้ทรัพยากรน้อยกว่า ในทางกลับกัน หากต้องการหลักฐานเชิงลึกเพื่อการสอบสวนทางนิติวิทยาศาสตร์ (Forensics) หรือการยืนยันรูปแบบการโจมตีที่เฉพาะเจาะจง Packet Sniffing คือสิ่งจำเป็น

โดยสรุปแล้ว การใช้ PostgreSQL ในการจัดการและ Query ข้อมูลที่ได้จากทั้งสองแหล่ง ทำให้องค์กรสามารถเปลี่ยนข้อมูลดิบจำนวนมหาศาลให้กลายเป็นข้อมูลเชิงลึกที่นำไปใช้ในการตัดสินใจทางธุรกิจและความปลอดภัยได้อย่างมีประสิทธิภาพสูงสุด