hacktricks/mobile-pentesting/android-app-pentesting/android-task-hijacking.md

6 KiB

안드로이드 작업 탈취

htARTE (HackTricks AWS Red Team Expert)를 통해 제로에서 히어로까지 AWS 해킹 배우기 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법:

Try Hard Security Group

{% embed url="https://discord.gg/tryhardsecurity" %}


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

안드로이드에서 작업은 사용자가 특정 작업을 완료하기 위해 상호 작용하는 활동 세트로 구성된 백 스택 내에서 구성됩니다. 이 스택은 활동을 열었을 때의 순서에 따라 정렬되며, 최신 활동이 포그라운드 활동으로서 화면 상단에 표시됩니다. 언제든지 화면에는 이 활동만 표시되어 있으며, 이는 포그라운드 작업의 일부입니다.

다음은 활동 전환의 간단한 설명입니다:

  • 활동 1은 처음에 전경에 있는 유일한 활동으로 시작합니다.
  • 활동 2를 시작하면 활동 1이 백 스택으로 이동되고 활동 2가 전경에 표시됩니다.
  • 활동 3을 시작하면 활동 1활동 2가 스택에서 더 뒤로 이동하고, 활동 3이 앞에 표시됩니다.
  • 활동 3을 닫으면 활동 2가 다시 전경에 나타나며, 안드로이드의 간소화된 작업 탐색 메커니즘을 보여줍니다.

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

작업 친화성 공격

작업 친화성 및 시작 모드 개요

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

시작 모드

launchMode 속성은 작업 내에서 활동 인스턴스를 처리하는 방법을 지시합니다. singleTask 모드는 기존 활동 인스턴스 및 작업 친화성 일치에 따라 세 가지 시나리오를 지배합니다. 공격은 공격자 앱이 대상 앱의 작업 친화성을 모방하여 안드로이드 시스템을 속여 공격자 앱 대신 의도된 대상 앱을 시작하도록 하는 능력에 달려 있습니다.

상세한 공격 단계

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

이 공격의 실제 구현에 대한 자세한 내용은 GitHub의 Task Hijacking Strandhogg 저장소를 참조하세요: Task Hijacking Strandhogg.

예방 조치

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

참고 자료

Try Hard Security Group

{% embed url="https://discord.gg/tryhardsecurity" %}

htARTE (HackTricks AWS Red Team Expert)를 통해 제로에서 히어로까지 AWS 해킹 배우기 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법: