セキュリティ ウォッチ島巡り : 魅惑的なベンダの配布物

Jesper M. Johansson

島巡り (脆弱なリンクを介してネットワークに侵入し、そのネットワーク内にあるシステムを移動して回る) という技術は何年も前から存在します。しかし、この技術は新しい特性を取り入れ続けています。現在、IT 環境ではセキュリティへの関心が高くなっているので、ユーザーが最も脆弱なリンクになっています。悪意のあるユーザーは、

自分たちの利益のために、この脆弱性を利用する方法を探し出します (フィッシングやその他の形式のソーシャル エンジニアリングについて考えてみてください)。この炭素とケイ素のように相性の良い組み合わせは、ネットワークに致命的な影響を与えることがあります。

人的要因を利用する方法の中で、私が最も気に入っているものの 1 つは、Secure Network Technologies の Steve Stasiukonis がある顧客のために行った浸透テストです。彼は、この顧客の駐車場に、トロイの木馬がインストールされた USB フラッシュ ドライブを置いておきました。従業員は、出勤したとき、駐車場に無料の USB フラッシュ ドライブが置いてあるのを見つけて興奮しました。そして、この USB ドライブを積極的に手に取って、最初に目に付いたコンピュータに接続しました。つまり自分たちのワークステーションに接続したのです。

おそらく、従業員の中には、この USB ドライブを無視する賢明な人もいて、一部の USB ドライブは破棄されたかもしれません。しかし、1 人の従業員が 1 つの USB ドライブをコンピュータに接続すると、そのコンピュータはウイルスに感染し、ネットワークへの入り口を提供することになります。もちろん、これは Stasiukonis がテストとして行ったことですが、この技術は、犯罪者が実際に大規模な企業ネットワークに侵入するために使用したものです。

最近は、USB フラッシュ ドライブが至るところにあります。大半のカンファレンスでは、ベンダが、キャンディのように USB フラッシュ ドライブを配っています。このようなドライブの容量は大きくないかもしれませんが、ネットワーク全体を乗っ取るのに大きな記憶域は必要ありません。この 2 部構成のシリーズでは、この類の攻撃を調査して、リスクを軽減する方法を説明します。今月の記事では、USB フラッシュ ドライブを使用してできることと、USB フラッシュ ドライブを制御するためにできることについて説明します。来月号の TechNet Magazine では、ネットワーク上の 1 つのシステムまたは一部のシステムに対して行われる攻撃を阻止する方法について説明します。**

攻撃の技術的な詳細は、実はとても単純です。すべての発端は、ウイルスに感染した USB フラッシュ ドライブが 1 台のコンピュータに接続されることです。それから何が起こるかは、そのドライブが持っている破壊力と、もちろんそのユーザーがどれほど騙されやすいかによって異なります。

原因

演壇に無人のラップトップがありました。講演者はプレゼンテーションを開始する前に、聴衆の機嫌を取ることに気を取られています。ラップトップ自体はロックされていましたが、それはほとんど意味がありませんでした。攻撃者は演壇に登り、話し手が戻ってくるのを待っていることを装って、その場に少しそこにとどまりました。このような演壇ではコンピュータのような見苦しいものを隠すように作られているため、USB ポートや攻撃者の手の動きは見えません。USB フラッシュ ドライブがコンピュータに接続されると、攻撃はほんの数秒で完了します。

このテーマには、ある明らかなバリエーションがあります。たとえば、私が毎週のようにプレゼンテーションをしながら世界中を旅していたときのことです。私がプレゼンテーションを終えると、ほぼ毎回、数人の参加者が私のスライドを欲しがります。私はいつも名刺を渡して、電子メール メッセージを送るようにお願いしています。このような参加者が私に対して USB フラッシュ ドライブを差し出したときに、なぜ私は電子メールの送付を求めたのでしょうか。それは、USB Hacksaw、USB Switchblade などのツールについて知っていたからです (このようなツールをご存知ない場合は、wiki.hak5.org を参照してください)。

基本的に、このようなツールを使用すると、ほぼだれでも容易に USB ポートを保護していないコンピュータに攻撃を仕掛けることができます。たとえば、Switchblade では次のような情報をダンプできます。

  • システム情報
  • すべてのネットワーク サービス
  • リッスンしているポートの一覧
  • コンピュータにインストールされているマイクロソフト製品のすべてのプロダクト キー
  • ローカルのパスワード データベース
  • コンピュータで使用されているあらゆるワイヤレス ネットワークのパスワード
  • 現在のログオン ユーザーがコンピュータに保存しているすべてのネットワーク パスワード
  • Internet Explorer®、メッセンジャー、Firefox、および電子メールのパスワード
  • ローカル セキュリティ機関 (LSA) の機密情報 (ここには、すべてのサービス アカウントのパスワードがクリア テキストで含まれています)
  • インストールされている修正プログラムの一覧
  • 最近の閲覧の履歴

これらのすべての情報は、フラッシュ ドライブのログ ファイルに格納され、この処理は約 45 秒で完了します。

