TP-Link Tapo C200: คีย์ฮาร์ดโค้ด บัฟเฟอร์โอเวอร์โฟลว์ และความเป็นส่วนตัวในยุคของรีเวิร์สเอนจิเนียริงด้วย AI
(evilsocket.net)- ผลการวิเคราะห์เฟิร์มแวร์ของ กล้อง IP TP-Link Tapo C200 ราคาประหยัดด้วยการทำรีเวิร์สเอนจิเนียริงที่ขับเคลื่อนด้วย AI พบ ช่องโหว่ด้านความปลอดภัย จำนวนมาก
- ภายในเฟิร์มแวร์มี SSL private key ที่ถูกฮาร์ดโค้ดไว้ ทำให้สามารถ ถอดรหัสทราฟฟิก HTTPS ได้จากภายในเครือข่ายเดียวกัน
- ในกระบวนการวิเคราะห์ได้ใช้ เครื่องมือ AI (Grok, GhidraMCP, Cline ฯลฯ) เพื่อทำให้การทำความเข้าใจโครงสร้างเฟิร์มแวร์และการวิเคราะห์ความหมายของฟังก์ชันเป็นอัตโนมัติ
- ช่องโหว่หลักที่พบ ได้แก่ บัฟเฟอร์โอเวอร์โฟลว์ (CVE-2025-8065), จำนวนเต็มโอเวอร์โฟลว์ (CVE-2025-14299), การยึดการเชื่อมต่อ WiFi (CVE-2025-14300) เป็นต้น โดยบางรายการสามารถถูกโจมตีจากระยะไกลได้โดยไม่ต้องยืนยันตัวตน
- กรณีนี้ถูกมองว่าเป็นตัวอย่างที่แสดงให้เห็นว่า AI ช่วยเพิ่มประสิทธิภาพงานวิจัยด้านความปลอดภัย ขณะเดียวกันก็เผยให้เห็นความเปราะบางเชิงโครงสร้างของอุปกรณ์ IoT
การได้มาซึ่งเฟิร์มแวร์และการถอดรหัส
- ทำรีเวิร์สเอนจิเนียริงแอป Tapo บน Android แล้วพบ S3 bucket สาธารณะของ TP-Link ซึ่งสามารถดาวน์โหลดเฟิร์มแวร์ของทุกอุปกรณ์ได้โดยไม่ต้องยืนยันตัวตน
- คำสั่งตัวอย่าง:
aws s3 ls s3://download.tplinkcloud.com/ --no-sign-request --recursive
- คำสั่งตัวอย่าง:
- ใช้เครื่องมือ tp-link-decrypt เพื่อถอดรหัสเฟิร์มแวร์
- สามารถดึง RSA key ได้จาก ซอร์สโค้ด GPL ที่ TP-Link เปิดเผย
- เฟิร์มแวร์ที่ถอดรหัสแล้วประกอบด้วยโครงสร้าง bootloader, kernel และระบบไฟล์รากแบบ SquashFS
รีเวิร์สเอนจิเนียริงด้วย AI
- ใช้ Ghidra, GhidraMCP, Cline, Anthropic Opus/Sonnet 4 เป็นต้น เพื่อทำให้การวิเคราะห์เฟิร์มแวร์เป็นอัตโนมัติ
- AI สามารถอธิบายบทบาทของฟังก์ชันและเปลี่ยนชื่อตัวแปรให้สื่อความหมายมากขึ้น จึงช่วย เพิ่มความอ่านง่ายของโค้ด
- กระบวนการนี้ช่วยให้สามารถแมป HTTP handler, discovery protocol, และ routine การเข้ารหัส ได้
- ยืนยันได้ว่า SSL private key ภายในเฟิร์มแวร์ ไม่ได้ถูกสร้างขึ้นตอนบูต แต่ถูกฝังมาในตัว
- ผู้โจมตีที่อยู่ในเครือข่ายเดียวกันสามารถ ถอดรหัสทราฟฟิก HTTPS ได้
ช่องโหว่หลัก
-
CVE-2025-8065 (หน่วยความจำโอเวอร์โฟลว์ใน ONVIF SOAP XML parser)
- เซิร์ฟเวอร์
/bin/mainบนพอร์ต 2020 ไม่มี การตรวจสอบขอบเขต สำหรับจำนวนองค์ประกอบ XML - เมื่อส่งคำขอ XML จำนวนมากจะเกิด หน่วยความจำโอเวอร์โฟลว์และกล้องล่ม
- คะแนน CVSS v4.0 อยู่ที่ 7.1 (High)
- เซิร์ฟเวอร์
-
CVE-2025-14299 (จำนวนเต็มโอเวอร์โฟลว์ใน HTTPS Content-Length)
- เซิร์ฟเวอร์ HTTPS บนพอร์ต 443 ประมวลผลเฮดเดอร์
Content-Lengthด้วยatoi()โดยไม่มีการตรวจสอบ - บนระบบ 32 บิตจะเกิด การล่มจากโอเวอร์โฟลว์
- คะแนน CVSS v4.0 อยู่ที่ 7.1 (High)
- เซิร์ฟเวอร์ HTTPS บนพอร์ต 443 ประมวลผลเฮดเดอร์
-
CVE-2025-14300 (การยึดการเชื่อมต่อ WiFi)
- API
connectApเข้าถึงได้โดยไม่ต้องยืนยันตัวตน และยังคงเปิดใช้งานแม้ตั้งค่าเสร็จแล้ว - ผู้โจมตีสามารถทำให้กล้อง เชื่อมต่อกับเครือข่ายของผู้โจมตี เพื่อ ดักจับทราฟฟิกวิดีโอ ได้
- คะแนน CVSS v4.0 อยู่ที่ 8.7 (High)
- API
-
API สแกน WiFi ที่ไม่ต้องยืนยันตัวตน (
scanApList)- ส่งคืนข้อมูล SSID, BSSID, ความแรงสัญญาณ, และการตั้งค่าความปลอดภัย ของ WiFi รอบข้าง
- สามารถติดตาม ตำแหน่ง GPS ได้อย่างแม่นยำ ผ่านบริการอย่าง Apple BSSID Locator
- ผู้โจมตีระยะไกลสามารถ ระบุตำแหน่งจริงของกล้อง ได้
กระบวนการเปิดเผยและการตอบสนอง
- รายงานครั้งแรกต่อทีมความปลอดภัยของ TP-Link เมื่อ 22 กรกฎาคม 2025 พร้อม PoC และวิดีโอ
- เปิดเผยต่อสาธารณะหลังจาก ผ่านไป 150 วัน (19 ธันวาคม) จากนั้น TP-Link ได้ เผยแพร่คำแนะนำด้านความปลอดภัย
- TP-Link มี สิทธิ์ออก CVE เอง (CNA) และสามารถ ควบคุมขั้นตอนการรายงานและการเปิดเผย ช่องโหว่ของผลิตภัณฑ์ตนเองได้โดยตรง
- มีการชี้ให้เห็นถึง โครงสร้างผลประโยชน์ทับซ้อน เนื่องจากบริษัทใช้ จำนวน CVE ที่ต่ำกว่าคู่แข่งเป็นตัวชี้วัดทางการตลาด บนเว็บไซต์ของตน
บทสรุป
- เครื่องมือ AI เพิ่มประสิทธิภาพของการทำรีเวิร์สเอนจิเนียริงได้อย่างสูงสุด และช่วยให้การวิจัยด้านความปลอดภัยเข้าถึงได้มากขึ้น
- อย่างไรก็ตาม คีย์ที่ฮาร์ดโค้ดไว้, API ที่ไม่ต้องยืนยันตัวตน, และโครงสร้าง parser ที่เปราะบาง สะท้อนให้เห็นถึง การขาดความปลอดภัยขั้นพื้นฐาน ของอุปกรณ์ IoT
- กรณีของ TP-Link เป็นตัวอย่างเชิงสัญลักษณ์ของ ปัญหาสมดุลระหว่างงานวิจัยด้านความปลอดภัยในยุค AI กับความรับผิดชอบของผู้ผลิต
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
น่าเสียดายที่บทความแบบนี้มักวิจารณ์โดยเอา กรณีล้มเหลวจริง ไปปนกับปัญหาที่แม้แต่ FAANG ก็ยังจัดการได้ยาก
โดยเฉพาะการวิจารณ์ประเด็นที่ว่า “ที่เก็บเฟิร์มแวร์ของ TP-Link อยู่ใน S3 bucket ที่เปิดสาธารณะโดยไม่ต้องยืนยันตัวตน” ถือว่าเป็นวิธีมองที่ไม่ถูกต้อง
กลับกัน มองว่าเป็นตัวอย่างที่ดีของการหลีกเลี่ยง security through obscurity
บทความแบบนี้อาจยิ่งทำให้ผู้บริหารสั่ง “ล็อกให้แน่นขึ้น” แบบผิดทิศทางได้
งานเขียนของ AI มักขาดนัยละเอียดอ่อน และชอบตัดสินทุกอย่างว่าใหม่เกินจริง หรือดี-เลวแบบสุดโต่ง
ไม่ใช่บทความแย่ แต่ควรอ่านอย่างระมัดระวัง ทุกวันนี้โพสต์บน HN ส่วนใหญ่ก็ดูเหมือนได้รับความช่วยเหลือจาก AI
ฉันเองก็เคยเขียนบทความแนวนี้หลายครั้ง และบทความนี้ก็น่าสนใจมากจริงๆ
ที่จริงแล้ว “ได้เฟิร์มแวร์มาอย่างไร” เป็นส่วนที่สำคัญน้อยที่สุดของเรื่องนี้ด้วยซ้ำ
มีความเป็นไปได้สูงว่ากล้องรุ่นอื่นๆ ส่วนใหญ่ก็มี ช่องโหว่ความปลอดภัย คล้ายกัน
ตาม หน้าชุมชนของ TP-Link เฟิร์มแวร์ล่าสุดของ C200 แสดงเป็น 1.4.4 แต่ในบทความกล่าวถึง 1.4.2
หมายความว่ามีการอัปเดตบางส่วน แต่ดูเหมือนว่า แพตช์ความปลอดภัย ยังไม่ได้ถูกรวมเข้าไป
ผู้ผลิตจำนวนมากใช้โครงสร้างแบบ ขายฮาร์ดแวร์กลางตัวเดียวกันโดยเปลี่ยนแค่แบรนด์
บทวิเคราะห์ที่เกี่ยวข้อง: Part 1, Part 2
ด้วยเหตุนี้ การแยกเครือข่าย IoT (segmentation) จึงเป็นสิ่งจำเป็น
ควรแยกสมาร์ตแคมและอุปกรณ์ IoT ทั้งหมดไว้ใน VLAN ต่างหาก และจำกัดการเข้าถึงอินเทอร์เน็ตผ่านไฟร์วอลล์
การตั้งค่าที่แนะนำสำหรับผู้ใช้กล้อง TP-Link:
ปัญหา hardcoded key ร้ายแรงเป็นพิเศษ และกระทบทั้งไลน์ผลิตภัณฑ์
เขาไม่ได้แยกอุปกรณ์ IoT ด้วย VLAN และก็ไม่มีระบบแจ้งเตือน
สุดท้ายวันนั้นเขาได้เรียนรู้ด้วยตัวเองถึงความสำคัญของการแยก VLAN และการจำกัดสิทธิ์เข้าถึง
คิดว่าหลายคนก็น่าจะเปิดเผยเครือข่ายภายในไว้ในลักษณะคล้ายกัน
มีการบอกว่า Thingino รองรับ C200
หากต้องการตรวจสอบชิปเซ็ตที่ถูกต้อง ควรดู OpenIPC
ถ้ามีกล้องที่เข้ากันได้ก็ควรลองอย่างยิ่ง
ฉันใช้งานกล้องทั้งหมดใน VLAN ที่ตัดอินเทอร์เน็ตออก
เข้าถึงภายในผ่าน HomeKit ได้ จึงทำงานได้ดีแม้ไม่มีแอปแยก
ความหละหลวมด้านความปลอดภัยระดับนี้ดูแทบจะเหมือน จงใจ
ขายไปเป็นล้านเครื่องแต่ไม่ตรวจสอบช่องโหว่พื้นฐานเลย เป็นเรื่องที่เข้าใจได้ยาก
มองว่ากล้อง Wi-Fi ส่วนใหญ่ที่ราคาไม่เกิน $150 ก็น่าจะมีปัญหาแบบเดียวกัน
ถ้าจะใช้งานให้ปลอดภัยจริง คงมีแต่ต้องทำ อะแดปเตอร์ Wi‑Fi ↔ Ethernet ที่ไม่ผูกกับระบบปิด ใช้เอง
หักต้นทุนฮาร์ดแวร์ บรรจุภัณฑ์ โลจิสติกส์ การทดสอบ และการคืนสินค้าออกไปแล้ว ก็เหลือ กำไรต่ำกว่า $5 ต่อเครื่อง
ถ้าจะเพิ่มต้นทุนพัฒนาอีก $100,000 ก็เท่ากับเผายอดขายไป 20,000 เครื่อง
สำหรับบริษัทที่มีผลิตภัณฑ์จำนวนมากอย่าง TP-Link ต้นทุนแบบนี้จะพองเป็นหลายสิบล้านดอลลาร์ต่อปี
สุดท้ายก็เลยกลายเป็นโครงสร้างที่ ส่งสินค้าด้วยการพัฒนาให้น้อยที่สุดเท่าที่จำเป็น
คนที่เชี่ยวชาญด้านเทคนิคสามารถใช้เฟิร์มแวร์ Thingino เพื่อสร้างสภาพแวดล้อมแบบใช้เฉพาะในเครือข่ายภายในได้
ไม่รู้ว่า ที่เก็บเฟิร์มแวร์ S3 ของ TP-Link จะเปิดอยู่ได้นานแค่ไหน
มีข้อมูลราว 990GiB จึงน่าจะดีถ้ามีใครสำรองไว้ในรูปแบบ archive หรือ torrent
ฉันใช้กล้องตัวนี้ร่วมกับ Unifi + ONVIF สำหรับงานที่ไม่สำคัญ
แยกไว้คนละ VLAN และตัดอินเทอร์เน็ตออก ซึ่งโชคดีที่ยังทำงานได้ปกติ
ตอนตรวจสอบกล้อง ฉันอ้างอิงเว็บไซต์ drmnsamoliu.github.io
เคยลองรีเวิร์ส video feed ของโดรนของเล่นโดยใช้ Ghidra กับ AWS Amazon Q
คิดว่าถ้าใช้ GhidraMCP ก็น่าจะทำได้เร็วกว่าเยอะ