【入門編】 ICMP Type 5 (Redirect) の仕組みとセキュリティ上の懸念 – ネットワーク基礎とWebセキュリティ実践ガイド

こんにちは!ネットワークの裏側を探検する技術ブログへようこそ。インフラの世界へ足を踏み入れたばかりの皆さん、日々のネットワークの仕組みにワクワクしていますか?

私たちが普段何気なく使っているインターネットや社内ネットワーク。ブラウザを開いて「いってらっしゃい!」と送り出したパケットたちは、見えないルーターという交差点をいくつも経由して、目的地へたどり着きます。

今回は、そんなネットワークの旅の途中でこっそり行われている「おせっかい」な仕組み、そしてそれが現代のセキュリティにおいて「絶対に封印すべき危険な罠」に変貌するお話です。主役の名前は ICMP Type 5 (Redirect)。

難しい専門用語や英語のヘッダー名に怯える必要は一切ありません。身近な郵便配達の例えを交えながら、一歩ずつ優しく紐解いていきましょう!

—

1. パケットの旅の基本と「ルーター」の役割

まずは、私たちが住む現実世界とネットワークの世界を少しだけ重ね合わせてみてください。

あなたが遠くに住む友人に手紙を出したいとき、どうしますか? 宛先を書いて、近くのポストに投函しますよね。ポストに入れられた手紙は、まず地域の小さな郵便局に集められ、そこから大きな中継局を経て、相手の街の郵便局へと運ばれていきます。

ネットワークの世界も全く同じです。
自分のパソコン(ホスト)から見知らぬ宛先(例えばWebサーバー)へデータを送るとき、パソコン自身は「世界中のどこにそのサーバーがあるか」をすべて知っているわけではありません。

そこでパソコンは、こう考えます。
「とりあえず、自分のお部屋の出口を守ってくれている『お抱えのルーター(デフォルトゲートウェイ)』に丸投げしちゃおう!」

この「お抱えルーター」こそが、あなたのネットワークから外の世界へ飛び出すための最初の関門です。パソコンは、宛先がどこであれ、とりあえずこのルーターに向けて荷物(パケット)を差し出します。これがネットワークの基本の「キ」ですよね。

—

2. ICMP Type 5 (Redirect) ってなに? 〜おせっかいな郵便局員の物語〜

さて、ここからが本題です。今回の主役である ICMP Type 5 (Redirect) の登場です。日本語では「リダイレクト」、つまり「進路変更」を意味します。

どんなシチュエーションでこれが起きるのか、先ほどの郵便配達に例えてみましょう。

ある会社の中に、AさんとBさん、そして2台のルーター(ルーターX、ルーターY)があるとします。
Aさんの机のすぐ近くには「ルーターX」が置いてありました。Aさんは普段、社外へ荷物を送るときは何も考えず、いつもそのルーターXに荷物を渡していました。

ある日、AさんはルーターX経由で、同じ社内にある別のフロアのサーバーへ大きな荷物を送ろうとしました。

すると、荷物を受け取ったルーターXは、こう気づきます。
「おや? Aさん、この宛先のサーバーなら、僕(ルーターX)経由で遠回りするよりも、隣の部屋にある『ルーターY』に直接渡したほうが、はるかに近道で効率的じゃないか!」

ここでルーターXは、親切心(おせっかい心)を出します。
Aさんのもとへ戻ってきて、こう囁くのです。
「ねえAさん、これからはその宛先に荷物を送るとき、僕じゃなくてルーターYに直接渡しなよ! そっちの方が早いからさ!」

これが、ネットワークの世界で起きる ICMP Redirect の正体です。
ルーターがホスト(パソコン)に対して、「もっと効率の良いゲートウェイがあるから、次からはそっちを使いなさい!」とこっそり教えてあげる(指示する)ための特別なメッセージ、それが ICMP Type 5 なのです。

—

3. なぜ便利そうな仕組みが「セキュリティ上の脅威」になるのか?

「おや、ルーターが親切に近道を教えてくれるなんて、すごく効率的で素晴らしい機能じゃないか!」
そう思いませんでしたか? 確かに、大昔の非力なルーターや、ネットワークの構造が今ほど複雑でなかった時代には、この「おせっかい」が重宝されたこともありました。

しかし、現代のセキュリティの観点から見ると、この ICMP Redirect は「悪意ある攻撃者に足元をすくわれる致命的な弱点」になり得ます。

ここで考えてみてください。
あなたのパソコンは、ルーターXから「次からルーターYを使いなさい」と言われたとき、その指示が本当に本物のルーターXから発せられたものか、どうやって確認しているでしょうか?

実は、通常のICMP Redirectには、高度な本人確認(暗号署名など)の仕組みがありません。つまり、ネットワークの途中にこっそり入り込んだ悪いやつ(攻撃者)が、あなたのパソコンに対してこう偽りの叫び声を上げることができるのです。

