StrandHogg 공격 / 작업 어피니티 취약점
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
OWASP 카테고리: MASVS-PLATFORM: 플랫폼 상호작용
개요
StrandHogg 공격/작업 어피니티 취약점은 Android에서 여러 작업, 특히 작업의 상위 항목 재배치라는 기능을 처리하는 방식에 포함된 디자인 버그로 인해 발생했습니다. 애플리케이션 작업 상위 항목 재배치는 애플리케이션이 한 작업에서 다른 작업으로 활동을 이동할 수 있는 기능입니다.
StrandHogg 공격은 수신되는 애플리케이션 작업 스택 활동을 확인하는 방법에 포함된 불명확성을 악용해 악성 애플리케이션이 다음 중 하나를 할 수 있게 합니다.
- 피해를 입는 스택 간에 악성 활동 이동
- 피해를 입는 활동이 완료되면 악성 활동을 반환 스택으로 설정
이 취약점은 allowTaskReparenting
및 taskAffinity
설정을 조작하는 데 악용됩니다.
영향
악성 애플리케이션이 활동 중 하나의 taskAffinity가 타겟 애플리케이션의 packageName과 일치하도록 설정할 수 있습니다. 그런 다음 이를 인텐트 도용과 결합하면 사용자가 다음에 대상 애플리케이션을 실행할 때 악성 애플리케이션도 실행되어 대상 애플리케이션 위에 표시됩니다.
그러고 나서 작업 어피니티 취약점을 사용하여 합법적인 사용자 작업을 도용할 수 있습니다.
사용자를 속여 악성 애플리케이션에 사용자 인증 정보를 제공할 수도 있습니다.
기본적으로 활동이 시작되고 작업과 연결되면 이러한 연결이 활동의 전체 수명 주기 동안 유지됩니다. 그러나 allowTaskReparenting을 true로 설정하면 이 제한이 해제되며, 기존 활동의 상위 항목을 새로 만든 '네이티브' 작업으로 다시 지정할 수 있습니다.
예를 들어 앱 B가 앱 A를 타겟팅하여 앱 A의 활동이 완료되어 반환되면 앱 A의 활동을 앱 B 활동 스택으로 리디렉션할 수 있습니다. 한 앱에서 다른 앱으로의 이러한 전환은 사용자에게 표시되지 않으며 심각한 피싱 위협이 발생합니다.
완화 조치
다음으로 업데이트합니다. android:targetSdkVersion=>28
StrandHogg 공격/작업 어피니티 취약점은 2019년 3월에 패치되었으며 Android SDK 버전 28 이상(Android 9)에는 이 취약점을 방지하기 위한 적절한 OS 패치가 포함되어 있습니다. 개별 애플리케이션 구성을 통해 StrandHogg 공격의 버전 1을 부분적으로 완화할 수는 있지만, 공격의 버전 2는 이 SDK 버전 패치로만 방지할 수 있습니다.
리소스
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2023-12-08(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2023-12-08(UTC)"],[],[],null,["# StrandHogg Attack / Task Affinity Vulnerability\n\n\u003cbr /\u003e\n\n**OWASP category:** [MASVS-PLATFORM: Platform Interaction](https://mas.owasp.org/MASVS/09-MASVS-PLATFORM)\n\n\nOverview\n--------\n\nThe StrandHogg attack / Task Affinity vulnerability was enabled / caused by a\ndesign bug in the way Android handled multiple tasks, specifically the feature\ncalled task reparenting. Application task reparenting is a feature that allows\nan application to move an activity from one task to another.\n\nThe StrandHogg attack exploits a lack of clarity on how to vet incoming\napplication task stack activities and allows a malicious application to either:\n\n- move a malicious activity to or from a victim stack\n- set the malicious activity as the return stack upon completion of a victim activity\n\nThis vulnerability is exploited by manipulating the `allowTaskReparenting` and\n`taskAffinity` settings.\n\nImpact\n------\n\nA malicious application can set the taskAffinity of one of its activities to\nmatch the packageName of a target application. This can then be coupled with\nintent hijacking so that the next time the target application is launched by the\nuser, the malicious application is also launched and displayed on top of the\ntarget application.\n\nThe Task Affinity vulnerability can then be used to hijack legitimate user\nactions.\n\nThe user could be tricked into providing credentials to a malicious application.\nBy default, once an activity starts and is associated with a task, that\nassociation persists for the activity's entire lifecycle. However, setting\nallowTaskReparenting to true breaks this restriction, allowing an existing\nactivity to be re-parented to a newly created \"native\" task.\n\nFor example, App A can be targeted by App B, redirecting App A activities to an\nApp B activity stack upon return from App A's completed activity. This\ntransition from one app to another is hidden from the user and creates a\nsignificant phishing threat.\n\nMitigations\n-----------\n\nUpdate to `android:minSdkVersion=\"30\"`.\n\nThe StrandHogg attack / Task affinity vulnerability was originally patched in\nMarch 2019 with a newer and more comprehensive variant patched in September\n2020. Android SDK versions 30 and newer (Android 11) contain the appropriate OS\npatches to avoid this vulnerability. While it is possible to partially mitigate\nversion 1 of the StrandHogg attack through individual application configuration,\nversion 2 of the attack can only be prevented by this SDK version patch.\n\nResources\n---------\n\n- [Original academic paper describing the vulnerability at Usenix\n 15](https://www.usenix.org/system/files/conference/usenixsecurity15/sec15-paper-ren-chuangang.pdf){.external}\n- [Promon Security group's expansion of the original\n vulnerability](https://promon.co/security-news/the-strandhogg-vulnerability/){.external}\n- [Android developer documentation for android:allowTaskReparenting](/guide/topics/manifest/activity-element#reparent)\n- [Android developer documentation for android:taskAffinity](/guide/topics/manifest/activity-element#aff)\n- [Android developer documentation for the application element of android:allowTaskReparenting](/guide/topics/manifest/application-element#reparent)"]]