비디오: Black Hat [All Eyes on Me] tribute (12 월 2024)
Forristal은 앱을 분해, 수정 및 재 조립함으로써 개발자 서명을 변경했다고 설명했습니다. 새 서명은 Google지도를 사용할 수 있도록 허가되지 않았으므로 거부되었습니다. 그들의 새로운 탐구; 서명을 변경하지 않고 코드를 변경하십시오.
Forristal은 Android가 서명 된 앱을 확인할 때 발생하는 일련의 세부 이벤트를 살펴 보았습니다. 각 계층은 코드 모델이 변경되지 않았는지 확인하고 패키지의 디지털 서명으로 끝나는 것으로 시작하여 이전 계층을 확인합니다. 그는 모든 단계에서 대부분 운없이 시스템 공격을 시도했다.
Forristal은“APK, JAR 및 ZIP 형식은 기본적으로 동일합니다. "JAR 및 APK에는 추가 구성 요소가 있습니다." 그의 최종 성공은 ZIP 형식을 활용하는 것입니다. 기존의 유효한 파일과 이름이 같은 "악의"파일을 삽입 할 때 검증자가 유효한 파일에서 사인 오프했지만 "악의"파일이 시작되었습니다.
왜? Android는 검증기와 실제 설치 프로그램에서 서로 다른 ZIP 파일 관리 코드를 사용하기 때문입니다. Forristal은 "ZIP 파일 구문 분석의 불일치가이 오류의 원인"이라고 설명했습니다. "실제로 Android 코드베이스에는 8 개의 별도 ZIP 파일 구문 분석 구현이 있습니다."
샌드 박스에서
포리 스탈은“이 트릭을 잘 활용했다”고 말했다. "이제 굉장히 보자." iOS와 마찬가지로 Android는 각 앱을 자체 샌드 박스에서 실행하므로 앱은 다른 앱에 속한 리소스에 액세스 할 수 없습니다. "샌드 박스로 들어가는 유일한 방법은 같은 개발자가 서명하는 것"이라고 그는 설명했다. "그래서 업데이트가 가능해졌습니다."
"시스템 전체가 같은 개념을 구독하고있다"고 그는 덧붙였다. "시스템 샌드 박스는 다른 모든 샌드 박스를 적용합니다. 모든 설정을 제어합니다. 루트는 아니지만 모든 데이터, 앱, 암호 및 설정이 남아 있습니다. 남은 것은 무엇입니까? 시스템은 매우 강력합니다." 시스템 샌드 박스에 액세스하는 앱은 일반적으로 플랫폼 제작자가 서명합니다. "플랫폼에서 서명 한 앱을 가져 와서 약간의 트릭을 수행해야했으며 시스템 수준의 액세스 권한이 있어야합니다. FourSquare 맵보다 멋지다"고 결론지었습니다.
타사 VPN은 플랫폼 서명이 필요하며 보너스로 이미 시스템 샌드 박스에 대한 액세스를 요청합니다. Forristal은 "사악한"코드를 타사 VPN에 삽입하는 데 사용한 간단한 명령 세 개를 "über 해킹 도구"에 대해 농담했습니다. 결과? 전체 시스템 수준 액세스 권한이있는 트로이 목마.
쉬운 착취
Forristal은 마스터 보안 기술자 Saurik (Jay Freeman)이이 개념을 다음 단계로 끌어 올렸다고 설명했다. 그의 Cydia Impactor 도구는 OSX 및 Windows에서 실행되며 익스플로잇을 자동화합니다. Forristal은 "장치를 연결하고 올바른 앱을 찾아서 빌드하고 적절한 해킹을 추가하여 루트 액세스 권한을 부여한 다음 제공합니다. 개념적인 앱 증명을 제공 할 것입니다."
Forristal은 장치의 프로세서 유형이 중요하지 않다고 지적했습니다. 이 공격은 ASLR (Address System Layout Randomization) 또는 DEP (Data Execution Prevention)의 영향을받지 않습니다. 그는 4 세대 Android에서 작동하는 하나의 버전을 만들었으며 필요한 유일한 기술은 Java에 대한 지식입니다. 포리 스탈은“이해하기 쉽고 이해하기 쉽기 때문에 이것을 블랙 햇에 제출했다.
더 많은 마스터 키
Forristal은 "마스터 키"로 간주 될 수있는 최근에 발견 된 다른 여러 버그를 모두 제거했습니다. Bluebox 연구원은 인증 된 속성이라는 기능의 코드를 검토 할 때 주석 처리 된 라인을 발견하고 "TODO"라고 표시했습니다. 누락 된 코드의 결과로 파일을 변경 한 내용이 확인에 통과됩니다. Forristal에 따르면이 기능을 사용하는 파일은 많지 않습니다. "만약 인증서를 찾으면 인증서 파일을 복사하여 붙여 넣을 수 있고 개발자의 신원을 확인할 수 있습니다. 인증 된 속성으로 앱에 서명 한 경우 신원을 알려 주셨습니다." 이 버그는 Bluebox가보고하기 전에 수정되었으므로 크레딧을받지 않습니다.
중국 연구원이보고 한 "숨겨진 트로이 목마"공격은 안드로이드의 여러 ZIP 파일 파서를 악용 할 수있는 몇 가지 방법 중 하나 인 것으로 밝혀졌습니다. 이러한 공격은 한 파서 사용자가 정수를 서명하고 다른 파서가 부호없는 정수를 사용한다는 사실을 이용합니다.
포리 스탈은 "파일 하나만 교체해도 문제가되지 않는다"고 말했다. "이 트릭을 사용하여 완전히 다른 ZIP 파일을 제공 할 수 있습니다. 하나는 확인되고 다른 하나는 실행됩니다.이 공간의 몇 가지 트릭과 깔끔함은이 방법에 훨씬 더 강력한 힘을 보여줄 수 있습니다."
이 기술을 사용하는 맬웨어는 이미 야생에서 발견되었지만 여기에 설명 된 것과 같은 트로이 목마 파일을 Google Play에 가져 오는 것은 불가능합니다. 항상 공식 검사를 통과 한 앱만 설치하면 안전 할 것 입니다. 그래도 안전을 위해 사용 가능한 모든 Android 업데이트를 즉시 설치하십시오.