Janus 익스플로잇을 통해 공격자가 서명에 영향을 주지 않고 앱을 수정할 수 있음

click fraud protection

Janus 취약점을 통해 공격자는 서명에 영향을 주지 않고 앱을 수정할 수 있습니다. GuardSquare에서 발견하여 Google에서 수정했습니다.

Android는 수많은 기기에 설치되어 있기 때문에 악의적인 공격자의 표적이 됩니다. Google 모바일 운영체제의 취약점은 매달 계속해서 발견되고 있지만, 좋은 소식은 Google이 일반적으로 정기적인 보안 패치로 문제를 해결한 다음 OEM에 제공하고 OEM에서 이를 배송합니다. 장치.

최근 보안 연구원들이 취약점을 발견했습니다. 공격자가 기기 화면을 녹화할 수 있도록 사용자를 속였습니다.. 해당 특정 익스플로잇은 Android Oreo에서 수정되었지만 분석가들은 가드스퀘어 최근에 이전 서명 체계로 서명된 Android 앱에 영향을 미치는 또 다른 심각한 취약점이 보고되었습니다.

가드스퀘어의 보고서에는 야누스취약성 Android의 (CVE-2017-13156)을 통해 공격자는 서명에 영향을 주지 않고 애플리케이션의 코드를 수정할 수 있습니다. 보고서는 취약점의 근본 원인이 파일이 유효한 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 파일로 로드합니다. 헤더를 찾지 못하면 DEX 파일과 함께 zip 항목이 포함된 APK 파일로 파일을 로드합니다.

따라서 이중 DEX/APK 파일을 잘못 해석할 수 있습니다.

가드스퀘어 공격자는 VM의 이러한 이중성 기능을 활용하여 서명에 영향을 주지 않고 악성 DEX 파일을 일반 APK 파일에 추가할 수 있다고 합니다. Android 런타임은 APK 파일을 합법적인 이전 앱 버전에 대한 유효한 업데이트로 허용하지만 Dalvik VM은 악성 코드가 주입된 DEX 파일에서 코드를 로드합니다.

일반적으로 사용자가 업데이트된 앱 버전을 설치할 때마다 Android 런타임에서 앱 서명을 확인하여 이전 버전과 일치하는지 확인합니다. 확인 결과가 긍정적이면 업데이트된 애플리케이션은 원래 애플리케이션에 부여되었던 권한을 얻습니다. 이러한 방식으로 공격자는 Janus 취약점을 이용하여 서명 확인 프로세스를 우회하고 의심하지 않는 사용자의 장치에 확인되지 않은 코드를 설치할 수 있습니다.

더 나쁜 것은 이 확인되지 않은 코드가 강력한 권한에 액세스할 수 있다는 것입니다. 이로 인해 몇 가지 심각한 가능성이 발생합니다. 가드스퀘어 상태:

"공격자는 권한을 남용하기 위해 수정된 업데이트로 높은 권한이 있는 신뢰할 수 있는 애플리케이션(예: 시스템 앱)을 대체할 수 있습니다. 대상 애플리케이션에 따라 해커가 장치에 저장된 중요한 정보에 액세스하거나 장치를 완전히 장악할 수도 있습니다. 또는 공격자는 원래 애플리케이션처럼 보이고 작동하지만 악의적인 동작을 주입할 수 있는 합법적인 업데이트로 중요한 애플리케이션의 수정된 복제본을 전달할 수 있습니다."

회사는 현재까지 야누스를 악용하는 애플리케이션을 본 적이 없다고 덧붙였습니다. 또 다른 좋은 소식은 취약점으로 인해 사용자가 Google Play 스토어 외부 소스에서 악성 업데이트를 설치해야 한다는 것입니다. 따라서 Play 스토어에 대한 앱 설치를 제한하는 사용자는 보호됩니다.

Janus 취약점은 Android 5.0 이상을 실행하는 장치에 영향을 미칩니다. APK 서명 체계 v1로 서명된 애플리케이션이 영향을 받습니다. 서명 체계 v2로 서명된 APK는 취약점으로부터 보호됩니다.. 이를 위해서는 최신 서명 체계(Android 7.0 이상)를 지원하는 기기에서 APK가 실행되고 있어야 합니다. 체계 v2는 체계 v1과 달리 APK 파일의 모든 바이트를 고려하므로 보호됩니다.

"이전 버전의 애플리케이션과 기존 장치에서 실행되는 최신 애플리케이션은 여전히 ​​취약합니다. 개발자는 최소한 항상 서명 체계 v2를 적용해야 합니다." 가드스퀘어 상태.

가드스퀘어 은(는) 이 문제를 2017년 7월 31일 Google에 보고했으며, 당일 확인을 받았습니다. 회사 보고서에 따르면 Google은 지난 11월 파트너에게 패치를 출시했으며, 2017년 12월 4일 Android 보안 게시판에 버그(CVE-2017-13156)를 게시했습니다. 취약점은 2017년 12월 Android 보안 패치에서 수정되었습니다.. 이와 별도로 공식 저장소의 F-Droid 애플리케이션은 안전한 것으로 확인되었습니다. 마지막으로 해당 취약점이 패치된 것으로 확인되었습니다. APK미러.


출처: 가드스퀘어