Hacksaw は、Switchblade が少し変更されたものです。このツールは、すべての USB フラッシュ ドライブの挿入イベントを監視するトロイの木馬をコンピュータにインストールします。その後、コンピュータに接続されたすべてのフラッシュ ドライブから、すべてのドキュメントを電子メールで攻撃者に送信します。

ここで紹介したツールでは、U3 (u3.com) が使用されています。これは、フラッシュ ドライブを使用してユーザーがプログラムを持ち歩けるようにデザインされた技術です。簡単に言うと、U3 対応のフラッシュ ドライブは偽装をします。フラッシュ ドライブが搭載された USB ハブで、そこに CD が挿入されていると OS に伝えるのです。既定では、Windows Vista® より前の Windows® のバージョンでは、USB ドライブではなく CD に収録されている autorun.inf ファイルで指定されたプログラムが自動的に実行されます。偽装することで、U3 対応の USB フラッシュ ドライブは、OS を騙して U3 ランチャーというソフトを自動実行させます。その結果、U3 ランチャーはプログラムを起動し、メニューを表示し、ユーザーがコンピュータに対して行えるほとんどの操作を実行することができます。

このような攻撃ツールで行っているのは、U3 ランチャーを攻撃を仕掛けるコードに置き換えるだけです。フラッシュ ドライブが Windows XP システムに接続されるとすぐ、攻撃ツールが自動的に実行されます。Windows Vista では、自動再生を決定する流れは異なります。自動再生が実際に有効なのは、CD などのリムーバブル デバイスです。つまり、デバイスが接続されたときに、なんらかの操作が発生するということです。既定では、[自動再生] ダイアログ ボックス (図 1 参照) が表示されます。

図 1 画像を含むリムーバブル ドライブを接続すると、既定の [自動再生] ダイアログ ボックスが表示される

図 1** 画像を含むリムーバブル ドライブを接続すると、既定の [自動再生] ダイアログ ボックスが表示される **

図 1 のダイアログには、[ピクチャに対しては常に次の操作を行う] チェック ボックスがあります。このチェック ボックスにより自動再生のオプションが設定されます。この設定は、コントロール パネルで構成できます (図 2 参照)。

図 2 Windows Vista での自動再生の構成

図 2** Windows Vista での自動再生の構成 **(画像を拡大するには、ここをクリックします)

自動再生の構成で特に興味深いのは、"ソフトウェアとゲーム" です。その名前のとおり、リムーバブル ディスクには、特定のプログラムの実行を指定する autorun.inf ファイルがあります。"ソフトウェアとゲーム" に関連する設定 (図 2 参照) は、次のレジストリ キーに格納されています。

Hive:    HKEY_CURRENT_USER
Key:    \Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\
UserChosenExecuteHandlers\AutorunINFLegacyArrival 
Value: (Default)
Data:
MSAutoRun – automatically executes the program specified in the autorun.inf file
   
MSPromptEachTime – prompts the user, using strings specified in the autorun.inf file, if available

この設定の変更には管理者権限が必要ないので、ユーザーは、この設定を好きなように構成できます。それには、従業員が駐車場で見つけたドライブにインストールされていて、自動的に実行されるマルウェアも含まれます。実際、[自動再生] ダイアログ ボックスで適当なチェック ボックスをオンにするとマルウェアが自動的に実行されます。

ネットワークで自動再生を管理する

管理者として、ネットワーク全体の自動再生を管理できる方法はいくつかあります。まず、自動再生が有効なドライブの種類を制御する NoDriveTypeAutoRun の設定を変更することによって、ユーザーがリムーバブル メディアや CD の自動再生を有効にできなくすることが可能です。Windows XP は、NoDriveTypeAutoRun が 0x95 に設定された状態で出荷されています。この設定により、不明なドライブの種類、ネットワーク ドライブ、およびリムーバブル デバイスの自動再生が無効になっています。Windows XP SP2 以降では、既定で NoDriveTypeAutoRun の設定が 0x91 になっています。この設定により、リムーバブル記憶装置の自動再生が有効になります。グループ ポリシーを使用している場合は、"ユーザーの構成\管理用テンプレート\Windows コンポーネント\自動再生のポリシー" にある設定で NoDriveTypeAutoRun の設定を管理できます。"自動再生機能をオフにする" の設定を有効にし、[CD-ROM とリムーバブル ドライブ] を選択すると、これらの種類のドライブで自動再生が無効になります。

この設定により、[自動再生] ダイアログ ボックス (図 1) は表示されなくなります。実際、ユーザーがドライブを挿入しても何も起こりません。ただし、これは理想的な解決策ではない場合があります。というのも、ドライブ上にある必要な情報にアクセスする方法がわからないユーザーを混乱させるおそれがあるからです。

実際に必要なのは、自動再生されるコンテンツの種類を制御することでしょう。Windows Vista では、自動的に実行されるソフトウェアについて 2 段階の制御が用意されているので、このような制御もある程度は可能です。グループ ポリシーには、autorun.inf ファイルを使用したソフトウェアの自動再生だけを無効にし、それ以外の Windows Vista の自動再生の動作は変更しない別の制御が用意されています (図 3 参照)。

