¿Es posible cambiar la IP después de cada solicitud?

4

Estoy desarrollando una aplicación web. Estoy planeando omitir CAPTCHAs para el registro inicial por un IP para mejorar la experiencia del usuario. Me preguntaba si estoy invitando a algún riesgo de seguridad al hacer esto. ¿Es posible que un usuario malintencionado realice muchos registros utilizando una nueva IP para cada solicitud? Además, ¿qué tan difícil es para un atacante lograr esto?

    
pregunta VarunAgw 27.02.2014 - 16:44
fuente

3 respuestas

8

Sí se puede hacer. Es trivial.

Hay muchas formas en que un usuario o un atacante puede tener varias direcciones IP o compartir direcciones IP. Aquí hay una lista, de la parte superior de mi cabeza.

Todos suponen que la dirección IP del sistema de destino está expuesta a su servidor. O está ejecutando algún código (como JavaScript) para detectar la dirección IP, o el cliente permite las conexiones directamente desde los sistemas sin ninguna interrupción.

Direcciones compartidas

Esta lista es cómo una dirección IP puede ser utilizada por varios sistemas.

  • host multiusuario . Muchos hosts son utilizados por varias personas. por definición, todos usarán las mismas interfaces para conectarse a su servidor y, por lo tanto, compartirán direcciones IP.
  • DHCP . DHCP funciona creando un conjunto de direcciones IP, desde las cuales se asigna una de las direcciones al cliente (el sistema que finalmente se conectará con usted). La dirección IP utilizada por este sistema finalmente se devuelve a la agrupación. En este punto, alguien más puede recoger la dirección IP. Si ambos sistemas se conectan a su sistema, podrían conectarse en un momento en que posean la dirección IP.
  • Configuración manual de IP . Cualquiera puede configurar su interfaz de red para utilizar cualquier dirección IP que desee. Un sistema podría configurarse intencionalmente para usar una dirección IP en uso por otro sistema.
  • Información falsa . Si está detectando la dirección IP ejecutando el código en el cliente, el cliente puede proporcionarle información falsa a su código. Por ejemplo, una secuencia de comandos de Greasemonkey puede modificar su javascript y hacer que devuelva cualquier dirección IP que el atacante desee.
  • NAT . Hay redes que utilizan la Traducción de direcciones de red para mostrar un número muy pequeño de direcciones IP reutilizadas a Internet, mientras que utilizan direcciones completamente diferentes dentro de la red. Esto es extremadamente común. Cuando los clientes se conecten a su servidor a través de servidores NAT, todos aparecerán como si provinieran de la misma dirección IP.
  • Direcciones IP reservadas . Es muy común emparejar NAT con direcciones IP reservadas. Las direcciones IP reservadas, como 192.168. *. *, Son reutilizadas por muchas organizaciones. Estas direcciones solo se pueden enrutar dentro de la red local, por lo que los servidores NAT presentan otras redes con direcciones enrutables remotamente. Si usa algo como el código JavaScript para detectar la dirección IP del cliente, habrá muchos clientes que reutilicen estas direcciones.

Direcciones múltiples

Esta lista es cómo puede parecer que un solo host tiene varias direcciones IP.

  • DHCP . Como se describe en la primera lista, la dirección IP es finalmente liberada por el sistema que la usa y se devuelve al grupo. Cuando el sistema se vuelva a conectar a la red, se le otorgará una nueva dirección, que no se garantiza que sea la misma que la anterior.
  • Configuración manual de IP . Cualquiera puede configurar su interfaz de red para utilizar cualquier dirección IP que desee. Un sistema podría configurarse intencionalmente para usar una dirección IP, y cinco minutos más tarde usar otra dirección.
  • Información falsa . Si está detectando la dirección IP ejecutando el código en el cliente, el cliente puede proporcionarle información falsa a su código. Por ejemplo, una secuencia de comandos de Greasemonkey puede modificar su javascript y hacer que devuelva cualquier dirección IP que el atacante desee.
  • NAT . No se requiere que NAT use la misma dirección cada vez para el mismo cliente. Un solo cliente podría conectarse a su servidor a través de NAT y recibir una dirección IP diferente cada vez.
  • Roaming portátil a través de redes . Cuando un sistema se desconecta de una red y se conecta a otra red, obtiene una nueva dirección IP de la nueva red. Si bien existe una baja probabilidad de obtener una dirección enrutable localmente reservada de la nueva red que coincida exactamente con la dirección enrutable local reservada de la red anterior, esto está lejos de ser garantizado. Más probable es que la dirección sea diferente. La dirección NATted está "garantizada" para ser diferente.
  • Máquinas multi-homed . Una máquina multi-homed está conectada a la red a través de múltiples tarjetas de red, o a múltiples redes con múltiples interfaces. Esta máquina, por definición, tiene varias direcciones IP, una para cada interfaz. Si el tráfico llega a usted a través de una red una vez, y luego la otra red otra vez, el mismo host se conectará utilizando varias direcciones. Esto es poco probable, pero puede ocurrir si se cuenta con la estructura de red correcta.
  • Botnet . Los atacantes pueden alquilar o construir una botnet. La red de bots se construirá, por definición, de varios sistemas, cada uno de los cuales tendrá una dirección IP diferente. El atacante tendrá múltiples IP a su disposición.
respondido por el atk 27.02.2014 - 17:18
fuente
4

Es menos una cuestión de si el atacante puede cambiar su IP y más una cuestión de buena práctica. Si no tiene un captcha en su página, incluso inicialmente, permite el envío automático de formularios que definitivamente no desea. Por ejemplo, un atacante que controla una botnet puede apuntarte, y entonces todas las IP en la botnet serían diferentes. El atacante no tiene que cambiar ninguna IP si controla tantas. Si yo fuera tú, jugaría a salvo e implementaría un captcha independientemente. Mejor prevenir que lamentar.

    
respondido por el Jason Higgins 27.02.2014 - 17:12
fuente
1

Lo primero que me vendría a la mente es: una simple lista de servidores proxy que un atacante puede usar para realizar muchos registros o cualquier otra acción, simulando que tiene muchos usuarios diferentes.

Por lo general, esto podría usarse para eludir la seguridad de las votaciones en línea, concursos, etc., y desde el punto de vista de un atacante, esta es probablemente la forma más fácil de hacerlo (el script para automatizar el registro a través de una lista de servidores proxy dinámicos sería alrededor de 20). líneas en perl / python).

    
respondido por el ack__ 01.03.2014 - 01:19
fuente

Lea otras preguntas en las etiquetas