ARPスプーフィング
徳丸本を読んでいて、なりすましの攻撃の一つにARPスプーフィングというものがあることを知った。
しかし、内容を読んでも理解しきれなかったので、調べてまとめた。
徳丸本での説明。
ARPスプーフィングとは、ARPの偽応答を返すことで、IPアドレスを偽装する手法のことです。ARPスプーフィングによる成りすまし攻撃は、対象サーバーがゲートウェイのIPアドレスに対するMACアドレスを要求(ARP要求)する際に、偽のARP応答を返し、ゲートウェイに成りすますことで、すべてのパケットを経由させます。
(安全なWebアプリケーションの作り方 第2版 p.620)
用語について整理。
- ARP:IPアドレスからネットワーク上のMACアドレスを求めるためのプロトコルのこと
- ゲートウェイ:異なるネットワークをつなぐコンピューターのこと
つまり、あるネットワークのゲートウェイに成りすますことで、そのネットワークないの全てのパケットが偽サーバーを経由することになるってこと?
大きいネットワークになればなるほど、被害がやばくなりそう...
ARPスプーフィングの攻撃手法
ARPの仕組み
ARPでは、ARP要求パケットとARP応答パケットの2つを用いて、MACアドレスの解決を行う。
ARP要求パケットには、MACアドレスを知りたいホストのIPアドレスが含まれている。ARP要求パケットはMACアドレスを要求するホストからブロードキャストされる。
同一リンク内のホストやルーターはARP要求パケットを受け取り、記述されているIPアドレスが自身のIPアドレスと一致した場合に、ARP応答パケットを返却する。
成りすましの仕方
まず攻撃者の端末が対象サーバーと同一セグメント内にあることが前提。
対象サーバーがゲートウェイのIPアドレスに対する、ARP要求パケットを送信する。
それを攻撃者の端末が受け取り、自分のMACアドレスをARP応答パケットに含め、対象サーバーに返却する。
これで、対象サーバーのARPテーブルでは、攻撃者の端末がゲートウェイであるかのように見える。
その後、対象サーバーから受けとった情報をゲートウェイへ転送しつづける。
これにより、傍聴していることがバレにくくなる。
ARPスプーフィングへの対策
同一セグメントに脆弱なサーバーを置かない
ARPスプーフィングは同一セグメントにあることが前提となっているため、セグメント内に脆弱なサーバーを置かないことが対策の一つとなる。
レンタルサーバーなどで、他社のサーバーが同一セグメント内に存在する場合は、ホスティング事業者にARPスプーフィング対策の状況を確認するべきである。
静的ARPエントリの設定
ネットワークが小規模な場合は、ARPテーブルを手動で管理することによって、自動的にARPテーブルが書き換えられることを防ぐことができる。
通信の暗号化
ARPスプーフィングがされた場合でも、HTTPSなどで通信を暗号化することにより、攻撃者から情報の中身を確認されることがなくなる。
まとめ
そもそも同一セグメント内に攻撃者の端末がつながってるって状況があり得るのかが疑問。
それでいうと、Free Wifiとかは怖い!ARPスプーフィングできちゃいそう...
参照文献