誤解の多いドライブバイダウンロード攻撃をちゃんと解説してみる

Wikiを見ると

ドライブバイダウンロードは、特にマルウェアなどの悪意のあるツールや悪意のあるアプリケーションを秘密裏にダウンロードさせるために用いられることが多い。 この場合、ユーザが単にウェブページやウェブサイトを閲覧しただけで自動的にマルウェアがダウンロードされてしまったり、そのマルウェアが勝手に実行され、インストールされたりする。また、秘密裏にマルウェアのダウンロードや実行が行われるため、ユーザはマルウェアに侵されていることに気付きにくい。

実際に、企業のウェブページが何らかの方法によって不正改ざんされ、ドライブバイダウンロードに用いられるスクリプトやコードがそのウェブページに埋め込まれて(インジェクションされて)しまい、不特定多数のユーザに対するマルウェアの感染源となってしまった例もある。

ドライブバイダウンロードによる攻撃は、主にウェブブラウザ、OSやその他のサードパーティー製のソフトウェアの脆弱性やセキュリティーホールを突くようにして行われることが多い。 そのため、ドライブバイダウンロードによる攻撃を回避するためには、ウイルス対策ソフトやファイアーウォールの導入などと並行して、ウェブブラウザ、OSやその他のサードパーティー製のソフトウェアのセキュリティパッチなどを適用して常に最新状態を保つといった事柄も、主要な施策となる。

と書かれているんだけど、これだと誤解を招きそうだ・ω・

と思って英語版見たら、書いてる内容がだいぶ違った


1. ドライブバイダウンロードの定義

Drive-by download - Wikipedia, the free encyclopedia

ドライブバイダウンロードはインターネット経由で、コンピューターへソフトウェアを使ってユーザーが意図せずに、ダウンロードさせる2種類の方法を指します。

・ユーザーが許可した結果ダウンロードされるもの(ユーザーがダウンロードされたプログラムやActiveX コンポーネント、Java アプレットの実行を偽装などによってよく理解せずに行う)
・人間の判断なしにダウンロードが発生するもの、それはしばしばコンピュータウィルス、マルウェア、犯罪ソフトによって引き起こされる

ドライブバイダウンロードはサイトを訪れた際に起こることがあります。電子メールでウェブサイトを表示したり、嘘のポップアップウィンドウを表示して、ユーザーをだましてウィンドウをクリックさせたり(例えば、コンピューターのOSのシステムがエラーレポートを出しているだとか、一見無害そうなポップアップのキャンセルに仕込まれていたりします)
この場合、
 このような場合ウィルスの提供者は、ユーザーが実際には不要な悪意のあるソフトウェアのダウンロード開始を『同意』させることによって実行できます。

マイクロソフト、「WMFの脆弱性」に対する修正パッチを緊急リリース

Windowsメタファイルの脆弱性は、WMF(Windows Meta
File)形式の画像ファイルを経由して、リモートから任意のコードを実行されるというもの。Internet
Explorerで悪意のあるWebサイトを閲覧するだけで脆弱性を悪用される恐れがあり、既に脆弱性を突く画像もexploitコードとして公開されて
いるほか、このexploitコードを悪用したウイルスも複数確認されている。

WMFの脆弱性(2006年1月5日に修正済み)を悪用したウェブサイトがのこの種のドライブバイダウンロードの例として挙げられます

ハッカーは異なる技術を使用して悪意のあるコードをウイルス対策ソフトウェアが認識することができないように難読化することができます。 コードはiframe に隠されて実行され検出されません。

ドライブバイインストールは類似した事象です。 2つの用語が併用されるときは、これはインストールよりも、ダウンロードを重視したときに使用されます。

要するに
・偽のセキュリティ通知やアップデートを表示してユーザーにインストールさせようとするもの(誘導型)
・IFRAME やサイトへの埋め込みを行って不正な処理を行いダウンロードさせるもの(スクリプト型)
これらを総称して、ドライブバイダウンロード攻撃 という訳です
・一見無害に見えるけど、脆弱性などを用いて、裏でダウンロードを行うもの(脆弱性型)

※型については後述の説明のために私が勝手に定義したものです

2. ドライブバイダウンロードの正しい防ぎ方

