Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
XCSSET/2020-09-02-llt16
Search
Satoshi SAKAO
September 02, 2020
Programming
130
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
XCSSET/2020-09-02-llt16
社内のLTイベント「えるLT Vol.16 オンライン」で発表した資料です
Satoshi SAKAO
September 02, 2020
More Decks by Satoshi SAKAO
See All by Satoshi SAKAO
Testcontainers/2024-11-20-llt32
ottijp
0
120
Pkl/2024-04-17-llt31
ottijp
0
140
JavaScriptのデバッグ/2023-09-04-llt30
ottijp
0
200
CDK for TerraformでAzureリソースをデプロイする/2023-05-15-llt29
ottijp
1
360
TWELITEへの誘い/2022-12-27-llt28
ottijp
0
190
ビルドツールBazelを触ってみた/2022-09-28-llt27
ottijp
0
230
HashiCorp Vaultを使ったシークレットのセキュアな一元管理 〜Ansibleを添えて〜/2022-07-12-llt26
ottijp
0
190
AWSインフラのデプロイをCDKでカイゼンする/2022-03-23-llt25
ottijp
0
130
Amazon Timestreamでデータ補間/2021-12-27-llt24
ottijp
0
130
Other Decks in Programming
See All in Programming
Railsバージョンを4倍にした話
optim
0
840
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
140
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
180
Materialが消えた日 〜真っ白なFlutterキャンバスにRenderObjectで絵を描く〜
umigishiaoi
0
120
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
190
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
1.1k
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.2k
Jetpack Compose Mechanisms
skydoves
3
900
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
250
Event is what happens
moro
2
2.1k
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
3
1.3k
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
210
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
23k
Code Reviewing Like a Champion
maltzj
529
40k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
550
Claude Code のすすめ
schroneko
67
230k
Visualization
eitanlees
153
17k
It's Worth the Effort
3n
188
29k
Abbi's Birthday
coloredviolet
4
11k
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