はじめに
こんにちは、三菱電機の坂本です。
三菱電機 情報技術総合研究所では、製品開発時のセキュリティ対策にフィードバックする目的で、複数種類のハニーポットを設置・運用しています。
運用しているハニーポットの1つに、IoT機器を応答機能に設置した「IoT家電ハニーポット」があります。これは、IoT機器の普及に伴い増加した「IoT家電を使用している家庭」を模擬しています。
ハニーポットとは、攻撃される環境を模擬した囮システムであり、サイバーセキュリティの研究に使用されます。一般的に、攻撃を観測したいシステムを模擬するため、様々な種類のハニーポットが目的に合わせて設置されています。
IoT家電ハニーポットでは、IoT家電を標的としたサイバー攻撃を観測しており、さらに、IoT家電に搭載されたサーバ類を標的としたサイバー攻撃についても観測しています。
今回は、IoT家電ハニーポットで観測した、マルチキャストDNSの不備を突いた攻撃についてご紹介します。
DNSとは
DNSとはドメイン名からIPアドレスを解決する名前解決プロトコルであり、Webブラウザ経由でWebサイトにアクセスする際によく用いられます。
DNSを用いた名前解決の流れは以下のとおりです。
特定の機器に対して通信を行う際には通信相手のIPアドレスを指定する必要がありますが、IPアドレスは人間には覚えにくい番号であるため、Webサイトにアクセスする際にドメイン名を用いるケースが多く存在します。
しかしドメイン名では通信することができないため、ドメイン名を通信相手のIPアドレスに変換する仕組みが必要であり、その仕組みをDNSと呼びます。
通信の流れとして、まず①でドメイン名に対応するIPアドレスを通信相手のネットワークにあるDNSサーバに問い合わせるためにDNSリクエストを送信します。②でDNSサーバはドメイン名に対応するIPアドレスをDNSレスポンスに載せて返すので、最終的に③でそのIPアドレスを用いてWebサーバにアクセスします。
マルチキャストDNSとは
マルチキャストDNS(mDNS)も、DNSと同じくホスト名からIPアドレスを解決する名前解決プロトコルの一種です。
しかしDNSは外ネットワークからの名前解決を行うのに対して、mDNSは自ネットワークからの名前解決のためにのみ使用されます。
mDNSを用いた名前解決のフローは以下の通りです。
DNSリクエスト送信時に設定される宛先IPアドレスには224.0.0.251のマルチキャストIPアドレスが設定されます。
DNSリクエストは同一ネットワーク上の全機器に送信されますが、解決したいホスト名を持つ機器のみがDNSレスポンスを返し、それ以外の機器は当該パケットを無視します。
上記フローから分かるようにmDNSはDNSサーバを必要とせず、比較的低コストに名前解決を行うことができる点がDNSよりも優れています。
mDNSの脆弱性
しかし一部の機器に搭載されたmDNSモジュールでは、外ネットワークからのユニキャストのDNSリクエストに対してDNSレスポンスを返す問題が存在します。
その結果、接続されているネットワーク機器に関する情報の漏洩 、また他のネットワークに対するDoS攻撃の踏み台として使用される恐れがあります。
本脆弱性は日本で使用されているソフトウェアなどの脆弱性情報とその対策情報を提供するポータルサイトJVN(Japan Vulnerability Notes)にも登録されています(JVNVU#98589149)。
本ハニーポットでもmDNSを用いたネットワーク機器情報の奪取の試行が見られたので紹介します。
分析対象のmDNSパケット
今回は以下のデータを対象にmDNSパケットを抽出しました。
- 受信パケットがUDPパケット
- 宛先ポート番号が5353
観測したmDNSの不備を突いたと思われる攻撃
2025年2月15日~2025年4月15日の期間にて、弊社ハニーポットで、上記の特徴を持つ攻撃を106,777件観測しました。
また全パケットが外部からのユニキャストパケットかつDNSリクエストの通信で、mDNSの脆弱性を突いた攻撃の可能性があると思われます。
分析方法
抽出したmDNSパケットを以下の観点で分析しました。
分析観点
- mDNSの不備を突いた攻撃の日別パケット数
- 攻撃元ホスト情報
分析結果
日別の攻撃件数
日別の攻撃件数を示した図を以下に示します。
分析の結果、ハニーポットにてmDNSの脆弱性を突いたと思われる攻撃が毎日約1,000弱~3,500パケットほど送信されていることが分かりました。
攻撃元ホスト情報
攻撃元の国の割合は以下のとおりです。
攻撃元の国としては、アメリカ、メキシコ、中国の順に多く、特にアメリカは67.72%と過半数以上の攻撃がアメリカからのものでした。
日本も上位12位であり、1.27%でした。
また送信元のIPアドレス別のパケット数は以下のとおりです。
観測期間全体で見ると、特定のIPアドレスからの攻撃が突出していた訳では無く、様々なIPアドレスからの攻撃を観測しました。本グラフでは攻撃パケット送信数の上位20位までのホストを示しており、上位20位外のものは”Other”に分類しています。観測期間全体でみると、”Other”が全体の82.6%を占めていました。
mDNSの実装上の不備を付いた攻撃を防ぐには
この攻撃による機器情報の漏えいを防ぐためには、ネットワーク機器の開発者がmDNSリクエストを受信した際の機器の処理を修正し、本脆弱性を突けないようにすることが最も有効であると考えます。
具体的には機器が外ネットワークからのmDNSのリクエストに対してDNSレスポンスを返さず、パケットを破棄するようにプログラムを修正することで、本記事にて紹介したような攻撃を防ぐことが可能です。
また私たちが行える対策としては、mDNSで使用するUDPの5353ポートをブロックすることが挙げられます。
このルールを適用したACL(Access Control List)をデバイスやファイアフォールに設定することで、外部からの不正なmDNSリクエストに対しての応答の送信を防ぐことができ、情報漏洩を未然に防ぐことができます。
また上記の対策に加え、mDNSサービスを使用しない機器においてはmDNSサービスを停止させておくことも、本トピックにて記載した攻撃を防ぐのに効果的な対策と言われています。
おわりに
ここまでお読みいただきありがとうございました。
今後も、ハニーポットを用いた観測・分析結果について、こちらで発信していく予定です。
ご質問やコメントもお待ちしております。