Tencentの情報セキュリティ部門であるXuanwu Labの研究者は、Windowsで使用されるNetBIOSプロトコルの実装に重大なバグを発見しました 。 この重大な脆弱性はBadTunnelと呼ばれ、攻撃者が被害者のネットワークトラフィックを完全に制御できるようにします。
問題は何ですか
BadTunnelを使用すると、攻撃者はHTTPおよびHTTPS要求だけでなく、オペレーティングシステムのすべてのネットワークアクティビティも制御できます。 たとえば、システムアップデートのダウンロードと証明書リストの取得プロセスに介入します。 Windowsのすべてのバージョンは脆弱です。
脆弱性を発見した研究者Yang Yuによると、被害者のトラフィックのリダイレクトは、偽のWPADファイル(Web Proxy Auto Discovery)またはISATAPサーバーを使用して行うことができます。
起こりうる攻撃の分析
Positive Technologiesの専門家は、BadTunnel脆弱性を使用した攻撃の可能性について説明しました。 その実装には、少なくとも1つのUNCまたはURIパスを開くように被害者を説得する必要があります。これは、悪意のあるサイトのアドレス、フォルダまたはドキュメントのアドレスである可能性があります。 この場合、標準ソケットではなく、NetBIOS over TCP / IPが使用されます。
パスには、攻撃サーバーのIPアドレスが含まれている必要があります。次に例を示します。
<img src=\\10.10.10.10\BadTunnel>
このアドレスを処理するとき、要求は最初にポート139(NetBIOSセッション)または445(Microsoft-DS Active Directory、Windows共有)に送信されます。 これらのポートが閉じている場合、被害者はポート137にNetBIOSネームサービス(NBNS)NBSTATメッセージを送信し、UDPトンネルを開いて攻撃者が被害者に直接リクエストを送信できるようにし、NATおよびファイアウォールをバイパスします。
被害者のコンピューターが標準のWPAD構成を持っている場合、随時、WPADという名前のノードを検索してブロードキャスト要求を送信します。 また、攻撃者は被害者のコンピューターへのトンネルを持っているため、WPAD名の要求に対して多くの偽の応答を生成するだけで十分です。これは、攻撃者がプロキシサーバー設定を保持するサーバーアドレスを示します。
脆弱なコンピューターがWPAD要求に対する架空の応答を受け入れると、WPADアドレスでプロキシ設定の検索を開始します。 それらを見つけた後、接続が発生し、攻撃者は被害者のトラフィックを完全に制御します。
なぜこれが可能ですか
Positive Technologiesの専門家は、説明されている攻撃を実行する可能性について説明しています。
- NBNS要求のトランザクションIDフィールドはランダム化されず、インクリメントされるため、攻撃者はそれを取得できます。
- NBSTATおよびNB要求は一緒に増分されます(1つのカウンター)。
- デフォルトでは、NBSTATメッセージは外部ネットワークに送信できます。
- ブロードキャスト要求は、外部ネットワークから応答を受信できます。
- NBNSは、137個のポートとUDP(クライアントとサーバーの両方)のみを使用します。これは、セッションと状態をサポートしません。
自分を守る方法
ファイアウォールやNATなどのツールを使用しても、BadTunnel脆弱性を使用した攻撃を防ぐことはできません。 Yang Yuによると、この理由はUDPプロトコルが接続を確立せず、トンネルの作成に使用されるという事実にあります。
マイクロソフトは、Windowsの最近のバージョンのバグを修正するセキュリティ情報MS16-063およびMS16-077を公開しました。
これらの更新の本質は、WPAD名の定期的な定義がデフォルトでオフになり、ホームネットワークからのNBSTAT要求もデフォルトでブロックされることです。 これらの変更はレジストリキーによって規制されており、BadTunnelを使用した攻撃に対してUDPトンネルを確立することを不可能にします。
ただし、この脆弱性は廃止されたままであり、現在サポートされていないバージョンのOSです。 これらには、Windows XPおよびWindows Server 2003が含まれます。これらのシステムのユーザーは、自身を保護するためにUDPポート137をブロックする必要があります。
Yang Yuによると、これはWPAD傍受攻撃の可能性につながる最初の脆弱性ではありません。 Flameワームの活動が急増した1999年 、 2007年 、 2012 年に同様のケースが記録されました。
既存の概念実証スクリプトは、NBSTAT要求のトランザクションID情報を考慮せず、0〜65535の可能なすべてのトランザクションIDフィールド値を持つ要求への偽の応答の巨大なストリームに基づいています。ただし、攻撃を成功させるには最小限の偽パケットで十分です。
Positive Technologiesの専門家は、NetBIOS名の置換とUDPトンネルの確立の段階を検出し、WPADおよびISATAPアドレスを置換する試みをブロックし、攻撃の可能性を知らせるIDS Suricataの一連の署名を開発しました。 それらは公式のTwitterおよびgithubアカウントで利用可能です。