Communitygithub.com

Objection을 활용한 iOS 앱 보안 분석

Objection을 사용하여 iOS 애플리케이션의 런타임 보안을 평가하고, 키체인, 파일 시스템, 메모리에서 민감한 데이터 노출을 검사하며, SSL 핀닝 및 탈옥 탐지와 같은 클라이언트 측 보안 제어를 우회하는 방법을 안내합니다.

Objection을 활용한 iOS 앱 보안 분석란 무엇인가요?

이 스킬은 모바일 보안 연구자와 침투 테스터를 위해 설계되었으며, Objection과 Frida를 사용하여 iOS 앱의 런타임 보안 평가를 수행하는 방법을 설명합니다. 주요 기능으로는 iOS 키체인 덤프, 파일 시스템 탐색, 메모리 검색, SSL 핀닝 우회, 탈옥 탐지 우회, 메서드 후킹 등이 포함됩니다. 이 스킬은 탈옥된 기기와 비탈옥된 기기(repackaged IPA 사용) 모두를 지원하며, macOS 환경을 권장합니다. Objection의 대화형 REPL을 통해 사용자는 앱의 런타임 동작을 실시간으로 검사하고, 불안전한 데이터 저장, 네트워크 통신, 인증 메커니즘, 바이너리 보호 및 플랫폼 상호작용을 OWASP MASVS 프레임워크에 따라 평가할 수 있습니다. 이 스킬은 문서화된 워크플로우, 주요 개념 표 및 일반적인 문제 해결 가이드를 제공하여 초보자와 전문가 모두가 체계적으로 보안 테스트를 수행할 수 있도록 돕습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/analyzing-ios-app-security-with-objection

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Objection을 활용한 iOS 앱 보안 분석은(는) 무엇을 하나요?

사용 시기

이 스킬은 다음과 같은 경우에 사용하세요:

  • 승인된 침투 테스트 중 iOS 애플리케이션의 런타임 보안 평가 수행
  • 민감한 데이터 노출을 위해 iOS 키체인, 파일 시스템, 메모리 검사
  • 보안 테스트 중 클라이언트 측 보안 제어(SSL 핀닝, 탈옥 탐지) 우회
  • 소스 코드에 접근하지 않고 iOS 앱 동작을 런타임에 평가

명시적 승인 없이 프로덕션 기기에서 이 스킬을 사용하지 마세요. Objection은 앱 런타임 동작을 수정하며 보안 모니터링을 트리거할 수 있습니다.

사전 요구 사항

  • Python 3.10+ 및 pip
  • Objection 설치: pip install objection
  • Frida 설치: pip install frida-tools
  • 대상 iOS 기기(Frida 서버가 설치된 탈옥 기기 또는 repackaged IPA가 있는 비탈옥 기기)
  • 비탈옥 기기의 경우: objection patchipa 명령어로 IPA에 Frida Gadget 주입
  • iOS 테스트를 위해 macOS 권장(Xcode, ideviceinstaller)
  • 대상 기기에 USB 연결 또는 네트워크 Frida 서버

워크플로우

1단계: 테스트 환경 준비

탈옥된 기기의 경우:

# Cydia/Sileo를 통해 기기에 Frida 서버 설치
# SSH로 기기에 접속하여 Frida 서버 시작
ssh root@<device_ip> "/usr/sbin/frida-server -D"

# Frida 연결 확인
frida-ps -U  # USB 연결 기기의 프로세스 목록 표시

비탈옥 기기의 경우 (승인된 테스트):

# Frida Gadget으로 IPA 패치
objection patchipa --source target.ipa --codesign-signature "Apple Development: [email protected]"

# 패치된 IPA 설치
ideviceinstaller -i target-patched.ipa

2단계: 대상 앱에 Objection 연결

# 번들 ID로 실행 중인 앱에 연결
objection --gadget "com.target.app" explore

# 또는 앱을 새로 실행
objection --gadget "com.target.app" explore --startup-command "ios hooking list classes"

연결되면 Objection은 런타임 탐색을 위한 대화형 REPL을 제공합니다.

3단계: 데이터 저장 보안 평가 (MASVS-STORAGE)

# 앱이 접근 가능한 iOS 키체인 항목 덤프
ios keychain dump

# 앱 샌드박스의 파일 목록 표시
ios plist cat Info.plist
env  # 앱 환경 경로 표시

# NSUserDefaults에서 민감한 데이터 검사
ios nsuserdefaults get

