はじめに
こんにちは、三菱電機の坂本です。
三菱電機 情報技術総合研究所では、製品開発時のセキュリティ対策にフィードバックする目的で、複数種類のハニーポットを設置・運用しています。
運用しているハニーポットの1つに、IoT機器を応答機能に設置した「IoT家電ハニーポット」があります。これは、IoT機器の普及に伴い増加した「IoT家電を使用している家庭」を模擬しています。
ハニーポットとは、攻撃される環境を模擬した囮システムであり、サイバーセキュリティの研究に使用されます。一般的に、攻撃を観測したいシステムを模擬するため、様々な種類のハニーポットが目的に合わせて設置されています。
IoT家電ハニーポットでは、IoT家電を標的としたサイバー攻撃を観測しており、さらに、IoT家電に搭載されたサーバ類を標的としたサイバー攻撃についても観測しています。
今回は、IoT家電ハニーポットで観測した、NTPを用いた攻撃についてご紹介します。
NTPとは
NTP (Network Time Protocol) とは、コンピュータや機器間でネットワークを通じ時刻情報を送受信するプロトコルです。
主にデータの整合性を保つ、またログ分析を容易にするために複数の機器間で時刻を共有、同期する際に使用されます。
NTPの同期方法
NTPの同期方法は後述する「②Server/Clientモードにおける時刻同期」が最も有名かと思いますが、実はNTPの同期方法は計3種類あります。
みなさんご存じでしたか?私はハニーポットでNTPの調査を進めて初めて知りました。
①Symmetric Active/Passiveモードにおける時刻同期
1つ目は、機器をSymmetric Active/Passiveモードに設定して時刻同期を行う方法です。
この方法はどちらかがサーバ、クライアントになるということはなく、互いの時刻情報を信頼し合い、互いの時刻の修正を行います。
Symmetric Activeは自発的にNTPフレームのMode値を1に設定したパケットをSymmetric ActiveおよびSymmetric Passiveに送信します。
一方Symmetric Passiveは自発的にはパケットを送信せず、Symmetric ActiveからのパケットをトリガーにMode値を2に設定したNTPパケットを送り返し、時刻同期を行います。
②Server/Clientモードにおける時刻同期
2つ目は、機器をServer/Clientに設定して時刻同期を行う方法です。
この方法ではClientがServerにMode値を3に設定したNTPパケットを送信します。
Clientから要求を受けたServerはClientにMode値を4に設定したNTPパケットを送り、Clientはそのパケットをもとに時刻同期を行います。
ServerもClientから時刻情報を受け取るが、時刻同期は実施しません。
③Broadcast Server/Broadcast Clientモードにおける時刻同期
3つ目は、機器をBroadcast Server/Broadcast Clientに設定して時刻同期を行う方法です。
この方法ではBroadcast Serverが同一セグメント内にいるBroadcast ClientにMode値を5に設定したNTPパケットをブロードキャストします。
Broadcast Clientはこのパケットを受信し、時刻同期を実施します。
NTP通信とモード値の関係
NTPパケットのモード値と通信内容をまとめると以下のとおりです。
| Mode値 | Mode名 | 説明 |
|---|---|---|
| 1 | Symmetric Active | Symmetric Active間で時刻同期、Passiveに時刻送信 |
| 2 | Symmetric Passive | Symmetric Activeからのフレームに対して返信 |
| 3 | Client | Serverに時刻情報取得要求を送信 |
| 4 | Server | Clientに時刻情報を返信 |
| 5 | Broadcast Server | Broadcast Clientに時刻情報をフラッディング |
| 6 | 制御メッセージ1 | NTPサーバの管理、監視、設定変更時などに使用 |
| 7 | 制御メッセージ2 | NTPサーバの詳細な管理や内部情報の取得時などに使用 |
NTPを用いた攻撃
NTPは、仕様の穴や脆弱性を突いて攻撃に使用されることが多いプロトコルとして知られています。
NTPを用いた有名な攻撃の一つにNTPリフレクタ攻撃 (NTP Reflection Attack) があり、以下の流れで行われます。
- 攻撃者は送信元を攻撃先のサーバに偽装して、データ量が大きいレスポンスを返すようにNTPサーバへリクエストを送信する
- NTPサーバは偽装された攻撃先のサーバに対して大量のデータを含む応答を返す
- 攻撃先のサーバに大量の応答データが届くことで、攻撃先のネットワーク帯域やリソースが過負荷状態になり、サービスが停止する
観測対象
今回は2025/03/01~2025/5/31の期間において、本ハニーポットにて観測されたNTPパケットの分析結果を紹介します。
具体的には受信したNTPパケット数およびMode値の内訳、攻撃者が行おうとした攻撃の考察を記載します。
受信したNTPパケット数
2025/03/01~2025/5/31の期間にて、計1,482,787件ものNTPパケットを観測しました。
送信元IPアドレスを確認したところ、全体の45.24%がアメリカからの攻撃でした。
Mode別の内訳
受信したNTPのMode値の内訳を以下に示します。
| Mode値 | Mode名 | パケット数 | 割合 |
|---|---|---|---|
| 1 | Symmetric Active | 54 | 0% |
| 2 | Symmetric Passive | 1,347 | 0.1% |
| 3 | Client | 248,524 | 16.8% |
| 4 | Server | 59,554 | 4.0% |
| 5 | Broadcast Server | 14,631 | 1.0% |
| 6 | 制御メッセージ1 | 56,037 | 3.8% |
| 7 | 制御メッセージ2 | 1,100,379 | 74.2% |
| 0 | 破損パケット | 1,295 | 0.1% |
| - | フォーマット不正 | 966 | 0.0% |
受信したNTPパケットのうち約75%がMode値7のNTPパケットでした。
Modeが7のNTPパケットはNTPサーバの詳細情報や統計データを取得するときなどに用いられ、当該機能はmonlist機能と呼ばれます。またmonlist機能を用いることで、NTPサーバの情報だけではなく、時刻同期の問い合わせをしたNTPクライアントの情報も取得でき、そのような情報を奪取しようとした攻撃の可能性があります。
またmonlist機能にて特定の問い合わせを行った際の応答データサイズが大きいことを悪用してDDoS攻撃を行うことができ、このことはCVEとしても登録されています (CVE-2013-5211) 。この脆弱性を突いた攻撃が含まれる可能性も高いと考えます。
また今回は観測できませんでしたが、NTPを用いた攻撃としてCiscoの特定の製品がデフォルトでSymmetric Passiveモードが有効になっていることを悪用し、タイムスタンプを適当な値に設定したMode1のパケットを送信して、サーバの時刻情報を適当な値に設定させる攻撃なども存在します。
おわりに
ここまでお読みいただきありがとうございました。
今後も、ハニーポットを用いた観測・分析結果について、こちらで発信していく予定です。
ご質問やコメントもお待ちしております。


