Tecnicas antisniffer
La detección de sniffers es una de las múltiples tareas, y una de las más desconocidas, que todos los administradores de seguridad tienen que realizar para garantizar que la seguridad de sus redes no se vea comprometida. Si bien hay un buen número de herramientas que facilitan esta tarea , es importante conocer en profundidad cómo funcionan para poder interpretar y relativizar sus resultados, ya que estos programas tienen un buen número de limitaciones y pueden ser engañados con facilidad para producir falsos positivos y falsos negativos. En este trabajo, partiendo de las definiciones más básicas, se muestran algunas de las técnicas que componen el estado del arte en esta área.
Los sniffers representan un alto nivel de riesgo, ya que:
•Pueden capturar contraseñas.
•Pueden capturar información confidencial o patentada.
•Pueden utilizarse para hacer mella en la seguridad de los entornos de red u obtener acceso por la fuerza.De hecho, los ataques de sniffers han provocado vonsecuencias más serioa quecualquier otro tipo de ataque. Para enfatizar este punto, vamos a rememorar rápidamenteel pasado.
¿QUÉ ES UN SNIFFER?
Un sniffer es un dispositivo que permite a cualquier elemento conectado a una red tener acceso al tráfico que no va destinado expresamente a él o a broadcast; tráfico, por tanto, al que no debería tener acceso.
Aunque bajo esta amplia definición cabe una gran multitud de diferentes tipos de sniffers, el más habitual contra el que un administrador de seguridad va a tener que luchar es simplemente un PC con la tarjeta de red en modo promiscuo. Esta sugerente y atractiva denominación hace referencia a una tarjeta de red que, en contra de lo que debe ser su comportamiento normal, no descarta a bajo nivel los paquetes que no van dirigidos a ella o a la dirección de broadcast y, por el contrario, pasa todos los paquetes que ve en la red a capas superiores, generalmente el kernel del SO, para su posterior procesamiento.
¿POR QUÉ SON PELIGROSOS?
Evidentemente, sin más que releer el párrafo anterior, resulta bastante obvio que un sniffer supone una amenaza grave para la seguridad no sólo de una máquina sino también de toda una red. El hecho de que permita acceder a información que circula por la red, a la que de otro modo no tendría acceso, supone un riesgo importante. Entre esta información se encuentran contraseñas, correo confidencial, números de tarjetas de crédito, registros de bases de datos, cookies con información de autenticación, etc.

La detección de sniffers es una de las múltiples tareas, y una de las más desconocidas, que todos los administradores de seguridad tienen que realizar para garantizar que la seguridad de sus redes no se vea comprometida. Si bien hay un buen número de herramientas que facilitan esta tarea , es importante conocer en profundidad cómo funcionan para poder interpretar y relativizar sus resultados, ya que estos programas tienen un buen número de limitaciones y pueden ser engañados con facilidad para producir falsos positivos y falsos negativos[4]. En este trabajo, partiendo de las definiciones más básicas, se muestran algunas de las técnicas que componen el estado del arte en esta área.
Los sniffers representan un alto nivel de riesgo, ya que:
•Pueden capturar contraseñas.
•Pueden capturar información confidencial o patentada.
•Pueden utilizarse para hacer mella en la seguridad de los entornos de red u obtener acceso por la fuerza.De hecho, los ataques de sniffers han provocado vonsecuencias más serioa quecualquier otro tipo de ataque. Para enfatizar este punto, vamos a rememorar rápidamenteel pasado.
En 1994, un ataque masivo de sniffers obligó a un centro de investigaciónnaval a publicar la siguiente nota: "En febrero de 1994, una persona no identificada instaló un sniffer de red en varios hosts y en varioselementos de backbones que recopiló más de 100.000 nombres de usuarios y contraseñas válidas a travésde Internet y MiInet. Se considera que todos los equipos del sistema que permitan la existencia deregistros de FTP, Telnet o remotos corren peligro... Hay que comprobar si todos los hosts de la red queutilicen un sistema operativo derivado de UNIX tienen el controlador de dispositivo específico quepermite instalar el sniffer. (Extracto de la nota del Naval Computer & Telecomunications Area MasterStation LANT)"El ataque a MiInet fue tan serio que el asunto fue llevado ante el Subcomité de Ciencia,Espacio y Tecnología y al Tribunal Supremo de USA
Permite a cualquier elemento conectado a una red tener acceso al tráfico que no va destinado expresamente a él o a broadcast; tráfico, por tanto, al que no debería tener acceso.
Aunque bajo esta amplia definición cabe una gran multitud de diferentes tipos de sniffers, el más habitual contra el que un administrador de seguridad va a tener que luchar es simplemente un PC con la tarjeta de red en modo promiscuo. Esta sugerente y atractiva denominación hace referencia a una tarjeta de red que, en contra de lo que debe ser su comportamiento normal, no descarta a bajo nivel los paquetes que no van dirigidos a ella o a la dirección de broadcast y, por el contrario, pasa todos los paquetes que ve en la red a capas superiores, generalmente el kernel del SO, para su posterior procesamiento.