# SQLite 데이터베이스 목록 표시
sqlite connect app_data.db
sqlite execute query "SELECT * FROM credentials"

# 클립보드에서 민감한 데이터 확인
ios pasteboard monitor

4단계: 네트워크 보안 평가 (MASVS-NETWORK)

# SSL/TLS 인증서 핀닝 비활성화
ios sslpinning disable

# Burp Suite 프록시에서 트래픽을 관찰하여 핀닝 우회 확인
# 네트워크 관련 클래스 메서드 호출 모니터링
ios hooking watch class NSURLSession
ios hooking watch class NSURLConnection

5단계: 인증 및 권한 부여 검사 (MASVS-AUTH)

# 모든 Objective-C 클래스 목록 표시
ios hooking list classes

# 인증 관련 클래스 검색
ios hooking search classes Auth
ios hooking search classes Login
ios hooking search classes Token

# 인증 메서드를 후킹하여 매개변수 관찰
ios hooking watch method "+[AuthManager validateToken:]" --dump-args --dump-return

# 생체 인증 호출 모니터링
ios hooking watch class LAContext

6단계: 바이너리 보호 평가 (MASVS-RESILIENCE)

# 탈옥 탐지 구현 확인
ios jailbreak disable

# 탈옥 탐지 우회 시뮬레이션
ios jailbreak simulate

# 로드된 프레임워크 및 라이브러리 목록 표시
memory list modules

# 메모리에서 민감한 문자열 검색
memory search "password" --string
memory search "api_key" --string
memory search "Bearer" --string

# 특정 메모리 영역 덤프
memory dump all dump_output/

7단계: 플랫폼 상호작용 검토 (MASVS-PLATFORM)

# 앱에 등록된 URL 스킴 목록 표시
ios info binary
ios bundles list_frameworks

# URL 스킴 핸들러 후킹
ios hooking watch method "-[AppDelegate application:openURL:options:]" --dump-args

# 클립보드 접근 모니터링
ios pasteboard monitor

# 사용자 정의 키보드 제한 확인
ios hooking search classes UITextField

주요 개념

용어정의
ObjectionFrida 기반의 런타임 모바일 탐색 도구 키트로, 일반적인 보안 테스트 작업을 위한 사전 빌드된 스크립트를 제공합니다.
Frida Gadget앱 프로세스에 주입되어 탈옥 없이 Frida 계측을 가능하게 하는 공유 라이브러리입니다.
KeychainiOS 보안 자격 증명 저장 시스템입니다. Objection은 대상 앱의 키체인 접근 그룹에 속한 항목을 덤프할 수 있습니다.
SSL Pinning BypassHTTPS 트래픽의 프록시 차단을 허용하기 위해 인증서 검증 로직을 런타임에 수정합니다.
Method HookingObjective-C/Swift 메서드 호출을 런타임에 가로채서 인수, 반환 값을 관찰하고 동작을 수정합니다.

도구 및 시스템

  • Objection: 사전 빌드된 명령어를 제공하는 고급 Frida 기반 모바일 보안 탐색 도구 키트
  • Frida: 네이티브 앱 프로세스에 JavaScript를 주입하는 동적 계측 프레임워크
  • Frida-tools: frida-ps, frida-trace, frida-discover를 포함한 Frida CLI 유틸리티
  • ideviceinstaller: USB를 통해 iOS 앱을 설치/관리하기 위한 플랫폼 간 도구
  • Burp Suite: SSL 핀닝 우회 후 트래픽을 차단하기 위한 HTTP 프록시

일반적인 문제점

  • 연결 시 앱 충돌: 일부 앱은 Frida 탐지를 구현합니다. --startup-command를 사용하여 앱 생애주기 초기에 안티-Frida 검사를 후킹하세요.
  • 키체인 접근 범위: Objection은 앱의 접근 그룹 내 키체인 항목만 덤프할 수 있습니다. 시스템 키체인 항목은 별도의 탈옥 수준 도구가 필요합니다.
  • Swift 이름 난독화: Swift 메서드 이름은 런타임에서 난독화됩니다. ios hooking list classes에 grep을 사용하여 디맹글된 이름을 찾으세요.
  • 비영구적 변경: 모든 Objection 수정은 런타임에만 적용되며 앱이 다시 시작되면 초기화됩니다. 발견 사항을 즉시 문서화하세요.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

관련 스킬