「やあ! 僕が新しいゲートウェイだよ! すべての通信を僕を経由しなさい!」

もし、あなたのパソコンが素直にこの嘘を信じ込んでしまったらどうなるでしょうか?
あなたがWebブラウザに入力するパスワードも、クレジットカードの番号も、会社の機密データも、すべて攻撃者のパソコンを経由(中継)して流れていくことになります。

これこそが、ネットワークセキュリティの分野で恐れられる中間者攻撃(Man-in-the-Middle Attack: MITM)の古典的かつ強力な手口の一つです。攻撃者は、あなたと通信相手の間にこっそり割り込み、すべてのデータを盗み見たり、改ざんしたりできてしまうのです。

—

4. 現代のネットワークにおける「無効化」の推奨

「じゃあ、どうすればいいの?」という話ですよね。

答えはとてもシンプルです。
「現代のネットワーク環境において、このおせっかい機能は一切不要であり、リスクでしかないため、今すぐ無効化するべき」というのが、国内外のセキュリティ専門家やインフラエンジニアたちの共通見解です。

なぜなら、現在のネットワークはルーティングプロトコル(OSPFやBGPなど)や、適切な静的ルート(スタティックルート)によって、最初から最も効率的で安全な経路が設計されているからです。エンドポイント(個人のパソコンやサーバー)が、途中で会ったルーターの気まぐれな指示に従って、その場で通信経路をコロコロ変える必要性なんて、実はありません。むしろ、そんな不安定な挙動はトラブルの元です。

それでは、実務で私たちがどのようにこの危険な機能を封じ込めているのか、実際のLinuxサーバーでの設定例を見てみましょう!

—

5. 実務で役立つ! LinuxにおけるICMP Redirectの無効化設定

インフラエンジニアとしてLinuxサーバー(UbuntuやCentOS、Red Hatなど)を構築する際、OSのデフォルト設定ではICMP Redirectを受け入れるようになっている場合があります。これをしっかりと安全な設定に直していきましょう。

Linuxのネットワークパラメータを管理する sysctl という仕組みを使います。

一時的な無効化(今すぐ適用したい場合)

ターミナルを開いて、以下のコマンドを実行すると、即座にICMP Redirectの受け入れを停止できます。

# すべてのインターフェースでICMP Redirectの「受け入れ」を禁止する
sudo sysctl -w net.ipv4.conf.all.accept_redirects=0

# デフォルトのインターフェースでも個別に禁止する
sudo sysctl -w net.ipv4.conf.default.accept_redirects=0

永続的な無効化(サーバーの再起動後も維持したい場合)

実務では、サーバーを再起動してもこの設定が消えないように、設定ファイル(通常は /etc/sysctl.conf や /etc/sysctl.d/ 内のファイル)に記述を書き込みます。

お好みのテキストエディターで設定ファイルを開き、以下の行を追加してください。

# /etc/sysctl.d/99-security-hardening.conf などに追記

# 1. 信頼できないルーターからの「進路変更(Redirect)」の受け入れを完全に拒否する
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

# 2. (おまけ)自分がルーターとして動作する場合に、無駄なRedirectパケットを送信しないようにする
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

設定を保存したら、以下のコマンドでシステムに反映させます。

# 設定ファイルの内容をシステムに即時反映させる
sudo sysctl -p /etc/sysctl.d/99-security-hardening.conf

これでバッチリです! あなたが構築したサーバーは、見知らぬ誰かからの甘い「近道の誘惑」を完全に無視し、安全で確実な本来のルートを歩み続けることができるようになります。

—

まとめ

いかがでしたでしょうか? 今回は OSI参照モデルやTCP/IPの裏側でこっそり動いている ICMP Type 5 (Redirect) の仕組みと、そこに潜むセキュリティ上の大きな罠についてお話ししました。

  • ICMP Redirect とは、ルーターがホストに対して「もっといいゲートウェイがあるよ」と教えるおせっかいな機能。
  • しかし、送信元の偽装が容易であるため、悪意ある攻撃者に利用されると中間者攻撃(MITM)の踏み台にされてしまう。
  • 現代のセキュアなインフラ環境においては、この機能は不要かつ危険なリスクであるため、OSの設定等でしっかりと無効化(オフ)することが鉄則。

ネットワークの技術は、歴史的な背景から「便利さ」を優先して作られた機能がたくさん眠っています。しかし、時代が変われば「安全な状態(ゼロトラスト)」の定義も変わります。

「なぜこの機能があるのか」「本当に今も必要なのか」を一つずつ紐解いていくことこそが、頼もしいネットワークエンジニアへの第一歩です。
それでは、また次回の技術探検でお会いしましょう!

コメント

タイトルとURLをコピーしました