เคยสงสัยมั้ยว่าทำไมเน็ตบ้านช้าบ้าง? หรือมีข้อมูลอะไรวิ่งอยู่ในเครือข่ายตอนเราไม่ได้ใช้เน็ตอยู่? คำตอบของคำถามพวกนี้จะถูกไขด้วยเจ้าเครื่องมือเจ๋งๆ ที่เรียกว่า Packet Monitor ตัวนี้แหละ มันคือโปรแกรมหรือฮาร์ดแวร์ที่สามารถดักจับและบันทึกข้อมูล (Traffic) ที่วิ่งผ่านเครือข่ายคอมพิวเตอร์ได้เลย เวลามีข้อมูลไหลผ่าน มันจะเก็บแพ็กเก็ตข้อมูลแต่ละอันไว้ และถอดรหัสข้อมูลดิบได้ถ้าจำเป็น ในโปรเจกต์นี้ เราจะมาสร้างอุปกรณ์ Packet Monitor ด้วยบอร์ด ESP8266 กัน เราจะรับข้อมูล Traffic ในแต่ละช่องสัญญาณ แล้วแสดงผลเป็นกราฟสวยๆ บนหน้าจอ OLED ไปหาอ่านบทความสอนแบบละเอียดได้ที่เว็บไซต์ และอย่าลืมกดติดตามเพจเพื่อสนับสนุนพี่ด้วยนะ
ฮาร์ดแวร์ไซเบอร์ซีเคียวริตี้: กล่องวิเคราะห์ Wi-Fi
ข้อควรระวัง: โปรเจกต์นี้มีไว้เพื่อการศึกษาและการวินิจฉัยเครือข่าย Wi-Fi ที่บ้านตัวเองเท่านั้น เพื่อหาช่องสัญญาณที่โล่งที่สุดนะจ๊ะน้อง
กล่องวิเคราะห์ Wi-Fi นี้คือการสาธิตความสามารถด้านไซเบอร์ซีเคียวริตี้ที่ทรงพลัง โดยใช้ชิป ESP8266 เพราะตัว ESP8266 มันเป็นชิปสำหรับเครือข่ายอยู่แล้ว เราสามารถโปรแกรมเฟิร์มแวร์ให้มันเข้าสู่ "โหมดสอดรู้สอดเห็น (Promiscuous Mode)" เพื่อ "ฟัง" แพ็กเก็ต Wi-Fi ทั้งหมดที่มองไม่เห็นซึ่งลอยผ่านอากาศอยู่รอบตัวเราได้เลย

PacketMonitor ทำงานยังไง?!
ในโปรเจกต์นี้ ค่าของ Traffic ในช่องสัญญาณที่กำหนดไว้ตั้งแต่ช่อง 1 ถึง 14 จะถูกรับเข้ามาด้วยความช่วยเหลือของบอร์ด WiFi ESP8266 และบอร์ด Wemos จากนั้นบนหน้าจอ OLED ที่ขับเคลื่อนด้วยอินเทอร์เฟซ I2C มันจะแสดงผล Traffic ที่เข้ามาในแต่ละช่วงเวลาเป็นกราฟให้ดูแบบเรียลไทม์เลย เรายังจะได้รับการแจ้งเตือนด้วยถ้ามีการทำงานผิดปกติหรือมีการโจมตีแบบ Deauth บนช่องสัญญาณที่เรากำลังวิเคราะห์อยู่ และเรายังสามารถเปลี่ยนหมายเลขช่องสัญญาณที่กำลังวิเคราะห์อยู่ได้ด้วยปุ่มกดที่ต่ออยู่กับขา D3 บนบอร์ด Wemos อีกด้วย เรียกว่าครบเครื่องเรื่องวิเคราะห์เลย
การดักจับแพ็กเก็ตในโหมดสอดรู้สอดเห็น
ปกติแล้ว ESP8266 จะเชื่อมต่อกับเราเตอร์และเมินสัญญาณทั้งหมดที่ไม่ได้ส่งมาให้มัน
- เทคนิค Hack: ในโปรเจกต์นี้โค้ดจะแหกกฎนั่น (
wifi_set_opmode(STATION_MODE)และwifi_promiscuous_enable(1)) ESP จะทำตัวเหมือนเสาอากาศวิทยุยักษ์ที่สแกนผ่านช่องสัญญาตั้งแต่ช่อง 1 ถึง 11 - นับแพ็กเก็ต: มันจะนับทุก Beacon Frame และ Data Packet ที่ได้ยินในอากาศอย่างรวดเร็ว สร้างเป็นตัวเลขจำนวนมหาศาล
- อินเทอร์เฟซแบบกราฟิก: Arduino จะส่งข้อมูลนี้ไปยัง หน้าจอ OLED ผ่าน I2C แล้ววาดฮิสโตแกรมแบบเคลื่อนไหวออกมาให้ดู ซึ่งจะเห็นได้ชัดเลยว่าช่องไหน Traffic เยอะ เช่น อาจเห็นยอดกราฟพุ่งสูงปรี๊ดที่ช่อง 6 ซึ่งพิสูจน์ให้เห็นว่าทุกคนในคอนโดของคุณใช้ช่องสัญญาณเดียวกันเป๊ะเลย และนั่นคือสาเหตุที่เน็ตคุณแล็ก!
อะไหล่สำคัญที่ต้องจัด
- ESP8266 NodeMCU หรือ Wemos D1 Mini: ต้องใช้พลังประมวลผลระดับนี้สำหรับการดักจับสัญญาณ
- จอ OLED ขนาด 1.3" หรือ 0.96": เอาไว้แสดงผลกราฟฮิสโตแกรมให้ดูสวยงาม
- แบตเตอรี่ LiPo และชาร์จเจอร์ TP4056: เพื่อทำให้มันเป็นเครื่องมือแบบพกพาได้ ถือวิ่งไปวิ่งมาได้
- Rotary Encoder (ตัวหมุนเลือกค่า): เอาไว้เลื่อนเลือกระหว่างโหมดการวิเคราะห์ต่างๆ ในเมนู
โปรเจกต์นี้จะสร้างความรู้พื้นฐานสำหรับวิศวกรรมเครือข่าย และช่วยให้เข้าใจว่าแพ็กเก็ต 802.11 b/g/n มันเดินทางผ่านผนังยังไง รู้ไว้มีประโยชน์แน่นอน สู้งานนะน้อง!