PR 本記事には広告(Amazonアソシエイト・もしもアフィリエイト・A8.net等)が含まれます。掲載情報の正確性には努めていますが、商品の詳細は必ずリンク先で最新情報をご確認ください。
CTF・セキュリティ学習

【中間者攻撃編】同じネットワークで通信を盗み見られる条件と守り方|CTF思考フレームワーク #23

かも次郎とアンペンが「中間者攻撃」を解説するマスコットイラスト
安全に生きたい編集部

こんにちは、アンペンです!

前回は、電話帳にあたるDNSを狙う攻撃を扱いました。

今回は、通信経路そのものに割り込む中間者攻撃(MITM)を見ていきます。ARPスプーフィングやSSLストリッピングの仕組みと、その守り方を一緒に見ていきましょう。

通信って暗号化されているから、途中で見られないんじゃないの?

『最初のアクセスがHTTP』『証明書検証が緩い』といった条件が揃うと、暗号化を剥がされたり経路に割り込まれたりすることがあるんだ。

『通信は暗号化されてるから、途中で見られても大丈夫でしょ?』——これはとても自然な感覚ですよね。でも今日学ぶ中間者攻撃(MITM)は、その安心の“すきま”を突いてきます。鍵マークがついていても、条件しだいでは経路の途中に第三者が座り、こっそり中身を読んだり書き換えたりできてしまう。今日は“偽の郵便局員”のたとえで、その成立条件と守りを見ていきます。

まず結論

中間者攻撃(MITM)は、通信経路に割り込んで盗み聞き・改ざんを行う攻撃です。ARPスプーフィング・偽DHCP・SSLストリッピング等の組み合わせで起きるため、HSTSや証明書検証、ネットワークレベルの分離で防御層を重ねる必要があります。

この記事で分かること

  • MITMが成立する典型的な経路の作り方
  • ARPスプーフィング・SSLストリッピング等の代表攻撃
  • HSTS・証明書検証・ネットワーク分離による守り方
難易度:中級向け 所要時間:11分 体験:HTTPS設定を確認 おすすめ:#22の後

📖 はじめてのWebセキュリティ #23|中間者攻撃編
『通信経路の信頼』が崩れる仕組みと、その守りを学びます。 シリーズ一覧を見る →

⚠️ 大事なお約束
MITMツール(arpspoof・bettercap等)は、自分の所有環境・CTFのみで使ってください。他者のネットワークでの実行は不正アクセス禁止法違反に該当します。

MITMは「通信経路に割り込む」攻撃

通常の通信では、利用者の端末から相手サーバまで、ネットワーク機器が決められた経路で中継しています。中間者攻撃(MITM)は、この経路に攻撃者が割り込み、両者の間に立って中継するふりをする攻撃です。

うまく成立すると、攻撃者は通信内容を盗み見たり、書き換えたりできます。HTTPSが効いていれば中身までは読めませんが、最初のHTTPアクセスを剥がすSSLストリッピングのような手法と組み合わされるとリスクが上がります。

ここで「でもHTTPSなら中身は暗号化されてるよね」と思いますよね。その通りで、ちゃんとHTTPSが効いていれば、たとえ経路に割り込まれても中身は読めません。問題は“最初の一歩”。多くの人は https:// とは打たず、ただ example.com と入力します。この最初のアクセスは、まだHTTP(暗号化なし)のことがある。攻撃者はその一瞬を捕まえて、ずっとHTTPのまま会話を続けさせる——これがSSLストリッピング(暗号の“はぎ取り”)です。鍵がかかる前の、無防備な一瞬を狙うわけです。

中間者攻撃(MITM=Man In The Middle)は、その名のとおり“真ん中に立つ”攻撃です。あなたとサーバが会話しているところに、第三者がこっそり割り込み、両者に対して「私が相手ですよ」というフリをする。あなたから見れば相手はサーバ、サーバから見れば相手はあなた。でも実際は、ぜんぶ攻撃者を経由している。二人の伝言ゲームに、勝手に“通訳”が割り込んでくるイメージです。

図解:通常経路と MITM 経路の違い

