ช่องโหว่สามารถทำการโทรผ่าน Voice-over-IP (VoIP) ได้โดยไม่ได้รับอนุญาต ปลอมเบอร์โทร ปฏิเสธการโทร และแม้แต่ใช้โค้ดอันตรายบนอุปกรณ์ของผู้ใช้
มีการทดสอบช่องโหว่แล้วในระบบ Android 7.0 (Nougat) จนถึง 9.0 (Pie) นักวิจัยได้พบและรายงาน 9 ช่องโหว่ต่อ Google โดยมี 8 ช่องโหว่ที่มีผลต่อระบบเบื้องหลัง VoIP ของแอนดรอย์ ขณะที่ช่องโหว่ที่ 9 มีผลต่อแอป third-party
ด้านล่างนี้เป็นรายละเอียดของ 9 ช่องโหว่ :
- เริ่มการโทร VoIP ในแอป VK
บัคนี้พบใน API ตอบโต้กับแอป Official VK (vKontakte) ที่สามารถยอมให้แอปอื่นๆ ที่ติดตั้งบนเครื่องสามารถเพื่อเริ่มการโทร VoIP ด้วยแอป VK และดักฟังการสนทนาของเจ้าของโทรศัพท์ได้ การโจมตีนี้ไม่ต้องการ user interaction แต่ต้องเข้าถึงเครื่องได้ก่อน เหมาะกับการนำไปใช้ร่วมกับ Android spyware, remote access trojans (RAT) และมัลแวร์บนแอนดรอยด์อื่นๆ ที่เข้าถึงเครื่องได้แล้ว - โอนสายโดยไม่ได้รับอนุญาตในอินเตอร์เฟซ LMS
บนอุปกรณ์ที่มีแอปอันตรายสามารถใช้ local privileged APIs (ในองค์ประกอบ QtilMS VoIP) เพื่อโอนสายที่โทรเข้ามาโดยไม่ได้รับอนุญาตเพื่อโจมตีอุปกรณ์ โดยปัญหานี้ถูกแก้ไขแล้วเมื่อปี 2017 - ไม่สามารถปฏิเสธการโทร VoIP เนื่องจาก LONG SIP Name
ผู้โจมตีสามารถเริ่มการโทรถึงเหยื่อโดยใช้ long SIP name (1,043 ตัวอักษร) SIP name จะขึ้นบนเต็มหน้าจอโทรศัพท์และป้องกันไม่ให้พวกเขารับหรือปฏิเสธการโทรในเวลาสำคัญได้ เช่น เมื่อกำลังดำเนินการโจมตี ถือว่าเป็นประเภทหนึ่งของ DoS (Denial of Service) ถูกเรียกว่า VoIP call bomb คล้ายกับ SMS bomb โดยใน Android ปัจจุบัน Google ได้กำหนดขนาด SIP name ใน VoIP เพื่อป้องกันปัญหานี้ - remote DoS ในระบบเมื่อมีการรับสาย
ผู้โจมตีสามารถใช้รูปแบบแพ็คเกต SDP เพื่อทำให้อุปกรณ์เหยื่อทำงานล้มเหลวเมื่อมีการรับสาย ซึ่งถูกแก้ไขแล้วในปี 2017 - Remote execution code เนื่องจาก STACK BUFFER OVERFLOW
ข้อผิดพลาดร้ายแรงที่สุด (CVE-2018-9475) ถูกแก้ไขใน Android Oreo เมื่อ 2018 สิ่งนี้เป็นการทำ remote code execution (RCE) เป็นปัญหาที่ยอมให้ผู้โจมตีสามารถรันโค้ดอันตรายบนอุปกรณ์จากระยะไกลด้วยการโทร VoIP โดยทำให้เกิด stack buffer overflowได้ถ้าชื่อผู้ใช้ (หรือหมายเลขผู้โทร) ในการโทร VoIP มีมากกว่า 513 ไบต์
ช่องโหว่นี้ยอมให้ผู้ไม่หวังดีเขียนทับการส่งกลับที่อยู่ของฟังก์ชัน ClccResponse ที่ทำให้เกิด remote code execution - Remote DoS ใน Bluetooth เมื่อมีสายเรียกเข้า
มันสามารถทำให้การโทร VoIP ด้วยหมายเลขการโทรยาวๆ แต่บัคนี้จะให้โทรศัพท์ทำงานล้มเหลวเท่านั้น ซึ่งไม่ได้ยอมให้ผู้โจมตีรัน code บนอุปกรณ์แต่อย่างใด - ข้อมูลรั่วไหลและ DoS ถาวร เนื่องจาก PATH TAVERSAL
นี่เป็นการทำงานโดยการติดตั้งแอปอันตรายอื่นบนอุปกรณ์ อย่างไรก็ตามบัคนี้ค่อนข้างร้ายแรง มันเป็นปัญหา PATH TRAVERSA ดั้งเดิมที่เกิดขึ้นเพราะ SIP protocol และภัยคุกคามของ Android ตัวอักษร “..” และ “/” มีความแตกต่างกัน - การปลอมเป็นผู้โทรเนื่องจากการประมวลความหมายของสัญลักษณ์ “&” ผิด
ช่องโหว่นี้เกิดจากรูปแบบหมายเลข PSTN (Public Switched Telephone Network) ที่ไม่ใช่บัญชีสำหรับตัวอักษร “&”
สายเรียกเข้า VoIP ที่มี “&” ทำให้ระบบ Android อ่านเฉพาะหมายเลขก่อนตัวอักษร แต่ไม่อ่านเลยหลังจากนั้น ทำให้ง่ายต่อการปลอมตัว - การปลอมเป็นผู้โทรเนื่องจาก "PHONE-CONTEXT"
ช่องโหว่เกิดจากรูปแบบหมายเลข PSTN เช่นกัน แต่ครั้งนี้มันเกิดด้วย "phone-context" PSTN พารามิเตอร์ ตัวอย่างเช่น ในการสื่อสารของ PSTN หมายเลข “650253000;phone-context=+1" จะเท่ากับ "+1650253000" กล่าวคือค่าของ "phone-context" คือค่านำหน้าของหมายเลข อย่างไรก็ตามการสื่อสารนี้ไม่ได้ถูกใช้ในการโทร VoIP โดยแอปการโทรไม่ได้ใส่ใจมัน ทำให้ผู้ไม่หวังดีกำหนดหมายเลขการโทรเป็น "650253000;phone-context=+1", และแอปการโทรจะแปลเป็น "+1650253000" ซึ่งแสดงว่าเป็นการโทรของ Google
เอกสารฉบับเต็มมีชื่อว่า "Understanding Android VoIP Security: A System-level Vulnerability Assessment" หากสนใจอ่านเพิ่มเติมสามารถดาวน์โหลดได้ ที่นี่
ที่มา : zdnet