No soy un experto en redes de ninguna manera, pero puedo darle una idea general de cómo funciona la captura / detección de paquetes.
Primero, hay dos medios para detectar paquetes: pasivo y activo. El rastreo pasivo es cuando un host o aplicación observa silenciosamente datos en la red destinados a otro host o aplicación. El rastreo activo es cuando el host envía datos al enrutador para engañarlo y enviar paquetes de regreso destinados a otro host.
El rastreo de paquetes de aplicaciones cruzadas es bastante sencillo. Aunque las aplicaciones rara vez tienen un uso legítimo para los datos de red de otra aplicación, si los programas se ejecutan en el mismo host, siempre habrá formas de obtener acceso a la red sin procesar para la captura de paquetes. En algunos sistemas operativos, puede requerir privilegios elevados, pero una vez que tenga eso, puede ver y analizar los datos que pasan a través del adaptador de red.
- ¿Cómo sabe una empresa que sus sistemas han sido pirateados?
- ¿Son ilegales los criptófonos en los Estados Unidos?
- ¿Cómo evita Ingress hacer trampa a través de ubicaciones de red y GPS falsificadas?
- ¿Por qué los hackers palestinos han derribado el sitio web Haaretz, cuando se sabe que es, de hecho, una de las fuentes de noticias más pro-palestinas en Israel?
- ¿Qué técnicas de aprendizaje automático ha utilizado para la detección de fraudes y por qué? ¿Prefieres las técnicas estadísticas frente a la inteligencia artificial?
Para el rastreo de paquetes entre hosts, se basa principalmente en redes no conmutadas. Idealmente, los datos solo deben entregarse al host exacto para el que están destinados. Pero, en realidad, existen limitaciones técnicas que impiden que esto suceda.
Para las redes cableadas, existe el costo de hardware y rendimiento de tener una red completamente conmutada, ya que se necesita potencia de procesamiento y tiempo para analizar el paquete o el encabezado de la trama y enrutarlo al host preciso. Por lo tanto, una red puede tener un enrutador conectado a Internet, un conjunto de interruptores directamente detrás de eso para pasar los datos al piso correcto, pero luego usar solo concentradores en cada piso para transmitir / repetir los datos a cada host en ese piso.
Normalmente, el controlador de interfaz de red (NIC) está configurado para ignorar cualquier dato que no esté destinado a esa máquina (no está dirigido a su dirección MAC). Sin embargo, puede poner fácilmente una NIC en “modo promiscuo” a través del software (por ejemplo, pcap) para que todo el tráfico de red que recibe sea procesado por la CPU y, por lo tanto, accesible para los programas que se ejecutan en la computadora.
Cuando ejecuté WireShark (llamado Ethereal en ese entonces) en mi escritorio en el dormitorio de mi universidad en ese día, me sorprendió la cantidad de tráfico no encriptado que se transmitía. No solo vi el tráfico HTTP (que esperaba), sino también las contraseñas FTP (en ese momento ya no había ninguna razón para que alguien usara FTP para algo más que descargas de archivos públicos) e incluso conversaciones de mensajería instantánea. En realidad, fue un poco espeluznante ver las conversaciones de mensajería instantánea de mi compañero de cuarto en tiempo real, mientras que él no tenía idea de que lo estaba leyendo.
Pero también hay redes totalmente conmutadas y, en estos días, la red inalámbrica cada vez más presente. En realidad, nunca me he molestado en rastrear paquetes en tales entornos, ya que la mayoría de mis usos para la captura de paquetes se relacionan con la resolución de problemas de mis propias aplicaciones (donde tengo control total sobre al menos un punto final), monitoreando mi propio sistema o tratando de realizar ingeniería inversa. protocolo de red de una aplicación que me interesa. Sin embargo, como se demuestra en la descripción de la pregunta, existen numerosos programas / herramientas populares que pueden realizar la detección de paquetes más allá de simplemente poner una NIC en modo promiscuo.
Para redes conmutadas, la suplantación de ARP es probablemente el método más común. El protocolo de resolución de direcciones es el medio por el cual la capa de red resuelve una dirección IP en una dirección MAC. Entonces, si envía al enrutador un mensaje ARP falsificado que le indica que asocie la dirección IP de un host objetivo con su dirección MAC, comenzará a enviarle todos los datos destinados al host objetivo. Ahora, no estoy seguro de los detalles de cómo hacer que esto sea transparente para el host de destino, pero estoy seguro de que ya se ha resuelto y popularizado.
Las redes inalámbricas obviamente no pueden evitar que los datos que envían sean interceptados por dispositivos maliciosos. La transmisión direccional es una cosa, pero no es una garantía contra la intercepción. Entonces las redes inalámbricas dependen del cifrado. Sin embargo, para algoritmos de cifrado rotos como WEP, todo lo que se necesita es unos minutos para interceptar paquetes cifrados y una PC moderna puede descifrar la clave de cifrado y comenzar a enviar / recibir datos como quien quiera. Eso es lo que hace Firesheep, creo.
Afortunadamente, existen algoritmos de cifrado más fuertes y filtros de paquetes que pueden prevenir o detectar al menos algunas de estas clases de ataques.