Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
In The Middle Of Chatter #2
Search
Takahiro Yoshimura
October 29, 2024
Technology
0
32
In The Middle Of Chatter #2
Somewhat detailed dive to iOS application analysis methodology. (OWASP Saitama MTG #22, talk #1)
Takahiro Yoshimura
October 29, 2024
Tweet
Share
More Decks by Takahiro Yoshimura
See All by Takahiro Yoshimura
Reviewing 2025
alterakey
0
8
Repeat After Me #2
alterakey
0
34
Repeat After Me #1
alterakey
0
31
Slaying 2FA
alterakey
0
20
Ghost Warden
alterakey
0
20
Toxic Oversight
alterakey
0
22
Reviewing 2024
alterakey
0
24
Chaotic Channel
alterakey
0
40
In The Middle Of Chatter #1
alterakey
0
41
Other Decks in Technology
See All in Technology
[Neurogica] 採用ポジション/ Recruitment Position
neurogica
1
100
Snowflake だけで実現する “自立的データ品質管理” ~Data Quality Monitoring 解説 ~@ BUILD Meetup: TOKYO 2025
ryo_suzuki
0
120
通勤手当申請チェックエージェント開発のリアル
whisaiyo
3
380
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
1
390
Amazon Bedrock Knowledge Bases × メタデータ活用で実現する検証可能な RAG 設計
tomoaki25
6
2.2k
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
7
1.1k
NIKKEI Tech Talk #41: セキュア・バイ・デザインからクラウド管理を考える
sekido
PRO
0
200
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
9.9k
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
0
150
Knowledge Work の AI Backend
kworkdev
PRO
0
140
アプリにAIを正しく組み込むための アーキテクチャ── 国産LLMの現実と実践
kohju
0
200
202512_AIoT.pdf
iotcomjpadmin
0
130
Featured
See All Featured
Technical Leadership for Architectural Decision Making
baasie
0
180
The Pragmatic Product Professional
lauravandoore
37
7.1k
Designing Experiences People Love
moore
143
24k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
65
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
200
How to train your dragon (web standard)
notwaldorf
97
6.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
60
37k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.4k
A Tale of Four Properties
chriscoyier
162
23k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
Transcript
IN THE MIDDLE OF CHATTER 2 OWASP SAITAMA MTG #22,
TALK #1 Image by quinn.anya on flickr, CC-BY-SA 2.0
TEXT SESSION FLAGS ▸ ըɾԻɾެ։: OK Image by Nico Kaiser
on flickr, CC-BY 2.0
TEXT WHO I AM ▸ Takahiro Yoshimura (@alterakey) https://keybase.io/alterakey ▸
Monolith Works Inc. Co-founder, CTO Security researcher ▸ ໌࣏େֶαΠόʔηΩϡϦςΟݚڀॴ ٬һݚڀһ
TEXT WHAT I DO ▸ Security research and development ▸
iOS/Android Apps →Financial, Games, IoT related, etc. (>200) →trueseeing: Non-decompiling Android Application Vulnerability Scanner [2017] ▸ Windows/Mac/Web/HTML5 Apps →POS, RAD tools etc. ▸ Network/Web penetration testing →PCI-DSS etc. ▸ Search engine reconnaissance (aka. Google Hacking) ▸ Whitebox testing ▸ Forensic analysis
TEXT WHAT I DO ▸ CTF ▸ Enemy10, Sutegoma2 ▸
METI CTFCJ 2012 Qual.: Won ▸ METI CTFCJ 2012: 3rd ▸ DEF CON 21 CTF: 6th ▸ DEF CON 22 OpenCTF: 4th ▸ ൃදɾߨԋͳͲ DEF CON 25 Demo Labs (2017) DEF CON 27 AI Village (2019) CODE BLUE (2017, 2019) CYDEF (2020) etc. Image by Wiyre Media on flickr, CC-BY 2.0
TEXT BACKGROUND ▸ LLMͷνϟοτΞϓϦ ʢChatGPT, GPT-4o, Claude .. ʣ ▸
͜ΕΒͷڍಈ…Ͳ͏ͳ͍ͬͯΔͷͩΖ͏͔ ▸ iOS൛ΞϓϦΛର Image by focal5 on flickr, CC-BY-NC 2.0
TEXT DEFEATING DRM ▸ App Store͕ʹ͋ͨΓ҉߸Խ+ॺ໊ ▸ ҉߸Խ͞Ε͍ͯΔͱવಡΊͳ͍ ▸ ҉߸ͷ͍ํʹ͞΄Ͳେ͖ͳͳ͍
→ਖ਼߈๏Ͱ͍͠ ▸ ࣮ʹղಡͤ͞Δͷ͕ྑ͍ɺ͕ ▸ ղಡπʔϧ͕App Storeʹ͋Δ…Θ͚ͳ͍ ▸ ղಡʹjailbreak͕ඞਢ Image by lantzilla on flickr, CC-BY-NC-ND 2.0
TEXT BREAKING OUT OF PRISON ▸ jailbreak ▸ ίʔυॺ໊ݕূػߏΛແޮԽ →Χʔωϧͷ੬ऑੑΛಥ͍ͯϑϥάΛԚછ
▸ checkm8: BootROMʹ͓͚Δuse-after-free →BootROMͳͷͰύονͰ͖ͳ͍ (<A12) ▸ checkra1n (12.x ..14.x) ▸ palera1n (15 .. 16.4, 15 .. 17.x) →2.0ܥ͔Βcheckra1nΛ෦తʹར༻ Image by Prab Bhatia Photography on flickr, CC-BY-NC-ND 2.0
TEXT NOW UNLEASHED, WHERE TO GO? ▸ ରͷΞϓϦΛղಡ͍ͨ͠ ▸ frida-ios-dump
→ϝϞϦμϯϓ͠ΞϓϦΛ࠶ߏ →frida͕ඞཁ ▸ frida: dynamic instrumentation framework! ▸ frida-serverΛattach ▸ APIݺͼग़͠ͷI/OͳͲࡉ෦͔Β੍ޚՄೳʹ Image by Mr. Littlehand on flickr, CC-BY-ND 2.0
TEXT REVERSING ▸ Ghidra: Multi-arch disassembler (NSA) radare2: Binary analysis
framework (pancake et al.) ▸ ؆୯ͷͨΊʹghidraΛ༻ Image by Simon Rankin on flickr, CC-BY-NC-ND 2.0
TEXT REVERSING TAKEAWAYS ▸ ղੳ analyzeHeadless ~/works/claude/t claude -preScript analysisopts_ios.py
-import Payload/ Claude.app/Claude ▸ औΓग़͠ analyzeHeadless ~/works/claude/t claude -postScript out.py -process Claude -noanalysis → out.asm(※) ͕ੜ͞ΕΔͷͰrename ▸ ※out.asmout.py͕উखʹܾΊ͍ͯΔϑΝΠϧ໊ Image by Thomas_H_foto on flickr, CC-BY-ND 2.0
TEXT NOW YOU ARE PIECES ▸ όΠφϦΛೖͯ͠ΞηϯϒϦΛճऩ ▸ ͋ͱ… ࣮ࡍͷղੳΛߦͳ͏
Image by Thomas_H_foto on flickr, CC-BY-ND 2.0
TEXT ANATOMY OF IOS APP ▸ iOSΞϓϦͷߏ ▸ Info.plist: ϝλใ
(_CodeSignature: ॺ໊) ▸ assets.car: Ϧιʔεྨ ▸ Frameworks: ϥΠϒϥϦྨ˞ ▸ (ΞϓϦ໊): Mach-O࣮ߦϑΝΠϧ˞
TEXT INFO.PLIST: METADATA ▸ ϝλใ ▸ ΞϓϦ໊ ▸ ATS ▸
bundle id ▸ ཁٻݖݶ ▸ URLεΩʔϜ etc.
TEXT FRAMEWORKS ▸ ΞϓϦ͕༻͢ΔϑϨʔϜϫʔΫ ▸ Mach-O dylib
TEXT EXECUTABLES ▸ ΞϓϦຊମ ▸ Mach-O executable - ԟʑʹͯ͠େ͖͍ ▸
͞·͟·ͳϥΠϒϥϦ͕੩తϦϯΫ͞ΕΔͨΊ
TEXT DISASSEMBLED CODE ▸ arm64-v8a (كʹarmv7s) ▸ OSʹObjC৭͕͍ͬͯΔͷͰจࣈྻΛղܾͰ͖ ͯ͠·͑APIϨϕϧͷղੳ͍͢͠ ▸
Swiftײ֮తʹC++ίʔυʹ͍ۙ name mangling: ॲཧܥͰdemangleͰ͖Δ͕… ىಈίετ͕ߴ͍ͷͰ͕ඞཁ ▸ AppleʹΑΔ৹͕ࠪ͋ΔͨΊ͔ɺཱͪೖͬͨ͜ͱ Λ͍ͯ͠Δίʔυ͋·ΓΈͳ͍…ͣʢʂʣ
TEXT ARTIFACTS ▸ ݟΔ͖Օॴ ▸ API call ▸ File operation
▸ Network operation ▸ Re fl ection ▸ Dynamic code loading ▸ etc...
TEXT ARTIFACTS: API CALL ▸ API call ▸ ObjC: objc_msgSend
▸ Swift: (mangled name)
TEXT ARTIFACTS: FILE ACCESS ▸ API call ▸ NSFile, NSFileManager,
etc. ▸ ϑΝΠϧΞΫηε
TEXT ARTIFACTS: NETWORK ACCESS ▸ API call ▸ NSURLRequest, etc.
▸ ωοτϫʔΫΞΫηε; ஶ໊ͳϥΠϒϥϦͷݺ ग़͕͜͠ΕʹΘΔ߹͕ԟʑʹͯ͋͠Δ (Alamo fi re, Moya, etc..)
TEXT ARTIFACTS: REFLECTIONS ▸ API call ▸ classFromString, selectorFromString, etc.
▸ ΫϥεηϨΫλΛจࣈྻ͔Βੜ
TEXT ARTIFACTS: DYNAMIC CODE LOADINGS ▸ API call ▸ dlsym
etc. ▸ ϥΠϒϥϦͷϓϩγʔδϟΞυϨεΛऔಘ
TEXT TS2-IOS: AUTOMATE THE ANALYSIS ▸ iOSΞϓϦղੳΛߦͳ͏trueseeing extension ▸ 2.2.5ͰmainϚʔδͨ͠:
ipa͕ղੳՄೳʹʂ ▸ API call, URL, dynamic code loading, syscall, re fl ection, jailbreak detection, debug probe, privacy concerns, obfuscations, assertions, logging, library imports, motion sensor, url scheme, ATS, permission, device requirements, device info probes, entitilements, copyright info, XOR ciphers, statically linked libraries ..
TEXT TS2-IOS: AUTOMATE THE ANALYSIS ▸ dockerͷ߹ͳΒ wc Λ /ext/ios
ͱͯ͠Ϛϯτ ͢Δ͚ͩ ▸ venvʹΠϯετʔϧ͍ͯ͠ΔͳΒpip ▸ ͜Ε͕ೖΔͱtrueseeingͰipaΛ։͚ΔΑ͏ʹ →͋ͱas!;gt report.txtͱ͢ΕऴΘΓ →HTMLͰग़͢ͳΒgh report.html ▸ disasm.tar.gzͱͯ͠ghidraͰdisasm͓ͯ͘͠ →ࠓͷͱ͜Ζ10.3ܥͷΈ
TEXT INSIDE TS2-IOS ▸ ipaͷplistྨΛղಡɾੳ ▸ disasm.tar.gzͱͯ͠·ͱΊΒΕ͍ͯΔ disassembled codeΛಡΜͰಛΛݕग़ ▸
API callΛྨ ▸ Swift symbol demangling ▸ Ϋϥε໊ͷ಄ࣙΛநग़
TEXT INSIDE TS2-IOS ▸ จࣈྻఆͷਪghidra·͔ͤ ▸ จࣈྻఆͷੳΛ༗ޮʹ ▸ fi eldΛେ͖͘औΔ
→લճݟͨΑ͏ͳܗͰpostscriptΛט·ͤΔ
TEXT TS2-SWIFT-DEMANGLE ▸ ໊લ͕ͻͲ͍… ▸ swiftॲཧܥdemanglerΛAPIԽ →swiftॲཧܥͷىಈ͕͗͢ΔͨΊ… ▸ ts2ͱϦϯΫ͢Δ͚ͩ (--link
ts2-swift-demangle)
TEXT TS2-DISASM-GHIDRA ▸ ipa/apkΛ͢ͱghidraͰdisasm͢Δcontainer ▸ docker run --rm -v $(pwd):/out
ts2-disasm- ghidra target.ipa → ͜Ε͚ͩͰdisasm.tar.gzΛੜ ▸ streamingੜ: σΟεΫʹ༏͍͠ ▸ ͨͩແ͔͔ۤ࣌ؒΔ
TEXT CLAUDE: FINDINGS ▸ ͋·Γͳ͍…͕ ▸ ಈతίʔυϩʔυ ▸ PasteboardͷΞΫηε ▸
cydiaͷݕग़ ▸ σόΠεϞσϧφϯόʔͷݕग़
TEXT TAKEAWAYS ▸ iOSΞϓϦੳʹ͓͍ͯݟΔ͖Օॴ ▸ Info.plist: ϝλใ Frameworks: ϥΠϒϥϦྨ˞ (ΞϓϦ໊):
Mach-O࣮ߦϑΝΠϧ˞ ▸ ObjC৭͕·ͩ·ͩڧ͍: call͕จࣈྻఆͰग़ݱ ▸ SwiftC++ʹ͍ۙҹ: demangling͕༗༻ ▸ ࠷৽։ൃಈͱϥΠϒϥϦͷ͕ࣝେࣄ
TEXT TAKEAWAYS ▸ ͳͷjailbreak͔Βͷఠग़ ▸ trueseeingͱghidraͷҖ ▸ disasmͯ͠͠·͑ੳ·ͰҰؾ௨؏ ▸ disasm͕͔͔࣌ؒΔ͕ࣗಈԽՄೳ
(radare2ͰͰ͖Δͱ͍͍ͷ͕ͩ…) ▸ ͱ͍͏͜ͱͰͦΖͦΖiOSਖ਼ࣜରԠ༧ఆ
FIN. 29.10.2024 TAKAHIRO YOSHIMURA (@ALTERAKEY)