- เทอร์มินัลผู้ใช้ Starlink ของ SpaceX เป็นฮาร์ดแวร์หลักของการเชื่อมต่ออินเทอร์เน็ตผ่านดาวเทียมวงโคจรต่ำของโลก
- เมื่อลองถอดแยกชิ้นส่วนอุปกรณ์ผู้ใช้ จะพบว่า RF front-end และ SoC ที่ออกแบบเอง เป็นชิ้นส่วนสำคัญ
- จากการวิเคราะห์เฟิร์มแวร์ พบว่าซอฟต์แวร์แกนหลักส่วนใหญ่มี การประมวลผลเครือข่ายใน user space แบบ bypass kernel และฟังก์ชันการเข้ารหัสบางส่วน
- ชิปความปลอดภัย STSAFE-A110 ทำหน้าที่เป็นรากความเชื่อถือเพิ่มเติมสำหรับการยืนยันตัวตน รวมถึงการเข้ารหัสข้อมูลและการให้ตัวระบุเฉพาะ
- เทอร์มินัลนี้มีการตั้งค่า SSH public keys จำนวนมากและมีเครื่องมือบันทึกแพ็กเก็ตที่ชวนให้สงสัย แต่ยังไม่พบหลักฐานการละเมิดความเป็นส่วนตัวของผู้ใช้
ภาพรวม
- Starlink คือ บริการอินเทอร์เน็ตผ่านดาวเทียมวงโคจรต่ำ ที่ให้บริการโดย SpaceX
- ผู้ใช้เชื่อมต่อกับดาวเทียมใกล้เคียงผ่านเทอร์มินัล จากนั้นจึงเชื่อมสู่อินเทอร์เน็ตผ่านเกตเวย์ภาคพื้นดิน
- ดาวเทียมรุ่นใหม่ใช้ ลิงก์เลเซอร์ เพื่อสื่อสารกันระหว่างดาวเทียม ซึ่งช่วยเพิ่มทั้งการครอบคลุมทั่วโลกและประสิทธิภาพ
- แม้ไม่มีเกตเวย์ในพื้นที่ เช่นในกรณีของยูเครน ก็ยังสามารถให้อุปกรณ์ Starlink เชื่อมต่ออินเทอร์เน็ตผ่านเกตเวย์ของประเทศข้างเคียงได้
- บทความนี้สรุปการตรวจสอบเชิงลึกของเทอร์มินัลผู้ใช้ Starlink โดย DARKNAVY แบบย่อ
การวิเคราะห์ฮาร์ดแวร์
- เทอร์มินัลผู้ใช้ Starlink หนึ่งชุดประกอบด้วยสองส่วนคือ เราเตอร์ และ เสาอากาศ (UTA)
- DARKNAVY ซื้อเทอร์มินัล Standard Actuated (Rev3, GenV2) ในสิงคโปร์และ ถอดแยกเสาอากาศ
- ผลการถอดแยกพบว่า ชิป RF front-end (ส่วนใหญ่ผลิตโดย STMicroelectronics) กินพื้นที่บนบอร์ดไปมาก
- ในส่วนควบคุมหลักมี ST SoC แบบคัสตอมเฉพาะของ SpaceX (quad-core Cortex-A53) ติดตั้งอยู่ แต่ข้อมูลดาต้าชีตไม่เปิดเผยสู่สาธารณะ
- ในงาน Black Hat USA 2022 ดร. Lennert Wouters จาก KU Leuven ได้นำเสนอกรณีการแฮ็กเทอร์มินัลรุ่นแรก (GenV1) สำเร็จ และหลังจากนั้น SpaceX ได้ปิดใช้งาน UART debug interface ผ่านการอัปเดตเฟิร์มแวร์
- อย่างไรก็ตาม เคยมีการข้ามกลไกความปลอดภัยสำเร็จอีกครั้งด้วยวิธีเพิ่มเติม
การดึงและวิเคราะห์เฟิร์มแวร์
- DARKNAVY ดัมป์เฟิร์มแวร์โดยตรงจาก ชิป eMMC
- เนื่องจากบอร์ด Rev3 ไม่มีขา debug สำหรับ eMMC แยกต่างหาก จึงใช้วิธี ถอด eMMC ออกแล้วใช้โปรแกรมเมอร์ดึงข้อมูล
- เฟิร์มแวร์ส่วนใหญ่ไม่ได้เข้ารหัส ทำให้มองเห็น boot chain (ยกเว้น BootROM), kernel และบางส่วนของไฟล์ซิสเต็ม
- หลัง kernel บูตแล้ว จะคลายสภาพแวดล้อมรันไทม์ไปที่ /sx/local/runtime เพื่อใช้งาน
- ใน
bin มีไฟล์ปฏิบัติการของซอฟต์แวร์ Starlink, ใน dat มีไฟล์ตั้งค่า และใน revision_info มีข้อมูลเวอร์ชัน
- โปรแกรมสื่อสารหลัก
user_terminal_frontend พัฒนาด้วย Go ส่วนที่เหลือส่วนใหญ่เป็นไบนารี C++ แบบ static ที่ไม่มีสัญลักษณ์
- สถาปัตยกรรม network stack มีลักษณะคล้าย DPDK โดย bypass kernel และให้โปรแกรมใน user space เป็นผู้จัดการการประมวลผลแพ็กเก็ต
- Linux kernel ใช้หลัก ๆ สำหรับไดรเวอร์ฮาร์ดแวร์และการจัดการโปรเซส
- ซอฟต์แวร์บางส่วนมีฟังก์ชันที่เดิมออกแบบมาเพื่อ ดาวเทียมหรือเกตเวย์
- ตอนบูตอุปกรณ์จะระบุประเภทจากอุปกรณ์ต่อพ่วงฮาร์ดแวร์ แล้วโหลดเฉพาะลอจิกที่เกี่ยวข้องมาใช้
การอีมูเลชัน
- เพื่อการวิเคราะห์อย่างต่อเนื่อง มีการสร้าง สภาพแวดล้อมอีมูเลชันเฟิร์มแวร์ Rev3 บนพื้นฐาน QEMU
- ในสภาพแวดล้อมนี้ สามารถรันและดีบักบริการภายนอกบางส่วน เช่น
httpd, WebSocket, gRPC ได้สำเร็จ
- ทำให้สามารถติดตามหลักการทำงานของไฟล์ปฏิบัติการและบริการสำคัญได้
ชิปความปลอดภัย
- นอกเหนือจาก SoC หลัก ยังมีชิปความปลอดภัย STSAFE-A110 ซึ่งอ้างว่าผ่านการรับรอง CC EAL5+
- ชิปดังกล่าวสามารถซื้อได้ภายใต้ NDA และโปรแกรม stsafe_cli ในเฟิร์มแวร์ใช้โต้ตอบกับชิปนี้
- จากการวิเคราะห์ พบว่าฟังก์ชันของชิป STSAFE ได้แก่ การกำหนด UUID เฉพาะเครื่อง, การจัดการใบรับรองกุญแจสาธารณะ (stsafe_leaf.pem), การสร้าง symmetric key เป็นต้น
- ชิปนี้เป็น รากความเชื่อถือเพิ่มเติม ที่แยกจาก secure boot ของ SoC และสอดคล้องกับแนวทางการออกแบบความปลอดภัยของระบบฝังตัวสมัยใหม่
Easter egg: Elon กำลังจับตาดูคุณอยู่หรือไม่?
- ระหว่างการวิเคราะห์พบโปรแกรม Ethernet Data Recorder ทำให้เกิดข้อสงสัยเรื่อง ความเป็นไปได้ของ backdoor
- โปรแกรมนี้ดูเหมือนมีฟังก์ชันบันทึกแพ็กเก็ต และภายในใช้ กลไกคล้าย pcap_filter เพื่อจับแพ็กเก็ตบางประเภท
- จากกฎที่พบ จะเห็นว่าเป้าหมายการดักจับส่วนใหญ่คือ แพ็กเก็ต UDP ที่เกี่ยวข้องกับ telemetry ของดาวเทียม
- ทราฟฟิกที่จับได้จะถูกเข้ารหัสและเก็บไว้ด้วย hardware key ของ SoC
- จนถึงขณะนี้ยังไม่พบหลักฐานว่ามีการเก็บข้อมูลด้านความเป็นส่วนตัวของผู้ใช้
- ในกระบวนการเริ่มต้นระบบ หากอุปกรณ์ถูกระบุว่าเป็นเทอร์มินัลผู้ใช้ จะมีการบันทึก SSH public key จำนวน 41 รายการลงใน /root/.ssh/authorized_keys และพอร์ต 22 จะเปิดสู่เครือข่ายโลคัลตลอดเวลา
- การที่มีการลงทะเบียน public key ที่ไม่ทราบที่มาจำนวนมากในผลิตภัณฑ์เชิงพาณิชย์ถือเป็นประเด็นที่น่าสนใจ
บทสรุปและแนวโน้ม
- เมื่อเทคโนโลยีดาวเทียมถูกนำไปใช้ในอุตสาหกรรมหลากหลายมากขึ้น องค์ประกอบของระบบอินเทอร์เน็ตผ่านดาวเทียมอย่าง Starlink มีแนวโน้มจะกลายเป็นสมรภูมิสำคัญของทั้งการโจมตีและการป้องกันด้านความปลอดภัยในอนาคต
- ด้วยลักษณะเฉพาะของความปลอดภัยในอวกาศ ความผิดพลาดเพียงครั้งเดียวอาจนำไปสู่ การขาดการสื่อสารกับเป้าหมายอย่างถาวร จึงจำเป็นต้องใช้แนวทางที่รอบคอบ
1 ความคิดเห็น
ความเห็นจาก Hacker News
/root/.ssh/authorized_keysโดยอัตโนมัติ หากระบบตรวจพบว่าเป็น user terminal และพอร์ต 22 ก็เปิดไว้กับเครือข่ายภายในเสมอ ทำให้อดสงสัยไม่ได้ว่าการใส่คีย์มากถึง 41 คีย์มีความหมายอะไร และสุดท้ายก็ชวนให้ตั้งคำถามว่า ใครบ้างที่ไม่มีสิทธิ์ root access บน user terminal ที่ “คุณเป็นเจ้าของ”authorized_keysก็ยังมีอยู่ 25 บรรทัด เป็นคีย์จาก yubikey หลายตัวของแล็ปท็อป คีย์จาก iPad และ iPhone รวมถึงคีย์ secure enclave ของ Mac ปนกันไป เลยนึกภาพว่า Starlink น่าจะมีผู้ดูแลระบบเพิ่มอีกอย่างน้อย 1-2 คน ดังนั้น public key 100 คีย์ก็ไม่ได้ดูแปลกอะไรนักternimal)