|
| 1 | +--- |
| 2 | +title: "Sniffer" |
| 3 | +date: 2023-10-26 |
| 4 | +draft: false |
| 5 | +--- |
| 6 | + |
| 7 | +### **Sniffer (Analizador de Protocolo)** |
| 8 | + |
| 9 | +Un **sniffer** es un programa que monitoriza la información que circula por una red con el objetivo de capturar y analizar paquetes de datos. La funcionalidad de un sniffer, también conocido como analizador de protocolo o analizador de paquetes, permite inspeccionar el tráfico de red para diagnosticar problemas, monitorear la seguridad o realizar análisis forense. |
| 10 | + |
| 11 | +--- |
| 12 | + |
| 13 | +#### **Funcionamiento y modo promiscuo** |
| 14 | + |
| 15 | +Un sniffer opera colocando la interfaz de red de un dispositivo en **modo promiscuo**. En este modo, la tarjeta de red (NIC) captura todos los paquetes que pasan por el medio de red, incluso aquellos que no están dirigidos a la dirección MAC del propio dispositivo. Una vez capturados, los paquetes pueden ser almacenados en un archivo o mostrados en tiempo real para su análisis. |
| 16 | + |
| 17 | +Sus usos principales incluyen: |
| 18 | +* **Diagnóstico de red**: Identificar cuellos de botella, errores de comunicación o problemas de configuración. |
| 19 | +* **Monitoreo de seguridad**: Detectar actividades sospechosas, como intentos de intrusión o tráfico malicioso. |
| 20 | +* **Análisis forense**: Investigar un incidente de seguridad analizando los datos capturados. |
| 21 | + |
| 22 | +--- |
| 23 | + |
| 24 | +#### **Herramientas y librerías clave** |
| 25 | + |
| 26 | +* **Libpcap**: Es una librería de bajo nivel, no un programa para el usuario final. `Libpcap` es la biblioteca fundamental que permite a las aplicaciones capturar paquetes de red de manera portátil en sistemas basados en Unix. En Windows, su equivalente es `WinPcap`. Herramientas como Wireshark y TCPdump se construyen sobre `libpcap`. |
| 27 | +* **Ejemplo de código en Rust**: El proyecto de código abierto `secureot-agent` es un ejemplo de un sniffer de red desarrollado en Rust. Este proyecto muestra cómo se utilizan librerías de bajo nivel para crear herramientas de monitoreo personalizadas en entornos de tecnología operativa. |
| 28 | + * **Enlace**: https://github.com/secureot/secureot-agent |
| 29 | +* **Wireshark**: La herramienta más popular y poderosa para el análisis de red. Es una aplicación con una interfaz gráfica (GUI) que permite capturar tráfico y mostrarlo de forma detallada, con decodificación de protocolos a múltiples niveles. |
| 30 | +* **TShark**: La versión de línea de comandos de Wireshark. Es ideal para automatizar la captura de paquetes o para usarlo en servidores donde no hay una interfaz gráfica disponible. |
| 31 | +* **TCPdump**: Un analizador de red clásico de línea de comandos. Es muy ligero y flexible, lo que lo hace ideal para capturas rápidas y el filtrado en tiempo real en sistemas Unix/Linux. |
| 32 | + |
| 33 | +#### **Ejemplos de uso de herramientas** |
| 34 | + |
| 35 | +**Capturar todo el tráfico en una interfaz (eth0):** |
| 36 | +`tcpdump -i eth0` |
| 37 | + |
| 38 | +**Capturar y guardar en un archivo para analizar con Wireshark:** |
| 39 | +`tcpdump -i eth0 -w captura.pcap` |
| 40 | + |
| 41 | +**Capturar solo el tráfico de un host específico (192.168.1.1):** |
| 42 | +`tshark -i eth0 -f "host 192.168.1.1"` |
| 43 | + |
| 44 | +--- |
| 45 | + |
| 46 | +#### **Diagrama de funcionamiento del sniffer** |
| 47 | + |
| 48 | +Este diagrama de Mermaid ilustra cómo una interfaz de red en modo promiscuo captura todo el tráfico, incluyendo los paquetes que no van dirigidos a ella. |
| 49 | + |
| 50 | +```mermaid |
| 51 | +graph TD |
| 52 | + A(Paquete 1: IP a PC1) --> B{Sniffer}; |
| 53 | + C(Paquete 2: IP a PC2) --> B; |
| 54 | + D(Paquete 3: IP a PC3) --> B; |
| 55 | + B -- modo promiscuo --> F(Captura todo el tráfico); |
| 56 | + B -- modo normal --> E(Captura solo el tráfico a PC1); |
0 commit comments