Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Windows標準の機能を使用した標的型攻撃の対策 ドライブ・バイ・ダウンロード編 #ssmjp /ssmjp1507-2

Windows標準の機能を使用した標的型攻撃の対策 ドライブ・バイ・ダウンロード編 #ssmjp /ssmjp1507-2

2015年07月の#ssmjp おかわり! http://ssm.pkan.org/?p=695 での発表資料です。

Takuji Kitagawa

August 11, 2015
Tweet

More Decks by Takuji Kitagawa

Other Decks in Technology

Transcript

  1. Windows標準の機能を使用した
    標的型攻撃の対策
    ドライブ・バイ・ダウンロード編
    @kitagawa_takuji
    2015年8月7日 #ssmjp

    View Slide

  2. 前回の最後のスライド

    View Slide

  3. • 添付ファイル型
    – 脆弱性を利用しない攻撃(実行ファイル型)
    • 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
    標準機能による対策だけでも多層防御になります

    View Slide

  4. 1. 標的型メール攻撃のURLクリック型
    2. 水飲み場攻撃(標的型攻撃の一種)
    3. 不特定多数を対象としたドライブバ
    イダウンロード攻撃
    これらの対策は共通

    View Slide

  5. 今日の本題
    ブラウザ・プラグインの脆弱性を狙った
    ドライブバイダウンロード攻撃
    の対策

    View Slide

  6. ブラウザ・プラグインの脆弱性を狙った
    ドライブバイダウンロード攻撃
    Javaの脆弱性を利用した攻撃が減少
    • Javaのゼロデイの減少(Java7のサポート終了、Java8では脆弱性が
    生じ難い設計になっている)
    • Javaの自動更新機能
    • Chromeの既定でNPAPIのサポートが無効化
    • FireFox、IEで古いバージョンのJavaプラグインをブロック
    • JavaアプレットなどJREが必要となる環境の減少
    • Jave6、Java7などの古いバージョンを更新せず使い続けている場合、
    攻撃の被害に

    View Slide

  7. IEが古いバージョンのJavaプラグインをブロック

    View Slide

  8. Firefoxでも古いバージョンのJavaプラグインをブロック

    View Slide

  9. MyJVNバージョンチェッカに
    JREが不要な.NET Framework版がリリース

    View Slide

  10. Javaが不要な場合はアンインストール
    Javaは必要だが、ブラウザでの実行は不要な場合は、セキュリティ設定で
    「ブラウザでJavaコンテンツを有効にする」のチェックがないことを確認

    View Slide

  11. • Flash Playerの脆弱性が現在も報告され続けている
    • Flashを無効化すると機能しなくなるサイト(動画、ゲーム等)がま
    だ大量に残っている
    • 業務関連でもFlash Playerが必要なサイトがある
    • Flash Playerのプラグインを完全に無効にすることは難しい
    • FirefoxではFlash以外のプラグインは既定で「実行時に確認」に
    なっているが、Flashだけは「常に有効化」になっている
    それだけ、Flashがまだ必要とされている
    ブラウザ・プラグインの脆弱性を狙った
    ドライブバイダウンロード攻撃
    Adobe Flash Playerに対する攻撃が現在の主流に

    View Slide

  12. Flash Playerの脆弱性が現在も報告され続けている

    View Slide

  13. 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を使用している場合は警告が出る
    が、無視して実行することも可能

    View Slide

  14. Adobe Flash Playerが最新であることの確認方法
    http://www.adobe.com/jp/software/flash/about/ にアクセスし
    ブラウザのプラグインのバージョンと提供されているバージョンが一致することを確認

    View Slide

  15. Flash Playerプラグインを最新に更新することが基本だが
    • 企業では動作検証のために、Windows Updateの公開から実際に
    クライアントに配布されるまでに一週間程度のタイムラグが生じ
    ることも
    • Windows7のIEの場合、企業ではSCCMの様な管理ツールを使っ
    てFlash Playerを自動配布していることが多いが、これもタイム
    ラグが生じる可能性。また、利用者にインストールを任せている
    場合、正しく適用されていない場合も
    • Chromeでは、ブラウザを再起動しないと更新されないが、再起
    動せずに使い続けている場合もある
    • Firefoxでは、古いバージョンのFlash Playerを使用している場合
    は警告が出るが、警告を無視して実行することも可能

    View Slide

  16. 公表されていないゼロデイを隠し持っている
    諜報機関等に狙われた場合は仕方ないとして
    広く攻撃コードが出回っているのにアップデート
    が提供されていない場合がある

    View Slide

  17. 多くの注意喚起で
    アップデートが提供されるまで
    Flash Playerを無効にすることが
    推奨されているが
    業務でFlash Playerが必要だったり
    どうしても動画を見たい、ゲームをしたい
    という人が無効にせずに使い続けることも

    View Slide

  18. このセッションでは
    ゼロデイ攻撃が出回っている場合や
    アップデートが遅れてしまった場合でも
    出来るだけ安全にFlash Player
    を使用する方法を考えます
    Flash Player以外の他のプラグインでも基本的な考えは同じ

    View Slide

  19. 100%の安全を求める人は
    いますぐFlash Playerプラグイン
    を無効化して下さい
    100%の安全を保証するものではありません

    View Slide

  20. Flash Playerの脆弱性を悪用したPCの乗っ取りと聞くと
    この様な画像が表示されることを
    思い浮かべるかも知れませんが

    View Slide

  21. Flash Playerの脆弱性を悪用した攻撃で
    ドクロが表示されることはありません

    View Slide

  22. ほとんどの場合
    攻撃コードは、隠れたiframeなどで
    ユーザから見えない形で
    バックグラウンドで実行されます

    View Slide

  23. 動画やアニメーションなどが全くない
    ページでも、見えない部分に
    攻撃コードが埋め込まれている
    可能性があります

    View Slide

  24. Flash Playerの脆弱性の悪用

    動画やアニメーションを見る

    View Slide

  25. 有名な(訪問者の多い)正規のサイト
    を改ざんし、見えない部分に攻撃コー
    ドを埋め込んで感染させる
    最近、多い手口

    View Slide

  26. ゼロデイ脆弱性が出ても
    動画サイトやゲームサイトを
    訪問しなければ安心な訳ではない

    View Slide

  27. Click-to-Play
    プラグイン実行の明示的な許可

    View Slide

  28. Click-to-Play
    • 正規サイトの改ざん(水飲み場攻撃も含む)では、正規サ
    イトそのものに、攻撃ツール(ExploitKit)が設置される
    のではなく、攻撃ツールが設置された外部の悪性サイトに
    リダイレクトするiflameや難読化したJavaScriptのみが正
    規サイトに埋め込まれることが多い
    • Exploitコードは利用者に気付かれないようバックグラン
    ドで見えない形で実行される
    • 全てのサイトに対してプラグインの実行を許可していると、
    悪性サイトからダウンロードされた脆弱性を突くプラグイ
    ンも自動的に実行されてしまう
    • Click-to-Playで必要な場合のみプラグインの実行を明示的
    に許可することで、悪性サイトからのプラグインの実行の
    可能性を出来るだけ少なくする

    View Slide

  29. Click-to-Play
    • サイト全体を許可してしまうと、見えない形で埋め込ま
    れた攻撃コードも実行されてしまうため要素ごとに実行
    出来ることが望ましい
    • 1クリックで実行出来てしまうと、クリックジャッキン
    グや間違えてクリックしてしまう可能性があるため、
    (多少利便性は低下するが)右クリックで実行出来た方
    が望ましい
    • 外部サイトからのFlashファイル読み込みを拒否する設定
    はない。CDN(ファイルサイズが大きいことが多い)の
    利用や、動画広告配信、動画サイトの埋め込み等で、外
    部サイトから読み込まれることが多いため

    View Slide

  30. Click-to-Play
    • ブラウザによって実装が異なる。また、信頼済みサイト
    にExploitKitが設置された場合など、100%防げるもの
    ではないので、プラグインの更新がやはり基本

    View Slide

  31. Chromeの設定

    View Slide

  32. Chromeの設定

    View Slide

  33. コンテンツの設定で「プラグインコンテンツをいつ実行するかを選択する」を選択
    (既定は「プラグインコンテンツをすべて実行する」)

    View Slide

  34. Chromeベータ版では「重要なプラグインコンテンツを検出して実行する」が既定
    9月頃にリリース予定の安定版で既定になる予定

    View Slide

  35. 「重要なプラグインコンテンツを検出して実行する」が既定となるのはバッテリーの節約のため
    Chrome Blogではセキュリティについての言及がないため不正コード実行の阻止に役立つかは不明

    View Slide

  36. chrome://plugins で「常に実行を許可する」がチェックされてないことを確認

    View Slide

  37. 必要な場合のみ右クリックで「このプラグインを実行」
    Chrome42よりClick-to-Play からRightClick-to-Playに変更
    (クリックジャッキングや間違ってクリックしてしまうことに対する対策)

    View Slide

  38. アドレスバー右のプラグインマークをクリック

    View Slide

  39. 信頼できるサイトを「常に許可する」ことも可能
    本当に信頼出来るサイト以外は、毎回、要素毎に許可することを推奨

    View Slide

  40. 「常に許可する」とプラグインの例外に追加される

    View Slide

  41. 1ページに複数要素がある場合、要素毎に実行をコントロール出来る

    View Slide

  42. 複数要素の内、1要素だけを実行

    View Slide

  43. プラグイン毎の設定は出来ない
    すべてのプラグインで右クリックが必要になる

    View Slide

  44. 特定のプラグインは常に有効にしたい場合
    chrome://plugins で「常に実行を許可する」をチェック

    View Slide

  45. Firefoxの設定

    View Slide

  46. Firefoxでは古いバージョンのFlashプラグインを使用していると警告が出る
    ただし、無視して実行することも可能

    View Slide

  47. プラグインの初期設定が「実行時に確認する」(Click-to-Play)
    但し、Adobe Flashだけは「常に有効化する」になっている

    View Slide

  48. FirefoxのClick-to-Playの設定
    アドオンを選択

    View Slide

  49. アドオンマネージャでFlashを「実行時に確認する」に設定

    View Slide

  50. Flash Playerが必要なサイトにアクセスすると下記の様な表示
    本当に必要な場合のみクリック

    View Slide

  51. 「今だけ許可」か「常に許可する」を選択

    View Slide

  52. 1ページに複数要素がある場合

    View Slide

  53. 要素毎の許可は出来ず、サイト毎の許可となる

    View Slide

  54. FirefoxのClick-to-Playでは
    (外部サイトからの読み込みも含めた)
    サイト全体の許可のため
    ページの見えない部分に不正なコードが
    埋め込まれていた場合
    攻撃コードが実行されてしまう

    View Slide

  55. 要素単位でプラグインの実行を管理する拡張機能
    Click to Play per-element

    View Slide

  56. クリックで要素ごとにプラグインを一時的に有効化

    View Slide

  57. 右クリックで有効化も可能だがChromeの様に必須ではない
    1クリックで有効になってしまうので、クリックジャッキングや
    間違って有効にしてしまう可能性も

    View Slide

  58. アドレスバー左をクリックすることによりページ全体を許可することも可能

    View Slide

  59. Internet Explorerの設定

    View Slide

  60. Internet Explorerの設定
    アドオンの管理

    View Slide

  61. アドオンの管理でFlashを右クリックし「詳細情報」

    View Slide

  62. 既定ではすべてのサイトが許可されている(*)ので
    すべてのサイトの削除をクリック

    View Slide

  63. Flashが必要なページにアクセスすると下記の様なポップアップが出るので
    必要な場合のみ「許可」する
    許可しないと毎回このポップアップが出てブラウザ下部を専有するので、
    つい許可してしまいがち

    View Slide

  64. 一度許可したサイトはホワイトリストとして登録される
    一時的な許可は出来ない

    View Slide

  65. 複数の要素がある場合、複数回ダイアログが出るが
    どの要素を有効にしているのか分からない
    よって、攻撃コードの実行を有効にしてしまう可能性がある

    View Slide

  66. EMET(Enhanced Mitigation Experience Toolkit)の
    Attack Surface Reduction (ASR)
    特定のライブラリやプラグインの読み込みをブロックする事が可能。
    セキュリティ・ゾーン毎の制御が可能なので、例えば、イントラ
    ネットゾーンと信頼済みゾーンではプラグインの読み込みを許可し、
    インターネットゾーンでは拒否する設定が可能

    View Slide

  67. Enhanced Mitigation Experience Toolkit(EMET)
    ゼロデイ攻撃やパッチの適用漏れに有効だが、
    正規のアプリが動作しないなどの不具合が起きることも多いので導入には注意が必要

    View Slide

  68. EMETのAttack Surface Reduction (ASR)により
    IEでイントラネット、信頼済みサイト以外でのFlashプラグインの読み込みを禁止する設定
    Apps で iexplore.exe を選択
    Show All Settings をクリックし Attack Surface Reduction のModulesに flash*.ocx を追加
    Flashが必要なサイトをインターネットオプションで「信頼済みサイト」に追加する

    View Slide

  69. インターネットオプションで許可するサイトを「信頼済みサイト」に追加

    View Slide

  70. EMETのAttack Surface Reduction (ASR)がFlashプラグインをブロック

    View Slide

  71. EMETのRecommended Settingでは
    Word,Excel,PowerPointなどのOfficeソフトでは
    Attack Surface Reduction (ASR)によりflash*.ocx が既定で禁止されている

    View Slide

  72. IEでは、アドオンの管理を使った場合でも
    EMETのASRを使った場合でも
    要素毎のコントロールは出来ず
    (外部サイトからの読み込みも含めた)
    サイト全体での許可となる

    View Slide

  73. そのため、ゼロデイ攻撃が出回っている状況では
    IEでのFlashプラグインの有効化は
    社内サイトなどの本当に信頼できるサイトのみ
    に留め、外部サイトの閲覧には
    要素毎の有効化を出来る様に設定した
    ChromeやFirefoxを使用することを推奨

    View Slide

  74. ブラウザ毎の推奨設定
    • Chrome 設定->プライバシー->コンテンツの設定->プラグイン
    「プラグインコンテンツをいつ実行するかを選択する」をチェック
    右クリックで要素毎に許可(RightClick-to-Play)
    • Firefox 「Click to Play per-element」拡張機能をインストール
    クリックで要素毎に許可(Click-to-Play)
     右クリックが必須ではないので間違ってクリックしてしまう可能性も
    • IE EMETのAttack Surface Reductionにflash*.ocx を追加
    プラグインの実行を許可するサイトを信頼済みサイトに追加
     要素毎の許可は出来ないため、信頼済みサイトにマルウェアを仕込ま
    れた時の感染リスクは残る
     EAF+などEMETの他の緩和策が攻撃を阻止できる可能性も
     EMETにより正規のソフトウェアの動作に不具合が出る可能性もある

    View Slide

  75. 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では、更新のインストールが必要
    • ブラウザの表示領域を専有するポップアップが毎回出る
    • 一時的な許可は出来ず、すべて永続的な許可となる
    • 要素毎の有効化は出来ず、サイト全体での有効化となる

    View Slide

  76. 広告配信サービスからの感染
    Malvertising

    View Slide

  77. 東京都

    View Slide

  78. 環境省

    View Slide

  79. 10日間で計1000万人訪問のWebサイトの広告配信に
    Angler Exploit Kitが設置されていた

    View Slide

  80. 日本のサイトも複数報告されている

    View Slide

  81. 朝日=huffingtonpost.jp ? 読売=hochi.co.jp ?
    続報や各社からの発表はないため、詳細は不明

    View Slide

  82. ブラウザ・プラグインを最新に更新することや
    Click-to-Playを設定することで
    広告配信経由のマルウェア感染
    を防ぐことが出来る

    View Slide

  83. ほとんどのインターネットサービスが無料
    なのは広告収入で成り立っているため。
    よって、こういった対策を紹介すべきか悩
    みますが、広告配信業界のマルウェア対策
    や情報開示が進んでいない状況のため、や
    むを得ず紹介します。

    View Slide

  84. 広告ブロックの拡張機能を導入することで
    広告配信経由のマルウェアへの感染リスク
    を更に低減することが出来る
    通常の表示 広告ブロックを有効化

    View Slide

  85. 出来るだけFlashが不要な
    サイトを利用する
    HTML5対応の動画サイト等

    View Slide

  86. 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を無効にして再生出来るかをチェック

    View Slide

  87. iOSやAndroid 4.4, 5.0, 5.1以降では、
    Flashが使えないため、PC用サイトで
    はFlash Playerを要求するサイトでも
    スマホ用サイトではHTML5に対応し
    ていることが多い
    HTML5対応サイトがまだ少ない印象があるが

    View Slide

  88. PCのブラウザでアクセスするとFlash Playerを要求される

    View Slide

  89. スマホ用サイトのURLが判れば

    View Slide

  90. スマホ用サイトにアクセスすれば
    PCのブラウザでもHTML5で再生できることが多い

    View Slide

  91. PCでアクセスした場合、スマホ用
    サイトの案内は出ないことが多い
    (逆はあることが多い)
    また、同じURLで、User-Agentを
    見てPC用、スマホ用に最適化した
    コンテンツを返すサイトもある

    View Slide

  92. User-Agentをスマホのものに変更し
    てアクセスすることで、Flash Player
    プラグインを無効にしたままHTML5で
    動画を再生出来ることが多い

    View Slide

  93. Chromeの開発者ツールの利用

    View Slide

  94. PCのChromeでアクセスするとFlash Playerを要求される

    View Slide

  95. F12キーで開発者ツールを起動
    左から2番目のデバイスのアイコンをクリックしエミュレーション機能を有効

    View Slide

  96. Deviceを選択

    View Slide

  97. Deviceを選択しリロードすることで
    Flash Playerを無効にしたまま、HTML5で再生

    View Slide

  98. クリックでUser-Agentを
    簡単に変更できる
    ブラウザ拡張機能

    View Slide

  99. UserAgentを変更する拡張機能(Chrome)

    View Slide

  100. UserAgentをクリックで簡単に変更可能

    View Slide

  101. UserAgentを変更する拡張機能(Firerfox)

    View Slide

  102. PC用サイトでの再生にはFlashが必要

    View Slide

  103. UserAgentをスマホ(iOS)に変更

    View Slide

  104. UserAgentを確認

    View Slide

  105. Google先生に聞くとスマホ用サイトに自動的に誘導される

    View Slide

  106. Flash Playerを無効にしたまま、HTML5で再生

    View Slide

  107. 専用アプリがないと再生できないなど
    スマホのブラウザでの再生に
    対応していない動画サイトもある
    各ブラウザがサポートするメディア
    形式の違いにより再生出来ないことも

    View Slide

  108. 問題はFlashを使った
    ブラウザ・ゲーム

    View Slide

  109. 高機能なゲームでは、まだまだFlashが必要なものも多いので
    専用のWindowsタブレットなどを購入するのも一案
    その場合も、ブラウザの推奨設定を行う

    View Slide

  110. • ブラウザ・プラグインを最新に更新することが基本
    • Click-to-Playを設定し、要素毎に実行を許可することが望ましい
     Chrome「プラグインコンテンツをいつ実行するかを選択する」
     Firefox「Click to Play per-element」拡張機能
    • Chromeの右クリックで実行を許可する方法(RightClick-to-Play)が
    より望ましい
    • IEでは要素毎に実行を許可することが難しい
    本当に信頼できるサイトのみをインターネットオプションで信頼済み
    サイトに登録し、それ以外のサイトのFlashプラグインの読み込みを
    EMETのAttack Surface Reductionにより禁止する設定に
    • EMETをブラウザに対し有効にすることで緩和策となるが、不具合が
    生じることも多いので、十分に検証した上で設定することを推奨
    • 業務の都合でプラグインを更新できない場合、業務サイト用のブラウ
    ザ(IE)と外部サイト閲覧用のブラウザ(Chrome、FF)を分ける
    ブラウザ・プラグインの脆弱性を狙った
    ドライブバイダウンロード攻撃に対する対策

    View Slide

  111. • 添付ファイル型
    – 脆弱性を利用しない攻撃(実行ファイル型)
    • 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
    標準機能を利用した多層防御

    View Slide

  112. Question?

    View Slide

  113. ありがとうございました

    View Slide