中間者攻撃(マン イン ザ ミドル攻撃)

中間者攻撃(マン イン ザ ミドル攻撃)技術、検知、対策

「日本の脅威レポート」

中間者(MITM)攻撃とは

中間者攻撃(MITM)はよくあるタイプのサイバーセキュリティ攻撃で、攻撃者が2つのターゲット間の通信を傍受するものです。攻撃は2つの正当な通信ホストの間で行われます。攻撃者は通常、外部に漏れないはずの会話を「聴く」ことができるため、「中間者」という名前が付けられています。

このような場面を想像してください。山田さんと佐藤さんが会話をしています。高橋さんが会話を盗聴していますが、2人には気付かれていません。高橋さんは山田さんに自分が佐藤だと言い、佐藤さんには自分が山田だと言います。このため山田さんは佐藤さんと会話をしていると思い込み、高橋さんに自分の話を伝えます。高橋さんはこの会話から情報を集め、思い通りに変えた返答を(山田さんと話していると思い込んでいる)佐藤さんに伝えます。その結果、高橋さんは存在を知られることなく会話をハイジャックできるのです。

中間者攻撃の種類

不正アクセスポイント

無線カードを備えたデバイスは多くの場合、最強の信号を発しているアクセスポイントに接続しようとします。攻撃者は独自の無線アクセスポイントをセットアップし、近くのデバイスを騙してドメインに参加させます。それに参加すると、攻撃者は被害者のネットワークトラフィックをすべて操作できるようになります。これが危険なのは、攻撃者は信頼できるネットワーク上にいる必要がないということです。つまり、物理的な距離が十分に近いだけで攻撃できるのです。

ARPスプーフィング

ARPとは、Address Resolution Protocol(アドレス解決プロトコル)の略です。ARPは、IPアドレスからローカルエリアネットワーク内の物理的なMAC(メディアアクセスコントロール)アドレスを求めるのに使われます。ホストが特定のIPアドレスを使って別のホストと会話をする必要がある場合、ARPキャッシュを参考にしてIPアドレスからMACアドレスを見つけます。アドレスが不明な場合、IPアドレスを持つデバイスのMACアドレスが要求されます。

別のホストになりすまそうとする攻撃者は、自身のMACアドレスで応答すべきではないリクエストに応答します。正確に配置されたパケットを使い、攻撃者は2つのホスト間のプライベートトラフィックを盗み聞きできるのです。セッショントークンの交換など、貴重な情報がトラフィックから抽出され、攻撃者がアクセスできないはずのアプリケーションアカウントに完全にアクセスできるようになります。

mDNSスプーフィング

マルチキャストDNSはDNSと似ていますが、ARPのようなブロードキャストを使用してローカルエリアネットワーク(LAN)で実装されます。そのため、スプーフィング攻撃の最適なターゲットになります。ローカルの名前解決システムは、ネットワークデバイスの設定を非常にシンプルにさせる役割があります。ユーザーは、自分のデバイスが通信するべきアドレスを知る必要はなく、システムに解決してもらえばよいのです。テレビ、プリンター、エンターテイメントシステムなどのデバイスは通常、信頼できるネットワークにあるため、このプロトコルを使用します。アプリがtv.localなど特定のデバイスのアドレスを知る必要がある場合、攻撃者は偽のデータでそのリクエストに対して簡単に応答し、コントロールしているアドレスを解決するよう指示します。デバイスがローカルアドレスをキャッシュするため、被害者はしばらくの間、攻撃者のデバイスを信頼できるものと見なします。

DNSスプーフィング

ARPがLANのMACアドレスをIPアドレスから求めるように、DNSもドメイン名とIPアドレスを対応づけます。DNSスプーフィング攻撃を使用する場合、攻撃者は壊れたDNSキャッシュ情報をホストに紹介し、www.onlinebanking.comなどのドメイン名を使用して別のホストにアクセスしようとします。これによって、被害者は信頼できるソースに情報を送っているものと信じ込み、悪意のあるホストに機密情報を送信します。すでにIPアドレスをスプーフィングした攻撃者は、DNSサーバーのアドレスと攻撃者のアドレスを対応づけるだけでDNSを容易にスプーフィングできるようになります。

