Android Task Hijacking

Reading time: 3 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원하기

작업, 백 스택 및 포그라운드 활동

Android에서 작업은 사용자가 특정 작업을 완료하기 위해 상호작용하는 활동의 집합으로, 백 스택 내에 조직됩니다. 이 스택은 활동이 열린 순서에 따라 정렬되며, 가장 최근의 활동이 가장 위에 표시되어 포그라운드 활동이 됩니다. 언제든지 이 활동만 화면에 표시되어 포그라운드 작업의 일부가 됩니다.

활동 전환에 대한 간단한 설명은 다음과 같습니다:

  • 활동 1은 포그라운드에서 유일한 활동으로 시작합니다.
  • 활동 2를 시작하면 활동 1이 백 스택으로 밀려나고, 활동 2가 포그라운드로 옵니다.
  • 활동 3을 시작하면 활동 1활동 2가 스택에서 더 뒤로 밀리고, 활동 3이 이제 앞에 위치합니다.
  • 활동 3을 닫으면 활동 2가 다시 포그라운드로 돌아와 Android의 간소화된 작업 탐색 메커니즘을 보여줍니다.

https://developer.android.com/images/fundamentals/diagram_backstack.png

작업 친화성 공격

작업 친화성 및 실행 모드 개요

Android 애플리케이션에서 작업 친화성은 활동의 선호 작업을 지정하며, 일반적으로 앱의 패키지 이름과 일치합니다. 이 설정은 공격을 시연하기 위한 개념 증명(PoC) 앱을 만드는 데 중요합니다.

실행 모드

launchMode 속성은 작업 내에서 활동 인스턴스의 처리를 지시합니다. singleTask 모드는 이 공격에 중요한 역할을 하며, 기존 활동 인스턴스와 작업 친화성 일치에 따라 세 가지 시나리오를 지시합니다. 이 취약점은 공격자의 앱이 대상 앱의 작업 친화성을 모방할 수 있는 능력에 의존하여, Android 시스템이 의도된 대상을 대신하여 공격자의 앱을 실행하도록 오도합니다.

상세 공격 단계

  1. 악성 앱 설치: 피해자가 자신의 장치에 공격자의 앱을 설치합니다.
  2. 초기 활성화: 피해자가 악성 앱을 처음 열어 공격을 위한 장치를 설정합니다.
  3. 대상 앱 실행 시도: 피해자가 대상 앱을 열려고 시도합니다.
  4. 하이재킹 실행: 일치하는 작업 친화성으로 인해 악성 앱이 대상 앱 대신 실행됩니다.
  5. 기만: 악성 앱이 대상 앱과 유사한 가짜 로그인 화면을 표시하여 사용자가 민감한 정보를 입력하도록 속입니다.

이 공격의 실제 구현에 대한 내용은 GitHub의 Task Hijacking Strandhogg 리포지토리를 참조하십시오: Task Hijacking Strandhogg.

예방 조치

이러한 공격을 방지하기 위해 개발자는 taskAffinity를 빈 문자열로 설정하고 singleInstance 실행 모드를 선택하여 자신의 앱이 다른 앱과 격리되도록 할 수 있습니다. onBackPressed() 함수를 사용자 정의하면 작업 하이재킹에 대한 추가 보호를 제공합니다.

참고 문헌

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원하기