端末からサーバへ直接届く通常経路と、攻撃者が経路に割り込むMITM経路を比較した図
経路に割り込まれると、盗み見や改ざんが起きる。

通常は端末→ゲートウェイ→サーバの最短経路ですが、MITMが成立すると端末→攻撃者端末→ゲートウェイ→サーバ、と一段増えます。

偽の郵便局員が手紙を一度開けてから本物のポストに投函するたとえ図
偽の郵便局員が手紙を一度開けてから本物のポストへ。MITMも同じ構造で経路途中で内容が読まれる。
📬 たとえるなら、偽の郵便局員

家からポストに手紙を出すつもりが、家の前で『郵便局員のフリ』をした人が「あ、私が代わりに出しますよ」と受け取り、中身を覗いてから本物のポストに入れていたら…。あなたは届いたつもりでも、中身は第三者に読まれているかもしれません。MITMは、まさにこの『偽の郵便局員』が通信経路に座る攻撃です。

ここで覚える用語:ARPスプーフィング
同じLANに居る攻撃者が、偽のARP応答を流して『私がゲートウェイです』と名乗ることで、他端末からの通信を自分経由に流す攻撃です。LAN上で成立するMITMの代表手法です。

ARPスプーフィングは、同じネットワーク(同じWi-Fiなど)にいる相手に効く手口です。仕組みはシンプルで、攻撃者が周囲に向けて「出口(ゲートウェイ)は私です!」と嘘の自己紹介を連呼する。すると周りの端末は、それを信じて通信を攻撃者に送ってしまう。カフェや空港の共有Wi-Fiで、知らない誰かが“案内係のフリ”をしている——そう考えると、公共のネットワークの怖さが、少しリアルに感じられるかもしれません。

MITMを成立させる代表3手法

MITMを成立させる手口は、代表的に3つ。『同じLANで案内係を偽る(ARPスプーフィング)』『偽の出口やWi-Fiを用意して誘い込む(偽DHCP・偽Wi-Fi)』『暗号化を最初にはぎ取る(SSLストリッピング)』。とくに公衆Wi-Fiは、これらがまとめて仕掛けやすい“危険地帯”。無料で便利な反面、誰でも同じネットワークに入れるからです。

よく使われる組み合わせ

ARPスプーフィング・偽DHCP/Wi-Fi・SSLストリッピングの3つのMITM手法を示したカード型インフォグラフィック
①ARPスプーフィング ②偽DHCP/偽Wi-Fi ③SSLストリッピング。守りは常時HTTPS+HSTS+LAN分離の多層化。
  • ARPスプーフィング:同一LANで偽ARP応答を流し、ゲートウェイ役を奪う
  • 偽DHCP/偽Wi-Fi:偽のDHCPサーバや偽SSIDのアクセスポイントで、利用者を自分経由に誘導する
  • SSLストリッピング:HTTPSを開く前のHTTPアクセスを掴み、ユーザにHTTPで応答することで暗号化を剥がす

これらは単独でも成立しますが、攻撃者は組み合わせて使うことが多く、特に公衆Wi-Fi環境では複数手法が同時に走るケースもあります。

公衆Wi-Fiの話、もう少し具体的に。カフェで「FreeCafe_WiFi」につないだつもりが、実は攻撃者が同じ名前で立てた“偽アクセスポイント”だった——なんてことが起こりえます。利用者は本物そっくりの名前を選んだだけ。でも、その瞬間から通信はすべて攻撃者の手のひらの上、というわけです。だからこそ、外のネットワークは『最初から信用しない』前提で、自分の側で守りを用意しておくことが大切になります。

この回の練習は、自分のサーバや端末が“暗号をはぎ取られにくい構成”になっているかの点検です。MITMツールを試すなら、自分で建てたVMだけが対象。カフェやオフィスの共有Wi-Fiでツールを動かすのは、たとえ実験のつもりでも完全にアウト(不正アクセスです)。あくまで自分の所有環境とCTFの中で、HTTPSやHSTSの設定を確かめましょう。

CTFでやってみよう:HTTPS構成と証明書を点検する

やってみよう / 自分の所有環境・CTFのみ

自分のサーバや端末で、HTTPS関連の設定を確認しよう

目的は他者を攻撃することではなく、「MITMが成立しにくい構成になっているか」を見ることです。

  1. 自分のサーバで https:// が常時提供されているか、HSTSヘッダ Strict-Transport-Security が設定されているか確認する
  2. HTTP→HTTPSの301リダイレクトが入っているか、 curl -I http://example.com 等で確認する
  3. クライアント側(自分の端末)のブラウザで、HTTPS-Only モードや警告表示が有効になっているか確認する
  4. CTF環境などのLAN内でarpspoof/bettercapを試す場合は、自分が用意したVMだけを対象に確認する
  5. 結果を踏まえ、HSTS preload や証明書ピンニングの導入要否を整理する
公衆Wi-FiやオフィスLAN等、他人が利用する環境でのMITMツール実行は絶対にやめてください。

守りの土台になる『HSTS』という仕組み、これがSSLストリッピングへの強力な一手です。

最初のアクセスがHTTPなのが弱点なら、それってどう塞ぐの?

そこで効くのがHSTSなんだ。これはサーバが「うちには、これから先ずっとHTTPSでしか来ないでね」とブラウザに約束させる仕組み。一度この約束を受け取ったブラウザは、次からは http:// と打たれても、サーバに送る前に自分でHTTPSへ切り替える。つまり“暗号化されていない最初の一歩”そのものを消せるんだ。さらに preload に登録すれば、その「初回の一歩」すら最初から塞げる。攻撃者がはぎ取る対象がなくなる、というわけだよ。

守る側なら、「経路の信頼を多層化」する

MITMの守りは、「暗号化を絶対に剥がせない構成」「経路機器(L2/L3)の分離」「利用者側の警告を信用させる」の3点で多層化します。

守るための基本チェック
  • サイト全体をHTTPS化し、HSTSを設定する(可能なら preload も)
  • HTTP→HTTPSの恒久リダイレクトを必ず入れる
  • 証明書は信頼できるCAから取得し、有効期限切れに注意する
  • 無線LAN/オフィスLANではWPA3・802.1Xなど認証付きの方式を使う
  • ARPスプーフィングを抑える仕組み(DAI: Dynamic ARP Inspection等)をスイッチで有効化する
  • 公衆Wi-Fi利用時はVPNや個人テザリングを活用する

『HSTS+常時HTTPS』が、まずやるべき土台なんだね。

そう。LAN側の対策は機器依存で大変だけど、まずアプリ側のHSTSと常時HTTPSが効くよ。

ここまでをひと言で言うと、MITM対策は『経路は信用しない、暗号は剥がさせない』です。通信の通り道は、いつ誰が割り込んでいるか分かりません。だから“経路の善意”には頼らず、常時HTTPS+HSTSで暗号を絶対にはぎ取れなくしておく。そして外のWi-Fiを使うときは、VPNで自分専用のトンネルを通す。経路を疑う、という前提に立つのが守りの出発点です。

まとめ:MITMは『経路の信頼』を疑う

今回のポイント
  • MITMは通信経路に割り込む攻撃。盗聴・改ざんが目的
  • 代表手法はARPスプーフィング・偽DHCP/Wi-Fi・SSLストリッピング
  • 守りは常時HTTPS+HSTS+LANレベルの分離を多層化
  • 公衆Wi-Fiでは利用者側もVPN等で経路を信頼できるものに置き換える

今日の持ち帰りは『鍵マークの“前”を守る』です。HTTPSは強力ですが、効き始める前の一瞬や、つなぐネットワークそのものに、すきまが残ります。サーバ側はHSTSでその一瞬を塞ぎ、利用者側は信用できない回線をVPNで包む。“経路は疑ってかかる”——この姿勢が、見えない割り込みからあなたを守ります。

次回は、リモートアクセスの定番であるVPNを扱います。「家から会社へ」「サポートから本番へ」のような便利な仕組みが、なぜ攻撃の踏み台になりうるのかを見ていきましょう。

次に読みたい記事

参考資料

記事URLをコピーしました