hacktricks/mobile-pentesting/ios-pentesting/ios-app-extensions.md
2024-02-10 21:30:13 +00:00

5.4 KiB

iOS 앱 확장

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

앱 확장은 앱이 다른 앱이나 시스템과 상호작용하여 사용자 정의 기능이나 콘텐츠를 제공함으로써 앱의 기능을 향상시킵니다. 이러한 확장에는 다음이 포함됩니다:

  • 사용자 정의 키보드: 기본 iOS 키보드를 대체하는 모든 앱에서 사용할 수 있는 고유한 키보드를 제공합니다.
  • 공유: 소셜 네트워크나 다른 사람들과 직접 공유할 수 있도록 합니다.
  • 오늘 (위젯): 알림 센터의 오늘 보기에서 콘텐츠를 제공하거나 작업을 빠르게 수행합니다.

사용자가 호스트 앱에서 텍스트를 공유하는 등 이러한 확장과 상호작용할 때, 확장은 공유된 정보를 활용하여 작업을 수행합니다. 이에 대한 자세한 내용은 Apple의 문서를 참조하십시오.

보안 고려 사항

주요 보안 측면은 다음과 같습니다:

  • 확장과 그를 포함하는 앱은 직접적으로 통신하는 것이 아니라 프로세스 간 통신을 통해 통신합니다.
  • 오늘 위젯은 특정 방법을 통해 해당 앱을 열도록 요청할 수 있습니다.
  • 공유 데이터 접근은 개인 컨테이너 내에서 허용되지만 직접적인 접근은 제한됩니다.
  • HealthKit을 포함한 특정 API는 앱 확장에서 사용할 수 없으며, iMessage 확장을 제외하고는 장기 실행 작업, 카메라 또는 마이크에 접근할 수 없습니다.

정적 분석

앱 확장 식별

소스 코드에서 앱 확장을 찾으려면 Xcode에서 NSExtensionPointIdentifier를 검색하거나 확장을 나타내는 .appex 파일을 앱 번들에서 검사하세요. 소스 코드가 없는 경우 grep이나 SSH를 사용하여 앱 번들 내에서 이러한 식별자를 찾을 수 있습니다.

지원되는 데이터 유형

확장의 Info.plist 파일에서 NSExtensionActivationRule을 확인하여 지원되는 데이터 유형을 식별하세요. 이 설정을 통해 호스트 앱에서 호환되는 데이터 유형만 확장을 트리거할 수 있습니다.

데이터 공유

앱과 확장 간의 데이터 공유는 "App Groups"를 통해 설정된 공유 컨테이너를 통해 이루어지며, NSUserDefaults를 통해 액세스됩니다. 이 공유 공간은 확장에서 시작된 백그라운드 전송을 위해 필요합니다.

확장 제한

앱은 특히 사용자 정의 키보드와 같은 특정 확장 유형을 제한하여 민감한 데이터 처리가 보안 프로토콜과 일치하도록 할 수 있습니다.

동적 분석

동적 분석은 다음을 포함합니다:

  • 공유 항목 검사: NSExtensionContext - inputItems에 후크를 걸어 공유된 데이터 유형과 원본을 확인합니다.
  • 확장 식별: NSXPCConnection과 같은 내부 메커니즘을 관찰하여 데이터를 처리하는 확장을 발견합니다.

frida-trace와 같은 도구는 특히 프로세스 간 통신의 기술적 세부 사항에 관심이 있는 사람들에게 기본 프로세스를 이해하는 데 도움이 될 수 있습니다.

참고 자료

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법: