2024-03-28 20:00 (목)
서명에 영향 없이 안드로이드 앱 수정 가능한 ’야누스’ 취약점…주의
상태바
서명에 영향 없이 안드로이드 앱 수정 가능한 ’야누스’ 취약점…주의
  • 길민권 기자
  • 승인 2017.12.12 17:44
이 기사를 공유합니다

andr-1.jpg
올해 4월 구글이 공개한 안드로이드 야누스(Janus) 취약점(CVE-2017-13156)을 악용하면 공격자는 앱의 서명에 영향받지 않는 선에서 앱을 수정할 수 있는 것으로 밝혀졌다.

안드로이드 앱은 반드시 개발자가 앱에 서명을 해야한다. 또한 패키지가 업데이트 되면, 업데이트 된 패키지의 서명과 기존 앱의 서명이 동일해야만 안드로이드 OS에서 정상적인 업데이트를 허용해 준다.

만약 앱이 악의적인 의도를 가진 누군가에 의해 수정이 되고 리패키징이 되어도 공격자는 원래 개발자의 개인키를 갖고있지 않기 때문에 리패키징한 앱의 서명과 기존의 앱의 서명이 일치하지 않게되며 결국 안드로이드 OS는 해당 패키지의 업데이트를 차단하게 된다.

이러한 매커니즘을 통해 매번 업데이트마다 원래의 개발자가 진행하는 업데이트라는 것을 보증할 수 있다. 하지만 구글은 올해 4월 안드로이드 취약점을 공개했다. 해당 취약점을 악용하면 공격자가 원래 앱의 서명에 영향받지 않는 선에서 앱을 수정할 수 있게 된다. 바로 안드로이드 야누스 취약점(CVE-2017-13156)이다.

해당 취약점의 근본 원인은 하나의 파일이 APK 파일이며 DEX 파일일 수도 있기 때문이다. 이러한 동시성은 APK 파일과 DEX 파일의 이원성을 위한 것이다. 마치 로마신화의 Janus를 연상시켜 이번 취약점은 Janus(CVE-2017-13156)로 명명되고 있다.

야누스 취약점 원리를 살펴보면, 공격자는 이러한 이원성(야누스 취약점)을 악용해, APK 파일의 서명에 영향을 주지 않고 악성 DEX 파일과 원래의 APK 파일을 결합할 수 있다.

안드로이드가 동작할 때, 해당 악성 DEX 파일의 APK 파일을 기존 APP의 정상적인 업데이트 버전으로 간주해 설치를 허용하며, DEX의 헤더부분부터 실행을 시작하는 것이다. 여기에서의 DEX는 DEX 형식의 부합되는 임의의 파일일 수도 있으며 공격자의 악의적인 코드가 포함되어 있을 수도 있다. 만약 업데이트가 된 앱이 루트 권한을 가진 APP, 예를들어 시스템 파일 등 이라면 악성 앱은 해당 앱의 권한을 그대로 이어받아 사용자의 민감한 파일에 접근할 수 있게 된다.

JAR 서명을 기반으로 서명하는 모든 스키마(ver1)가 영향을 받으며 Android 7.0 이후 도입된 APK 서명 스키마 ver2는 영향을 받지 않는다. [정보출처. 이스트시큐리티]

★정보보안 대표 미디어 데일리시큐!★


■ 보안 사건사고 제보 하기

▷ 이메일 : mkgil@dailysecu.com

▷ 제보 내용 : 보안 관련 어떤 내용이든 제보를 기다립니다!

▷ 광고문의 : jywoo@dailysecu.com

★정보보안 대표 미디어 데일리시큐 / Dailysecu, Korea's leading security media!★