このページの本文へ

Black Hat USA 2016/DEF CON 24 ラスベガス現地レポート 第1回

あらゆる通信ハイジャックが可能になるNetBIOS脆弱性、Black Hat USA 2016で報告

95から10までの全Windowsに影響、「BadTunnel」脆弱性とは何か

2016年08月08日 13時00分更新

文● 谷崎朋子 編集● 大塚/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 20年以上も前から使われてきた、Microsoft Windowsの標準プロトコル。8月4日、米国ラスベガスで開催されたセキュリティカンファレンス「Black Hat USA 2016」では、そんな“いにしえの技術”の一部に脆弱性が存在することが発表された。

 この脆弱性はWindows 95からWindows 10までの全OS、さらにInternet ExplorerやMicrosoft Officeの全バージョンに影響を与えるもので、悪用すれば、Windowsのあらゆるネットワーク通信を乗っ取ることも可能だという。

毎年、幅広い分野のセキュリティ脆弱性が報告されることで注目される「Black Hat USA」

NetBIOSに起因する「BadTunnel」脆弱性はなぜ生じたのか

 「BadTunnel」と命名されたこの脆弱性は、NetBIOSの名前解決サービス「NBNS(NetBIOS Name Service)」の仕様に起因する。NBNSは、Windowsネットワーク内の名前解決(指定されたコンピューター名に対応するIPアドレスを応答する)を行う、いわばDNSのようなサービスだ。

 NBNSには、名前解決を行う際に送信する「NBクエリー」と、指定したファイル共有パスにアクセスできない場合に送信する診断用の「NBSTATクエリー」の2種類がある。いずれも137ポートを宛先ポートとして使用し、NBSTATクエリーのほうは送信元も137ポートだ(NBクエリーはランダム)。

 また、トランザクションID(NetBIOSのパケットを識別するためのID)は連番で、かつNBクエリー/NBSTATクエリーが共通のカウントを使うよう設定されているため、どちらか一方のパケットから、他方のパケットのトランザクションIDを推測できる。

 「DNSでは、(送信元)ポートやトランザクションIDをランダム化することでセキュリティを担保しているが、NBNSはそれがない。そもそもNBNSは同一ネットワーク内(LAN内)で利用することを想定しているので、(あまりセキュリティを考慮していない)この仕様でも問題はなかった」。同脆弱性を発見したTencentのヤン・ユー氏はこう説明する。

TencentのXuanwu Labでディレクターを務めるヤン・ユー氏

WPADと組み合わせれば全通信がハイジャック可能に

 ここでひとつ重要なポイントが、NBSTATクエリーのやり取りを行う際には一定時間、双方の137ポート間で通信路が確立されるという点だ。

 ユー氏が述べるとおり、NBNSはLAN内の通信を前提に設計されているのだが、仮に片方のマシンがファイアウォールの内側(LAN)、もう片方がファイアウォールの外側(インターネット)にあり、ファイアウォールの内→外へセッションを張ることができた場合(NBNS通信がブロックされていない場合)には、外→内への通信もできる危険な“トンネル”が出来てしまうわけだ。

 ファイアウォールに穴が開けば、攻撃にも利用できる。特に、自動プロキシ設定機能の「WPAD(Web Proxy Auto-Discovery)」が乗っ取られた場合は深刻だ。WPADは、プロキシサーバーの設定ファイルをWPADサーバーから取得し、Windows PCに自動設定する機能である。「WPAD乗っ取り攻撃」の全体像は、次のような流れになる。

「BadTunnel」脆弱性とWPADによるプロキシ自動設定を組み合わせた攻撃方法

-1)ターゲットに対して、攻撃者マシンへのWindowsネットワーク共有パス(「\\10.10.2.2\BadTunnel」など)が書かれたメールを送る。

-2)それをクリックしたターゲットPCは、共有ファイルにアクセスするため、攻撃者マシンの139ポートまたは445ポート宛てにSYNパケットを送信。
 同時に、プロキシ設定の自動取得が有効であれば、WPADサーバーの名前解決のためにNBクエリーをブロードキャストを開始し、レスポンスを待ちうける。