¿CÓMO SE BUSCAN?
Ni que decir tiene que hay diferentes aproximaciones al problema de cómo detectar un sniffer, y que éstas varían según se tenga acceso local a la máquina, o bien haya que descubrirlos desde alguna máquina remota. Esta última variante es, con mucho, la más compleja pero también la más usual.
El objetivo que la mayoría de pruebas tratan de conseguir es que la máquina que tiene la tarjeta de red en modo promiscuo se traicione a sí misma, revelando que ha tenido acceso a información que no iba dirigida a ella y que, por tanto, tiene un sniffer. Éste es un objetivo ambicioso y complejo que, lamentablemente, puede ser imposible.
LÍMITES TEÓRICOS
A veces resulta completamente imposible detectar un sniffer. Por ejemplo, si el sniffer ha sido diseñado exclusivamente para esta tarea (generalmente dispositivos hardware), entonces no devolverá jamás un paquete, no establecerá nunca una comunicación, sino que permanecerá siempre en silencio y su detección remota será, simplemente, imposible.
La detección de este tipo de sniffers sólo puede hacerse por inspección directa de los dispositivos conectados a la red. Afortunadamente, es muy probable que muchos de los administradores de seguridad jamás se enfrenten a este tipo de dispositivos. La inmensa mayoría de los sniffers son simplemente PCs con software malicioso que cambia una tarjeta de red a modo promiscuo,que tienen una presencia activa en la red (devuelven paquetes) y, por tanto, pueden ser engañados para autoinculparse.
Técnicas de detección local
Técnicas de detección remota desde el mismo segmento de red.
TÉCNICAS LOCALES DE DETECCIÓN
Aunque no se trata de una tarea trivial, ésta es, con mucho,la situación en que resulta más sencillo localizar un sniffer.
Normalmente basta con revisar la lista de programas en ejecución para detectar alguna anomalía ( CTRL+ALT+SUPR o ps-aux|more ).
Otro buen sitio donde mirar es en la lista de los programas que se inician automáticamente al encender el PC (archivos /etc/rc.d/rcX.d/* o .bashrc, etc... en un sistema Unix y autoexec.bat o ciertas claves del Registry en una máquina Windows) o las ta-reas programadas (cron, at). Es importante destacar que los ejemplos anteriores son sólo triviales y no pretenden ser una enumeración exhaustiva. Hay decenas de otras posibilidades,algunas muy ingeniosas y nada elementales.
Cualquier novedad o anomalía debe ser investigada en profundidad porque podría revelar no sólo un sniffer en funcionamiento sino también otros programas que supongan una graveamenaza (virus, troyanos, gusanos, etc...).
Pero no siempre esta simple inspección de los programas en ejecución, los preparados para ejecutarse automáticamente en el inicio o las tareas programadas, va a tener éxito. De hecho,
muchos troyanos relativamente sofisticados resultan transparentes a esta búsqueda sencilla [5]. Son muchas más las técnicas de ocultación posibles, y no es difícil para un programador con cierto talento desarrollar aplicaciones que se escondan bajo otras cuyo uso es perfectamente normal y legítimo.
Afortunadamente hay otras formas de obtener información sobre el estado de la tarjeta de red.
HERRAMIENTAS DE DETECCIÓN LOCAL
DETECCIÓN REMOTA DESDE EL MISMO SEGMENTO DE RED
En una máquina con alguno de los sistemas operativos de la familia Unix se dispone de una utilidad que resulta especialmen te valiosa en la lucha contra los sniffers. Se trata de ifconfig , comando que informa del estado de todas las interfaces de reddel sistema e indica si alguna de ellas se encuentra en modo promiscuo.
Es muy recomendable verificar periódicamente el estado de las interfaces con el comando ifconfig , y una buena forma de hacerlo es añadiendo esta tarea al crontab . En caso de descubrir que una de las interfaces ha cambiado a modo promiscuo, podría enviarse un mensaje de alerta y deshabilitar inmediatamente esa interfaz con ifconfig down .
La alternativa es el programa CPM [6], siglas de Check Promiscuous Mode, que realiza una tarea semejante mediante el uso de llamadas ioctl . Pueden conseguirse gratuitamente versiones para cualquier sistema Unix en multitud de lugares relacionados con la seguridad, entre otros el CERT.
Evidentemente, esta metodología de detección local de sniffers depende del buen funcionamiento del comando ifconfig o del programa CPM. Lamentablemente, esto es algo que no se puede dar por sentado. Es bastante habitual que, si no se detecta una violación de seguridad en los sistemas en una fase temprana, el atacante disponga del tiempo suficiente como para borrarcompletamente sus huellas y obtener un control total de todos los recursos de forma totalmente transparente.
Como se ha comentado antes, en condiciones normales los paquetes son aceptados o rechazados a nivel hardware por la tarjeta de red según la MAC address de destino. Pero, cuando la tarjeta de red esta en modo promiscuo, las cosas cambian radicalmente. Todos los paquetes son aceptados y procesados, por lo que todos pasan directamente al kernel del sistema operativo. Es ahora éste el que debe encargarse de filtrarlos y decidir cuáles van a ser procesados por otras aplicaciones y cuáles van a ser descartados.
En suma, los paquetes son filtrados en niveles superiores al nivel hardware/físico al que los filtra la tarjeta de red cuando ésta no se encuentra en modo promiscuo. La consecuencia de este cambio es un incremento drástico del tiempo de procesamiento por paquete, en varios órdenes de magnitud en la mayoría de los casos.

¿Cómo aprovechar esta idea en el desarrollo de tests de detección de sniffers? Un buen procedimiento es realizar pruebas de latencia (mediante el envío de pings y la obtención de estadísticas de tiempos de respuesta medios) de cada una de las máqui- nas cuando la red se encuentre poco saturada, repitiendo estos tests mientras se satura la red con tráfico basura. El tiempo de respuesta de cada una de las máquinas, por supuesto, empeorará significativamente, pero el de una máquina con una tarjeta de red en modo promiscuo será varios órdenes de magnitud superior al del resto. Así es como, idealmente, se detecta la presencia de un sniffer.
Pero, evidentemente, pueden encontrarse dificultades en caso de hallarse frente a un atacante lo suficientemente astuto. ¿Cómo puede evitar ser detectado por este tipo de técnica? Hay, entre otras, dos posibilidades principales.
Fijémonos en que, de forma implícita, para que esta idea funcione se necesita que sólo una pequeña parte de las máquinas esté en modo promiscuo. Desde luego que éste es el caso en la mayoría de las situaciones, entre otros motivos porque no tiene demasiado sentido instalar varios sniffers en el mismo segmento de red, ya que todos tendrían acceso al mismo tráfico. Sin embargo, es importante tener presente que, en el caso extremo en que todas las máquinas de un determinado segmento tengan instalado un sniffer, esta técnica no va a permitir localizarlos y, lo que es peor, induciría a pensar que no hay ninguno. Si el segmento tiene un número relativamente pequeño de máquinas (de 2 a 5) podría suceder que el atacante instale sniffers en todas las máquinas para burlar este test de latencia, que es considerado por muchos como el mejor de los que se conocen.
Hay otra técnica ingeniosa para conseguir burlar esta prueba, o al menos para convertir sus resultados en poco concluyentes. Como siempre, la idea es muy sencilla: el atacante puede
sospechar que acaba de comenzar una búsqueda de sniffers si detecta que el tráfico en la red ha aumentado drásticamente (ha comenzado la fase de inundación de la red) respecto al trafico
habitual (podría estar realizando estadísticas y tener un umbral de alarma). En ese caso,simplemente cambia la tarjeta de red amodo no promiscuo durante unos segundos, para pasar el test con normalidad y luego cambia de nuevo a modo promiscuo.
Esta técnica de evasión ya ha sido implementada en un sniffer gratuito, así que no se puede descartar que comience a utilizarse masivamente por parte de un buen número de atacantes en breve plazo. para comprender cuál es el valor exacto de los resultados que
puede esperar de sus herramientas.
Es posible que en un futuro próximo esta lucha se des- equilibre en favor del administrador de sistemas, cuando el cifrado del tráfico de red se extienda y se convierta en práctica habitual en la mayoría de las empresas. La introducción generalizada de VPNs , favorecida por el nuevo marco de IPv6, que previsiblemente se producirá en los próximos años, también contribuirá a dificultar, quizá a imposibilitar, la tarea del atacante.
En la actualidad hay algunas soluciones sencillas que pueden ser aplicadas para minimizar el impacto de un sniffer, fundamentalmente la segmentación de la red bien sea físicamente o por medio de hubs inteligentes que impiden que ningún tráfico no destinado a ellas llegue a la tarjeta de red.
Evidentemente, estas dos recomendaciones finales no pueden aplicarse siempre por motivos bien de arquitectura de red bien económicos, así que, en la inmensa mayoría de los casos el administrador de seguridad se verá obligado a seguir las citadas propuestas e implantar un programa de inspección periódica capaz de detectar sniffers, desactivar tarjetas y disparar alarmas.os
2ª Parte
HERRAMIENTAS DE DETECCIÓN REMOTA DESDE EL MISMO SEGMENTO DE RED
La mejor herramienta de detección de sniffers en la actualidad es AntiSniff , de L0pht . Se trata de un programa comercial con una versión de evaluación de 15 días que implementa todos
los tests citados anteriormente, junto a algunas variaciones muy interesantes.
Sin embargo, al poco de anunciarse su aparición se desarrolló un sniffer gratuito y con código fuente disponible llamado Anti-AntiSniff que no es detectado por ninguno de los test que
AntiSniff realiza. AntiSniff está disponible para Windows NT/2000 y hay una versión de prueba gratuita y con código fuente disponible en desarrollo para diferentes versiones de Unix que, eso sí, está muy por detrás de la versión de Windows NT/2000 en cuanto a interfaz gráfica.
Le sigue, en cuanto a utilidad y no precisamente de cerca, el proyecto Sentinel , que tiene la ventaja de ser un proyecto público y abierto que permite acceder al código fuente del programa.
En la actualidad es sólo capaz de realizar unos pocos tests, muchos menos que AntiSniff, pero tiene un interesante futuro por delante que hace recomendable su seguimiento.
Antiguos programas de detección de sniffers que en su día fueron pioneros, como NEPED , están ahora totalmente superados porque tanto Sentinel como AntiSniff implementan las técnicas que les hicieron tan útiles en el pasado.
CONCLUSIONES
La lucha contra los sniffers es un tema de permanente actualidad: cada vez se desarrollan técnicas más sofisticadas para su detección y, casi al instante, se crean nuevos modelos de sniffers que las burlan. Se trata de una lucha desequilibrada en contra del que los busca que, además, tiene que convivir con el hecho de que su tarea es, a veces, imposible.
No obstante, es fundamental que cualquier administrador de seguridad conozca todos los programas que pueden ayudarle a detectar sniffers en sus redes, junto a las técnicas de evasión que
un atacante puede utilizar para luchar contra ellos ,
Las técnicas no dependientes del sistema operativo son menos fiables y menos concluyentes, suelen basarse en suposiciones del comportamiento de determinados sniffers, convirtiendo estas técnicas inútiles en determinados ambientes. A destacar como ventaja no suelen provocar falsos negativos.
El Test DNS
El Test del Ping
El Test ICMP
El Test ARP
El Test Etherping
El Test DNS
En este método, la herramienta de detección en sí misma está en modo promiscuo. Creamos numerosas conexiones TCP/IP falsas en nuestro segmento de red, esperando un sniffer pobremente escrito para atrapar esas conexiones y resolver la dirección IP de los inexistentes host. Algunos sniffers realizan búsquedas inversas DNS en los paquetes que capturan. Cuando se realiza una búsqueda inversa DNS, una utilidad de detección de sniffers huele la petición de las operaciones de búsqueda para ver si el objetivo es aquel que realiza la petición del host inexistente.
El Test del Ping
Este método confía en un problema en el núcleo de la máquina receptora. Podemos construir una petición tipo "ICMP echo" con la dirección IP de la máquina sospechosa de hospedar un sniffer, pero con una dirección MAC deliberadamente errónea. Enviamos un paquete "ICMP echo" al objetivo con la dirección IP correcta, pero con una dirección de hardware de destino distinta. La mayoría de los sistemas desatenderán este paquete ya que su dirección MAC es incorrecta. Pero en algunos sistemas Linux, NetBSD y NT, puesto que el NIC está en modo promiscuo, el sniffer analizará este paquete de la red como paquete legítimo y responderá por consiguiente. Si el blanco en cuestión responde a nuestra petición, sabremos que está en modo promiscuo. Un atacante avanzado puede poner al día sus sniffers para filtrar tales paquetes para que parezca que el NIC no hubiera estado en modo promiscuo.
El Test ICMP
Ping de Latencia. En éste método, hacemos ping al blanco y anotamos el Round Trip Time (RTT, retardo de ida y vuelta o tiempo de latencia) Creamos centenares de falsas conexiones TCP en nuestro segmento de red en un período muy corto. Esperamos que el sniffer esté procesando estos paquetes a razón de que el tiempo de latencia incremente. Entonces hacemos ping otra vez, y comparamos el RTT esta vez con el de la primera vez. Después de una serie de tests y medias, podemos concluir o no si un sniffer está realmente funcionando en el objetivo o no.
El Test ARP
Podemos enviar una petición ARP a nuestro objetivo con toda la información rápida excepto con una dirección hardware de destino errónea. Una máquina que no esté en modo promíscuo nunca verá este paquete, puesto que no era destinado a ellos, por lo tanto no contestará. Si una máquina está en modo promiscuo, la petición ARP sería considerada y el núcleo la procesaría y contestaría. Por la máquina que contesta, sabremos que la máquina está en modo promiscuo.
El Test Etherping
Enviamos un ping echo al host a testear con una IP de destino correcta y dirección MAC falseada. Si el host responde, es que su interfaz está en modo promiscuo, es decir, existe un sniffer a la escucha y activo.
Una de las herramientas más utilizadas en el campo de la seguridad y de la administración de sistemas es el "Sniffer". Para el que no lo sepa, un sniffer es una herramienta de monitorización de redes y captura de paquetes que circulan por dichas redes.
Este tipo de herramientas nos permiten:
- Analizar el tráfico de una red: Congestión, cuellos de botella, intrusiones, ...
- Detectar fallos de paquetes: Paquetes corruptos, duplicados, errores de sincronización, ...
- Nos permiten realizar filtros para analizar nuestro tráfico.
- Creación de estadísticas del tráfico.
- Capturar datos que circulan por la red tanto cifrados como sin cifrar.
Para poder ejecutar este tipo de herramientas se necesitan permisos de administración en una máquina, con lo cual son utilizadas por administradores de red para supervisar estas.
El problema es que igual que las pueden utilizar usuarios autorizados, pueden ser usadas por usuarios no legítimos que han accedido a nuestra red, o que utilizan de forma autorizada nuestra red, pero no deberían tener permisos de administración.
El sniffer es un herramienta que actúa en modo pasivo con lo cual no es fácil detectar la existencia de uno de ellos en nuestra red, ya que la única señal que deja visible es la activación del modo promiscuo de la tarjeta de red en el equipo donde se usa.
En el presente post vamos a intentar conocer algunos métodos que pueden ser utilizados para detectar estos sniffers en nuestras redes.
El primero de los métodos es el más rudimentario y menos técnico de todos, pero para redes pequeñas (quizás 4 o 5 equipos) en las que tengamos acceso físico o remoto a las máquinas puede servir. Es simplemente listar los procesos que se están ejecutando en cada una de las máquinas y ver que encontramos. Otra de las formas mediante el mismo método sería consultar el registro a ver si existen sniffers instalados en la clave "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft". Obviamente, este método no es muy efectivo, ya que en mayor medida depende del conocimiento que el administrador tenga sobre los varios sniffers existentes. Además, pueden ser sniffers caseros, o desconocidos, con lo cual serían más difíciles de detectar.
El segundo método, ya más técnico consiste en hacer pruebas mediante paquetes ICMP, ya sabéis, el típico ping. Para llevar a cabo este método realizaríamos un ping a la máquina que queramos probar, tras esto, generaríamos gran cantidad de tráfico TCP en la red en poco tiempo y volveríamos a realizar el ping a la misma máquina. Si entre las latencias de respuesta de uno y otro hay mucha diferencia (3ms frente a 20ms por ejemplo), podemos estar casi seguros de que hay un sniffer activado. La diferencia de latencias se debe a que el equipo está procesando todas las conexiones TCP y no ha podido responder inmediatamente al ping.
El tercer método, es la utilización de ARP's. Este método consiste en hacer un ping a una dirección IP que queramos, pero con una MAC incorrecta. Para esto, podemos añadir una entrada en la tabla ARP con la IP correcta y una MAC incorrecta. Al ser la dirección MAC incorrecta, el paquete no debería llegar a su destino, pero en algunos sistemas, si hay un monitor de red activado, el sniffer atenderá el paquete y enviará una respuesta.
El cuarto y último método que vamos a ver es el de pruebas de DNS. Algunos sniffers, realizan búsquedas inversas de DNS, es decir, dada una IP, intentan averiguar el nombre de dominio al que corresponde, y nosotros podemos utilizar esta característica para localizarlo. El método consiste en crear una gran cantidad de tráfico TCP con peticiones de dominios que no existan obligando al sniffer a realizar peticiones de resolución de IP y dominio. De esta forma solo tendremos que ver cual de nuestras máquinas es la que realiza estas peticiones de resolución, y así, sabremos en cual está el sniffer.
Evidentemente, existen varias herramientas que se encargan de implementar todos estos métodos de forma automática, como serían:
- Antisniff: Creada tanto para Windows como UNIX. Esta herramienta se encarga de probar si alguno de los dispositivos de la red está en modo promiscuo. Implementa el segundo, tercer y cuarto métodos vistos anteriormente.
- Sentinel: Herramienta de funcionamiento muy similar a Antisniff que utiliza las librerías libpcap y libnet. Implementa el segundo, tercer y cuarto métodos vistos anteriormente.
- CMP: Otra herramienta que se encarga averiguar si hay máquinas en modo promiscuo en nuestra red.
- NEPED: Herramienta que implementa el tercer método visto más arriba.
- SniffDet: Otra herramienta similar a Antisniff y Sentinel.
Bueno, hasta aquí todo lo relacionado con la detección de sniffer en nuestras redes. Buscando algo de información sobre las herramientas he llegado a una página del dominio maestrosdelweb que me ha parecido muy interesante, así que os dejo el enlace aquí. Hace un poco menos referencia a explicaciones teóricas, y un poco más a las herramientas que el presente artículo, así que lo he visto como un buen complemento
3º Parte
A menudo, las cosas no son lo que parecen. Para escuchar a los medios de comunicación hablar de ello, el peor destino que puede sufrir un administrador es que su servidor Web sea reventado y que modifiquen su página Web. No es cierto. De hecho, aunque estos ataques pueden parecer dramáticos y suelen generar grandes titulares, no son nada si se los compara con un ataque real. Los intrusos reales no suelen anunciar su presencia ni hacen alarde de lo que consiguen, sino que instalan dispositivos de monitorización ocultos que furtivamente recogen la información de la red.
Dichas herramientas reciben el nombre de analizadores de protocolos, aunque también se las conoce como sniffers. El sniffing de paquetes es la práctica de capturar datos de red que no están destinados a tu máquina, generalmente con el propósito de ver tráfico confidencial/sensible, como sesiones telnet o gente leyendo su correo. Por desgracia no existe una forma de detectar un sniffer de paquetes, puesto que es una actividad pasiva, sin embargo mediante la utilización de switches de red y backbones de fibra óptica (que son muy difíciles de pinchar) se puede minimizar la amenaza.
Los sniffers representan un alto nivel de riesgo, ya que:
◦ Pueden capturar contraseñas.
◦ Pueden capturar información confidencial o patentada.
◦ Pueden utilizarse para hacer mella en la seguridad de los entornos de red u obtener acceso por la fuerza.
De hecho, los ataques de sniffers han provocado incidentes más serios que cualquier otro tipo de ataque. Para enfatizar este punto, vamos a rememorar rápidamente el pasado. En 1994, un ataque masivo de sniffers obligó a un centro de investigación naval a publicar la siguiente nota:
- "En febrero de 1994, una persona no identificada instaló un sniffer de red en varios hosts y en varios elementos de backbones que recopiló más de 100.000 nombres de usuarios y contraseñas válidas a través de Internet y MiInet. Se considera que todos los equipos del sistema que permitan la existencia de registros de FTP, Telnet o remotos corren peligro... Hay que comprobar si todos los hosts de la red que utilicen un sistema operativo derivado de UNIX tienen el controlador de dispositivo específico que permite instalar el sniffer. (Extracto de la nota del Naval Computer & Telecomunications Area Master Station LANT)"
El ataque a MiInet fue tan serio que el asunto fue llevado ante el Subcomité de Ciencia, Espacio y Tecnología y al Tribunal Supremo de USA.
Ahora veamos un artículo más reciente y cercano a nosotros en Galicia:
"Un «hacker» de Carballo estafa movendo cartos pola Rede.
Axentes da Garda Civil especializados en delictos telemáticos detiveron a un mozo de Carballo como presuntor autor dunha estafa de 48.000 euros(7,9 millones de pesetas) a unha empresa por Internet. O sospeitoso pasou os cartos por bancos de varios países" ( Extracto de La Voz de Galicia, Mayo 2002)
Entre ambos artículos, desde Febrero de 1994 hasta Mayo de 2002, vemos la importancia vital que tienen los sniffers para la seguridad de una red informática
¿Para qué se usa un sniffer?
Los programas de sniffers han estado ejecutándose por la red durante mucho tiempo en dos formas. Los programas comerciales de sniffers se usan a menudo para ayudar en el mantenimiento de las redes. Mientras que sniffers "underground" son usados por los crackers para introducirse en los ordenadores ajenos.
Algunos usos típicos de estos programas son:
Captura de passwords y logins que están en texto plano (sin encriptar) desde la red.
Conversión de datos a un formato comprensible por los humanos
Análisis de errores para descubrir problemas en la red.
Análisis de rendimiento para descubrir posibles cuellos de botella en la red.
Detección de intrusos en la red para hackers/crackers potenciales
Un Sniffer más que una herramienta de ataque en manos de un administrador de red puede ser una valiosa arma para la auditoría de seguridad en la red. Puesto que el acceso a la red externa debe estar limitado a un único punto. Un Sniffer puede ser la herramienta ideal para verificar como se está comportando la red.
La definición, aunque simple, le puede ayudar bastante a entender cómo es que este dispositivo trabaja, sin embargo más adelante daremos una breve mirada al funcionamiento de un Sniffer y además una lista de las herramientas disponibles para realizar esta actividad en la red.
Módulos de un sniffer
▪ El hardware
La mayoría de los productos trabajan con las tarjetas de red standard, aunque algunos requieren un hardware especial. Si se usa algún tipo de hardware especial, se puede analizar fallos como errores CRC, problemas de voltaje, programas de cable, etc.
▪ Driver de captura
Ésta es la parte más importante. Captura el tráfico de la red desde el cable, lo filtra según se desee y luego almacena los datos en el buffer.
▪ Buffer
Una vez que los paquetes son capturados desde la red, se almacenan en un buffer. Hay dos modos de captura distintos: captura hasta que el buffer se llene o usar el buffer como un "round robin" donde los datos más recientes reemplazan a los más antiguos. Algunos programas como "BlackICE Sentry IDS" de Network ICE pueden operar en modo "round-robin", capturando los datos a velocidades de 100- mbps y generando un buffer que puede tener varios gigabytes de información.
▪ Análisis de Tiempo - Real
El programa pionero fue el "Network General Sniffer"; esta opción hace un análisis al por menor a nivel de bits de los frames mientras van por la red. Esto es capaz de encontrar una medida de la calidad de la red y de posibles fallos mientras a la vez captura la información. Por ejemplo: Network intrusion detection systems hace esto e incluso incorpora detección de posibles hackers.
▪ Decodificar
Esta opción muestra el contenido del tráfico de la red con un texto descriptivo para que el analista sepa qué está pasando.▪ Edición / Transmisión de Paquetes
Algunos programas contienen opciones que te permiten editar tus propios paquetes de red y transmitirlos luego a la red.3. SNIFFERS PARA ATAQUEEdición / Transmisión de
Paquetes
▪ Edición / Transmisión de Paquetes
Algunos programas contienen opciones que te permiten editar tus propios paquetes de red y transmitirlos luego a la red.

¿Cómo se implantan los sniffers y cómo se capturan las claves?
Para saber cómo funciona un sniffer, necesita saber que cada ordenador de un LAN puede "ver" todos los paquetes de datos que son transmitidos dentro de la red. Así cada ordenador de la red puede ejecutar un programa sniffer para ver todos los paquetes y guardar una copia. Básicamente, los pasos seguidos por los atacantes son los siguientes (ver ilustración):
Proteger las contraseñas contra los Sniffers
Una contraseña es difícil de ser capturada. Los sniffers son programas que permiten a un atacante robar una clave y hacerse pasar por nosotros. Estos tipos de ataques son comunes. Es muy importante, como usuarios de Internet, tener conciencia de cómo sus claves son vulnerables y de como tomar medidas apropiadas para tener una "cuenta" más segura.
Seleccionar una buena clave ayuda mucho, pero también es muy importante saber cuando se es vulnerable a los sniffers y como lidiar con ellos.3.2. Cuándo una clave puede ser capturada por un sniffer.
Muchas redes locales (LANs) son configuradas compartiendo un mismo segmento de red Ethernet. Prácticamente cualquier ordenador de esta red puede ejecutar un programa sniffer para robar las claves de los usuarios.
Los sniffers actúan monitorizando el flujo de comunicación entre las maquinas de la red para descubrir cuando alguien utiliza los servicios de la red mencionada anteriormente. Cada uno de estos servicios utiliza un protocolo que define como una sesión se establece, como se identifica y autentifica una cuente y de como los servicios son utilizados.

Para tener acceso a uno de estos servicios, primero tiene que efectuar un "Log in". Es en la secuencia de login (parte de autenticación de los protocolos, que tiene lugar al comienzo de cada sesión) en la que los sniffers están interesados, porque es aquí donde se encuentra su clave. Por lo tanto solo hay que filtrar las cadenas claves para obtener la contraseña.En la siguiente figura se muestra el proceso de conversación entre dos máquinas remotas, donde la identificación del usuario pasa abiertamente por la red de una máquina a otra. Este ejemplo es de transferencia de archivos vía FTP: (La máquina A inicia la conexión con la máquina B, que solicita la identificación del usuario. Al autenticarse en la maquina remota B el sniffer captura la clave.)
¿Cómo se implantan los sniffers y cómo se capturan lasclaves
Para saber cómo funciona un sniffer, necesita saber que cada ordenador de un LAN puede "ver" todos los paquetes de datos que son transmitidos dentro de la red. Así cada ordenador de la red puede ejecutar un programa sniffer para ver todos los paquetes y guardar una copia. Básicamente, los pasos seguidos por los atacantes son los siguientes (ver ilustración):

- (1) El atacante penetra en su red, rompiendo una determinada máquina.
(2) Instala un programa sniffer.
(3) Este programa monitoriza la red en busca de acceso a servicios de red, las capturas son realizadas y registradas en un Log.
(4) El archivo de logs es recuperado por el atacante
¿Por qué robar unaclave?
En todo el mundo de la Seguridad Informática, también hay que tener en cuenta la Psicología de los atacantes potenciales, para construir los sistemas de defensa adecuados a dichos perfiles.
Existen diversas razones que llevan a las personas a robar las claves, desde simplemente molestar a alguien (enviar un mail haciéndose pasar por ti) hasta practicar actividades ilegales (invadir otros ordenadores, robar otras informaciones, etc.). Un atractivo para los hackers es la capacidad de utilizar la identidad de terceros en estas actividades.
Una de las principales razones por la que los atacantes intentan romper sistemas e instalar sniffers es poder capturar rápidamente el máximo número de cuentas posibles, así cuantas más cuentas posea el atacante más fácil tiene el mantenerse escondido. Porque puede hacerse pasar por otros usuarios "inocentes".
ATAQUES PRÁCTICOS DE SNIFFER
Este apartado del trabajo está dirigido a aquellos usuarios con conocimientos avanzados de C y Linux; con los que se puede comenzar a utilizar sniffers en casos reales. Los distintos sniffers realizan tareas diferentes, que oscilan entre las sencillas (capturar nombres de usuarios y contraseñas) y las extremas (grabar todo el trafico de la interfaz de red). Entre los que se incluyen:
Linsniffer
Linuxsniffer.
Hunt
Sniffit.
Linsniffer
Linsniffer es sencillo y directo. Su propósito principal es capturar nombres de usuarios y contraseñas, y esta es una función en la que sobresale
Aplicación creada por Mike Edulla Necesita: Archivos de cabecera C e IP. Archivos de configuración: ninguno.
Ubicación: https://agape.trilidun.org/hack/network-sniffers/linsnifferc.
Historial de seguridad: linsniffer no tiene un historial de seguridad importante. Notas: linsniffer es fácil de utilizar. Sin embargo, éstas son algunas notas sobre la instalación: se necesita todo el complemento de los archivos de cabecera de IP incluyendo aquellos que suelen almacenarse en /usr/include/net y en
/usr/include/netinet. Además, asegúrese de que la variable PATH incluye
/usr/include.
Para compilar linsniffer, introduzca el siguiente comando:
$cc linsniffer.c -o linsniffer
Para ejecutar 1insniíier, escriba el comando 1insniffer en un indicativo: Linsniffer
En este momento, linsniffer crea un archivo vacío llamado tcp.log, donde escribe su salida. .
linux_sniffer
linux_sniffer ofrece una vista algo más detallada.
Aplicación: linux_sniffer por loq. Necesita: archivos de cabecera C e IP Archivos de configuración: ninguno.
Ubicación: https://www.ryanspc.com/sniffers/linux_sniffer.c.
Historial de seguridad: linux_sniffer no tiene un historial de seguridad importante.
Notas: linux_sniffer es fácil de utilizar. Sin embargo, es necesario todo el complemento de los archivos de cabecera de IR
Para linux_sniffer, introduzca el siguiente comando:
$cc linux_sniffer.c -o linuxsniff
hunt es otra opción útil cuando se necesita una salida menos
compleja y más fácil de leer, un seguimiento de comandos más
sencillo y snooping de sesiones. Aplicación: hunt de Pavel
Krauz.
Necesita: cabeceras de C e IP y Linux 2.0.35+, Glibc 2.0.7 con linuxThreads (o no).
Archivos de configuración: ninguno.
Ubicación: https://www.cri.cz/kra/index.html.
Historial de seguridad: hunt no tiene un historial de seguridad importante. Notas: el creador de hunt ha proporcionado archivos binados enlazados dinámica y estáticamente a aquellos usuarios que no tengan tiempo
(o ganas) de compilar el paquete.
hunt viene comprimido en formato tar y zip. La versión actual y el nombre del archivo es hunt-1_3bin.tgz. Para empezar, descomprime el archivo comprimido con formato zip de la siguiente forma:
$ gunzip hunt*tgz
El archivo que aparece al descomprimir se llama
hunt-1_3bin.tar. Descomprímelo de la siguiente forma:
$tar -xvf hunt-1_3bin.tar
hunt se descomprimirá en el directorio /root/hunt-1.3,
Permite especificar las conexiones determinadas en las que se esté interesado, en lugar de tener que vigilar y registrar todo.
Detecta conexiones ya establecidas, no solamente las iniciadas en SYN o las que se acaban de iniciar.
Cuenta con herramientas de spooying. Ofrece control activo de las sesiones.
Estas características, junto con su sencilla interfaz, hacen de hunt una buena opción para los principiantes en Linux, ya que es una magnifica herramienta para el aprendizaje.
Sniffit es para aquellos usuarios que necesiten algo más.
Aplicación: Sniffit de Brecht Claerhout.
Necesita: cabeceras de C y de IR
Archivos de configuración: consulte la siguiente sección.
Ubicación: https://reptile.rug.ac.be/~coder/sniffit/sniffit.html.
Historial de seguridad: Sniffit no tiene un historial de seguridad importante. Notas: Sniffit es realmente potente. Su capacidad de configuración es tremenda, pero ten en cuenta que su proceso de aprendizaje es laborioso.
sniffit viene comprimido en formato tar y zip (en estos momentos, la versión actual es sniffit_0_3_0_tar.gz). Para descomprimirlo, utiliza este comando:
$gunzip sniffit*gz
Tras descomprimirlo, el archivo que aparece es sniffit_0_3_0_tar. Descomprímelo de la siguiente forma:
Star -xvf sniffit_0_3_0_lar
sniffit se descomprimirá en sniffit.0.3.5/. Cambie a dicho directorio (cd sniffit.0.3.5) y ejecute el script configure: $ ./configure
Verá en la pantalla una gran cantidad de mensajes. Ello se debe a que Sniffit está utilizando autoconf para probar si el sistema cumple los requisitos mínimos.
Cuando acabe el script configure, introduzca el siguiente comando:$make
Es en este momento cuando Linux crea sniffit. Este proceso puede durar varios minutos dependiendo de la máquina, de la velocidad de su procesador y de la memoria disponible. Finalmente, el proceso acabará y verá este mensaje: Strip sniffit
Funcionamiento y configuración de sniffit
Si sniffit se ejecuta desde la línea de comandos, hay que definir de forma explícita varias opciones, entre las que se incluyen las direcciones de origen y destino, el formato de salida, etc.
-c [archivo de configuración] Se utiliza para especificar un archivo de configuración.
-D [dispositivo] Se utiliza para dirigir la salida a un dispositivo determinado. El creador, Brecht Claerhout, señala que, por ejemplo, es posible capturar la sesión de IRC de otro usuario en su propio terminal.
-d Se utiliza para cambiar sniffit al modo dump. Muestra los paquetes en formato byte en STDOUT.
-1 [longitud] Se utiliza para especificar la longitud. De forma predeterminada, sniffit captura los 300 primeros bytes.
-L [nivel] Se utiliza para establecer el nivel de profundidad del registro.
-P Se utiliza para especificar un lugar determinado para monitorizar.
-s[ip_origen] Se utiliza para especificar la dirección de origen. Sniffit captura aquellos paquetes que provienen de ip de origen.
-t [ip_destino] Se utiliza para especificar la dirección de destino. Sniffit captura aquellos paquetes que van al ip de destino.
-v Muestra la versión actual de sniffit.
-x Se utiliza para ampliar la información que proporciona sniffit en paquetes TCfI con lo que capturará los números de secuencia, etc.
Los archivos de configuración proporcionan mucho control sobre la sesión sniffit (y ayudan a evitar Eneas de comando de 200 caracteres). Los formatos del archivo de configuración constan de cinco posibles campos:
. Campo 1: select y deselect. Aquí se indica a Sniffit que capture los paquetes de los siguientes hosts (select) o no (deselect).
. Campo 2: from, to o both. Aquí se indica a Sniffit que capture los paquetes que provengan o se dirijan al host especificado (o ambas cosas).
. Campo 3: host, port o multiple-hosts. Aquí se especifican un solo host de destino o varios. La opción multiple-hosts admite comodines estándar.
. Campo 4: listado de hostname, portnumber o multiple-hosts.
. Campo 5: portnumber. Éste es un ejemplo:
select from host 172.16.0.1 select from host 172.16.0.1 80 select both port 23
Con él se capturaría todo el tráfico de telnet y de la Web enviado desde ambos hosts. Nota: Ten en cuenta que los parámetros del archivo de configuración sólo se aplican a lascomunicaciones que utilizan TCP.
sniffit permite monitorizar varios hosts en diferentes puertos y para distintos paquetes. En todas las páginas se nos dice que es una excelente herramienta.
Otros sniffers y herramientas de monitorización de redes
Una vez que hemos visto cómo funcionan los sniffers y lo que pueden hacer. vamos a ampliar el espectro. Existen muchos otros sniffers, monitores de red y analizadores de protocolos. Algunos realizan las mismas tareas esenciales que los ya mencionados, mientras que otros llevan a cabo tareas adicionales o más especializadas.
ANM Angel Network Monitor no es en sí un analizador de protocolos, sino un monitor de sistemas. ANM monitorizará los tiempos de espera de las conexiones, los mensajes de conexión rechazada, etc. de todos los servicios estándar (FTP, HTTP, SMTP etc.). También monitoriza el uso del disco. La salida está en HTML y tiene código de colores para resaltar las alertas. Este paquete requiere Perl. Para obtener más información, véase la página Web https://www.ism.com.br/~ paganini//angel/.
Ethereal Es un sniffer para Linux (y UNIX en general) que utiliza GUI y que ofrece algunos servicios interesantes. Uno de ellos es que la GUI de Ethereal permite examinar fácilmente los datos del sniffer, bien desde una captura en tiempo real bien desde archivos de capturas tcpdump previamente generados. Todo ello, unido al continuo filtro para obtener una mejor exploración, así como la compatibilidad con
SNMP y la capacidad para realizar capturas sobre Ethernet, FDDI, PPP y Token Ring estándar, hace que Ethereal sea una buena opción. Sin embargo, sus creadores dejan bien claro que Ethereal es un proyecto en marcha. Tenga en cuenta que es necesario instalar tanto GTK como libpcap. Puede encontrar Ethereal en https://ethereal.zing.org/.
Icmpinfo Examina el tráfico de ICMP y es útil para detectar ataques de bombas en ICMP. Los informes de icmpinfo incluyen la fecha y hora, el tipo de paquete, el IP de origen, IP ofrecido difícil de leer, puerto de origen, puerto de destino, secuencia y tamaño de los paquetes.icmpinfo se puede obtener en: ftp://ftp.cc.gatech.edu/pub/linux/system/network/admin/icmpinfo-1.11.tar.gz
IPAC IP Accounting Package es un monitor de IP para Linux. IPAC funciona encima de ipfwadm o ipchains, y genera gráficos detallados de tráfico de IP (generando informes de bytes por segundo, por hora, etc.). IPAC puede obtenerse en : https://comlink.apc.org/~moritz/ipac.html.
Iptraf Es una utilidad que utiliza una consola para ver las
estadísticas de la red y que recopila recuentos de bytes y paquetes
de las conexiones TCP indicadores de actividad y estadísticas de la
interfaz, interrupciones del tráfico de TCP/UDP y recuentos de bytes
paquetes de las estaciones de LAN. Además de las interfaces estándar
(FDDI/Ethernet), puede monitorizar el tráfico de SLIP PPP y RDSI. Si
utiliza Trinux, SUSE o Debían, es muy probable que Iptraf ya esté
instalado. En caso contrario, puede obtenerlo en
https://cebu.mozcom.com/riker/iptraf/about.html
sniffer También se lo conoce como utilidad para estadísticas de redes KDE y es una herramienta de monitorización de redes que funciona en K Desktop Enviroment. Ksniffer monitoriza todo el tráfico estándar de la red, incluyendo TCP, IP, UDP, ICMP, ARP, RARP y una parte de IPX. Dado que actualmente se está trabajando en el , Ksniffer aun no ofrece posibilidades de registro, pero es muy útil para vigilar la actividad de la red mientras se esta en KDE. Puede encontrar Ksniffer en https://ksniffer.veracity.nu/.
Isof List Open Files (de Vic Abell) es una herramienta que proporciona información sobre los archivos que abren los procesos que se están ejecutando en cada momento. Si tiene SUSE, Debían GNL/Linux 2.0 o Red Hat Linux 5.2, tiene lsof, pero es necesario actualizarlo (la versión 4.40 tenía un desbordamiento de buffer). Entre los archivos de los que lsof ofrece información se incluyen los archivos normales, los directorios, los dispositivos de bloqueo, los archivos con caracteres especiales, las bibliotecas, etc. Por consiguiente, lsof es muy útil para detectar aquellas act1i7idades no autorizadas que puedan no aparecer en consultas ps estándar. Si aún no tiene lsof, es aconsejable descargarlo de ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/.
Ntop Network top está basado en libpcap y muestra las estadísticas actuales de uso de la red. Utiliza todos los protocolos estándar e incluso algunos que no admiten otras herramientas de monitorización de redes, entre los que se incluyen DNS, X, NFS, NetBioS y AppleTalk. Además, ntop tiene una función digna de mención que convierte los exploradores Web en consolas en las que se pueden ver y controlar las estadísticas de la red. ntop se encuentra en https://wvww-serra.unipi..it/-ntop/.
Tcpdump Imprime las cabeceras de los paquetes de una interfaz de red que coincida con una expresión booleana suministrada por el usuario. tcpdump es útil para diagnosticar los problemas de la red y examinar minuciosamente los ataques a la red. Puede configurarse hasta el más mínimo detalle: se pueden especificar los hosts, los servicios y el tipo de tráfico que se van a monitorizar. Al igual que sniffit, tcpdump permite que la red, el host, el puerto y el protocolo lleven a cabo capturas de paquetes. tcpdump es compatible con ARP, Ethernet, IP, RARP, TCP y UDP. Algunas distribuciones recientes de Linux traen tcpdump instalado. Si no lo tiene, puede conseguirlo en http//sunsite.auc.dk/li-nux/RPM/tcpdump.html.
tráffic-vis Monitoriza el tráfico TCP/IP y convierte esta información en gráficos en ASCII, HTML o Postscript. traffic-vis también permite analizar el tráfico entre hosts para determinar qué hosts han comunicado y el volumen de su intercambio (tenga en cuenta que necesita libpcap. traffic-vis puede obtenerse en https://www.ilogic.com.au/~dmiller/traffic-vis. html.
Ttysnoop Es una herramienta que permite monitorizar las conexiones serie y telnet. ttysnoop se utiliza para fisgonear en el tty, actual de otro usuario. Linux incluye este paquete. Para obtener más información, consulte la página man correspondiente.
SNIFFERS PARA AUDITORÍA
El uso en auditorÍa de una Sniffer es básicamente como paso de información aunque existen múltiples herramientas mucho más complejas, los Sniffers son un buen comienzo para controlar el tipo de conexiones que se realizan en el sistema. Teniendo en cuenta que ésta es la forma básica que utilizan la mayoría de herramientas de seguridad, existen dos tipos de estas herramientas de Host y de red, los Sniffer de host se caracterizan por monitorear todo el tráfico que pasa por el computador donde están instalados. Mientras que los de Red se instalan en el punto de acceso de la red y verifican todo el trafico que pasa dentro y hacia fuera de la red.
Como ya dijimos, la salida de un Sniffer se puede redirigir para que lleve un registro del tráfico en un archivo en el disco duro o en cualquier otro medio para posterior análisis. Por ser la base de las herramientas de detección de intrusos (IDS) un conocimiento de estos sistemas le brindara una perspectiva de lo que pueden y no pueden hacer este tipo de herramientas.
Cuando se instale un Sniffer deberá llevar control de la información por medios automáticos ya que por el volumen que estar manejando es humanamente imposible su análisis es recomendable usar una herramienta como una base de datos y un sistema de reportes construido en PERL. Esto en esencia es lo que es un IDS.
Sin embargo si se inicia en el uso de esta herramienta se le hará un tanto complicado el uso de todos estos adicionales para una introducción rápida en el uso de esta herramienta es recomendable comenzar por una herramienta simple y bastante poderosa como es HUNT esta herramienta ofrece una interfaz de texto bastante cómoda e intuitiva que permite seguir lo que esta ejecutándose en un omento dado en el sistema. Esta herramienta en particular permite dos tipos de instalación compilando el código fuente o desde binarios que se ejecutan directamente en la maquina.
DEFENSA CONTRA SNIFFERS
Los ataques de sniffers son difíciles de detectar y combatir, ya que son programas pasivos. No generan rastros (registros) y, cuando se utilizan correctamente, no utilizan muchos recursos de disco y de memoria. .
La respuesta es ir directamente al origen. Por consiguiente, la sabiduría convencional indica que para detectar un sniffer, hay que averiguar si alguna de las interfaces de la red se encuentra en modo promiscuo, para lo que pueden utilizarse estas herramientas:
. ifconfig.
. ifstatus
ifconfig
Con ifconfig es posible detectar rápidamente cualquier interfaz del host local que se encuentre en modo promiscuo. lfconfig es una herramienta para configurar los parámetros de las interfaces de las redes. Para ejecutarlo, escriba el comando ifconfg en un indicativo:
$ifconfig
ifconfig informará del estado de todas las interfaces. Por ejemplo, al iniciar Sniffit y ejecutar ifconfig, éste es el informe que aparece:
lo
Link encap:Local Loopback
inet addr:127.0.0,1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
Rx packets:40 errors:0 dropped:0 overruns:0
TX packets:40 errors:0 dropped:0 overruns:0
Link encap:Ethernet Hwaddr 00:E0:29:19:4A:68
inet addr:172.16.0.2 Bcast:172.16.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:22 errors:0 dropped:0 overruns:0 TX packets:23 errors:0 dropped:0 overruns:0 Interrupt:3 Base address:0x300
Aquí se ve como ifconfig ha detectado la interfaz Ethernet en modo promiscuo: "RUNNING PROMISC MULTICAST"
ifconfig es magnífico para un apuro y es una utilidad nativa de Linux 6.2 NEPED: Network Promiscuous Ethernet Detector
Esta es otra herramienta muy útil para detectar sniffers latentes. NEPED puede detectar actividad de sniffers en una subred. Se puede bajar de:
https://metalab.unc.edu/pub/Linux/distributions/trinux/src/netmap/NEPED.c.
NEPED rastrea subredes en busca de interfaces en modo promiscuo. En los kernels de Linux anteriores ala 2.0.36, NEPED descubre estas interfaces explotando un error en la implementación arp de linux (en arp.c, que se encuentra en el motor LXR en https://lxr.Íinux.no/source/net/ipv4/arp.c). NEPED envía una solicitud a arp y provoca una respuesta de la estación de trabajo afectada.
Desgraciadamente, NEPED tiene sus limitaciones. En primer lugar, en los kernels posteriores, se actualizó la implementación arp de Linux, con lo que las estaciones de trabajo afectadas dejarán de responder a las errantes solicitudes de arp. Además, el investigador independiente Seth M. McGann ha señalado que es posible configurar el sistema para ignorar solicitudes de arp y, en este estado, ignorada un rastreo de NEPED. Sin embargo, dejando aparte estos detalles, NEPED sigue siendo una herramienta muy útil.6.3. Otros métodos para detectar sniffers▪ DNS test:
En el segmento de la máquina a testear, creamos falsas conexiones TCP contra hosts inexistentes. Un sniffer activo mandará peticiones a la DNS para resolver el nombre del host. Interceptando estas peticiones sabremos si existe o no un sniffer activo en nuestra red.▪ ETHERPING TEST:
Se basa en las imperfecciones del Kernel de algunos sistemas (algunos Linux, NetBSD, NT). Mandamos a la máquina a testear un "ping echo" con destino IP correcto y dirección MAC falsa. Si la máquina responde, es que su interfaz está en modo promiscuo y hay un sniffer activo.▪ ARP TEST:
También aprovecha vulnerabilidades del Kernel de algunos Sistemas Operativos. Mandamos por la red una petición de "arp" con la IP de la máquina a testear. La petición es correcta pero se envía a una dirección MAC inexistente. Si obtengo respuesta, es que la máquina a testear está en modo promiscuo.▪ TEST ICMP Ping de Latencia
Mido el tiempo de respuesta al ping (RTT) de la máquina a testear. Creo numerosas falsas conexiones TCP en el segmento de la máquina. Si la máquina está en modo promiscuo tiene que procesar estas peticiones.Hay que "blindar" el PC ante ataques sniffer
PROTECCIÓN AVANZADA CONTRA SNIFFERS
Mientras que puedes configurar tu LAN para hacer que los sniffers tengan mayores dificultades para entrar, estás más bien indefenso a la hora de evitar que cualquiera en Internet vea información importante. La mejor defensa en este caso es encriptar los datos, de esta forma, aunque los intercepten, no podrán entender a priori lo que dicen los paquetes. Algunas técnicas son:
SSL
"Secure Sockets Layer", SSL está disponible ampliamente en bastantes servidores y navegadores Web. Permite navegación Web encriptada, y casi siempre se usa en e-commerce cuando los usuarios introducen datos sobre tarjetas de crédito. Esta página Web muy buena nos habla sobre Apache SSL https://www.modssl.org/
PGP y S/MIME
El E-mail puede ser interceptado de muchas formas. Pasa a través de firewalls, que puede que monitoricen el tráfico. A menudo queda registrado y almacenado por períodos de tiempo largos. Puede quedar mal encaminado y acabar en el buzón de otra persona. La mejor manera de mantener estos e-mails seguros es encriptándolos. Las dos maneras más comunes de hacer esto es con PGP (Pretty Good Privacy) y S/MIME (Secure MIME).
SSH
"Secure Shell", ssh se ha convertido en el standard para entrar en máquinas UNIX desde Internet. Deberíamos reemplazar el inseguro telnet por este servicio. Otros numerosos protocolos pueden usarse empleando ssh por debajo (por ejemplo, copia de ficheros. Este producto fue desarrollado por una compañía Finlandesa, https://www.ssh.fi/ , pero existen muchas implementaciones freeware disponibles.
Las soluciones de encriptado de datos arriba descritas también proporcionan métodos de autenticación de usuarios. Existen además otras alternativas, como las siguientes.
◦ SMB/CIFS
◦ Kerberos v5
◦ Tarjetas inteligentes ("smart cards")
◦ Stanford SRP (Secure Remote Password)
Como resumen a estas menciones criptográficas, decir que si encuentra algún sniffer en una red, tiene un serio problema, ira que si está allí significará que la red ya está en peligro. Pero no es necesario que espere hasta que ello ocurra para combatir los ataques de los sniffers. De hecho, es posible tomar una medida preventiva muy eficaz desde el principio, cuando establezca la red: emplear el cifrado.
Las sesiones cifradas reducen considerablemente el riesgo. En lugar de preocuparse por los datos que se están atacando, es mejor desordenarlos para que no se puedan reconocer. Las ventajas de este método son obvias: aun cuando un atacante espié datos, no podrá utilizarlos. Sin embargo, este método también tiene desventajas. .8. APLICACIÓN PRÁCTICA :SNIFFERS EN EL FBI :
¿ESTAMOS SIENDO ESPIADOS?
Mucha gente no sabe que el mismísimo FBI americano utilizaba, y probablemente siga utilizando, aunque no lo reconozca públicamente, un sniffer llamado "Carnivore". ¿Es esto legal? En teoría, sí. Para buscar información sobre esta artículo pensamos primero ir a la página web del FBI: www.fbi.gov . Pero la verdad es que allí casi no se hablaba nada de este sniffer. Entonces empezamos a buscar en páginas hacker underground, donde se hablaba más de cómo crackear programas y poner sniffers que de otra cosa. Al final lo encontramos en una página de noticias informáticas llamada Canal Sofware: www.canalsw.com
Carnivore es un software diseñado por el FBI que se instala en los ISPs (Internet Service Provider`s) para interceptar en tiempo real los contenidos de las comunicaciones individuales. Pero como vimos anteriormente, en realidad, este sistema uno sólo: el Sistema Global UE-FBI para la Vigilancia de las Telecomunicaciones. Lo cierto es que para todos y para la prensa son dos sistemas diferentes. Veamos que se dice de Carnivore en particular o de la parte del sistema UE-FBI que depende del FBI norteamericano.
De acuerdo a un informe especial realizado por Canal Software que aparece en la página cuya dirección mencionamos antes, Carnivore es un sistema de software y hardware que tiene capacidad tecnológica para localizar y perseguir las comunicaciones de un usuario en Internet. De cualquiera. Sin que él o ella tengan conocimiento de ello. Ya sea en sus visitas por páginas de la Web, ya sea en sus participaciones en grupos de discusión, en foros o, sobre todo, ya sea en los mensajes de correo electrónico que envía o recibe. Carnivore, ya rebautizado oficialmente como DCS1000, fue creado para no tener límites de capacidad.
El sistema es, creando un paralelismo básico, como una caja negra (tipo plug and play); un baúl que recoge toda la información deseable. El FBI lo instala en los Proveedores de Acceso a Internet (ISP), directamente en los servidores que todos los usuarios de Internet en el mundo utilizamos para lograr la conexión a la Web. A través de ellos pasa toda la información que nosotros enviamos a Internet: las visitas a determinadas páginas, los correos electrónicos, sean del software que sean, nuestras frases en foros de discusión, la plática en chats privados o públicos. Cada palabra que escribimos o ejecutamos, siempre es recogida por el ISP que nos proporciona acceso a la Red. Además de software, el FBI incluye el hardware compuesto por un PC ensamblado en una caja modelo rack para que pueda incorporarse fácilmente en las redes de los ISP, como si fuera un concentrador o un router más, y no tiene necesidad de
dispositivos externos como un mouse o un teclado.
El FBI, de esta manera, se asegura poseer toda la información que desee.
El Carnivore es un sniffer, un rastreador, uno de esos programas que están disponibles en la Red desde hace bastante tiempo y que tienen como misión vigilar y analizar el tráfico que se produce en Internet y que ayudan a los administradores en su tarea, por ejemplo, de evitar aglomeraciones tales como cuellos de botella. Sin embargo, su uso resulta desviado en algunas ocasiones y llegan a ser, los sniffers, espías de las comunicaciones.
Cierto que existe software de codificación (el cual impide que sean leídos ciertos mensajes) bastante extendidos, pero aún así, Carnivore permite al FBI registrar direcciones e identificar redes de comunicación. Va más allá. Los supera.
Técnicamente, puede llegar a controlar todo el tráfico que circula por cualquiera de los protocolos utilizados en Internet.
Poco más se sabe de Carnivore, o DCS1000. Y ello no ayuda en la polémica creada. No se sabe cómo funciona, cómo restringe, como no investiga ni almacena la información de otros usuarios que no necesita para su investigación. Por ejemplo, en el medio de la polémica que este sistema ha creado, casi todos los grupos políticos y sociales han pedido que se dé luz pública a su modo completo de actuación y, sobre todo, a su código fuente: para examinar a fondo si viola la intimidad o no. El FBI se ha negado a publicar el código fuente: cualquiera podría utilizarlo para fines no lícitos ni legales, afirma, y permitiría a los criminales estudiar y crear fórmulas para evitar la captura de sus comunicaciones.
Funcionamiento del sniffer "Carnivore" usado por el FBI
APLICACIÓN PRÁCTICA - PRUEBAS REALES
Una vez que hemos aprendido los fundamentos teóricos de los sniffers, hemos pensado que era necesario realizar una serie de pruebas reales, para ver el funcionamiento "en directo" de algunos sniffers. Creemos que es muy necesario el realizar dichas pruebas, porque hemos aprendido los conceptos básicos para poder luego ampliar la información sobre sniffers.
Antes de realizar las pruebas, nos hemos bajado de Internet las librerías necesarias para que funcionen dichos programas. Como en Windows sólo era necesaria una librería (WinPcap), hemos optado por realizar las pruebas bajo este sistema operativo, ya que en Linux Red Hat la configuración de dichas librerías era mucho más complicada y nos superaba.
Los programas utilizados fueron el Ethereal para Windows versión 0.9.3. y el Win Analyzer y WinDump (versión basada en el TCPDump, "padre" de todos los sniffers) En las pruebas realizadas en casa, teníamos el Sistema Operativo Windows XP, mientras que en los laboratorios de ordenadores de la Facultad, estaba instalado el Windows NT.
Todos los programas utilizados para estas pruebas, y las librerías necesarias para Windows, hemos decidido incluirlos en un CD que acompaña al trabajo. Las direcciones Web donde nos hemos bajado los programas para las pruebas son las siguientes:
LIBRERÍAS WINPCAP https://winpcap.polito.it/install/ETHEREAL SNIFFER https://www.ethereal.com/WIN ANALYZER SNIFFER https://analyzer.polito.it/install/default.htmESQUEMA DE LAS PRUEBAS
◦ Prueba 0 - Captura en el Laboratorio de Libre Acceso
◦ Prueba 1 - ISP Begin Captura de paquetes enviados por un MODEM al inicio
de una conexión a Internet
◦ Prueba 2 - HTTP E-MAIL Captura del login y password de una cuenta de
correo privada de Yahoo
◦ Prueba 3 - FTP Captura del login y password de una sesión de FTP
◦ Prueba 4 - TELNET Captura del login y password de una sesión de Telnet
Prueba 0 - Captura en el Laboratorio de Libre Acceso
Para realizar esta prueba nos fuimos al Laboratorio de Libre Acceso de la Facultad y nos bajamos de Internet las librerías WinPCap, para poder capturar paquetes, y los programas Win Analyzer y WinDump. Los instalamos y configuramos. Capturamos algunos paquetes que estaban en la Red del Laboratorio, sin especificar ningún ordenador en particular, con lo que teníamos mucha información, que llevaría mucho tiempo analizar.De ahí nos dimos cuenta de la importancia de filtrar los paquetes que queremos capturar, seleccionado el protocolo a captuar e incluso el ordenador objetivo. Hay que acotar lo máximo posible la captura, para no tener demasiada información no relevante. Todos esos paquetes los fuimos logeando en archivos de texto, que al final destruimos, ya que esto era solo una prueba inicial de manejo de sniffers.
Prueba 1 - ISP Begin
Esta prueba consistia en capturar todos los paquetes que envia un MODEM a la hora de iniciar una conexión a internet. La realizamos desde casa de uno de los componentes del grupo, que tenían un módem a 56 K.
Los paquetes que se capturan son los que se mandan (y se reciben) del ISP. En estos paquetes solo se puede ver en texto plano la dirección que te asigna el ISP y la del nodo a la que te conectas.
La información relativa al nombre de usuario y clave no son reconocibles, por lo que suponemos que se encriptarán de alguna manera. El analizador de protocolos que utilizamos fue el Ethereal (para Windows) versión
Prueba 2 - HTTP E-MAIL
La segunda prueba consistia en averiguar los paquetes que se enviaban en el momento de mirar nuestra dirección de correo. Esta prueba también fue realizada desde casa, y con nuestra propia cuenta de correo, porque así ya sabemos nuestro login y password y podemos compararlos con los capturados mediante el sniffer.
El proveedor de servicios de correo elegido fue Yahoo (www.yahoo.es). Los resultados fueron los siguientes:
• A pesar de que no utilizan una conexión segura para el envio de información, los datos de nombre de usuario y clave van encriptados. Por ejemplo, para el nombre de usuario que nosotros le pusimos: "omp_soy" se envia la siguiente información: "B8j3j9p0uf1nl0".
• El mecanismo de encriptación lo consiguen mediante la implementación de un algoritmo en JavaScript. Un método posible sería que Yahoo encriptase nuestro password junto con la clave pública de Yahoo y mezclase ambos de alguna forma mediante un algoritmo, para luego enviarlo al servidor de Yahoo. No sabemos qué mecanismo utiliza Yahoo exactamente, pero el anterior sería bastante seguro, a nuestro juicio.
• A la hora de ver el correo tampoco utilizan una conexión segura, por lo que suponemos que utilizan el mismo método que para enviar el nombre de usuario y clave. De igual manera que antes se que se pueden ver todos los datos encriptados.
- Hay una opción en Yahoo Mail que permite utilizar una conexión segura, mediante HTTPS, con lo que los datos se envían cifrados. Esta opción la recomendamos a todos, porque es una forma de protegerse contra los sniffers.
Prueba 3 - FTP
En esta prueba lo que pretendíamos era ver como se enviaban los datos por medio de una conexión por FTP.
En un principio se ven todos los paquetes necesarios para iniciar la conexión y a la hora de enviar los datos de usuario se mandan sin encriptar. Son reconocibles sin ningun tipo de complicación, tanto el nombre de usuario como la clave.
Otra cosa que aprendimos con esta prueba es que el nombre de usuario y clave siempre se mandan en los 300 primeros bytes. Esto es importante, ya que los sniffers se pueden configurar para que capturen un determinado volumen de datos, por lo que si solo nos interesa los datos del usuario (nombre y clave) ahorramos tiempo en la captura.
Esto ocurre en todas las conexiones. Esta prueba la realizamos en el Laboratorio
Prueba 4 - TELNET
Realizamos la misma prueba que la anterior en el Laboratorio del piso 3 en clases de Prácticas de la Asignatura SSI, pero esta vez con una conexión por TELNET.
Los resultados obtenidos son iguales que en la anterior de FTP, es decir, se ve sin ningun tipo de impedimento el nombre de usuario y clave.
CONCLUSIÓN Y VALORACIÓN DE LAS PRUEBAS.
Una vez realizadas las pruebas prácticas, nos hemos dado cuenta de la gran vulnerabilidad que presentan sistemas como telnet, e incluso ftp o http; ya que envían los logins y passwords sin cifrar, en texto claro, a través de la Red. Si un hacker o atacante en general, colocase un sniffer en el lugar adecuado, lo cual no es tan complicado, como se ve a lo largo de todo este trabajo, la seguridad se pone en peligro.
Si tuviésemos que implementar sistemas seguros, como alternativa es mejor utilizar el cifrado siempre que sea posible, ya que, aunque el password sea interceptado, el atacante no lo entenderá a primera vista, y nuestra seguridad será mucho mayor.
Tenemos que tener cuidado con la información importante que mandamos a través de Internet, porque existen programas que se infiltran y espían nuestras comunicaciones.