web-dev-qa-db-ja.com

ファイアウォールがICMPをブロックすることは悪い考えですか?

この質問は this answer に触発されて、部分的に述べています:

汎用ファイアウォールマニフェストファイルは、(ICMP以外に、ICMP以外の方法で許可しない)すべてをドロップすることで終了します。ICMPをオフにしないでください。

しかし、ファイアウォールがICMPを許可することは本当に良い習慣なのでしょうか?セキュリティへの影響は何ですか?ICMPをオフにする必要がある場合はありますか?

104
Justin Ethier

他のIPプロトコルと比較して、ICMPはかなり小さいですが、多数の異なる機能を果たします。中核となるICMPは、IPのデバッグ、トラブルシューティング、およびエラー報告メカニズムとして設計されました。これはめちゃくちゃ価値があるので、それをシャットダウンするために多くの考えが必要です。 >/dev/null 2>&1をすべてのcronエントリの最後に追加します。

ほとんどの場合、ICMPのブロックについて人々に話すとき、彼らは本当にpingとtracerouteについて話しています。これは3つのタイプに変換されます

  • 0-エコー応答(ping応答)
  • 8-エコー要求(ping要求)
  • 11-時間超過

これは16のうち3つのタイプです。利用可能な他のICMPタイプをいくつか見てみましょう。

  • 4-ソースクエンチ(ルーターから送信され、ホストに送信の速度を落とすよう依頼する)
  • 3-宛先に到達できません(断片化の問題の報告からポートが閉じていることを報告するファイアウォールまでの16種類のメッセージで構成されます)

どちらも、悪意のないホストがネットワーク上で適切に動作し続けるために非常に貴重です。実際、あなたがしないでください ICMPを制限したい非常に良い2つのケースがあります(おそらくもっと多いですが、これらは私にとって最も明白です)。

  • パスMTUディスカバリー-Do n't Fragmentフラグとタイプ3コード4(Destination Unreachable-Fragmentation required、and DF flag set))の組み合わせを使用して、パス間の最小MTUを決定しますこれにより、送信中の断片化を回避できます。
  • Active Directoryでは、GPOをプルダウンするためにクライアントがドメインコントローラーにpingする必要があります。彼らは「最も近い」コントローラーを決定するためにpingを使用し、どれも応答しない場合、どれも十分に近いとはみなされません。したがって、ポリシーの更新は行われません。

だからといって、すべての世界が見ることができるようにすべてをオープンにしておく必要があるというわけではありません。偵察is ICMPで可能であり、それが一般的にブロックの理由です。 pingを使用して、ホストが実際にオンになっているかどうかを判断したり、時間超過(tracerouteの一部として)を使用してネットワークアーキテクチャをマップしたり、Roryがリダイレクト(タイプ5コード0)を禁止してホストのデフォルトルートを変更したりできます。

以上のことを踏まえると、私のアドバイスは、いつものように、あなたの保護に対して測定された思慮深いアプローチを取ることです。 ICMPを完全にブロックすることはおそらく最良のアイデアではありませんが、whatを選択してブロックすると、to-from whereを選択して希望どおりの結果が得られます。

123
Scott Pack

ICMPには理由があり、その理由のすべてがpingであるとは限りません。これは、ネットワーク自体に関する制御メッセージを通信するために使用される「メタ」プロトコルです。 WikipediaのICMP を見て、それが何で何のためにあるのかをよりよく理解してください。

他のICMPメッセージには、宛先ホストに到達できない、断片化が必要、輻輳制御、TTL超過、IPプロトコルエラー、およびその他の多くのメッセージが含まれます。

ネットワークはICMPなしで動作します-パケットドロップに対する復元力はIPの中核的な強みの1つです-しかし、動作は遅く、非効率的であり、これらの信号の利点がないため、問題の診断と解決に役立ちません。

ICMPのセキュリティ問題は、より曖昧な「情報開示」問題になる傾向があります。例えば。ルーターがICMPメッセージを誰かに送り返す場合、その誰かはあなたがルーターを持っていることを知っています。たぶん、あなたがルーターを持っていることを攻撃者が知っていることは、あなたが心配していることかもしれませんし、そうでないかもしれません。しかし、念のため、セキュリティの研究は安全のために沈黙の側に誤りを犯しがちです。

OSにICMP関連の「ping of death」スタイルの脆弱性がある場合があります。現在、主流のOSには存在しません。しかし、もう一度、セキュリティ擁護者は念のために誤解を招きます。

34
tylerl

正直なところ、セキュリティの追加レイヤーとして、ルーターレベルとソフトウェアファイアウォールレベルの両方で送信ICMPをフィルタリングするのが賢明です。

