Un problema de seguridad que podemos tener es que «alguien» logre situar, entre nosotros y nuestro destinatario, un elemento intermedio que haga lo que le dé la gana: desde registrar lo que hacemos (y nuestras contraseñas, por supuesto, como la NSA pero más modesto 🙂 ) hasta reenviar nuestras peticiones a otros servicios similares al que necesitamos/queremos, pero no lo «reales».
Se puede hacer de muchas maneras. Por ejemplo, aprovechándose del servicio DNS o interponiendo un equipo entre nosotros y nuestro router por defecto (el ADSL de casa).
Estos 2 parámetros (DNS al que le preguntamos y router al que le mandamos -casi- todo) se suelen configurar utilizando el protocolo DHCP por lo que deberíamos prestarle más atención. Por ejemplo, cuando nos conectamos a esa atractiva WIFI, red abierta sin contraseña,…, cuya infraestructura nos configura la red; nos dice a qué DNS le preguntaremos y cuál es el router que atravesaran nuestros datos, contraseñas, órdenes bancarias,… Podemos creernos los reyes del mambo, que le estamos robando a ese vecino nuestro su red y eso que hemos oído que es un hacha en eso de los ordenadores. Podemos ir a por lana y salir trasquilados.
No hace falta ir a una infraestructura ajena. Cuando somos los propietarios/administradores de la infraestructura de red también podemos tener problemas parecidos al descrito antes provocados por nuestros usuarios o por «visitantes temporales». Por el propio funcionamiento de protocolo DHCP, algún malvado puede aprovecharse e intentar que las configuraciones de nuestros clientes no se hagan como nosotros deseamos. Y le basta con instalar un DHCP que sirva los datos que él quiere.
Lo más evidente para evitar el problema: no usar DHCP. Si lo que vamos a asignar son IPs estáticas (siempre las mismas), podemos dejar los equipos configurados. Perdemos toda la funcionalidad y ventajas del uso de DHCP, pero ganamos tranquilidad.
Si tenemos varias redes y solo en una de ellas el/los servidores de DHCP, una idea que nos surge inmediatamente es filtrar en el router que intercomunica las redes. Si es un GNU/Linux y usamos netfilter para el filtrado, no funcionará. DHCP usa sockets raw y estos, por diseño, son procesadores antes de que intervenga iptables.
Llegados a este punto nos queda bajar de nivel:
- Usar filtros de capa 2: ebtables en GNU/Linux –> Solución tediosa, poco eficiente y muy costosa en redes de cierto tamaño.
- Delegar en el hardware de red y usar DHCP snooping -> Buena idea, pero que debe estar presente en nuestros switchs