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
Windows標準の機能を使用した標的型攻撃の対策 ドライブ・バイ・ダウンロード編 #ssmj...
Search
Takuji Kitagawa
August 11, 2015
Technology
6
3.7k
Windows標準の機能を使用した標的型攻撃の対策 ドライブ・バイ・ダウンロード編 #ssmjp /ssmjp1507-2
2015年07月の#ssmjp おかわり!
http://ssm.pkan.org/?p=695
での発表資料です。
Takuji Kitagawa
August 11, 2015
Tweet
Share
More Decks by Takuji Kitagawa
See All by Takuji Kitagawa
WannaCryのKill Switch、亜種 #ssmjp /ssmjp1710-3
kitagawa
1
650
WannaCryの概要・使用された脆弱性 #ssmjp /ssmjp1710-2
kitagawa
4
3.1k
WannaCryの暗号化・復号のプロセス、身代金の支払い、復号ツール #ssmjp /ssmjp1710-1
kitagawa
4
3.1k
Windows標準の機能を使用した標的型攻撃の対策 #ssmjp /ssmjp1507
kitagawa
14
9.5k
オープンソースの匿名投稿プラットフォーム「SecureDrop」
kitagawa
0
1.1k
Other Decks in Technology
See All in Technology
【平成レトロ】へぇボタンハック👨🔧
vanchan2625
0
120
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
130
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
140
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
120
A Tour of Anti-patterns for Functional Programming
guvalif
0
660
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
250
CDCL による厳密解法を採用した MILP ソルバー
imai448
3
300
アプリエンジニアのためのGraphQL入門.pdf
spycwolf
0
130
強いチームと開発生産性
onk
PRO
36
12k
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
230
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
320
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Documentation Writing (for coders)
carmenintech
65
4.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
440
How to train your dragon (web standard)
notwaldorf
88
5.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Rails Girls Zürich Keynote
gr2m
94
13k
The Cult of Friendly URLs
andyhume
78
6k
KATA
mclloyd
29
14k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Transcript
Windows標準の機能を使用した 標的型攻撃の対策 ドライブ・バイ・ダウンロード編 @kitagawa_takuji 2015年8月7日 #ssmjp
前回の最後のスライド
• 添付ファイル型 – 脆弱性を利用しない攻撃(実行ファイル型) • AES(ZoneID)の特性を活かす セキュリティ警告、SmartScreen、ソフトウェア制限ポリシ/AppLocker – 既知の脆弱性を利用した攻撃(Office、PDF reader等)
• パッチの適用、保護されたビュー、EMET – ゼロデイ脆弱性を利用した攻撃(Office、PDF reader等) • 保護されたビュー、EMET • URLクリック型 (水飲み場攻撃、ドライブバイダウンロード攻撃と対策は共通) – 脆弱性を利用しない攻撃(実行ファイル型) • AES(ZoneID)の特性を活かす セキュリティ警告、 SmartScreen、ソフトウェア制限ポリシ/AppLocker – 既知の脆弱性を利用した攻撃(ブラウザ、プラグイン等) • パッチの適用、(Right)Click-to-Play、EMET – ゼロデイ脆弱性を利用した攻撃(ブラウザ、プラグイン等) • (Right)Click-to-Play 、EMET 標準機能による対策だけでも多層防御になります
1. 標的型メール攻撃のURLクリック型 2. 水飲み場攻撃(標的型攻撃の一種) 3. 不特定多数を対象としたドライブバ イダウンロード攻撃 これらの対策は共通
今日の本題 ブラウザ・プラグインの脆弱性を狙った ドライブバイダウンロード攻撃 の対策
ブラウザ・プラグインの脆弱性を狙った ドライブバイダウンロード攻撃 Javaの脆弱性を利用した攻撃が減少 • Javaのゼロデイの減少(Java7のサポート終了、Java8では脆弱性が 生じ難い設計になっている) • Javaの自動更新機能 • Chromeの既定でNPAPIのサポートが無効化
• FireFox、IEで古いバージョンのJavaプラグインをブロック • JavaアプレットなどJREが必要となる環境の減少 • Jave6、Java7などの古いバージョンを更新せず使い続けている場合、 攻撃の被害に
IEが古いバージョンのJavaプラグインをブロック
Firefoxでも古いバージョンのJavaプラグインをブロック
MyJVNバージョンチェッカに JREが不要な.NET Framework版がリリース
Javaが不要な場合はアンインストール Javaは必要だが、ブラウザでの実行は不要な場合は、セキュリティ設定で 「ブラウザでJavaコンテンツを有効にする」のチェックがないことを確認
• Flash Playerの脆弱性が現在も報告され続けている • Flashを無効化すると機能しなくなるサイト(動画、ゲーム等)がま だ大量に残っている • 業務関連でもFlash Playerが必要なサイトがある •
Flash Playerのプラグインを完全に無効にすることは難しい • FirefoxではFlash以外のプラグインは既定で「実行時に確認」に なっているが、Flashだけは「常に有効化」になっている それだけ、Flashがまだ必要とされている ブラウザ・プラグインの脆弱性を狙った ドライブバイダウンロード攻撃 Adobe Flash Playerに対する攻撃が現在の主流に
Flash Playerの脆弱性が現在も報告され続けている
Adobe Flash Playerに対する攻撃の対策 ブラウザ・プラグインを最新に更新することが基本 • Windows 8 IE10/ Windows 8.1
IE11/ Windows 10 Edgeでは、 Windows UpdateでFlash Playerの更新が配信される • Windows Vista/Windows 7のIE(IE11も含む)では、Flash Playerの更新をインストールする必要がある • Chromeでは、Chrome自身の更新にFlash Playerの更新が含ま れる • Firefoxでは、Flash Playerの更新をインストールする必要がある。 古いバージョンのFlash Playerを使用している場合は警告が出る が、無視して実行することも可能
Adobe Flash Playerが最新であることの確認方法 http://www.adobe.com/jp/software/flash/about/ にアクセスし ブラウザのプラグインのバージョンと提供されているバージョンが一致することを確認
Flash Playerプラグインを最新に更新することが基本だが • 企業では動作検証のために、Windows Updateの公開から実際に クライアントに配布されるまでに一週間程度のタイムラグが生じ ることも • Windows7のIEの場合、企業ではSCCMの様な管理ツールを使っ てFlash
Playerを自動配布していることが多いが、これもタイム ラグが生じる可能性。また、利用者にインストールを任せている 場合、正しく適用されていない場合も • Chromeでは、ブラウザを再起動しないと更新されないが、再起 動せずに使い続けている場合もある • Firefoxでは、古いバージョンのFlash Playerを使用している場合 は警告が出るが、警告を無視して実行することも可能
公表されていないゼロデイを隠し持っている 諜報機関等に狙われた場合は仕方ないとして 広く攻撃コードが出回っているのにアップデート が提供されていない場合がある
多くの注意喚起で アップデートが提供されるまで Flash Playerを無効にすることが 推奨されているが 業務でFlash Playerが必要だったり どうしても動画を見たい、ゲームをしたい という人が無効にせずに使い続けることも
このセッションでは ゼロデイ攻撃が出回っている場合や アップデートが遅れてしまった場合でも 出来るだけ安全にFlash Player を使用する方法を考えます Flash Player以外の他のプラグインでも基本的な考えは同じ
100%の安全を求める人は いますぐFlash Playerプラグイン を無効化して下さい 100%の安全を保証するものではありません
Flash Playerの脆弱性を悪用したPCの乗っ取りと聞くと この様な画像が表示されることを 思い浮かべるかも知れませんが
Flash Playerの脆弱性を悪用した攻撃で ドクロが表示されることはありません
ほとんどの場合 攻撃コードは、隠れたiframeなどで ユーザから見えない形で バックグラウンドで実行されます
動画やアニメーションなどが全くない ページでも、見えない部分に 攻撃コードが埋め込まれている 可能性があります
Flash Playerの脆弱性の悪用 ≠ 動画やアニメーションを見る
有名な(訪問者の多い)正規のサイト を改ざんし、見えない部分に攻撃コー ドを埋め込んで感染させる 最近、多い手口
ゼロデイ脆弱性が出ても 動画サイトやゲームサイトを 訪問しなければ安心な訳ではない
Click-to-Play プラグイン実行の明示的な許可
Click-to-Play • 正規サイトの改ざん(水飲み場攻撃も含む)では、正規サ イトそのものに、攻撃ツール(ExploitKit)が設置される のではなく、攻撃ツールが設置された外部の悪性サイトに リダイレクトするiflameや難読化したJavaScriptのみが正 規サイトに埋め込まれることが多い • Exploitコードは利用者に気付かれないようバックグラン ドで見えない形で実行される
• 全てのサイトに対してプラグインの実行を許可していると、 悪性サイトからダウンロードされた脆弱性を突くプラグイ ンも自動的に実行されてしまう • Click-to-Playで必要な場合のみプラグインの実行を明示的 に許可することで、悪性サイトからのプラグインの実行の 可能性を出来るだけ少なくする
Click-to-Play • サイト全体を許可してしまうと、見えない形で埋め込ま れた攻撃コードも実行されてしまうため要素ごとに実行 出来ることが望ましい • 1クリックで実行出来てしまうと、クリックジャッキン グや間違えてクリックしてしまう可能性があるため、 (多少利便性は低下するが)右クリックで実行出来た方 が望ましい
• 外部サイトからのFlashファイル読み込みを拒否する設定 はない。CDN(ファイルサイズが大きいことが多い)の 利用や、動画広告配信、動画サイトの埋め込み等で、外 部サイトから読み込まれることが多いため
Click-to-Play • ブラウザによって実装が異なる。また、信頼済みサイト にExploitKitが設置された場合など、100%防げるもの ではないので、プラグインの更新がやはり基本
Chromeの設定
Chromeの設定
コンテンツの設定で「プラグインコンテンツをいつ実行するかを選択する」を選択 (既定は「プラグインコンテンツをすべて実行する」)
Chromeベータ版では「重要なプラグインコンテンツを検出して実行する」が既定 9月頃にリリース予定の安定版で既定になる予定
「重要なプラグインコンテンツを検出して実行する」が既定となるのはバッテリーの節約のため Chrome Blogではセキュリティについての言及がないため不正コード実行の阻止に役立つかは不明
chrome://plugins で「常に実行を許可する」がチェックされてないことを確認
必要な場合のみ右クリックで「このプラグインを実行」 Chrome42よりClick-to-Play からRightClick-to-Playに変更 (クリックジャッキングや間違ってクリックしてしまうことに対する対策)
アドレスバー右のプラグインマークをクリック
信頼できるサイトを「常に許可する」ことも可能 本当に信頼出来るサイト以外は、毎回、要素毎に許可することを推奨
「常に許可する」とプラグインの例外に追加される
1ページに複数要素がある場合、要素毎に実行をコントロール出来る
複数要素の内、1要素だけを実行
プラグイン毎の設定は出来ない すべてのプラグインで右クリックが必要になる
特定のプラグインは常に有効にしたい場合 chrome://plugins で「常に実行を許可する」をチェック
Firefoxの設定
Firefoxでは古いバージョンのFlashプラグインを使用していると警告が出る ただし、無視して実行することも可能
プラグインの初期設定が「実行時に確認する」(Click-to-Play) 但し、Adobe Flashだけは「常に有効化する」になっている
FirefoxのClick-to-Playの設定 アドオンを選択
アドオンマネージャでFlashを「実行時に確認する」に設定
Flash Playerが必要なサイトにアクセスすると下記の様な表示 本当に必要な場合のみクリック
「今だけ許可」か「常に許可する」を選択
1ページに複数要素がある場合
要素毎の許可は出来ず、サイト毎の許可となる
FirefoxのClick-to-Playでは (外部サイトからの読み込みも含めた) サイト全体の許可のため ページの見えない部分に不正なコードが 埋め込まれていた場合 攻撃コードが実行されてしまう
要素単位でプラグインの実行を管理する拡張機能 Click to Play per-element
クリックで要素ごとにプラグインを一時的に有効化
右クリックで有効化も可能だがChromeの様に必須ではない 1クリックで有効になってしまうので、クリックジャッキングや 間違って有効にしてしまう可能性も
アドレスバー左をクリックすることによりページ全体を許可することも可能
Internet Explorerの設定
Internet Explorerの設定 アドオンの管理
アドオンの管理でFlashを右クリックし「詳細情報」
既定ではすべてのサイトが許可されている(*)ので すべてのサイトの削除をクリック
Flashが必要なページにアクセスすると下記の様なポップアップが出るので 必要な場合のみ「許可」する 許可しないと毎回このポップアップが出てブラウザ下部を専有するので、 つい許可してしまいがち
一度許可したサイトはホワイトリストとして登録される 一時的な許可は出来ない
複数の要素がある場合、複数回ダイアログが出るが どの要素を有効にしているのか分からない よって、攻撃コードの実行を有効にしてしまう可能性がある
EMET(Enhanced Mitigation Experience Toolkit)の Attack Surface Reduction (ASR) 特定のライブラリやプラグインの読み込みをブロックする事が可能。 セキュリティ・ゾーン毎の制御が可能なので、例えば、イントラ
ネットゾーンと信頼済みゾーンではプラグインの読み込みを許可し、 インターネットゾーンでは拒否する設定が可能
Enhanced Mitigation Experience Toolkit(EMET) ゼロデイ攻撃やパッチの適用漏れに有効だが、 正規のアプリが動作しないなどの不具合が起きることも多いので導入には注意が必要
EMETのAttack Surface Reduction (ASR)により IEでイントラネット、信頼済みサイト以外でのFlashプラグインの読み込みを禁止する設定 Apps で iexplore.exe を選択 Show
All Settings をクリックし Attack Surface Reduction のModulesに flash*.ocx を追加 Flashが必要なサイトをインターネットオプションで「信頼済みサイト」に追加する
インターネットオプションで許可するサイトを「信頼済みサイト」に追加
EMETのAttack Surface Reduction (ASR)がFlashプラグインをブロック
EMETのRecommended Settingでは Word,Excel,PowerPointなどのOfficeソフトでは Attack Surface Reduction (ASR)によりflash*.ocx が既定で禁止されている
IEでは、アドオンの管理を使った場合でも EMETのASRを使った場合でも 要素毎のコントロールは出来ず (外部サイトからの読み込みも含めた) サイト全体での許可となる
そのため、ゼロデイ攻撃が出回っている状況では IEでのFlashプラグインの有効化は 社内サイトなどの本当に信頼できるサイトのみ に留め、外部サイトの閲覧には 要素毎の有効化を出来る様に設定した ChromeやFirefoxを使用することを推奨
ブラウザ毎の推奨設定 • Chrome 設定->プライバシー->コンテンツの設定->プラグイン 「プラグインコンテンツをいつ実行するかを選択する」をチェック 右クリックで要素毎に許可(RightClick-to-Play) • Firefox 「Click to
Play per-element」拡張機能をインストール クリックで要素毎に許可(Click-to-Play) 右クリックが必須ではないので間違ってクリックしてしまう可能性も • IE EMETのAttack Surface Reductionにflash*.ocx を追加 プラグインの実行を許可するサイトを信頼済みサイトに追加 要素毎の許可は出来ないため、信頼済みサイトにマルウェアを仕込ま れた時の感染リスクは残る EAF+などEMETの他の緩和策が攻撃を阻止できる可能性も EMETにより正規のソフトウェアの動作に不具合が出る可能性もある
Flash Playerに関するブラウザ毎の特徴(推奨順) 1.Chrome • ブラウザ自体の更新にFlash Playerの更新も含まれる(ブラウザの更新方法も容易) • PPAPI(Pepper Plugin API)というサンドボックス化された安全な方法で実装されて
いる(但し、サンドボックスをバイパスする攻撃コードも存在する) • 右クリックで要素毎に許可する設定が可能(RightClick-to-Play) 2.Firefox • 更新を都度インストールする必要がある • 古いバージョンでは警告が出るが無視して実行することも可能 • NPAPI(Netscape Plugin API)という古く、セキュリティ上の問題が指摘されてい る方法で実装されている(Chrome42でNPAPIを初期段階で無効化、Chorme45で 完全無効化) • 標準では要素毎の有効化は出来ない • 要素毎の有効化を可能とする拡張機能を入れても1クリックで有効になってしまう ので、クリックジャッキングなどによるバイパスや、間違ってクリックしてしまう ことが生じ易い 3.IE • Win8,8.1のIE11ではWindows Updateで更新が配布される • Vista,Win7では、更新のインストールが必要 • ブラウザの表示領域を専有するポップアップが毎回出る • 一時的な許可は出来ず、すべて永続的な許可となる • 要素毎の有効化は出来ず、サイト全体での有効化となる
広告配信サービスからの感染 Malvertising
東京都
環境省
10日間で計1000万人訪問のWebサイトの広告配信に Angler Exploit Kitが設置されていた
日本のサイトも複数報告されている
朝日=huffingtonpost.jp ? 読売=hochi.co.jp ? 続報や各社からの発表はないため、詳細は不明
ブラウザ・プラグインを最新に更新することや Click-to-Playを設定することで 広告配信経由のマルウェア感染 を防ぐことが出来る
ほとんどのインターネットサービスが無料 なのは広告収入で成り立っているため。 よって、こういった対策を紹介すべきか悩 みますが、広告配信業界のマルウェア対策 や情報開示が進んでいない状況のため、や むを得ず紹介します。
広告ブロックの拡張機能を導入することで 広告配信経由のマルウェアへの感染リスク を更に低減することが出来る 通常の表示 広告ブロックを有効化
出来るだけFlashが不要な サイトを利用する HTML5対応の動画サイト等
Youtube Vimeo Daily motion Ustream Veoh Hulu ニコニコ 動画 GYAO!
(Yahoo! 動画) FC2動画 ひまわり 動画 パンドラ TV Chrome44 (64bit) ◦ ◦ ◦ X X X X X X X X Firefox 39 ◦ ◦ ◦ X X X X X X X X IE11(Win8.1) ◦ ◦ ◦ X X X X X X X X Edge(Win10) ◦ ◦ ◦ X X X X X X X X 各動画サイトのHTML5対応状況 WindowsのブラウザでFlashを無効にして再生出来るかをチェック
iOSやAndroid 4.4, 5.0, 5.1以降では、 Flashが使えないため、PC用サイトで はFlash Playerを要求するサイトでも スマホ用サイトではHTML5に対応し ていることが多い HTML5対応サイトがまだ少ない印象があるが
PCのブラウザでアクセスするとFlash Playerを要求される
スマホ用サイトのURLが判れば
スマホ用サイトにアクセスすれば PCのブラウザでもHTML5で再生できることが多い
PCでアクセスした場合、スマホ用 サイトの案内は出ないことが多い (逆はあることが多い) また、同じURLで、User-Agentを 見てPC用、スマホ用に最適化した コンテンツを返すサイトもある
User-Agentをスマホのものに変更し てアクセスすることで、Flash Player プラグインを無効にしたままHTML5で 動画を再生出来ることが多い
Chromeの開発者ツールの利用
PCのChromeでアクセスするとFlash Playerを要求される
F12キーで開発者ツールを起動 左から2番目のデバイスのアイコンをクリックしエミュレーション機能を有効
Deviceを選択
Deviceを選択しリロードすることで Flash Playerを無効にしたまま、HTML5で再生
クリックでUser-Agentを 簡単に変更できる ブラウザ拡張機能
UserAgentを変更する拡張機能(Chrome)
UserAgentをクリックで簡単に変更可能
UserAgentを変更する拡張機能(Firerfox)
PC用サイトでの再生にはFlashが必要
UserAgentをスマホ(iOS)に変更
UserAgentを確認
Google先生に聞くとスマホ用サイトに自動的に誘導される
Flash Playerを無効にしたまま、HTML5で再生
専用アプリがないと再生できないなど スマホのブラウザでの再生に 対応していない動画サイトもある 各ブラウザがサポートするメディア 形式の違いにより再生出来ないことも
問題はFlashを使った ブラウザ・ゲーム
高機能なゲームでは、まだまだFlashが必要なものも多いので 専用のWindowsタブレットなどを購入するのも一案 その場合も、ブラウザの推奨設定を行う
• ブラウザ・プラグインを最新に更新することが基本 • Click-to-Playを設定し、要素毎に実行を許可することが望ましい Chrome「プラグインコンテンツをいつ実行するかを選択する」 Firefox「Click to Play
per-element」拡張機能 • Chromeの右クリックで実行を許可する方法(RightClick-to-Play)が より望ましい • IEでは要素毎に実行を許可することが難しい 本当に信頼できるサイトのみをインターネットオプションで信頼済み サイトに登録し、それ以外のサイトのFlashプラグインの読み込みを EMETのAttack Surface Reductionにより禁止する設定に • EMETをブラウザに対し有効にすることで緩和策となるが、不具合が 生じることも多いので、十分に検証した上で設定することを推奨 • 業務の都合でプラグインを更新できない場合、業務サイト用のブラウ ザ(IE)と外部サイト閲覧用のブラウザ(Chrome、FF)を分ける ブラウザ・プラグインの脆弱性を狙った ドライブバイダウンロード攻撃に対する対策
• 添付ファイル型 – 脆弱性を利用しない攻撃(実行ファイル型) • AES(ZoneID)の特性を活かす セキュリティ警告、SmartScreen、ソフトウェア制限ポリシ/AppLocker – 既知の脆弱性を利用した攻撃(Office、PDF reader等)
• パッチの適用、保護されたビュー、EMET – ゼロデイ脆弱性を利用した攻撃(Office、PDF reader等) • 保護されたビュー、EMET • URLクリック型 (水飲み場攻撃、ドライブバイダウンロード攻撃と対策は共通) – 脆弱性を利用しない攻撃(実行ファイル型) • AES(ZoneID)の特性を活かす セキュリティ警告、 SmartScreen、ソフトウェア制限ポリシ/AppLocker – 既知の脆弱性を利用した攻撃(ブラウザ、プラグイン等) • パッチの適用、(Right)Click-to-Play、EMET – ゼロデイ脆弱性を利用した攻撃(ブラウザ、プラグイン等) • (Right)Click-to-Play 、EMET 標準機能を利用した多層防御
Question?
ありがとうございました