-3)攻撃者は、ターゲットPCからのSYNパケットの受信を拒否する。

-4)ターゲットPCは「接続に問題がある」と考え、診断のためにNBSTATクエリーを攻撃者マシン宛てに送信する。
 これにより、ターゲットPCと攻撃者マシンを結ぶ“トンネル”が一定時間、確立される。ファイアウォールは、内→外への通信なので干渉しない(内→外への137ポート通信を明示的にブロックしていなければ)。

-5)攻撃者は、先ほどの“トンネル”を介して、同じ137ポートを使うNBクエリーに応答できる。
 NBクエリーはLAN内にのみブロードキャストされており、別ネットワークにいる攻撃者にはトランザクションIDはわからないが、NBSTATクエリーのトランザクションIDと連番なので推測できる。

-6)攻撃者は「攻撃者マシンがWPADサーバーである」と嘘のレスポンスを返す。これによりターゲットPCは攻撃者マシンに誘導され、攻撃者が用意した偽のプロキシサーバー設定ファイルを読み込むことになる。

 以上の流れで、攻撃者はターゲットネットワーク内でプロキシ設定の自動取得を有効にしているマシンすべてに対し、偽のプロキシサーバーを設定させることに成功する。

 PCに偽のプロキシが設定されてしまうと、Webアクセスだけでなく、Windows Updateサービス、Microsoft CryptoAPI証明書リストの更新まで、すべてのネットワーク通信がその偽プロキシを経由することになる。つまり、あらゆる通信を監視したり、乗っ取ったりしてしまうことができる。

 ユー氏は、今年3月にマイクロソフトのバグ発見報奨金プログラムを通じて同この脆弱性を報告し、5万ドルの報奨金を獲得している。

 ユー氏の報告を受け、マイクロソフトでは2016年6月、Windowsへの修正アップデート(パッチ、MS16-077)をリリースし、ファイル共有パスへのアクセスに失敗してもNBSTATクエリーを送信しない、WPADの名前解決でNBNSを使用しないといった修正を行った。まだ同パッチを適用していない場合は、できるだけ早急に適用すべきだ。

 すぐにはパッチを適用できない、あるいはサポートが終了したOS(Windows XPなど)を使用しているといった場合は、ファイアウォールで内→外の137ポート通信をブロックする、NetBIOSを無効化する(Windowsネットワーク共有サービスを使わない場合)、WPADの取得元URLを固定するかプロキシの「設定を自動的に検出する」を無効にするといった次善策が推奨される。

Windowsのプロキシ設定画面

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事

アクセスランキング

  1. 1位

    ビジネス

    最大5つのプロジェクトをひとつの“ガントチャート”に Backlogに俯瞰が捗る新機能

  2. 2位

    ITトピック

    IT技術者の4割が「5年後のスキル陳腐化」に危機感/働くシニアは多いが「長く働きやすい」環境ではない日本/トークンコストの成果証明は難しい、ほか

  3. 3位

    TECH

    二酸化炭素を資源に変える新触媒、新しい合金を電気で合成

  4. 4位

    デジタル

    ヤマハ、RTX1300の「ひかり電話アダプターモード」を解説する無料ウェビナーを10月15日に開催

  5. 5位

    クラウド

    NTTドコビジが「GPUaaS」提供へ 1分単位で利用でき、ハイブリッド構成も可能

  6. 6位

    データセンター

    AIデータセンターの「電力・冷却課題」打破へ シュナイダーが営業・設計・現場を直結する新組織立ち上げ

  7. 7位

    TECH

    「PC調達はもはや経営層が考えるべき課題」 “侵入前提”時代に問われるエンドポイントの真価

  8. 8位

    sponsored

    スマホで「誤差数センチ」の高精度測量! レフィクシア「LRTK」が現場を変える

  9. 9位

    デジタル

    クリーニング屋が人手不足を“人手以外で”解決 一度は手放したkintoneを復活させ、AIで販管費を半減するまで

  10. 10位

    ソフトウェア・仮想化

    Microsoft IQとは? AIエージェントが必要とする理由は? マイクロソフトの担当幹部が解説

集計期間:
2026年09月26日~2026年10月02日
  • 角川アスキー総合研究所