ネットワーク盗聴(2)
『ARPスプーフィング』
盗聴のお話その2です。
前回は、リピータハブからより頭の良いスイッチングハブ(スイッチ)を利用することで、盗聴の危険性は減るというお話をしました。
スイッチングハブはどのポートにどのコンピュータが繋がっているかを知っています。
例えば、ポート1にはコンピュータA、ポート2にはコンピュータB、ポート3にはコンピュータCが繋がっていることを覚えています。
その結果、コンピュータAからコンピュータBへの通信をちゃんと、ポート1とポート2の間だけでやり取りをさせることができるんです。
こうすることで、通信の効率を上げるとともに、他のコンピュータにデータが届かないため盗聴の危険性も少なくなるということです。
でも、仮にコンピュータCが「自分はコンピュータBですよ」とスイッチを騙すことができたらどうなるでしょう?
スイッチはコンピュータCをコンピュータBと間違えて、コンピュータB宛ての通信をポート3に送ってしまう現象が発生してしまいます。
これが、「ARPスプーフィング」という手法です。
ARPスプーフィングの仕組みを知る前に、「ARP」というものと「MACアドレス」というものについて説明します。
ネットワークにつながっているコンピュータは、IPアドレスという固有の番号が割り振られていて、それをもとに通信を行います。
でも実はIPアドレスだけじゃなくて、個々のコンピュータはMACアドレスという各コンピュータに固有の番号を持っています。
例えば、コンピュータAが、「192.168.0.1」というIPアドレスを持つコンピュータBに通信をしたいとします。
その場合、まず最初に、
「192.168.0.1 のIPアドレスを持っている方は誰ですか〜?」
という問い合わせを、近くのコンピュータ全部に聞きます。
そうすると、「192.168.0.1」 のIPアドレスを持っているコンピュータBは
「そのIPアドレスの持ち主は私です。私のMACアドレスは “00-XX-XX-XX-XX-XX”なので、ここまでデータを送ってください」
という応答をコンピュータAに返します。最終的にはそのMACアドレスをもとに通信を行うということですね。
そのMACアドレスを知る手順が「ARP」と呼ばれるものです。
スイッチングハブは、このARPをやり取りを見て、各ポートのコンピュータのMACアドレスを覚えておき、次回からは、そのコンピュータがつながっているポートにのみデータを送ることができるようになるわけです。
でも、ARPスプーフィングはARPの問い合わせに対して、ウソの応答を返します。
IPアドレス「192.168.0.1」の持ち主は、本当はコンピュータBなのに、コンピュータCが自分のMACアドレスを教えることによって、スイッチングハブは、コンピュータB宛ての通信をコンピュータCに送ってしまいます。
そしてスイッチングハブでも盗聴が成立してしまうんですね。
実際にこういうARPスプーフィングを利用できるツールというのはインターネット上から簡単に入手できます。
もしかしたら社内や家庭内で知らないうちに使われているかもしれません。