iOS App Extensions
Reading time: 3 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
앱 확장은 다른 앱이나 시스템과 상호작용할 수 있도록 하여 앱의 기능을 향상시키고, 사용자 정의 기능이나 콘텐츠를 제공합니다. 이러한 확장에는 다음이 포함됩니다:
- Custom Keyboard: 기본 iOS 키보드를 대체하여 모든 앱에서 고유한 키보드를 제공합니다.
- Share: 소셜 네트워크 또는 다른 사람과 직접 공유할 수 있게 합니다.
- Today (Widgets): 알림 센터의 오늘 보기에서 콘텐츠를 제공하거나 작업을 신속하게 수행합니다.
사용자가 호스트 앱에서 텍스트를 공유하는 등의 방식으로 이러한 확장과 상호작용할 때, 확장은 Apple의 문서에 자세히 설명된 대로 이 입력을 자신의 컨텍스트 내에서 처리하고, 공유된 정보를 활용하여 작업을 수행합니다.
Security Considerations
주요 보안 측면은 다음과 같습니다:
- 확장과 그를 포함하는 앱은 직접적으로가 아니라 프로세스 간 통신을 통해 통신합니다.
- Today widget은 특정 방법을 통해 자신의 앱을 열도록 요청할 수 있다는 점에서 독특합니다.
- 공유 데이터 접근은 개인 컨테이너 내에서 허용되지만, 직접 접근은 제한됩니다.
- HealthKit을 포함한 특정 API는 앱 확장에서 사용할 수 없으며, iMessage 확장을 제외하고는 장기 실행 작업을 시작하거나 카메라 또는 마이크에 접근할 수 없습니다.
Static Analysis
Identifying App Extensions
소스 코드에서 앱 확장을 찾으려면 Xcode에서 NSExtensionPointIdentifier
를 검색하거나 앱 번들을 검사하여 확장을 나타내는 .appex
파일을 찾습니다. 소스 코드가 없는 경우 grep 또는 SSH를 사용하여 앱 번들 내에서 이러한 식별자를 찾습니다.
Supported Data Types
확장의 Info.plist
파일에서 NSExtensionActivationRule
을 확인하여 지원되는 데이터 유형을 식별합니다. 이 설정은 호스트 앱에서 호환되는 데이터 유형만 확장을 트리거하도록 보장합니다.
Data Sharing
앱과 그 확장 간의 데이터 공유는 "App Groups"를 통해 설정된 공유 컨테이너가 필요하며, NSUserDefaults
를 통해 접근합니다. 이 공유 공간은 확장이 시작한 백그라운드 전송에 필요합니다.
Restricting Extensions
앱은 특정 확장 유형, 특히 사용자 정의 키보드를 제한할 수 있으며, 이는 민감한 데이터 처리가 보안 프로토콜에 맞도록 보장합니다.
Dynamic Analysis
동적 분석은 다음을 포함합니다:
- Inspecting Shared Items:
NSExtensionContext - inputItems
에 후킹하여 공유 데이터 유형과 출처를 확인합니다. - Identifying Extensions:
NSXPCConnection
과 같은 내부 메커니즘을 관찰하여 어떤 확장이 데이터를 처리하는지 발견합니다.
frida-trace
와 같은 도구는 프로세스 간 통신의 기술적 세부 사항에 관심이 있는 사람들에게 특히 유용하게 작용할 수 있습니다.
References
- https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/
- https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.