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
XCSSET/2020-09-02-llt16
Search
Satoshi SAKAO
September 02, 2020
Programming
1
100
XCSSET/2020-09-02-llt16
社内のLTイベント「えるLT Vol.16 オンライン」で発表した資料です
Satoshi SAKAO
September 02, 2020
Tweet
Share
More Decks by Satoshi SAKAO
See All by Satoshi SAKAO
Testcontainers/2024-11-20-llt32
ottijp
0
63
Pkl/2024-04-17-llt31
ottijp
0
90
JavaScriptのデバッグ/2023-09-04-llt30
ottijp
0
160
CDK for TerraformでAzureリソースをデプロイする/2023-05-15-llt29
ottijp
1
290
TWELITEへの誘い/2022-12-27-llt28
ottijp
0
160
ビルドツールBazelを触ってみた/2022-09-28-llt27
ottijp
0
170
HashiCorp Vaultを使ったシークレットのセキュアな一元管理 〜Ansibleを添えて〜/2022-07-12-llt26
ottijp
0
160
AWSインフラのデプロイをCDKでカイゼンする/2022-03-23-llt25
ottijp
0
94
Amazon Timestreamでデータ補間/2021-12-27-llt24
ottijp
0
110
Other Decks in Programming
See All in Programming
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
180
Django Ninja による API 開発効率化とリプレースの実践
kashewnuts
0
990
Web フロントエンドエンジニアに開かれる AI Agent プロダクト開発 - Vercel AI SDK を観察して AI Agent と仲良くなろう! #FEC余熱NIGHT
izumin5210
3
410
プログラミングどうやる? ~テスト駆動開発から学ぶ達人の型~
a_okui
0
190
フロントエンド開発に役立つクライアントプログラム共通のノウハウ / Universal client-side programming best practices for frontend development
nrslib
7
3.9k
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
natmark
2
460
NetworkXとGNNで学ぶグラフデータ分析入門〜複雑な関係性を解き明かすPythonの力〜
mhrtech
3
1k
明日から始めるリファクタリング
ryounasso
0
120
ネイティブ製ガントチャートUIを作って学ぶUICollectionViewLayoutの威力
jrsaruo
0
130
開発者への寄付をアプリ内課金として実装する時の気の使いどころ
ski
0
350
WebエンジニアがSwiftをブラウザで動かすプレイグラウンドを作ってみた
ohmori_yusuke
0
170
Model Pollution
hschwentner
1
180
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
Optimizing for Happiness
mojombo
379
70k
RailsConf 2023
tenderlove
30
1.2k
Practical Orchestrator
shlominoach
190
11k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
The Invisible Side of Design
smashingmag
301
51k
Writing Fast Ruby
sferik
629
62k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Transcript
XCSSET Satoshi SAKAO えるLT Vol.16 2020/09/02 (Wed) 1 説明とexploitのデモ
話すひと 2 インフォコム株式会社 品質マネジメント推進室 ソフトウェアエンジニア JS (ES6) / Node.js /
GCP / IoT / iOS (Swift) 猫,断捨離に拍車をかける Satoshi SAKAO @ottijp
XCSSETとは • Xcodeプロジェクトに感染するタイプのマルウェア • 8/13にトレンドマイクロが発表 • Xcodeプロジェクトの共有や依存によって感染 • 2つのゼロデイexploitを利用している •
Data Vaultsの動作上の欠陥を用いてCookieを盗む • 開発用Safariを悪用する 3
攻撃されること • SafariのCookieの読み取り • Evernote, Notes, Skype, Telegram, QQ, WeChat
から情報を盗み出し • カレントスクリーンのスクリーンショットを撮影 • 感染したマシンから攻撃者のサーバにファイルをアップロード • ファイルの暗号化とランサムメッセージの表示 4
攻撃されること(UXSSによる可能性) • 表示されるWebサイトの改ざん • 暗号通貨のアドレス改ざんや置き換え • amoCRM, Apple ID, Google,
Paypal, SIPMarket, Yandex の認証情報の読み取り • Apple Storeのクレジットカード情報の読み取り • パスワード変更のブロックや新しいパスワードの読み取り • アクセスした特定のサイトのスクリーンショット 5
感染の広がり • 感染したXcodeプロジェクトがビルドされた時に 被害者マシンの他のXcodeプロジェクトにも感染する • どこから感染が始まったかは明確でない • すでにGitHubリポジトリにも感染が確認されている • 380の被害者IPがマルウェア作成者に収集された
• 中国,インドでの感染が多数(中国152,インド103) 6
予防方法 • トレンドマイクロいわく • 公式で信用できるマーケットプレイスからのみDLする • マルチレイヤのセキュリティソリューションを使う • 他には? •
コミット時にプロジェクト構成ファイルの変更を確認する? 7
仕組み • マルウェアの混入 • .xcworkspacedataが変更され,PJとは異なるディレクトリへの参照が入る • .xcodeprojに隠しディレクトリが作成される (マルウェアの実態とスクリプト) • マルウェアのインストール
• ビルドプロセスで隠しディレクトリのスクリプトが実行される • スクリーンショットの取得開始 • main.scptをApplication Scriptディレクトリに作成したり, main.scptを含むアプリケーションバンドルを作成する 8
仕組み • main.scpt • OS情報の取得 • ブラウザ等のプロセスの停止 • マルウェアの各モジュールのダウンロード •
osacompileを使って,公式なアプリを模したフェイクappを作成 • フェイクappを実行 • フェイクapp • マルウェアの各モジュールの実行 • 50程度のモジュール • replicatorとpods_infectで,他のプロジェクトへマルウェアのインジェクションを行う 9
面白かったこと 10 https://documents.trendmicro.com/assets/pdf/XCSSET_Technical_Brief.pdf
11 demo 自分のSafari Cookieを盗む
12 Appendix
SIP: System Integrity Protection • El Capitanから採用された • rootであっても,システムの重要なファイルへはアクセス不可 •
無効化にはセーフブートが必要がある(当然推奨されない) • 当初,HomeBrewが動かなくなってトラブルが起きたりした • Mac のシステム整合性保護について - Apple サポート https://support.apple.com/ja-jp/HT204899 13
Data Vaults • App自体がサンドボックス化されているかどうかに関係なく, データへの不正アクセスから保護するために カーネルによって適用されるメカニズム • Data Vaultsの一部がSIP? •
暗号化とデータ保護の概要 - Apple サポート https://support.apple.com/ja-jp/guide/security/ sece3bee0835/web 14
UXSS: Universal Cross Site Scripting • 特定のサイトの脆弱性ではなく,任意のサイトでXSSができる • Webサーバ側の脆弱性ではなく,ブラウザの脆弱性を利用 •
2015年にIEの脆弱性が見つかり,問題になった • SOP(Same Origin Policy)の迂回 • 「Internet Explorer」に深刻な脆弱性--UXSS攻撃が可能に - ZDNet Japan] https://japan.zdnet.com/article/35059988/ • XCSSETではsafari_remoteモジュールでフェイクSafari appを作り, ゼロデイexploitにより,ユーザの認証なしにこれが起動される 15
refs • Xcodeプロジェクト経由で拡散するMac向けマルウェア「XCSSET」が登場 - GIGAZINE https://gigazine.net/news/20200817-xcsset-mac-malware/ • XCSSET Mac Malware:
Infects Xcode Projects, Performs UXSS Attack on Safari, Other Browsers, Leverages Zero-day Exploits - TrendLabs Security Intelligence Blog https://blog.trendmicro.com/trendlabs-security-intelligence/xcsset-mac-malware-infects- xcode-projects-performs-uxss-attack-on-safari-other-browsers-leverages-zero-day-exploits/ • New Mac malware infects and spreads via Xcode projects | Appleinsider https://appleinsider.com/articles/20/08/16/new-mac-malware-infects-and-spreads-via- xcode-projects • XCSSET Technical Brief https://documents.trendmicro.com/assets/pdf/XCSSET_Technical_Brief.pdf • Macの新マルウェア「XCSSET」の問題点と予防対策 | ライフハッカー[日本版] https://www.lifehacker.jp/2020/08/218881what-mac-users-should-know-about-the-new- xcsset-malware.html 16