Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Chasing In The Backstage
Search
Takahiro Yoshimura
August 30, 2022
Technology
0
12
Chasing In The Backstage
Analysis of iOS/Android versions of TikTok (OWASP Saitama MTG #9, talk #2)
Takahiro Yoshimura
August 30, 2022
Tweet
Share
More Decks by Takahiro Yoshimura
See All by Takahiro Yoshimura
Repeat After Me #2
alterakey
0
24
Repeat After Me #1
alterakey
0
26
Slaying 2FA
alterakey
0
19
Ghost Warden
alterakey
0
20
Toxic Oversight
alterakey
0
21
Reviewing 2024
alterakey
0
23
In The Middle Of Chatter #2
alterakey
0
31
Chaotic Channel
alterakey
0
40
In The Middle Of Chatter #1
alterakey
0
40
Other Decks in Technology
See All in Technology
AIとの協業で実現!レガシーコードをKotlinらしく生まれ変わらせる実践ガイド
zozotech
PRO
2
260
プロダクト開発と社内データ活用での、BI×AIの現在地 / Data_Findy
sansan_randd
1
760
OTEPsで知るOpenTelemetryの未来 / Observability Conference Tokyo 2025
arthur1
0
410
AIを使ってテストを楽にする
kworkdev
PRO
0
400
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
4
950
DSPy入門
tomehirata
6
850
日本のソブリンAIを支えるエヌビディアの生成AIエコシステム
acceleratedmu3n
0
110
オブザーバビリティが育むシステム理解と好奇心
maruloop
3
1.9k
累計5000万DLサービスの裏側 – LINEマンガのKotlinで挑む大規模 Server-side ETLの最適化
ldf_tech
0
120
GPUをつかってベクトル検索を扱う手法のお話し~NVIDIA cuVSとCAGRA~
fshuhe
0
340
様々なファイルシステム
sat
PRO
0
280
SRE × マネジメントレイヤーが挑戦した組織・会社のオブザーバビリティ改革 ― ビジネス価値と信頼性を両立するリアルな挑戦
coconala_engineer
0
420
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Speed Design
sergeychernyshev
32
1.2k
Unsuck your backbone
ammeep
671
58k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
940
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
How STYLIGHT went responsive
nonsquared
100
5.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Transcript
CHASING IN THE BACKSTAGE OWASP SAITAMA MTG #9, TALK #2
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
DO YOU KNOW..?
TIKTOK ▸ ྑ͘ΘΕ͍ͯΔSNSΞϓϦ ▸ ಈըڞ༗ ▸ ίϝϯτػೳ etc.
TIKTOK ▸ ӡӦମ ▸ ByteDance Ltd. (த՚ਓຽڞࠃ) Photo by VCG
TEXT BACKGROUND ▸ In-app browserʹJSΛೖ →͜Ε͚ͩͳΒྑ͋͘Δ →KeystrokeΛऔ͍ͬͯΔͷͰʁͱ͍͏ٙ ▸ ൃݟऀʹΑͬͯݕग़αΠτ͕࡞͞Εͨ ▸
TikTokͷଞʹInstagramSnapchatͳͲ ▸ Androidʹ͍ͭͯʁެࣜൃදͳ͠ ▸ iOS 14.3Ҏ߱Ͱݕग़ෆೳͳख๏͕ར༻Մೳʹ (WKContentWorld) →ܯΛ໐Β͍ͯ͠Δ
TEXT BACKGROUND ▸ ੩తʹݟ͑ͳ͍ͷ͔ʁ AndroidӨڹͳ͍ͷ͔ʁ →͜ΕҎ֎ʹಠࣗղੳɾൃදࠓݱࡏͳ͍ ▸ ੩తղੳʹϦόʔεΤϯδχΞϦϯά
WAIT, BUT IS IT LEGAL? ▸ ຊͰ߹๏ʹͳΓ·ͨ͠ (ஶ࡞ݖ๏ୈ30ͷ4) ▸ ͍ͭ࠷ۙ·Ͱҧ๏ɺ͕ͩͬͨ:
Βͳ͍ͱݟ͑ͳ͍ ▸ ͦΕࠃӹʹ͔ͳ͏͜ͱʁ →ͦ͜·Ͱͯ͠ஶ࡞ݖอޢ͞ΕΔ͖ͳͷ͔ʁ →ҧ๏Ͱ͋ͬͯΔҙຯ ɹˠ࣮ߦ͢ΔΛཧղ͠Α͏ͱ͢Δવͷߦҝ ɹɹʢ৯Ͱ͋Εݪࡐྉͷੳʹ૬ʣ →ղੳ͕ҋͷख๏ʁ ɹˠಉௐѹྗͱ૬·ΓɺӴೳྗ্͕͠ͳ͍ཧ༝Λ ͍ͯ͠Δͱߟ͑ΒΕΔ Photo by Onasill ~ Bill - 78.8M on flickr, CC-BY-NC-SA 2.0
CASE 1: IOS
TEXT TARGETS ▸ TikTok (us): 25.8.0
TEXT TOOLCHAIN ▸ Ghidra: Multiarch Disassembler (NSA) ▸ frida-ios-dump: Binary
dumper (Alone_Monkey et al.) Swiss Army Knife on black by Edgar Pierce on flickr, CC-BY 2.0
STATIC ANALYSIS ▸ ੩తղੳ ▸ Ϧιʔεղੳ ▸ όΠφϦղੳ: AArch64
OVERVIEW ▸ App StoreʹΑΔ҉߸Խ (FairPlay) ▸ jailbrokenͱfrida-ios-dumpͰղಡ ▸ Ͱ෮߸ͤ͞ɺϝϞϦղੳͰఠग़ ▸
࣮ߦʹઌཱͬͯOS͕શจΛ෮߸Խ͢Δ͜ͱΛ ར༻ɺෆਖ਼ݕ͕͋ͬͯແ ▸ ৗखஈ͕ͩൺֱతΒΕ͍ͯͳ͍ The App Store by Glen Bledsoe on flickr, CC-BY 2.0
JAILBREAK ▸ Apple͕ڐՄ͍ͯ͠ͳ͍ίʔυΛ࣮ߦͤ͞Δ͜ͱ ͕Ͱ͖Δ ▸ FairPlayͷղআʹඞਢ ▸ ࠓճcheckra1nΛ༻ (~iOS 14.5)
→Intel Mac͕ඞཁͩͬͨ…
JAILBREAK ▸ fridaͷηοτΞοϓ →ղੳϗετʹfrida-ios-dump͕ඞཁ https://github.com/AloneMonkey/frida-ios- dump jailbreak by Viniloco on
flickr, CC-BY-NC-ND 2.0
TEXT RESOURCE ANALYSIS ▸ Assetͷதʹڵຯਂ͍༰ ▸ ಛఆͷύεʹ͍ͭͯτϦΨ͕͋Δ ▸ ϩʔΧϧDNSΛૡ͍જΔՄೳੑ
TEXT RESOURCE ANALYSIS ▸ Assetͷதʹڵຯਂ͍༰ ▸ WebViewΛࢹ͢ΔΑ͏ͳهड़ →ҰݟύϑΥʔϚϯεऔಘʹݟ͑Δɺ͕… →͜Ε͕औΓͭ͘ͱ͢Εେมͳ
TEXT ARCHITECTURE ▸ Private Frameworkͱͯ͠શϩδοΫ͕֨ೲ →ϝΠϯόΠφϦ͕͵͚ͷ֪ʂ ▸ ετϦϯάςʔϒϧɺϝιουςʔϒϧͷѹॖ ▸ ࣮ߦ࣌ʹϩʔμʔ͕ల։
→Private FrameworkԽ͍ͯ͠Δཧ༝
TEXT ARCHITECTURE ▸ ѹॖ ▸ LZFSE: COMPRESSEDV2_BLOCK (“bvx2”) ▸ _C_ҎԼͷηΫγϣϯˠ_D_ҎԼల։
▸ cstring, ustring, methname, methtype ▸ ͋Εʁcfstring, selrefs… →͓ͦΒ͘ผϥΠϒϥϦ͔Βల։͍ͯ͠Δ →ਅ૬ෆ໌͕ͩଟཚ࡞
TEXT ARCHITECTURE ▸ cfstring, selrefsͱ… ▸ Objective-Cͷจࣈྻϝιουࢀর →ղੳʹඞཁෆՄܽͳใ ▸ จࣈྻͰͳ͘ΞυϨεςʔϒϧ
→ਖ਼֬ʹղ͔ͳ͍ݶΓҙຯΛҝ͞ͳ͍
TEXT PROTECTION ▸ ੩తʹଘࡏ͠ͳ͍ →Objective-C 2.0 Messageղੳ͕ޮ͔ͳ͍ →iOSΞϓϦղੳʹ͓͍ͯக໋త ▸ ਵͱಛघͳߏ
▸ ྺͷTikTokɺ͓ΑͼಉࣾʹΑΔฒߦϓϩμΫ τ (e.g. Lemon8) ͰྫΛݟͳ͍… ݼଉͳखஈ
TEXT BREACHING THE PROTECTION ▸ ϝϞϦμϯϓ߈ܸ ▸ ࣮ࡍʹಈ࡞ͤ͞ԾϝϞϦΛࠜͦ͗͜ऩू →ಈతใΛԣऔΓ͢Δৗखஈ ▸
Fridump →readonly/writableͷ2ηοτऔΔ ▸ cfstring, selrefs͜ΕͰऔΕΔ…ͣ
TEXT BREACHING THE PROTECTION ▸ ϝϞϦμϯϓ߈ܸ ▸ …͕ɺASLRͷհࡏʹҙ ▸ ASLR:
Address Space Layout Randomization ▸ ͕࣮ߦ࣌ʹΞυϨεۭؒΛγϟοϑϧ ▸ ϝϞϦഁյܥ߈ܸʹର͢Δॏཁͳޚػߏ ʢBuffer over fl ow, Return-oriented programmingͳͲʣ
TEXT BREACHING THE PROTECTION ▸ Կ͕ʁ ▸ ࣮ߦϑΝΠϧ: ૬ରΞυϨεࢀর (PIE:
Position-Independent-Executable) ▸ ࣮ߦ࣌Πϝʔδ: ઈରΞυϨεࢀর ▸ Πϝʔδ͔ΒηΫγϣϯΛషΓࠐΉ͚ͩͰ ΞυϨε͕߹Θͳ͍ (→ςʔϒϧ͕ਖ਼֬ʹղ͚ͳ͍) ▸ ࣮ߦϑΝΠϧ࠶ߏ͠ʹ͍͘ →ASLRΛ࡞ʹར༻͍ͯ͠ΔΑ͏ʹݟ͑Δ
TEXT BREACHING THE PROTECTION ▸ ϑΝΠϧͰͳ͘ϝϞϦΠϝʔδΛղੳ ▸ Մೳ͕ͩ໘Ͱ͋Δ →ηΫγϣϯԟʑʹͯ͠ଟ ▸
ΤϯτϦϙΠϯτͳͲͷใ͕શͯܽམ →Ͳ͔͜ΒղੳΛߦͳ͏ͷ͔ʁ
TEXT BREACHING THE PROTECTION ▸ ໘͕ͩͬͨؤுͬͨ →ࠓճro͔Β15%ఔ; rw͔ΒཁٻʹԠͯ͡ →selrefs͕ͦͦwritable… ▸
ΤϯτϦϙΠϯτ ▸ 103240000͕Mach-Oϔομ →શͰͳ͍ͷͰ݁ہGhidraʹͤͨ (“Analyze function starts”) ▸ ͔͔͕࣌ؒͬͨ…
TEXT PROTECTION IS HISTORY ▸ ༗ҙٛͳใ͕औΕΔΑ͏ʹͳͬͨ (~30min. / M1 MacBookPro)
▸ एׯͷ ▸ objc_msgSendͳͲͷC APIίʔϧͷղܾ ▸ ηΫγϣϯͷܧଓతͳషΓࠐΈ
TEXT VERDICT ▸ Ϧιʔεʹpayload͕ଘࡏɺ͔ͭ ▸ WebViewʹऔΓ͘Մೳੑͷ͋ΔAPIίʔϧ͋ Δ͍ͦ͏͍͏ڍಈʹͭͳ͕ΔγϯϘϧ͕ଘࡏ ▸ ຊདྷ͏গ͖ͪ͠ΜͱηΫγϣϯΛ࠶ߏ͠ ͯݟΔඞཁ͕͋Δɺ͕ݶΓͳ͍Ϋϩ
→ཪ͚͕ͮऔΕͨ
BUSTED. Uni. Cat. Plausibly part Manx. by ▓▒░ TORLEY ░▒▓
on flickr, CC-BY-SA 2.0
CASE 2: ANDROID
TEXT TARGETS ▸ TikTok (us): 25.9.4 (Android)
TEXT TOOLCHAIN ▸ Trueseeing: Non-decompiling Android app vulnerability scanner (alterakey
et al.) Swiss Army Knife on black by Edgar Pierce on flickr, CC-BY 2.0
TEXT RESOURCE ANALYSIS ▸ Assetͷதʹڵຯਂ͍༰ ▸ WebViewࢹεΫϦϓτྨͷଘࡏ →iOS൛ͱಉ
TIME OUT
TEXT TAKEAWAYS ▸ In-app browserԚછݕग़αΠτສೳͰͳ͍ ▸ Android͓ͦΒ͘ಉ༷ (payload͕֬ೝͰ͖Δ) ▸ In-app
browser֎͔Β͍Ζ͍ΖհೖͰ͖Δ ▸ In-app browserΛ༏ઌ͢Δ෩ைͲ͏ͳͷ͔ →ϢʔβʹબࢶΛఏڙ͖͢ →Androidಉ༷
FIN. 30.8.2022 TAKAHIRO YOSHIMURA (@ALTERAKEY)