【でぃーぴーあい(でぃーぷぱけっといんすぺくしょん)】

DPI(ディープパケットインスペクション) とは?

最終更新:
💡 通信のデータ部分の内容まで調べる技術

通信をIPアドレスやポート番号などだけでなく、データ部分の内容まで調べて種類を見分ける技術。検知や通信制御に利用される。暗号化された内容を、そのまま平文として読めるわけではない。

📌 このページのポイント
DPIを使って通信を制御する例 通信データ ヘッダー データ部分 DPIで検査 通過 ルールに従う 遮断 ルールに従う 検査ルール 暗号文は、そのまま内容を読めない
データ部分まで調べ、設定したルールで通過・遮断する構成の例。警告のみの構成もあり、検査結果が常に攻撃や安全を保証するわけではない。暗号化された部分は、復号せずに平文として読めない。
ひよこ ひよこ
ペンギン先生 ペンギン先生
IPアドレス、ポート番号、通信の状態などで判定する方式に対し、DPIではデータ部分の内容にも踏み込むよ。例えば、アプリケーションの通信を解析して、その内容をルールと照合する実装があるんだ。
ひよこ ひよこ
中身を見ると攻撃を全部発見できる?
ペンギン先生 ペンギン先生
全部を確実に発見できるわけではないよ。検査できる内容や用意したルールに左右される。例えば既知の不審なパターンと照合して警告する方法があるけれど、ルールへの一致だけで、常に攻撃か安全かを正しく判断できるとは限らないんだ。
ひよこ ひよこ
IDSやIPSと同じもの?
ペンギン先生 ペンギン先生
DPIは検査の技術で、IDSやIPSは侵入の検知や防御を行うシステムだよ。DPIを利用する実装もある。例えばSuricataではルールにalertやdropなどの動作を指定できるけれど、警告するか遮断するかはルールや運用する構成で変わるんだ。
ひよこ ひよこ
HTTPSでも内容を読めるの?
ペンギン先生 ペンギン先生
暗号化された内容は、復号せずに平文として読めないよ。見える範囲の接続情報が種別の判定に役立つことはあるけれど、それは本文を読んだこととは違う。別途TLSを復号して検査する構成もあり、見える範囲は方式によって変わるんだ。
ひよこ ひよこ
特定のサービスを制限していたら、DPIを使っている?
ペンギン先生 ペンギン先生
制限だけでは判断できないよ。DPIを使った内容による制御のほか、IPアドレスなどで制御する方式もある。DPIで種類を判定したから必ず遮断する、というわけでもないので、何を調べ、どのルールで動作するかを確認しよう。
もっと詳しく知りたい人へ

複数のパケットに分かれた内容はどう調べるの?

受け取ったデータを組み立て直して検査する実装があるよ。例えばSuricataのルールでは、個々のTCPパケットを扱うものと、再構成したストリームを扱うものを区別できる。どちらも同じ範囲を検査するわけではなく、性能や検知の結果は実装や条件によって変わるんだ。

TLSを復号して検査するときは何に注意する?

通信の間に入る機器を端末が信頼し、その機器がTLS通信を扱って内容を検査する構成があるよ。機器が機密情報にアクセスできるため、検査する範囲と権限、情報の扱いを確認する必要がある。検査機器や鍵の管理そのものも重要で、導入すれば無条件に安全になるわけではないんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「DPI(ディープパケットインスペクション)」って出てきたら「通信のデータ部分の内容まで調べる技術」と思えばだいたいOK!
📖 おまけ:英語の意味
「Deep Packet Inspection」 = 深いパケット検査
💬 Deepは深い、Packetは通信で扱うデータのまとまり、Inspectionは検査という意味だよ。アドレスなどの情報だけでなく、データの内容まで踏み込んで調べることを表すんだ。

参考資料

← 用語集にもどる