誘導型
ユーザーが正規の通知として実行してしまうわけですから、セキュリティソフトが入っていても、OSが最新であってもあんまり関係ありません。
ユーザーのリテラシーを高めるしか回避方法はありません。セキュリティソフトがマルウェアだと検知してくれればいいのですが、ユーザーが正しいと思っていると、最終判断で、許可してしまう可能性すらあります。

自信がないときの判断方法として有効なのが、Process Explorer によるドラッグWindows 検索機能です
pe
この機能を使うと、今表示されている窓が、どのプログラムから呼び出されているものかが判定できます。
例えば、呼び出し元が plugin-Container.exe だったり、Chrome.exe だったりしたら、ブラウザの機能を使って表示されているものだと分かるわけです。

一番確実なのは、ブラウザを完全に終了させたときに、窓が残っているか、タスクマネージャーにブラウザのプロセス名(firefox.exe や iexplorer.exeなど)が残ってないか確認することですね。

単純に、これらは広告のブロックソフトの設定で表示しないようにすることも容易です。


Script型

サイトの改ざんや、広告への埋め込みを使って JavaScript などで、不正なコードを埋め込む方式がこれにあたります。
広告に埋め込まれているタイプであれば、ブロックソフトで防ぐことができる可能性もありますが、フィルターがURLに準拠しているので、URLの形式によっては判定から漏れる危険が高いと思います。
また、Scriptによって、そのPCにどんな脆弱性があるのか調査する、エクスプロイトキットと呼ばれるタイプのものもこれに含まれますが、そのあとは脆弱性型と同じ動作になります。単純な脆弱性型のドライブバイダウンロード攻撃であれば、その脆弱性が塞がれていれば防ぐことができるので、より高度な攻撃と言えます。

これを防ぐには、CTP(Click To Play/クリックしないと コンテンツを実行しない)の設定をすることや、サイトによって、Scriptを実行しないように信頼サイトの登録をちゃんと管理するのが重要になります。

ただし、Script の実行に関しては、後述する脆弱性型にも通じるところがあります。

脆弱性型

これは、本当に表示するだけで感染することもある厄介なタイプです。脆弱性のあるコンテンツの表示先が、広告ソフトのブロック先なら防げることもありますが、Script型などで制御が他のコンテンツに移行してしまうと、広告ソフトでは検出できないこともあります(例えば、ActiveXコンポーネントの脆弱性をついて、それにダウンロードさせて実行するなど)
ブラウザ本体を最新にして、ブラウザ自体が持っているセキュリティホールを防ぐ必要があります。
IEを使う場合は、VBScript の更新、JScript の更新、累積的なIEの更新、グラフィックコンポーネントの更新、TLS/SSL の更新 など多岐にわたる脆弱性の修正が必要です(これが、サポート切れOSでIEを使ってはいけない理由)

最後にブラウザ別で対策をまとめます。

共通項目
・Java/Flash の更新。
・有用な広告ブロック・ポップアップブロックのアドオンを利用する。
・UACを有効にしておき、求められても迂闊に許可しない。UACが使えない場合はできるだけ管理者アカウントでは使わない。
・最新のウィルス定義が入ったセキュリティソフトをインストールして有効にしておくこと。

IE
・サポート切れOSでは使わない。
・毎月セキュリティパッチを最新にしておく。
・OSに関する脆弱性も影響を受けやすいのでそれも最新にする。
・それでもできるだけ使わない。
・既定のセキュリティの設定は『高い』にしておいて、信頼済みサイトを活用する。
・保護モードで使う。

Firefox
・CTP の設定を有効にする。
・できるだけPluginは入れない。例えばPDFはダウンロードしてから、セキュリティの高いPDFビューアプリで開く。
・ホワイトリストの活用。
・常に最新版にする。

Chrome
・右クリックして、動作を選択するOptionを有効にする。
・ホワイトリストの活用。
・常に最新版にする。

やはり、大事なのは、

・見えないところでコンテンツが実行されないようにする
・こまめにセキュリティ更新を行う
・重いからと言ってセキュリティソフトを切らない。
・ブラウザに実行制限をかけておく。
・サポートされていないブラウザは捨てる。

というところでしょうか ・ω・

広告のブロックさえしっかりしていれば大丈夫、みたいなのを見かけたので、記事にしてまとめてみました。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です