Un paquete de difusión es, en el nivel de Ethernet, un paquete con un bit específico establecido en la dirección que dice: "si ve este cuadro, échele un vistazo". Normalmente, una interfaz de red ignorará las tramas a menos que la dirección de destino sea su propia dirección MAC (una interfaz se puede poner en "modo promiscuo" para recoger todas las tramas); pero el bit de "difusión" hace que el marco sea "interesante" para todas las interfaces de red.
Cuando el marco no se filtra por la interfaz de red, el sistema host procesa el contenido del marco, independientemente de su origen de Ethernet y las direcciones de destino : se recibió el marco, y eso es suficiente. Si el marco contiene una respuesta ARP, entonces la información contenida en esta respuesta ("el host con esta dirección IP utiliza que dirección ethernet") se procesa debidamente. Sin embargo, depende un poco del sistema operativo: se sabe que Linux ignora las respuestas ARP que no corresponden a una solicitud ARP que envió no mucho antes.
No hay autenticación alguna en el protocolo ARP; se basa en la confianza. Por lo tanto, es vulnerable a ataques activos como el suyo.
La configuración de una entrada de la tabla ARP estática le brinda cierta protección, pero elimina un poco de flexibilidad (si se reemplaza el hardware de la puerta de enlace, la dirección de Ethernet cambiará, y como la entrada estática tiene prioridad, su máquina se negará a hablar con reemplazo) y tampoco es una protección completa: sus paquetes pueden ser observados por el atacante, y aún puede falsificar paquetes falsos, que pueden ser suficientes para causar mucho daño.
Como administrador de red, lo mejor que puede hacer es una combinación de rutas estáticas (tediosas, no se escala bien) y ver / registrar / informar (mantener una tabla de pares IP / Ethernet, informar cada respuesta ARP que intenta cambia eso). Consulte esta página para obtener una lista de posibles defensas.