- สวัสดี ผมชื่อดาเนียล เป็นนักเรียนมัธยมปลายชั้นปีที่ 6 อายุ 15 ปี ในเวลาว่างผมแฮ็กบริษัทใหญ่ ๆ และสร้างสิ่งเจ๋ง ๆ ขึ้นมา เมื่อ 3 เดือนก่อน ผมค้นพบการโจมตีเปิดเผยตัวตนแบบ 0-click ที่ทำให้ผู้โจมตีสามารถติดตามตำแหน่งของเป้าหมายภายในรัศมี 250 ไมล์ได้ผ่านอุปกรณ์ที่ติดตั้งแอปบางตัว งานวิจัยนี้มีเป้าหมายเพื่อเตือนนักข่าว นักเคลื่อนไหว และแฮ็กเกอร์
Cloudflare
- Cloudflare เป็นหนึ่งใน CDN ที่ได้รับความนิยมมากที่สุดในตลาด และเหนือกว่า Sucuri, Amazon CloudFront, Akamai, Fastly และรายอื่น ๆ
- หนึ่งในฟีเจอร์หลักของ Cloudflare คือการแคช ซึ่งเก็บคอนเทนต์ที่มีการเข้าถึงบ่อยเพื่อลดภาระของเซิร์ฟเวอร์และเพิ่มประสิทธิภาพเว็บไซต์
- Cloudflare มีศูนย์ข้อมูลใน 330 เมืองทั่วโลก ซึ่งมากกว่า Google ถึง 273%
- เนื่องจากข้อมูลแคชของ Cloudflare ถูกเก็บไว้ใกล้กับผู้ใช้ จึงเกิดแนวคิดว่าสิ่งนี้อาจถูกนำไปใช้ในการโจมตีเปิดเผยตัวตนได้
Cloudflare Teleport
- แม้จะไม่สามารถส่ง HTTP request ไปยังศูนย์ข้อมูลของ Cloudflare โดยตรงได้ แต่พบวิธีใช้ Cloudflare Workers เพื่อส่ง request ไปยังศูนย์ข้อมูลที่ต้องการ
- Cloudflare Teleport เป็นเครื่องมือพร็อกซีที่รีไดเร็กต์ HTTP request ไปยังศูนย์ข้อมูลที่กำหนดผ่าน Cloudflare Workers
- ภายหลังเครื่องมือนี้ถูก Cloudflare แพตช์แล้ว แต่ถูกใช้ในการทดสอบช่วงแรก
การโจมตีเปิดเผยตัวตนครั้งแรก
- ใช้เครื่องมือ Cloudflare Teleport เพื่อตรวจสอบทฤษฎี และใช้โปรแกรม CLI แบบง่ายเพื่อส่ง HTTP GET request ไปยัง URL ที่กำหนด พร้อมแสดงรายการแคชของรีซอร์สและอายุของแคช
- ใช้ favicon ของ Namecheap ในการทดสอบ และยืนยันทฤษฎีได้
การใช้งานจริง: Signal
- Signal เป็นบริการส่งข้อความเข้ารหัสแบบโอเพนซอร์สที่นักข่าวและนักเคลื่อนไหวใช้งานกันมาก
- URL ของไฟล์แนบใน Signal ถูกตั้งค่าให้ใช้ Cloudflare caching จึงสามารถใช้วิธีระบุตำแหน่งทางภูมิศาสตร์ของแคชเพื่อติดตามตำแหน่งของผู้รับได้
- สามารถทำการโจมตีแบบ 0-click ผ่าน push notification ได้ และไฟล์แนบจะถูกดาวน์โหลดอัตโนมัติแม้ผู้ใช้จะไม่เปิดบทสนทนา
การใช้งานจริง: Discord
- Discord เป็นแอปฟรีที่มุ่งเป้าไปยังเกมเมอร์ และช่วงหลังได้รับความสนใจจากกรณีข้อมูลรั่วไหลของรัฐบาลและอาชญากรรมไซเบอร์
- URL ของอวตารผู้ใช้ใน Discord ถูกตั้งค่าให้ใช้ Cloudflare caching ทำให้สามารถโจมตีแบบ 0-click ผ่าน push notification ได้
- สามารถใช้บอต Discord ชื่อ GeoGuesser เพื่อทำการโจมตีแบบอัตโนมัติและดูผลลัพธ์ได้โดยตรงบน Discord
รายงาน bug bounty
- ได้รายงานผลการวิจัยไปยัง Signal และ Discord แต่ส่วนใหญ่ได้รับการตอบสนองที่น่าผิดหวัง
- Cloudflare ได้แพตช์บั๊กที่ทำให้ย้ายข้ามศูนย์ข้อมูลได้ แต่ปัญหาในระดับรากฐานยังไม่ได้รับการแก้ไข
วิธีป้องกันตัวเอง
- การโจมตีนี้อาจเป็นความเสี่ยงอย่างมาก โดยเฉพาะกับนักข่าว นักเคลื่อนไหว และบุคคลที่ให้ความสำคัญกับความเป็นส่วนตัว
- แอปทุกตัวที่ใช้ CDN อาจยังคงมีช่องโหว่ได้ หากไม่มีมาตรการป้องกันที่เหมาะสม
ข้อคิดส่งท้าย
- CDN ช่วยเพิ่มประสิทธิภาพและความสามารถในการขยายระบบ แต่ก็พาความเสี่ยงที่อาจถูกนำไปใช้ในทางที่ผิดในรูปแบบใหม่เข้ามาด้วย
- ผู้ใช้ที่มีบทบาทอ่อนไหวหรือให้ความสำคัญกับความเป็นส่วนตัวควรติดตามข้อมูลและระมัดระวังอยู่เสมอ
1 ความคิดเห็น
ความเห็นจาก Hacker News
เมื่อผู้ใช้ Signal ส่งรูปภาพ รูปนั้นจะถูกแคชไว้ที่ศูนย์ข้อมูลผ่าน Cloudflare การติดตามตำแหน่งของผู้ใช้เป็นการพูดเกินจริง และไม่ได้ทำลายความไม่เปิดเผยตัวตน เว้นแต่ผู้ใช้จะอยู่ในพื้นที่ห่างไกลมาก อย่างไรก็ตาม เป็นการวิเคราะห์ที่น่าสนใจ
Signal หรือ Discord ไม่ได้ให้ความไม่เปิดเผยตัวตน แม้จะอ้างว่าอ่านข้อความไม่ได้ แต่ก็ไม่ได้สมบูรณ์แบบ
ผู้ใช้บางคนมองว่าเทคนิคนี้ทำลายความไม่เปิดเผยตัวตน การโจมตีซ้ำๆ สามารถใช้ติดตามเส้นทางการเคลื่อนที่ของผู้ใช้ได้
การระบุตำแหน่งภายในรัศมี 250 ไมล์ไม่ได้ทำลายความไม่เปิดเผยตัวตน ยังต้องใช้ OSINT เพิ่มเติม
การโจมตีนี้อาจถูกใช้โดยหน่วยงานบังคับใช้กฎหมายหรือผู้ไม่หวังดีเพื่อระบุตำแหน่งของผู้ใช้
ตั้งคำถามว่าเหตุใด Signal จึงเปิดใช้การแคช URL การปิดการแคชน่าจะแก้ปัญหาได้
นี่คือวิธีการทำงานพื้นฐานของอินเทอร์เน็ต และเป็นเหตุผลว่าทำไมจึงต้องมี anonymizing proxy สำหรับผู้ใช้ส่วนใหญ่ มันไม่ใช่ภัยคุกคามใหญ่
นี่เป็นการโจมตีที่ไม่ใช่แบบดั้งเดิมและไม่มีการรันโค้ด สามารถใช้ศูนย์ข้อมูลของ Cloudflare เพื่อระบุตำแหน่งโดยประมาณของผู้ใช้ได้