【入門編】 ARPプロトコルの動作とARPキャッシュポイズニング – ネットワーク基礎とWebセキュリティ実践ガイド

ネットワークの「住所」と「名前」の秘密:ARPの仕組みと、そこに潜む落とし穴

ネットワークエンジニアの皆さん、こんにちは。日々の運用、お疲れ様です。

皆さんは普段、Webサイトを見るときに何気なく 192.168.1.1 といったIPアドレスを使っていますよね。でも、実はネットワークの世界では、パケットを本当に届けるために「MACアドレス」という、まったく別の「名前」が必要だということをご存知でしたか?

今日は、この「IPアドレス」と「MACアドレス」を繋ぐ影の立役者、ARP(Address Resolution Protocol)について、郵便配達に例えながら紐解いていきましょう。

—

ARPは「宛先の名前を探す」郵便屋さん

インターネットの世界を「巨大な街」だと想像してください。
IPアドレスは「番地(例:港区1-1-1)」、MACアドレスは「そこに住む人の名前(例:山田太郎さん)」です。

郵便を届けるとき、私たちは住所だけを書きますよね。でも、実際に郵便を受け取るのは「番地」ではなく「人」です。ネットワークの世界でも同じです。ルーターはIPアドレスという「住所」を知っていますが、最終的にケーブル越しにデータを渡す相手を特定するには、どうしても相手の「MACアドレス(名前)」が必要なのです。

そこで登場するのが ARP です。

ARPの動きを追いかけてみよう

あるPCが「 192.168.1.5 のMACアドレスを知りたい!」と思ったとき、こんなやり取りが発生します。

1. ARPリクエスト(叫び): 「 192.168.1.5 の人!あなたのMACアドレスを教えて!」と、ネットワーク中にブロードキャスト(一斉放送)します。
2. ARPリプライ(返事): 該当するPCが「はい、私は 192.168.1.5 です。私のMACアドレスは AA:BB:CC:DD:EE:FF ですよ」と直接返事を返します。

このやり取りで得た情報は、PC内の ARPキャッシュ という場所に一時的に保存されます。一度調べたら次はすぐに送れるようにするためですね。便利!

—

悪魔の囁き:ARPキャッシュポイズニング

さて、ここからがセキュリティの話です。ARPの最大の問題点は、「返事は誰でも返せる」という点にあります。

もし悪意ある第三者が、先ほどのやり取りに割り込んで、こんな嘘をついたらどうなるでしょう?

  • 「 192.168.1.1(ルーター)のMACアドレスは、私(攻撃者)ですよ」

これが ARPキャッシュポイズニング です。PCはそれを信じ込み、本来ルーターに行くべき通信が、すべて攻撃者のPCを経由するようになってしまいます。これを中間者攻撃(MITM:Man-in-the-Middle)と呼びます。

—

自分のPCでARPテーブルを覗いてみよう

まずは、今の自分のPCが誰のMACアドレスを覚えているか、確認してみましょう。コマンドプロンプトやターミナルを開いて、以下のコマンドを打ってみてください。

# 現在のARPテーブル(住所録)を表示する
arp -a

表示されたリストの中に、IPアドレスと対応する Physical Address(これがMACアドレスです)が見えますよね。これが今のあなたのPCの「記憶」です。

—

現場のエンジニアが守るべきこと

「じゃあ、この攻撃を防ぐにはどうすればいいの?」と不安になりますよね。現場では主に以下のような対策を講じます。

1. 静的ARP(スタティックARP)の登録

重要なサーバー間など、経路が決まっている場所では、わざわざARPで聞くのではなく、手動でMACアドレスを固定登録します。

# Windowsでの静的登録例(IPとMACを固定で結びつける)
arp -s 192.168.1.1 AA-BB-CC-DD-EE-FF

※ただし、これは管理が大変なので、小規模なネットワーク向きです。

2. スイッチの機能「DAI」を使う

エンタープライズ環境では、スイッチ(L2スイッチ)に DAI (Dynamic ARP Inspection) という機能を設定するのが定石です。これは「怪しいARPリプライが来たら破棄する」という、いわばネットワークの門番です。

! Ciscoスイッチ等の設定イメージ(概念)
ip arp inspection vlan 10  # VLAN 10でARPの不正チェックを有効化

—

まとめ:ネットワークの「信頼」を疑う勇気

ARPは、「相手を信じる」ことで成り立っている非常にシンプルで古いプロトコルです。だからこそ、そこに付け入る隙があります。

ゼロトラストの考え方では、「ネットワーク内部であっても信頼しない」というのが鉄則です。ARPキャッシュポイズニングは、まさに「内側の通信だから安心」という油断を突く攻撃です。

まずは今日、皆さんの手元のPCで arp -a を叩いてみてください。そこにある情報が「本当に正しいのか?」を意識すること。その小さな一歩が、強固なネットワークセキュリティの第一歩になります。

また次回の記事でお会いしましょう!ネットワークの奥深い世界を、一緒に楽しみながら学んでいきましょうね。

コメント

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