ARPテーブルを汚染すること。通信経路情報を不正に書き換えること。
これによって攻撃を受けると、目的のノードにアクセスしたつもりが、実は悪意ある何者かのノードへと誘導される可能性がある。
クラッカーからすると、ユーザを意図した先へ誘導することが可能となる。
ノードAは、実際には汚染ノードCのMACアドレスを、ノードBのIPアドレスに対応するMACアドレスであると信じ込んでしまう。このため、ノードB宛のパケットに汚染ノードCのMACアドレスをつけてEthernetへと送るため、結果としてパケットは汚染ノードCへと送られてしまう。
そのままでは正常に通信できなくなるためすぐ問題になるが、もしこの時汚染ノードCで、パケットを傍受し、その後はIPアドレスから正しいMACアドレスを判断して宛先ノードへと転送するプロセスが稼動していたとするとどうなるか。
この状況では、一見ノードAとノードBは通信が成立しており、ノードCが余計なことをしなければARPが汚染されていることすら分からない。しかしこの場合はパケットが傍受され続けているので、重要な情報が外部に漏れる恐れがあ
この状況では、一見ノードAとノードBは通信が成立しており、ノードCが余計なことをしなければARPが汚染されていることすら分からない。しかしこの場合はパケットが傍受され続けているので、重要な情報が外部に漏れる恐れがある。
似たようなことは、プロミスキャスモードに対応したNICがあれば出来そうだが、スイッチで区切られたネットワークでも他ノード宛ユニキャストの通信が傍受できる点で強力である。
しかも、外部から侵入し、乗っ取ったノードにこの処理をこなすソフトウェアを送り込めば、後は特別なハードウェアもなく実現できる。
本質的な解決法は現時点では見出されていない。
ARPというプロトコル自体の欠点であるため、動的な動作を諦め、全てを静的に設定をするしかないが、ノード数が多くなると管理が膨大になるため現実的ではない。
本質的ではないが、ARPテーブルの変更(特に、あるIPアドレスに関連付けられたMACアドレスが変更になった時)でログを残すようにしておくと、このような事をしている人がいることを検知できる可能性がある。