【ITニュース解説】LLNMR Poisoning (Active Directory and Windows Attacks)
2025年09月20日に「Medium」が公開したITニュース「LLNMR Poisoning (Active Directory and Windows Attacks)」について初心者にもわかりやすく解説しています。
ITニュース概要
LLMNR Poisoningは、WindowsやActive Directory環境で使われるLLMNRという通信プロトコルを悪用した攻撃だ。攻撃者はネットワーク上で端末になりすまし、ユーザーの認証情報や機密情報を盗み出す。これは企業システムにとって深刻なセキュリティリスクとなるため、その仕組みを理解し対策することが重要だ。
ITニュース解説
LLMNR Poisoningとは、ネットワークセキュリティにおいてActive DirectoryやWindows環境を標的とする攻撃手法の一つであり、その名の通りLLMNR(Link-Local Multicast Name Resolution)プロトコルの脆弱性を悪用するものだ。この攻撃を理解するには、まずLLMNRがどのようなプロトコルであるかを知る必要がある。
LLMNRは、Microsoftが開発した名前解決プロトコルであり、主にWindowsのコンピューターが使用している。通常、コンピューターが別のコンピューターの名前(例えば「SERVER01」)からIPアドレスを調べる際には、DNS(Domain Name System)サーバーに問い合わせを行う。しかし、DNSサーバーが利用できない状況や、名前解決の問い合わせが失敗した場合に、同じローカルネットワーク内のコンピューターに対して「この名前のコンピューターはどこにいる?」と直接問い合わせる仕組みがLLMNRだ。これは、例えば小規模なネットワークでDNSサーバーがなかったり、一時的にDNSサーバーが停止していたりする場合でも、ネットワーク内の機器同士が通信できるようにするための補助的な機能として設計されている。問い合わせはマルチキャストという形式で行われ、同じローカルネットワークに接続されている全ての機器にその問い合わせが届く。
このLLMNRの仕組みには、セキュリティ上の重大な問題がある。LLMNRの問い合わせに対しては、誰でも応答できてしまうという特性があるのだ。正規のコンピューターが応答するだけでなく、悪意のある攻撃者も応答できてしまう。これが「Poisoning(毒入れ)」という言葉が使われる所以である。
LLMNR Poisoning攻撃の具体的な流れは次のようになる。まず、攻撃者はターゲットとなるコンピューターが、存在しないホスト名や間違ったホスト名に対してLLMNRによる名前解決の問い合わせを行うのを待ち受ける。例えば、ユーザーが誤ってファイルサーバーの名前をタイプミスした場合などがこれに該当する。ターゲットのコンピューターが「存在しないサーバー名」のIPアドレスをLLMNRで問い合わせると、同じローカルネットワークに接続されている攻撃者のコンピューターが、その問い合わせに対して「私がそのサーバーだ」と偽って応答する。
この偽の応答を受け取ったターゲットのコンピューターは、攻撃者のコンピューターを正規のサーバーだと信じ込み、接続を試みる。この際、Windowsの認証プロセスでは、通常、ユーザー名とパスワードを直接送るのではなく、パスワードの「ハッシュ値」という特殊な形式の認証情報を送信しようとする。このハッシュ値は、元のパスワードから一方向の計算で生成されたデータであり、NTLM(NT LAN Manager)ハッシュなどがその代表例だ。ターゲットのコンピューターは、攻撃者のコンピューターに対して、このNTLMハッシュなどの認証情報を自動的に送信してしまう。
攻撃者は、この傍受したNTLMハッシュを直接利用してネットワーク上の他のリソースにアクセスすることはできないが、このハッシュ値を使って元のパスワードを推測する「オフラインクラッキング」という手法を用いることができる。総当たり攻撃や辞書攻撃などを用いて、ハッシュ値から元のパスワードを解読しようと試みるのだ。もし強力なパスワードであれば解読に時間がかかるか不可能だが、脆弱なパスワードであれば比較的容易に解読されてしまう可能性がある。パスワードが解読されれば、攻撃者はそのユーザーとしてネットワーク内の他のシステムやデータにアクセスできるようになり、企業全体のセキュリティが危険にさらされる。特に、ドメイン管理者など特権ユーザーの認証情報が盗まれた場合、攻撃者はActive Directory環境全体を完全に制御できるようになり、深刻な被害につながる可能性がある。
このLLMNR Poisoningは、攻撃者が一度内部ネットワークに侵入してしまえば、比較的簡単に実行できる攻撃手法である点が脅威だ。高度なスキルや特別な権限がなくても、ネットワークトラフィックを傍受できる環境にあれば実行可能となるため、内部からの脅威として特に注意が必要である。
LLMNR Poisoningに対する対策としては、いくつかの重要な点が挙げられる。まず最も効果的なのは、LLMNRプロトコル自体を無効化することだ。ほとんどの企業ネットワークではDNSサーバーが適切に運用されており、LLMNRのような補助的な名前解決機能は不要である場合が多い。グループポリシーなどを用いて、組織内の全てのWindowsコンピューターでLLMNRを無効化することで、この攻撃のリスクを根本から排除できる。次に、ネットワークのセグメンテーションも重要だ。ネットワークを複数の小さなセグメントに分割し、それぞれをファイアウォールなどで厳密に隔離することで、攻撃者が一部のセグメントに侵入しても、他の重要なセグメントには容易にアクセスできないようにする。LLMNRの問い合わせはローカルネットワーク内に限定されるため、セグメンテーションにより攻撃範囲を限定できる。さらに、ユーザー認証情報に関する対策も不可欠である。強力で推測されにくいパスワードの使用を組織全体で義務付け、定期的なパスワード変更を推奨する。また、多要素認証(MFA)を導入することも極めて有効だ。たとえパスワードのハッシュ値が盗まれ、パスワードが解読されたとしても、MFAが有効であれば、追加の認証要素(スマートフォンでの承認、生体認証など)がなければシステムにログインできないため、攻撃を阻止できる。ネットワークトラフィックの継続的な監視も重要だ。異常なLLMNRトラフィックや、通常とは異なる認証要求などを検知できるよう、ログ管理やIDS/IPS(不正侵入検知/防御システム)などのセキュリティツールを導入し、常に監視体制を維持する。最後に、全てのシステムとソフトウェアを常に最新の状態に保ち、不要なサービスやプロトコルは無効化することも基本的ながら重要な対策である。これらの対策を組み合わせることで、LLMNR Poisoningだけでなく、多くのネットワーク攻撃に対する防御力を高めることができる。システムエンジニアを目指す上では、このようなプロトコルの仕組みとその脆弱性、そして具体的な対策方法を理解することが、安全なシステム構築と運用にとって不可欠だ。