Uno de los protocolos menos mencionados es el SNMP. Sin embargo, es uno de los más valiosos para la gestión de los dispositivos conectados a la red. Desafortunadamente, los delincuentes cibernéticos también pueden aprovechar este protocolo para llevar a cabo ataques. A continuación, te explicamos qué es el SNMP Reconnaisance y cómo mantener tu red a salvo de personas con intenciones sospechosas.
¿Qué es y para qué sirve el protocolo SNMP?
Las siglas en inglés corresponden a Simple Network Management Protocol y en español significa Protocolo de Gestión de Redes Simple. Es uno de los protocolos más antiguos, específicamente desde 1988. Inicialmente, este protocolo permitía gestionar switches y routers, pero en la actualidad se puede utilizar para prácticamente cualquier dispositivo conectado a una red. Permite tanto la monitorización como los ajustes de configuración de forma remota.
Se trata de un protocolo orientado a datagramas. Cada dispositivo gestionado tiene un agente que se comunica con el dispositivo central encargado de su gestión. Este agente envía información al dispositivo central, la cual se almacena en una base de datos llamada MIB (Management Information Base). La MIB organiza jerárquicamente la información recopilada de cada dispositivo SNMP conectado a la red.
Qué información proporciona una MIB (Management Information Base)
La MIB es una fuente valiosa de información sobre la red y sus dispositivos. Algunos ejemplos de la información que se puede encontrar son:
- Usuarios: Se puede obtener la cantidad y los nombres de las cuentas de usuario, así como información sobre los grupos de usuarios y la creación de cada cuenta.
- Programas instalados: Mediante SNMP es posible obtener la lista de programas instalados en uno o más ordenadores, incluyendo las versiones instaladas. Esto puede ayudar a determinar si el ordenador tiene versiones vulnerables a ataques.
- Puertos abiertos: Los delincuentes cibernéticos también pueden aprovechar los puertos abiertos para obtener información mediante SNMP, en lugar de realizar un escaneo que los ponga en evidencia ante los administradores de la red.
Versiones disponibles de SNMP
Existen tres versiones de SNMP que aún se utilizan. Cada una se distingue por su implementación y las medidas de seguridad que ofrece. Se destaca el «community string», que es una contraseña utilizada para autenticarse en un dispositivo central mediante un «community string» privado.
- SNMPv1: Es la versión menos segura en términos de medidas de seguridad, ya que utiliza autenticación en texto plano. El «community string» predeterminado es público.
- SNMPv2c: Esta versión tiene pequeñas mejoras en comparación con la versión 1, especialmente en rendimiento y seguridad. Sin embargo, no es compatible con la primera versión y es necesario utilizar específicamente esta versión. SNMPv2c es la versión más utilizada, aunque siempre se recomienda utilizar la v3.
- SNMPv3: Esta versión ofrece mejoras significativas en seguridad y rendimiento. Incorpora revisiones de integridad y cifrado durante la autenticación. Desafortunadamente, aún no está ampliamente implementada en la mayoría de las organizaciones, aunque se recomienda utilizar esta versión.
Niveles de seguridad de SNMPv3
- NoAuthNoPriv: Esto significa que no hay autenticación ni privacidad. No se requiere autenticación y los mensajes no están cifrados. Este nivel es más adecuado para redes cerradas y seguras.
- AuthNoPriv: Significa que hay autenticación pero no privacidad. Aunque los mensajes no están encriptados durante la transmisión, deben ser autenticados para poder actuar sobre ellos. Teóricamente, es posible interceptar los datos enviados entre agentes y administradores durante las transmisiones, aunque estén autorizados. Sin embargo, esto no resulta en solicitudes adicionales de tipo Get o Set.
- AuthPriv: Este es el nivel más seguro de implementación de SNMPv3, ya que combina autenticación y privacidad. En este caso, los mensajes deben ser autenticados y todos los datos se cifran durante la transmisión. De esta manera, un actor malintencionado no puede ver los datos generados por solicitudes legítimas ni enviar sus propias solicitudes de tipo Get o Set.
Tipos de mensajes SNMP
- GetRequest: Es el mensaje que un administrador envía para solicitar datos, y es el más utilizado en la actualidad. El dispositivo final devuelve el valor solicitado en un mensaje de respuesta.
- GetNextRequest: Es un mensaje enviado por el administrador SNMP para descubrir qué información está disponible en el dispositivo.
- GetBulkRequest: Es una versión actualizada de GetNextRequest. En este caso, la respuesta solicitada contendrá tantos datos como lo permita la solicitud.
- SetRequest: Es un comando iniciado por el administrador para establecer o modificar un valor de un parámetro a través de SNMP en el dispositivo o agente del sistema.
- Response: Es la respuesta que un dispositivo o agente envía después de una solicitud del administrador.
- TrapV2: Es un mensaje que el agente SNMP envía como una trampa, sin haberlo solicitado el administrador. Son útiles para realizar una supervisión proactiva.
- InformRequest: Es un mensaje de SNMPv2 que permite al administrador confirmar la recepción de un mensaje enviado por algún agente.
- Report: Estos mensajes requieren SNMPv3 y permiten que el administrador determine qué tipo de problema se detectó en el agente SNMP remoto. Dependiendo del error, el motor del protocolo puede enviar un mensaje corregido. Si no es posible, enviará una indicación del error a la aplicación.
El intercambio de información en el protocolo SNMP puede realizarse de dos maneras: sondeo o trampas. Al administrar una red que opera bajo SNMP, es importante comprender la diferencia entre estos dos métodos.
La comunicación precisa entre un administrador SNMP y sus «agentes» generalmente se lleva a cabo mediante mensajes SNMP trampa, que son asíncronos. Sin embargo, en algunos sistemas, también se pueden utilizar mensajes sondeados.
Como se mencionó anteriormente, SNMP es tradicionalmente asíncrono, lo que significa que sus agentes enviarán mensajes trampa SNMP cada vez que ocurra algo notable en el sistema. Sin embargo, el administrador no solicitará esta información en un horario predecible, lo que significa que si un agente permanece en silencio, no se sabe si está desconectado o no, y no hay forma de saberlo.
Esta limitación se aborda en algunos protocolos y, más recientemente, algunos dispositivos SNMP utilizan el método de sondeo en lugar de enviar mensajes trampa. Cuando se configura el sistema de esta manera, los agentes no envían mensajes trampa cada vez que ocurre algo, sino que esperan una solicitud del administrador en intervalos regulares, conocidos como «bucles de sondeo». Esto implica que el administrador enviará solicitudes a sus agentes cada 30 segundos o cada minuto.
Este método sacrifica algo de inmediatez a cambio de una mayor supervisión. Si un agente está desconectado, no podrá responder al siguiente sondeo, lo que indica que algo está mal.
La diferencia entre el método de sondeo mediante solicitudes periódicas y el envío de mensajes trampa asíncronos radica en dónde comienza el intercambio de información: si es en el administrador o en el agente. Ambos métodos tienen sus ventajas y desventajas, y la elección depende de la red y de cómo opera.
Efecto en el desempeño
El protocolo SNMP puede tener un impacto en el desempeño de la red. Cuando se utiliza, los dispositivos de red envían información sobre su estado y rendimiento a servidores encargados de gestionar la red. Estos servidores pueden ser equipos específicos o aplicaciones de software. Sin embargo, esta tarea genera tráfico adicional en la red, lo que aumenta la carga en el servidor de gestión. Esto afecta el rendimiento de la red y su capacidad para funcionar dentro de la infraestructura.
Es importante destacar que el impacto de SNMP depende en gran medida de la cantidad de dispositivos conectados y del tipo de información solicitada. Estos factores generan una variedad de tráfico que puede tener un impacto significativo en el rendimiento de la red. Por otro lado, si se monitorea un número limitado de dispositivos y se recopila información básica, es probable que no se note ningún impacto en el rendimiento de la red.
Hoy en día, existen diferentes técnicas para minimizar el impacto de SNMP en el rendimiento. Una de ellas es limitar la cantidad de información recopilada de los dispositivos, lo cual reduce la carga en la red y en el servidor de gestión. También es importante asegurarse de utilizar la versión más reciente del protocolo, ya que es probable que sea más eficiente y segura que las versiones anteriores.
En resumen, SNMP sí tiene un impacto en el rendimiento, pero esto depende de varios factores y de cómo esté configurado dentro de la red para manejar los datos recopilados de los dispositivos conectados.
Exploración SNMP
La exploración SNMP es un tipo de ataque y a la vez una fase de un ataque informático. Esta fase de reconocimiento es realizada por cualquier persona que desee atacar una red con el objetivo de obtener mejores resultados posteriormente. Es como una recolección de información valiosa que se utilizará para ejecutar ataques específicos.
Sin embargo, la exploración SNMP también puede considerarse un ataque por sí misma, ya que la recolección de información no está autorizada. No solo se obtiene información sobre los dispositivos conectados a la red, sino también sobre los recursos del sistema de cada dispositivo, los servicios utilizados y las vulnerabilidades existentes.
Los ataques de denegación de servicio distribuido (DDoS, por sus siglas en inglés) suelen beneficiarse de la fase de exploración. Podemos decir que la exploración sirve como puente para una variedad de ataques que se basan en la información recopilada. Por ejemplo, un ataque DDoS puede hacer que un servidor se bloquee después de recibir una gran cantidad de solicitudes, lo cual afecta a un sitio web, por ejemplo.
Si utilizas Kali Linux, puedes aprovechar la herramienta snmp-check para aplicar el protocolo fácilmente a través de la línea de comandos. Con unos pocos comandos, podrás obtener datos como los siguientes de un dispositivo específico conectado:
- Información del sistema (Nombre de dominio, descripción, tiempo de conexión, dirección IP)
- Información de la red (cantidad de paquetes recibidos y enviados, TTL por defecto y otros)
- Datos de IP (Dirección IP, Máscara de Subred y Puerta de Enlace)
- Información sobre cada una de las interfaces de red del dispositivo (por ejemplo, si están activas o inactivas)
- Información del dispositivo (nombre del fabricante, modelo y más)
- Datos de enrutamiento
Nota: esta forma de explotar las vulnerabilidades SNMP se aplica solo a las versiones v1 y v2.
Es posible que puedas acceder a más información que la mencionada anteriormente. Esto varía significativamente según el dispositivo al que te conectes. Sin embargo, es fácil notar que puedes obtener una gran cantidad de información sobre el dispositivo y la red a la que está conectado. Esta herramienta práctica de Kali te permite recrear lo que un ciberdelincuente puede obtener de los dispositivos que son el objetivo de su ataque.
Si deseas evitar ataques derivados del reconocimiento SNMP, lo primero que debes hacer es desactivar el protocolo en cualquier dispositivo que no lo necesite. De esta manera, reducirás el riesgo de ser víctima de ciertos ataques.
Como mencionamos anteriormente, SNMP se desarrolló originalmente para routers y switches. En consecuencia, es recomendable reservar este protocolo para ese tipo de dispositivos, solo si es necesario. Por otro lado, es importante cambiar las cadenas de comunidad predeterminadas, al igual que se cambian las contraseñas difíciles de adivinar, para evitar que un usuario malintencionado utilice las cadenas predefinidas que se utilizan comúnmente en el protocolo SNMP.
Alternativas a SNMP
Si observamos el panorama actual en el mundo de las redes y analizamos las tendencias de las grandes empresas dedicadas a este sector, es posible que incluso deseemos buscar algunas alternativas. Algunas de estas alternativas, como gNMI y NETCONF, continúan ganando popularidad y se espera que sigan haciéndolo. Sin embargo, no son las únicas alternativas disponibles. Existen protocolos y herramientas que pueden complementar o incluso reemplazar a SNMP en ciertos casos.
- API REST y SOAP: Estos son buenos ejemplos de lo que se puede lograr con una API RESTful basada en HTTP. En muchos casos, las aplicaciones y dispositivos de red exponen sus APIs, lo que permite utilizarlas para configuraciones específicas o para el control y monitoreo de redes.
- WMI y CIM: Estas son herramientas muy populares en Windows y una implementación común del modelo de información común (CIM), que se utiliza para monitorear y administrar dispositivos en entornos Windows. Estas herramientas pueden sustituir o complementar a SNMP en ciertos casos.
- IPMI: Se trata de una interfaz de administración con características implementadas por proveedores como Dell IDRAC o HP ILO. Facilita el monitoreo y administración de servidores.
- ICMP: Es el protocolo de mensajes de control en Internet. Permite realizar un monitoreo simple a través del ping y proporciona información sobre el rendimiento de la red.
- Registro del sistema: Aquí encontramos herramientas como Syslog, que se utiliza para categorizar y centralizar la información de registro en la red. Además, puede ayudar en la detección de fallas, notificación de eventos y otras configuraciones de monitoreo.
- SSH/Telnet: En algunos casos, una interfaz de línea de comandos simple sigue siendo una de las mejores formas de administrar una red. Incluso con las API y las interfaces que reemplazan a estos sistemas, siguen siendo básicos y útiles en muchas redes.
En resumen, SNMP o Protocolo Simple de Administración de Red es un protocolo para administrar redes que ha estado con nosotros durante mucho tiempo. A lo largo del tiempo, ha ido evolucionando y mejorando, aunque su uso ha sido el mismo. También hemos visto que puede representar un riesgo de seguridad.