DNSトンネリングの防止

DNSトンネリングの防止

最近、DNS トンネリング攻撃を実演したペネトレーションテストのウェビナーを視聴しました。ウェビナーの質疑応答セクションで、このようなトンネリングを防ぐにはどうすればよいかという質問がありました。内部 DNS サーバーが外部アドレスを解決できないようにし、外部の解決はすべてプロキシ経由で実行するようにというアドバイスでした。これでトンネリングが防止される理由を説明できる方はいらっしゃいますか。クライアントが、細工された DNS パケットを隠しペイロードとともにプロキシに送信するものを実行している場合、そのパケットは最終的に関連する DNS サーバーに到達し、プロキシ経由でクライアントに返されるのではないでしょうか。

答え1

短い答え: アプリケーション対応プロキシは、プロトコルインテリジェントな方法でパケットの内容を分析でき、通過する再構成されたパケットのペイロードがそのプロトコルのデータ構造に準拠しているかどうかを判断できます。そのため、プロキシは、たとえば HTTP データを DNS セグメントにトンネリングしようとしているかどうかを認識します。

答え2

プロキシでできることは他にもあります (または、私がトンネリングを心配している場合 (プロキシは必要なく、適切なルーターがあれば十分))。それは、ポート 53 のトラフィック量を厳しく制限することです。これではトンネリングを完全に防ぐことはできませんが、その有用性は大幅に低下します。(たとえば、120 秒間隔で 100kbit のデータを許可するとします。これは最大スループットが 1 秒あたり 100 バイト未満に相当し、この接続から大量のデータを取得することはできません)

関連情報