中間者攻撃のテクニック

スニッフィング

攻撃者はパケットキャプチャツールを使用して、低レベルでパケットを検査します。監視や不正なモードに入ることができる特定の無線デバイスを使用すると、攻撃者は他のホストに宛てられたパケットなど、自分が見るはずのものではないパケットを閲覧できます。

パケットインジェクション

攻撃者はデバイスの監視モードを活用して、悪意のあるパケットをデータ通信ストリームに注入することもできます。パケットは有効なデータ通信のストリームと混合し、通信の一部として見えますが、実は悪意のあるものです。パケットインジェクションでは通常、まずスニッフィングでどのように、いつパケットを作成および送信するかを決定します。

セッションハイジャック

ほとんどのウェブアプリケーションは、将来的なリクエストに使用する一時的なセッショントークンを生成するログインメカニズムを採用し、ユーザーがすべてのページでパスワード入力を求められないようにします。攻撃者は機密トラフィックを盗み、ユーザーのセッショントークンを特定し、ユーザーとしてリクエストを作成します。攻撃者がいったんセッショントークンを入手すると、スプーフィングの必要がなくなります。

SSLストリッピング攻撃

ARPやDNSスプーフィングに対する一般的な対策がHTTPSの使用であることから、攻撃者はSSLストリッピングを利用してパケットを傍受し、HTTPSベースアドレスを変更して彼らのHTTPに相当するエンドポイントに行くため、ホストは暗号化されていないサーバーにリクエストを送らされることになります。機密情報がプレーンテキストとして漏出することもあります。

中間攻撃の検知方法

適切なステップを踏まなければ、中間者攻撃を検知することは困難です。通信が傍受されたかどうかを積極的に調査しなければ、中間者攻撃は手遅れになるまで気付かれない場合があります。適切なページ認証をチェックし、ある種のタンパー検知を実装することが主要な攻撃に対する一般的な検知方法ですが、これらの方法では事後のフォレンジック分析がさらに必要になる場合があります。

MITM攻撃は発生中に検知しようとするのではなく、発生する前に予防措置を講じることが重要です。自分のブラウジング習慣を意識し、危険が存在する可能性があるエリアを認識することが、安全なネットワークを維持するのに不可欠です。以下は、MITM攻撃による通信被害を防ぐための5つのベストプラクティスです。

中間者攻撃を防ぐためのベストプラクティス

アクセスポイントにおける強力なWEP/WAP暗号化

無線アクセスポイントに強力な暗号化メカニズムを備えることで、ただ近くにいるというだけで不要なユーザーがネットワークに参加することを防ぎます。弱い暗号化メカニズムでは、攻撃者がネットワークに無理やり入り込み、中間者攻撃を始めることができます。暗号化実装は強ければ強いほど安全です。

強力なルーターのログイン認証情報

デフォルトのルーターログインは必ず変更してください。Wi-Fiパスワードだけでなく、ルーターのログイン認証情報も変更してください。攻撃者にルーターログイン認証情報を発見されたら、DNSサーバーを悪意のあるサーバーに変更されることも考えられます。または、お使いのルーターを悪意のあるソフトウェアに感染させることもあります。

仮想プライベートネットワーク

VPNを使うと、ローカルエリアネットワーク内で機密情報を扱う上で安全な環境を作ることができます。VPNはキーベースの暗号化を使用して、安全な通信のためのサブネットを作成します。そうすれば、攻撃者が共有されるネットワークに侵入したとしてもVPNのトラフィックを解読することはできません。

HTTPS強制

HTTP上で安全に通信するには、公開/秘密鍵交換を通じてHTTPSを使用できます。これにより、攻撃者が盗まれたデータを利用することを防ぎます。ウェブサイトはHTTPの代替を提供せず、HTTPSのみを使用するようにしてください。ユーザーはブラウザプラグインをインストールして、リクエストに応じていつでもHTTPSの使用を強制することができます。

公開鍵ペアによる認証

中間者攻撃では通常、何らかのスプーフィングが行われます。RSAのような公開鍵ペアによる認証は、通信しているのが想定した相手であるかを確認するためにスタックのさまざまな層で使用できます。