はじめに
こんにちは、三菱電機の坂本です。
三菱電機 情報技術総合研究所では、製品開発時のセキュリティ対策にフィードバックする目的で、複数種類のハニーポットを設置・運用しています。
運用しているハニーポットの1つに、IoT機器を応答機能に設置した「IoT家電ハニーポット」があります。これは、IoT機器の普及に伴い増加した「IoT家電を使用している家庭」を模擬しています。
ハニーポットとは、攻撃される環境を模擬した囮システムであり、サイバーセキュリティの研究に使用されます。一般的に、攻撃を観測したいシステムを模擬するため、様々な種類のハニーポットが目的に合わせて設置されています。
IoT家電ハニーポットでは、IoT家電を標的としたサイバー攻撃を観測しており、さらに、IoT家電に搭載されたサーバ類を標的としたサイバー攻撃についても観測しています。
今回は、IoT家電ハニーポットで観測した、SLPの脆弱性を突いた攻撃についてご紹介します。
SLPとは
SLP(Service Location Protocol)とはネットワーク上の各種サービスを動的に検出するためのプロトコルであり、SLPv1はRFC2165、SLPv2はRFC2608で標準化されています。
SLPを用いることでクライアントは事前の細かな設定を行わずに必要なサービスを見つけることができ、ネットワーク環境の柔軟性の向上や管理の簡素化などの利点があります。
SLPは他のサービス検索系のプロトコルと比較して、リソースや使用されるサービスが多い企業LANなどの環境に向いており、家の環境では低リソースでも動作するSSDPなどのプロトコルが使用されています。
RFC2608に記載されていますが、SLPはLAN内で使用されるプロトコルであるため外部からの通信は基本的に発生しません。
SLPには3種類のエージェントが存在します。
| エージェント名 | 役割 |
|---|---|
| ユーザエージェント(UA) | 使用するサービスを探す役割を担い、必要な情報を取得する。 |
| サービスエージェント(SA) | ネットワークサービスのサービス通知を保持し、ディレクトリエージェント(DA)が使用不可の場合は、ユーザエージェント(UA)からのサービス要求のマルチキャストに返答する。 ディレクトリエージェント(DA)が使用可能の場合は、ディレクトリエージェント(DA)にサービスの登録、解除を実施する。 |
| ディレクトリエージェント(DA) | サービスエージェント(SA)が送信したサービス通知のキャッシュを保持し、ユーザエージェント(UA)からのサービス要求を解決する。 |
SLPの通信の流れ
SLPプロトコルのサービス要求の流れはDAの設置の有無によって異なります。
まず、DAを設置しない場合は以下の流れで処理を行います。
- UAはブロードキャストまたはマルチキャストでサービス要求を送信する
- SAはサービス応答をユニキャストで返す
DAを設置する場合は、以下の流れで処理を行います。
- SAはDAに対して自機が知るすべてのサービスをリストした登録メッセージ(SrvReg)を送る
- DAはSAに対して確認応答(SrvAck)を返す
- 登録メッセージ(SrvReg)を受け取ったDAはDA通知をブロードキャストまたはマルチキャストで送信する
- DA通知を受信したUAは、サービス要求をブロードキャスト/マルチキャストではなくユニキャストでDAに送信する
- DAはUAにユニキャストでサービス応答を返す
上述したサービス要求のほかにサービスタイプ一覧要求があります。
サービス要求ではサービスタイプを指定して送信し、指定したサービスタイプに対応するSAまたはDAが応答を返しますが、サービスタイプ一覧要求は送信されるとネットワーク上の全種類のサービスタイプが応答として返信されます。
基本的にサービスタイプ一覧要求はシステムやアプリケーションの起動時やネットワーク参加時に送信されます。
SLPの脆弱性を突いた攻撃
SLPには増幅型DDoS攻撃の脆弱性があります。
本脆弱性はCVEに採番されており、CVSSが7.5であることからかなり危険度の高い脆弱性として知られています(CVE-2023-29552)。
具体的には以下の手順で攻撃が行われます。
- 攻撃者はDAに対して、エントリを拒否するまでサービスを登録し続ける
- 攻撃者はDAに対して、送信元IPアドレスを攻撃対象のIPアドレスに偽装して、サービスタイプ一覧要求を送信し続ける
- DAは攻撃対象に攻撃者が登録した大量のサービスに関するサービスタイプ一覧応答パケットを送信し続け、攻撃対象のリソースを消費させる
観測内容および考察
本ハニーポットでも多数のSLPパケットを観測したので紹介します。
2025/10/1~2025/11/30の期間にて外部から本ハニーポット向けのSLPパケットを計82,524パケット観測しました。
前述した通り、SLPはLAN内で使用されるプロトコルであるため外部からの通信は基本的に発生しません。それゆえ外部からのSLP通信は攻撃である可能性が高いです。
今回はCVE-2023-29552に着目し、当該脆弱性を突いたDDoS攻撃実行時に送信されるパケットを本ハニーポットで観測しているかを確認しました。
SLPにてどのような通信を行おうとしたかはSLPヘッダのFunction-IDにて確認できます。
CVE-2023-29552にて使用される通信のFunction-IDは「SLPの脆弱性を突いた攻撃」の図において、①にあたるサービス登録要求を指す03と、②にあたるサービスタイプ一覧要要求を指す09です。
ハニーポットにて観測したSLPパケットをFunction-ID別に整理した表を以下に示します。
| Function-ID | 説明 | パケット数 | 割合 |
|---|---|---|---|
| 01 | サービス要求 | 35,029 | 42.4% |
| 03 | サービス登録要求 | 0 | 0% |
| 09 | サービスタイプ一覧要求 | 42,216 | 51.2% |
| - | フォーマット不正、破損パケット | 5,279 | 6.4% |
Function-IDは計12種類ありますが、本ハニーポットでは01と09しか観測できず、サービス登録要求である03は観測できませんでした。
サービス登録要求を観測できなかった原因としてはサービス登録要求には認証機能(デジタル署名)があることが考えられます。
認証機能があっても攻撃者が手当たり次第に登録要求を送信してくる可能性もあると考えていましたが、実際はサービス登録せず、既に登録してあるサービスを用いてDDoS攻撃を行おうとしたと考えられます。
Function-ID:09の通信はDDoS攻撃だけではなく、攻撃者がサービスタイプを確認しようとした探索行動の可能性もありますが、同一IPアドレスから短時間に複数回のFunction-ID:09を確認したため、探索行動よりもDDoS攻撃のパケットである可能性が高いと思われます。
またCVE-2023-29552を用いた攻撃には用いられないFunction-ID:1のサービス要求も多く観測されたが、攻撃者が DAを探索する際に使用したと考えられます。
おわりに
ここまでお読みいただきありがとうございました。
今後も、ハニーポットを用いた観測・分析結果について、こちらで発信していく予定です。
ご質問やコメントもお待ちしております。


