Janus Exploit ช่วยให้ผู้โจมตีปรับเปลี่ยนแอปได้โดยไม่กระทบต่อลายเซ็น

ช่องโหว่ Janus ช่วยให้ผู้โจมตีสามารถแก้ไขแอพได้โดยไม่ส่งผลกระทบต่อลายเซ็นของพวกเขา มันถูกค้นพบโดย GuardSquare และได้รับการแก้ไขโดย Google

Android ได้รับการติดตั้งบนอุปกรณ์จำนวนมาก และนั่นทำให้ตกเป็นเป้าหมายของผู้โจมตีที่เป็นอันตราย ช่องโหว่ในระบบปฏิบัติการมือถือของ Google ยังคงถูกค้นพบทุกเดือน แต่ข่าวดีก็คือ Google มักจะขยันหมั่นเพียรในการแก้ไขปัญหาดังกล่าวด้วยแพตช์รักษาความปลอดภัยปกติ ซึ่งจะเสนอให้กับ OEM ซึ่งจะเป็นผู้จัดส่งให้ อุปกรณ์

ล่าสุดนักวิจัยด้านความปลอดภัยได้ค้นพบช่องโหว่ ซึ่งหลอกให้ผู้ใช้อนุญาตให้ผู้โจมตีบันทึกหน้าจออุปกรณ์ของตนได้. การใช้ประโยชน์ดังกล่าวได้รับการแก้ไขใน Android Oreo แต่นักวิเคราะห์อยู่ที่ การ์ดสแควร์ เพิ่งรายงานช่องโหว่ร้ายแรงอีกประการหนึ่งซึ่งส่งผลต่อแอป Android ที่ลงนามโดยแผนลายเซ็นแบบเก่า

การ์ดสแควร์รายงานของระบุว่า เจนัสช่องโหว่ (CVE-2017-13156) ใน Android ช่วยให้ผู้โจมตีสามารถแก้ไขโค้ดในแอปพลิเคชันได้โดยไม่ส่งผลกระทบต่อลายเซ็นของพวกเขา รายงานกล่าวต่อไปว่าต้นตอของช่องโหว่คือไฟล์สามารถเป็นไฟล์ APK ที่ถูกต้องและไฟล์ DEX ที่ถูกต้องในเวลาเดียวกัน

Janus ใช้ประโยชน์จากข้อเท็จจริงที่ว่าไบต์ส่วนเกินจะไม่มีใครสังเกตเห็นในไฟล์ APK และไฟล์ DEX ที่

การ์ดสแควร์ รายงานอธิบายว่าไฟล์ APK เป็นไฟล์ ZIP ซึ่งสามารถบรรจุไบต์ที่กำหนดเองได้ที่จุดเริ่มต้น ก่อนและระหว่างรายการ ZIP รูปแบบลายเซ็น JAR จะพิจารณาเฉพาะรายการ ZIP เท่านั้น โดยไม่สนใจไบต์เพิ่มเติมใดๆ เมื่อคำนวณหรือตรวจสอบลายเซ็นของแอปพลิเคชัน

อธิบายต่อไปว่าไฟล์ DEX อาจมีไบต์ที่กำหนดเองต่อท้าย - หลังจากส่วนปกติของสตริง คลาส คำจำกัดความของเมธอด ฯลฯ ดังนั้นไฟล์อาจเป็นไฟล์ APK ที่ถูกต้องและไฟล์ DEX ที่ถูกต้องในเวลาเดียวกัน

การ์ดสแควร์ ยังระบุด้วยว่าองค์ประกอบสำคัญของช่องโหว่นี้คือคุณลักษณะที่ "ไม่เป็นอันตราย" ของเครื่องเสมือน Dalvik/ART รายงานระบุว่าตามทฤษฎีแล้ว รันไทม์ของ Android จะโหลดไฟล์ APK แตกไฟล์ DEX แล้วรันโค้ด อย่างไรก็ตาม ในทางปฏิบัติ เครื่องเสมือน (VM) สามารถโหลดและดำเนินการทั้งไฟล์ APK และไฟล์ DEX ปัญหาคือเมื่อ VM ได้รับไฟล์ APK มันยังคงดูไบต์มหัศจรรย์ในส่วนหัวเพื่อตัดสินใจว่าเป็นไฟล์ประเภทใด: DEX หรือ APK เมื่อค้นหาส่วนหัว DEX มันจะโหลดไฟล์เป็นไฟล์ DEX หากไม่พบส่วนหัว ไฟล์จะโหลดเป็นไฟล์ APK ที่มีรายการ zip พร้อมไฟล์ DEX ดังนั้นจึงสามารถตีความไฟล์ DEX/APK คู่ผิดได้

การ์ดสแควร์ กล่าวว่าผู้โจมตีสามารถใช้ประโยชน์จากคุณสมบัติความเป็นคู่ของ VM เพื่อเพิ่มไฟล์ DEX ที่เป็นอันตรายลงในไฟล์ APK ปกติโดยไม่ส่งผลกระทบต่อลายเซ็น รันไทม์ของ Android จะยอมรับไฟล์ APK เป็นการอัปเดตที่ถูกต้องสำหรับแอปเวอร์ชันก่อนหน้าที่ถูกต้อง แต่ Dalvik VM จะโหลดโค้ดจากไฟล์ DEX ซึ่งได้รับการแทรกโค้ดที่เป็นอันตราย

