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
54
Pkl/2024-04-17-llt31
ottijp
0
82
JavaScriptのデバッグ/2023-09-04-llt30
ottijp
0
150
CDK for TerraformでAzureリソースをデプロイする/2023-05-15-llt29
ottijp
1
270
TWELITEへの誘い/2022-12-27-llt28
ottijp
0
150
ビルドツールBazelを触ってみた/2022-09-28-llt27
ottijp
0
160
HashiCorp Vaultを使ったシークレットのセキュアな一元管理 〜Ansibleを添えて〜/2022-07-12-llt26
ottijp
0
140
AWSインフラのデプロイをCDKでカイゼンする/2022-03-23-llt25
ottijp
0
86
Amazon Timestreamでデータ補間/2021-12-27-llt24
ottijp
0
100
Other Decks in Programming
See All in Programming
おやつのお供はお決まりですか?@WWDC25 Recap -Japan-\(region).swift
shingangan
0
140
#QiitaBash MCPのセキュリティ
ryosukedtomita
1
1.5k
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
320
マッチングアプリにおけるフリックUIで苦労したこと
yuheiito
0
210
階層化自動テストで開発に機動力を
ickx
0
160
ニーリーにおけるプロダクトエンジニア
nealle
0
950
RailsGirls IZUMO スポンサーLT
16bitidol
0
200
TypeScriptでDXを上げろ! Hono編
yusukebe
3
780
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
1.1k
Advanced Micro Frontends: Multi Version/ Framework Scenarios @WAD 2025, Berlin
manfredsteyer
PRO
0
400
Rails Frontend Evolution: It Was a Setup All Along
skryukov
0
280
「次に何を学べばいいか分からない」あなたへ──若手エンジニアのための学習地図
panda_program
3
350
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Raft: Consensus for Rubyists
vanstee
140
7k
We Have a Design System, Now What?
morganepeng
53
7.7k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Speed Design
sergeychernyshev
32
1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Designing Experiences People Love
moore
142
24k
Thoughts on Productivity
jonyablonski
69
4.7k
Statistics for Hackers
jakevdp
799
220k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
How to train your dragon (web standard)
notwaldorf
96
6.1k
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