연구원들은 사용자가 Android에서 위험한 권한을 부여하도록 사회적으로 엔지니어링할 수 있는 토스트 메시지를 사용한 공격을 시연했습니다.
Android는 환상적인 개발자 커뮤니티를 갖춘 매우 개방적인 플랫폼입니다. 이들 개발자 중 다수는 앱, 맞춤형 ROM 등을 만듭니다. Palo Alto Networks Unit 42와 같은 일부 조직에서는 보안 테스트에도 참여합니다. 이 그룹은 Android Toast 메시지 시스템 내에서 취약점을 발견했습니다. 공격자는 의사 오버레이를 만들어 사용자를 속여 사용자의 권한 없이 위험한 권한을 부여하도록 합니다. 지식. 이것은 이미 수정되었습니다. 9월 보안 업데이트 그리고 안드로이드 오레오에서는, 따라서 귀하의 휴대폰이 여전히 월별 보안 패치를 받고 있거나 Android Oreo를 탑재한 기기를 가지고 있다면 이 공격에 취약하지 않으니 안심하시기 바랍니다.
다른 모든 Android 기기는 취약합니다. 이 공격에. 이것이 작동하는 방식은 Android 내의 토스트 알림을 활용하여 "맨 위에 그리기" 요구 사항을 우회하는 것입니다. 오버레이 권한은 "망토와 단검" 익스플로잇이 작동했습니다. 연구원들은 이 익스플로잇을 사용하여 사용자가 공격하는 애플리케이션에 접근성 서비스를 허용하도록 소셜 엔지니어링하여 모든 화면 콘텐츠, 키 입력 등을 읽을 수 있도록 했습니다. 장치에서. 그런 다음 동일한 방법을 사용하여 애플리케이션 사용자에게 관리자 액세스 권한을 부여하도록 유도했지만, 방금 부여한 액세스 권한은 전혀 인식하지 못했습니다. 이를 통해 공격자는 앱을 설치하고 장치를 모니터링할 수 있으며 랜섬웨어의 가능성도 열어줍니다.
Android 토스트 메시지 오버레이 공격 설명
하지만 실제로는 어떻게 작동하나요? 그만큼 개념 증명 뒤에 숨은 개발자 취약점에 대한 보다 기술적인 설명이 포함된 공격의 실제 소스 코드를 공유했습니다. 하지만 이 익스플로잇이 작동하는 방식과 이유를 간략하게 설명하겠습니다.
먼저 토스트 메시지가 무엇인지 생각해 볼 필요가 있습니다. 이러한 기능은 수년 동안 Android에서 사용되어 왔으며 아마도 매일 기기에서 수많은 기능을 보았을 것입니다. 토스트 메시지는 일반적으로 정보와 함께 회색 거품으로 표시되는 화면 하단의 작은 메시지입니다.
이 익스플로잇은 토스트 메시지를 사용하여 실제로 요청하거나 필요하지 않고 화면 위에 오버레이를 생성합니다. SYSTEM_ALERT_WINDOW 이는 모든 응용 프로그램이 화면 위에 그림을 그리는 데 필요한 요구 사항입니다. 대신 토스트 알림을 통해 오버레이를 푸시하여 합법적으로 양성 메시지를 승인하는 것처럼 보이는 버튼을 만듭니다. 의미 없는 프롬프트를 허용하거나 수락하지만 실제로는 장치 관리자 또는 접근성 액세스 권한을 부여하기 위한 것입니다. 애플리케이션. 토스트 오버레이 내부에 두 개의 보기를 만듭니다.
이 모든 것은 권한 확인 실패로 인해 수행될 수 있습니다. Android 시스템(Oreo 이전 및 9월 이전 보안 업데이트)은 실제로 Android Toast Overlay 시스템을 통해 공급되는 내용을 확인하지 않고 대신 확인하지 않고 권한을 부여합니다. 이는 Google이 토스트 오버레이를 통해 뷰를 제공할 가능성을 예상하지 못했기 때문일 수 있습니다.
Android 7.1의 Android Toast 오버레이 공격 수정 시도
Android 7.1에서는 Google이 이 악용을 차단하려고 시도한 것으로 보입니다. 토스트 메시지에 대한 시간 제한이 도입되었으며 제한 사항이 생성되었습니다. 즉, 앱의 프로세스 ID인 UID당 토스트 메시지가 1개만 가능합니다. 이는 반복적으로 반복하고 대신 더 많은 토스트 오버레이를 표시함으로써 쉽게 우회되었으므로 사용자에게 일관된 UI라는 환상이 주어집니다. 루프가 생성되지 않으면 3.5초 후에 오버레이가 사라지고 사용자는 앱이 실제로 사용자에게 요청하는 작업(장치 관리자 또는 접근성 권한 부여)을 볼 수 있습니다.
성공적인 공격의 결과
애플리케이션에 부여된 장치 관리자 또는 접근성 권한은 다양한 종류의 악의적인 공격에 쉽게 악용될 수 있습니다. 이 익스플로잇을 사용하면 랜섬웨어, 키로거, 장치 와이퍼가 모두 생성될 수 있습니다.
토스트 메시지를 표시하기 위해 애플리케이션에 권한이 필요하지 않지만 분명히 악성 애플리케이션은 여전히 여전히 이 토스트 오버레이를 효과적으로 사용하려면 BIND_ACCESSIBILITY_SERVICE와 BIND_DEVICE_ADMIN이 필요합니다. 공격. 따라서 장치가 아직 패치되지 않은 경우 이러한 종류의 공격에 대한 최선의 방어선은 응용 프로그램을 설치할 때 AndroidManifest에 정의한 권한을 검사하는 것입니다. 앱을 설치했는데 해당 앱에 접근성 서비스 또는 장치 관리자 권한이 필요한 이유를 잘 모르는 경우 즉시 해당 앱을 제거하고 개발자에게 문의하세요.
Android의 단순한 토스트 메시지라는 간단한 부분이 사회적으로 사용자에게 위험한 권한을 부여하도록 악용될 수 있다는 점은 우려스럽습니다. 우리는 이러한 공격에 쉽게 빠질 수 있는 수백만 명의 사람들을 보호하기 위해 제조업체가 가능한 한 빨리 9월 보안 패치를 장치에 출시하기를 바랍니다.