โดยปกติ เมื่อใดก็ตามที่ผู้ใช้ติดตั้งแอปเวอร์ชันอัปเดต ลายเซ็นของแอปจะได้รับการตรวจสอบโดยรันไทม์ของ Android เพื่อให้แน่ใจว่าตรงกับเวอร์ชันเก่า เมื่อการตรวจสอบเป็นค่าบวก แอปพลิเคชันที่อัปเดตจะได้รับสิทธิ์ที่มอบให้กับแอปพลิเคชันดั้งเดิม ด้วยวิธีนี้ ผู้โจมตีสามารถใช้ช่องโหว่ของ Janus เพื่อหลีกเลี่ยงกระบวนการตรวจสอบลายเซ็น และรับรหัสที่ไม่ได้รับการยืนยันติดตั้งบนอุปกรณ์ของผู้ใช้ที่ไม่สงสัย

ที่แย่กว่านั้นคือรหัสที่ไม่ผ่านการตรวจสอบนี้อาจเข้าถึงสิทธิ์อันทรงพลังได้ สิ่งนี้ทำให้เกิดความเป็นไปได้ที่รุนแรง การ์ดสแควร์ รัฐ:

“ผู้โจมตีสามารถแทนที่แอปพลิเคชันที่เชื่อถือได้ด้วยสิทธิ์ระดับสูง (เช่น แอประบบ) ด้วยการอัปเดตที่แก้ไขเพื่อใช้สิทธิ์ในทางที่ผิด สิ่งนี้อาจทำให้แฮกเกอร์สามารถเข้าถึงข้อมูลที่ละเอียดอ่อนที่จัดเก็บไว้ในอุปกรณ์หรือแม้กระทั่งเข้ายึดอุปกรณ์ทั้งหมดทั้งนี้ขึ้นอยู่กับแอปพลิเคชันเป้าหมาย อีกทางหนึ่ง ผู้โจมตีสามารถส่งโคลนที่ได้รับการแก้ไขของแอปพลิเคชันที่มีความละเอียดอ่อนเป็นการอัปเดตที่ถูกต้องตามกฎหมาย [ซึ่ง] สามารถดูและทำงานเหมือนกับแอปพลิเคชันดั้งเดิม แต่แทรกซึมพฤติกรรมที่เป็นอันตราย”

บริษัทเสริมว่า ณ ขณะนี้ ยังไม่เห็นแอปพลิเคชันใดๆ ที่ใช้ประโยชน์จาก Janus ในป่า ข่าวดีอีกประการหนึ่งคือช่องโหว่กำหนดให้ผู้ใช้ติดตั้งการอัปเดตที่เป็นอันตรายจากแหล่งภายนอก Google Play Store ดังนั้น ผู้ใช้ที่จำกัดการติดตั้งแอปไว้ใน Play Store จะได้รับการคุ้มครอง

ช่องโหว่ของ Janus ส่งผลกระทบต่ออุปกรณ์ที่ใช้ Android 5.0 ขึ้นไป แอปพลิเคชันที่ลงนามด้วย APK Signature Scheme v1 จะได้รับผลกระทบ APK ที่ลงนามด้วย Signature Scheme v2 จะได้รับการปกป้องจากช่องโหว่. สิ่งนี้กำหนดให้ APK ทำงานบนอุปกรณ์ที่รองรับรูปแบบลายเซ็นล่าสุด (Android 7.0 และใหม่กว่า) Scheme v2 ได้รับการปกป้องเพราะไม่เหมือนกับ Scheme v1 ตรงที่พิจารณาไบต์ทั้งหมดในไฟล์ APK

“แอปพลิเคชันเวอร์ชันเก่าและแอปพลิเคชันใหม่ที่ทำงานบนอุปกรณ์รุ่นเก่ายังคงอ่อนแออยู่ นักพัฒนาควรใช้ Signature Scheme v2 เสมอ" การ์ดสแควร์ รัฐ

การ์ดสแควร์ รายงานปัญหานี้ไปยัง Google เมื่อวันที่ 31 กรกฎาคม 2017 และได้รับการยอมรับในวันเดียวกัน รายงานของบริษัทระบุว่า Google ได้เผยแพร่แพตช์ให้กับพันธมิตรในเดือนพฤศจิกายน และเผยแพร่ข้อผิดพลาด (CVE-2017-13156) ใน Android Security Bulletin เมื่อวันที่ 4 ธันวาคม 2017 จุดอ่อนก็มี ได้รับการแก้ไขแล้วในแพตช์ความปลอดภัยของ Android เดือนธันวาคม 2560. แอปพลิเคชัน F-Droid แยกจากพื้นที่เก็บข้อมูลอย่างเป็นทางการได้รับการยืนยันแล้วว่าปลอดภัย สุดท้ายนี้ได้รับการยืนยันว่ามีการแก้ไขช่องโหว่แล้ว APKMirror.


ที่มา: GuardSquare