DoSやDDoSを停止することは適切ではありませんが、悪意のある人々はICMPを使用して、ネットワークに侵入する前にできる限り多くの情報を取得しようとします。

ICMPのみを使用しているわけではありませんが、ICMPが使用する数少ないパケットタイプの1つであり、水門を開いているかどうかによって、非常に短い時間で詳細な情報を取得できます。

しばらく時間をかけてグーグルし、NMAPおよび他のいくつかのプログラムがICMPを情報収集のリソースの1つとしてどのように利用しているかについての情報を調べてから、自分とネットワークを保護するために必要と思われるものに基づいてフィルターを作成します。

可能であれば、内部テストネットワークをセットアップします(私は個人的にセカンダリwifiルーターを安価なものを購入し、メインのネットワーク全体でそれらを使用する前にすべてのルーター/ ipchains /ソフトウェアファイアウォール設定をテストするファイアウォールとしてセカンダリpcを持っています私の世帯と、ネットワークを保護するために私を雇った顧客。

私は、ポートスキャンと、自分自身のネットワーク上のファイアウォールを突破し、自分自身と自分が支援している家族をよりよく保護できるようにするための調査を試みることを強く推奨します。

これは、私が以前に使用して友人に紹介したリソースのカップルです。 Sans Information Security ICMPを偵察に使用する方法

そしてまた

InfoSec Institute ICMP攻撃

一部の攻撃はもはや実行可能ではありませんが、プログラマーが元の攻撃を再コーディングし、それがどのように機能し、リソースを使用するかを変更できたため、依然として機能する新しい形式のSmurfがあります。

調べてみて、GoogleはStack Exchangeと一緒にあなたの友達です。また、duckduckgo検索エンジンは、Googleが除外して慎重に判断してリソースを使用する可能性があるリソースに最適です。

私は22年間、PC技術者であり、10年間ネットワークセキュリティスペシャリストとして働いています。現在、ECHとCPTSを担当しています。これらを完了すると、Offensive Securityコースを検討しています。

私がこのシステムに作成したバックアップを復元し、この問題に関する他のリンクとリソースを見つけたときに、この情報が他の人にも役立つことを願っています。この回答を更新します。

4
brandizzle

プロトコル構造からわかるように、それはすべてそれが使用される領域に依存し、ファイアウォールはタイプとコードのパラメーターに作用することができるため、ファイアウォールを通過するものと通過しないものを決定できます。明らかに、ファイアウォールがICMPエコー要求を受信し、宛先ホストがアクティブであるかどうかを通知しても問題がない場合、ファイアウォールはエコー応答も通過させる必要があります。ただし、注意してください。ICMPパケットはDPIの対象となる必要があります。つまり、パケットの仕様と一致している必要があります。ICMPパケットが着信/発信ファイアウォールを通過し、ネットワーク内の1つ以上のホストにマルウェアがあった場合、これらのホストは、C&Cサーバーからコマンドを取得し、そのサーバーに情報を引き出します。一般的に、ボーダールーターで使用するのは賢明ではないと思いますが、内部ネットワークの診断には使用します。

2
lone

ICMPのブロックは役に立たないだけでなく、ほとんどの場合有害でもあります。何をしているのか絶対にわからない場合にICMPをブロックしてはならない理由がいくつかあり、特に何をしているのかがわかります。はいicmp pingは、他のユーザーがネットワークを「プロファイリング」するのに役立ちます。しかし、正直に言って、tcpサービスがまったく開いている場合は表示されます。パケットをドロップするだけの場合は表示されます。間違った方法で応答すると、表示されます。したがって、重要なサーバーをより安全にするためにネットワークで私たちの重要なサーバーを隠す必要があるという理論を信じている場合、ICMPをブロックすると、ホストがさらに明るいターゲットになる可能性が高くなります。 mtuパスの発見、輻輳制御などを壊し、サーバーを大規模なものから目立たせるために、それを間違って実行する方法はたくさんあります。したがって、ナットセルで、それを行う正当な理由がない場合はicmpをブロックしないでください。注意してそれを実行し、icmpプロトコルの仕様を読んで、何をしているか、なぜあなたが何をしているのかを理解してください。はい、古いカーネルがあるかどうかわからない場合は、ネットワークのエッジでicmpリダイレクトをブロックすることをお勧めします。しかし、もう1つの手は、誰かがあなたのバグを見つけてくれるカーペットの下に隠すよりも、サーバーと他のホストを更新する(実際の問​​題を修正する)ことです。

2
Tapio Haapala