Android Task Hijacking
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
안드로이드에서 작업은 사용자가 특정 작업을 완료하기 위해 상호작용하는 활동의 집합으로, 백 스택 내에 조직됩니다. 이 스택은 활동이 열렸던 순서에 따라 활동을 정렬하며, 가장 최근의 활동이 가장 위에 표시되어 포그라운드 활동이 됩니다. 언제든지 이 활동만 화면에 표시되어 포그라운드 작업의 일부가 됩니다.
활동 전환에 대한 간단한 설명은 다음과 같습니다:
활동 1은 포그라운드에서 유일한 활동으로 시작합니다.
활동 2를 시작하면 활동 1이 백 스택으로 밀려나고, 활동 2가 포그라운드로 옵니다.
활동 3을 시작하면 활동 1과 활동 2가 스택에서 더 뒤로 밀려나고, 활동 3이 앞에 오게 됩니다.
활동 3을 닫으면 활동 2가 다시 포그라운드로 돌아와 안드로이드의 간소화된 작업 탐색 메커니즘을 보여줍니다.
안드로이드 애플리케이션에서 작업 친화성은 활동의 선호 작업을 지정하며, 일반적으로 앱의 패키지 이름과 일치합니다. 이 설정은 공격을 시연하기 위한 개념 증명(PoC) 앱을 만드는 데 중요합니다.
launchMode
속성은 작업 내에서 활동 인스턴스의 처리를 지시합니다. singleTask 모드는 이 공격에 있어 중요한 역할을 하며, 기존 활동 인스턴스와 작업 친화성 일치에 따라 세 가지 시나리오를 지시합니다. 이 공격은 공격자의 앱이 대상 앱의 작업 친화성을 모방할 수 있는 능력에 의존하여, 안드로이드 시스템이 의도한 대상을 대신하여 공격자의 앱을 시작하도록 유도합니다.
악성 앱 설치: 피해자가 자신의 장치에 공격자의 앱을 설치합니다.
초기 활성화: 피해자가 악성 앱을 처음 열어 공격을 위한 장치를 설정합니다.
대상 앱 시작 시도: 피해자가 대상 앱을 열려고 시도합니다.
하이재킹 실행: 일치하는 작업 친화성으로 인해 악성 앱이 대상 앱 대신 시작됩니다.
기만: 악성 앱이 대상 앱과 유사한 가짜 로그인 화면을 표시하여 사용자가 민감한 정보를 입력하도록 속입니다.
이 공격의 실제 구현에 대한 내용은 GitHub의 Task Hijacking Strandhogg 리포지토리를 참조하십시오: Task Hijacking Strandhogg.
이러한 공격을 방지하기 위해 개발자는 taskAffinity
를 빈 문자열로 설정하고 singleInstance
시작 모드를 선택하여 자신의 앱이 다른 앱과 격리되도록 할 수 있습니다. onBackPressed()
함수를 사용자 정의하면 작업 하이재킹에 대한 추가 보호를 제공합니다.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)