図 3 グループ ポリシーを使用して autorun.inf ファイルを無効にする

図 3** グループ ポリシーを使用して autorun.inf ファイルを無効にする **(画像を拡大するには、ここをクリックします)

自動再生に関する決定の流れは少し複雑なので、最もわかりやすいと思われるフローチャートを使用して説明しましょう。図 4 は、リムーバブル メディアにあるファイルを自動的に実行するかどうかを判断する場合に使用される決定の流れを表しています。

図 4 自動再生の決定の流れ

図 4** 自動再生の決定の流れ **(画像を拡大するには、ここをクリックします)

その他の原因

もちろん、ここで紹介したものは、USB フラッシュ ドライブを使用してコンピュータに進入する場合に利用されるツールの一部に過ぎません。このシナリオには、あらゆる種類のツールを加えることができます。たとえば、現在ログオンしているユーザーの Windows NT® のパスワード ハッシュをダンプするツールなどがあります (microsoft.com/technet/community/columns/secmgmt/sm1005.mspx を参照してください)。

多くの USB コントローラの実態は、ダイレクト メモリ アクセス (DMA) デバイスです。つまり、USB コントローラは、オペレーティング システムを経由しないで、直接コンピュータのメモリの読み取りと書き込みができるということです。OS を経由しないということは、OS で提供されるセキュリティ制御が回避されるということになります。つまり、ハードウェアに対して、完全かつ自由にアクセスできるようになります。これにより、OS によって実装されるデバイス制御の効果が完全になくなります。現在、この技術を使用しているハッキング ツールがあるかどうかは知りませんが、「この技術は使用されたことがない」ということに関しては非常に疑問視しています。

ユーザーとリムーバブル デバイスの組み合わせを悪用する別の方法は、単にユーザーに魅力的なオプションを提示することです。たとえば、何人のユーザーが図 5 のようなダイアログ ボックスをクリックするでしょうか。全員でなくても、多くのユーザーがクリックするでしょう。重要なのは、ユーザーが無視できないような魅力的なダイアログ ボックスを作るのはとても簡単な作業だということです。

図 5 何人のユーザーがこのダイアログ ボックスの犠牲になるのでしょうか

図 5** 何人のユーザーがこのダイアログ ボックスの犠牲になるのでしょうか **

デバイスをブロックする

Windows Vista では、デバイスのインストールを管理する新しい一連のポリシーが導入されました (図 6 参照)。この図にあるように、ドライバによってリムーバブル デバイスであることが示されている場合、管理者はすべての新しいリムーバブル デバイスのインストールをブロックすることができます。ただし、ドライバによってリムーバブル ディスクではないことが示されているデバイスについては、このポリシーは無効になります。したがって、カスタム ドライバを使用すると、このポリシーを迂回することができます。

図 6 Windows Vista のデバイスのインストール ポリシー

図 6** Windows Vista のデバイスのインストール ポリシー **(画像を拡大するには、ここをクリックします)

さらに細かく制御するために、管理者は、特定のデバイス セットアップ クラスに適用されるポリシーを使用することができます。ただし、このような細かい制御を行うには、ブロック (または許可) する特定のデバイス クラスの GUID を把握している必要があり、この方法による管理は比較的難しくなります。

重要なのは最小限の特権

ここでは DMA のシナリオは除外しますが、この記事で説明した攻撃が成功するかどうか、また対処方法がうまく機能するかどうかは、コンピュータを使用するユーザーの特権に左右されます。コンピュータを使用しているユーザーが標準ユーザーである場合、攻撃による被害の範囲は限られます。そのユーザーが所持しているデータやアクセスできるデータは盗まれてしまいますが、ネットワーク全体に影響する可能性は低いでしょう。

しかし、攻撃されたユーザーが管理者の場合、その被害の範囲は深刻なものになります。最悪のシナリオは、ユーザーがドメイン管理者である場合です。この場合、ネットワーク全体を乗っ取るのは非常に簡単なことです。たとえば、攻撃者はメモリからユーザーのパスワード ハッシュを抽出できます。システムでは、ユーザーに代わってネットワーク リソースに透過的にアクセスできるように、ログオン時に LSA プロセスの領域にハッシュをキャッシュします。管理者特権を手にした攻撃者は、このハッシュを抽出および使用してネットワーク内のすべてのネットワーク リソースにアクセスできます。つまり、ユーザーがドメイン管理者の場合、ドメイン全体が危険にさらされることになります。

このことは、依存関係のトピックを思い起こさせます。この記事では、ワークステーション上の特定の攻撃について概説しました。ただし、まだ、どのような種類の攻撃がネットワーク規模の被害をもたらすのかについては説明していません。来月は、依存関係の概念や、それが環境全体に対して持つ意味を説明します。そして、さらに重要なことですが、その依存関係を強固なものにするための対策を紹介します。

Jesper M. Johansson は、ソフトウェアのセキュリティ問題に取り組むセキュリティ エンジニアで、TechNet Magazine の編集にも携わっています。**MIS の博士号を持ち、セキュリティの分野で 20 年以上の経験があります。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; 許可なしに一部または全体を複製することは禁止されています.