martes, 28 de junio de 2011

VULNERABILIDAD SNMP

El objetivo es atacar las vulnerabilidades que presenta el protocolo SNMP en su versión 1 y 2 a través de una inyección de código malicioso para acceder directamente al router o al terminal de un administrador cuando el mismo intenta loguearse en el.


lunes, 27 de junio de 2011

TIPOS DE MENSAJE


GetRequest

A través de este mensaje el NMS solicita al agente retornar el valor de un objeto de interés mediante su nombre. En respuesta el agente envía una respuesta indicando el éxito o fracaso de la petición. 

GetNextRequest

Este mensaje es usado para recorrer una tabla de objetos. Una vez que se ha usado un mensaje GetRequest para recoger el valor de un objeto, puede ser utilizado el mensaje GetNextRequest para repetir la operación con el siguiente objeto de la tabla.

SetRequest

Este tipo de mensaje es utilizado por el NMS para solicitar a un agente modificar valores de objetos. Para realizar esta operación el NMS envía al agente una lista de nombres de objetos con sus correspondientes valores.

GetResponse

Este mensaje es usado por el agente para responder un mensaje GetRequest, GetNextRequest, o SetRequest.

GetBulkRequest

Este mensaje es usado por un NMS que utiliza la versión 2 ó 3 del protocolo SNMP típicamente cuando es requerida una larga transmisión de datos, tal como la recuperación de largas tablas. 

InformRequest

Un NMS que utiliza la versión 2 ó 3 del protocolo SNMP transmite un mensaje de este tipo a otro NMS con las mismas características, para notificar información sobre objetos administrados.

Trap

Se refiere a los mensajes no solicitados enviados por los agentes al administrador SNMP si ocurre algún evento inesperado. El formato de la PDU es diferente:


Tipo
Enterprise
Dirección del agente
Tipo genérico de trap
Tipo específico de trap
Timestamp
Enlazado de variables
 
 
  • Enterprise: Identificación del sub-sistema de gestión que ha emitido el trap.
  • Dirección del agente: Dirección IP del agente que ha emitido el trap.
  • Tipo genérico de trap: 
 
Cold start (0): Indica que el agente ha sido inicializado o reinicializado.

Warm start (1): Indica que la configuración del agente ha cambiado.

Link down (2): Indica que una interfaz de comunicación se encuentra fuera de servicio (inactiva).

Link up (3): Indica que una interfaz de comunicación se encuentra en servicio (activa).

Authentication failure (4): Indica que el agente ha recibido un requerimiento de un NMS no autorizado (normalmente controlado por una comunidad).

EGP neighbor loss (5): Indica que en sistemas en que los routers están utilizando el protocolo EGP, un equipo colindante se encuentra fuera de servicio.

Enterprise (6): En esta categoría se encuentran todos los nuevos traps incluidos por los vendedores.

  • Tipo específico de trap: Es usado para traps privados (de fabricantes), así como para precisar la información de un determinado trap genérico.
  • Timestamp: Indica el tiempo que ha transcurrido entre la reinicialización del agente y la generación del trap.
  • Enlazado de variables: Se utiliza para proporcionar información adicional sobre la causa del mensaje.

MENSAJES SNMP

En los mensajes SNMP podemos diferenciar claramente tres campos:


Versión
Comunidad
SNMP PDU


  • Versión: Número de versión de protocolo que se está utilizando (por ejemplo 1 para SNMPv1).

  • Comunidad: Nombre o palabra clave que se usa para la autenticación. Generalmente existe una comunidad de lectura llamada "public" y una comunidad de escritura llamada "private".

  • SNMP PDU: Contenido de la unidad de datos del protocolo, el que depende de la operación que se ejecute.

Los mensajes GetRequest, GetNextRequest, SetRequest y GetResponse utilizan la siguiente estructura en el campo SNMP PDU:


Tipo
Identificador
Estado de error
Índice de error
Enlazado de variables  


  • Identificador: Es un número utilizado por el NMS y el agente para enviar solicitudes y respuesta diferentes en forma simultánea.

  •  Estado e índice de error: Sólo se usan en los mensajes GetResponse´(en las consultas siempre se utiliza cero). El campo "índice de error" sólo se usa cuando "estado de error" es distinto de 0 y posee el objetivo de proporcionar información adicional sobre la causa del problema. El campo "estado de error" puede tener los siguientes valores:
0: No hay error.
1: Demasiado grande.
2: No existe esa variable.
3: Valor incorrecto.
4: El valor es de solo lectura.
5: Error genérico.

  • Enlazado de variables: Es una serie de nombres de variables con sus valores correspondientes (codificados en ASN.1).

BASE DE INFORMACION DE ADMINISTRACION SNMP (MIB)

Una Base de Información de Administración (MIB) es una colección de información que está organizada jerárquicamente. Las MIB’s son accedidas usando un protocolo de administración de red, como por ejemplo, SNMP.


Un objeto administrado es uno de cualquier número de características específicas de un dispositivo administrado. Los objetos administrados están compuestos de una o más instancias de objeto, que son esencialmente variables.


Existen dos tipos de objetos administrados: Escalares y tabulares. Los objetos escalares definen una simple instancia de objeto. Los objetos tabulares definen múltiples instancias de objeto relacionadas que están agrupadas conjuntamente en tablas MIB.


Un ejemplo de un objeto administrado es atInput, que es un objeto escalar que contiene una simple instancia de objeto, el valor entero que indica el número total de paquetes AppleTalk de entrada sobre una interfaz de un router.


Un identificador de objeto (object ID) únicamente identifica un objeto administrado en la jerarquía MIB. La jerarquía MIB puede ser representada como un árbol con una raíz anónima y los niveles, que son asignados por diferentes organizaciones.





Los vendedores pueden definir ramas privadas que incluyen los objetos administrados para sus propios productos. Las MIB’s que no han sido estandarizadas típicamente están localizadas en la rama experimental.


El objeto administrado atInput podría ser identificado por el nombre de objeto   
iso.identified-organization.dod.internet.private.enterprise.cisco.temporary.AppleTalk.atInput o por el descriptor de objeto equivalente 1.3.6.1.4.1.9.3.3.1.


El corazón del árbol MIB se encuentra compuesto de varios grupos de objetos, los cuales en su conjunto son llamados mib-2. Los grupos son los siguientes:


  • System (1).
  • Interfaces (2).
  • AT (3).
  • IP (4).
  • ICMP (5).
  • TCP (6).
  • UDP (7.
  • EGP (8).
  • Transmission (10).
  • SNMP (11).


FUNCIONAMIENTO SNMP Y COMANDOS BASICOS

Una red administrada a través de SNMP consiste de tres componentes claves:
  • Dispositivos administrados.
  • Agentes.
  • Sistemas administradores de red (NMS’s).

Un dispositivo administrado es un nodo de red que contiene un agente SNMP y reside en una red administrada. Estos recogen y almacenan información de administración, la cual es puesta a disposición de los NMS’s usando SNMP. Los dispositivos administrados, a veces llamados elementos de red, pueden ser routers, servidores de acceso, switches, bridges, hubs, computadores o impresoras.

Un agente es un módulo de software de administración de red que reside en un dispositivo administrado. Un agente posee un conocimiento local de información de administración (memoria libre, número de paquetes IP recibidos, rutas, etcétera), la cual es traducida a un formato compatible con SNMP y organizada en jerarquías.

Un NMS ejecuta aplicaciones que supervisan y controlan a los dispositivos administrados. Los NMS’s proporcionan el volumen de recursos de procesamiento y memoria requeridos para la administración de la red. Uno o más NMS’s deben existir en cualquier red administrada.




Comandos básicos

Los dispositivos administrados son supervisados y controlados usando cuatro comandos SNMP básicos: lectura, escritura, notificación y operaciones transversales.


El comando de lectura es usado por un NMS para supervisar elementos de red. El NMS examina diferentes variables que son mantenidas por los dispositivos administrados.

El comando de escritura es usado por un NMS para controlar elementos de red. El NMS cambia los valores de las variables almacenadas dentro de los dispositivos administrados.

El comando de notificación es usado por los dispositivos administrados para reportar eventos en forma asíncrona a un NMS. Cuando cierto tipo de evento ocurre, un dispositivo administrado envía una notificación al NMS.

Las operaciones transversales son usadas por el NMS para determinar qué variables soporta un dispositivo administrado y para recoger secuencialmente información en tablas de variables, como por ejemplo, una tabla de rutas.

domingo, 26 de junio de 2011

VERSIONES DE SNMP

Las versiones de SNMP más utilizadas son SNMP versión 1 (SNMPv1) y SNMP versión 2 (SNMPv2).
SNMP en su última versión (SNMPv3) posee cambios significativos con relación a sus predecesores, sobre todo en aspectos de seguridad, sin embargo no ha sido mayoritariamente aceptado en la industria.


SNMP v1
  • Fue diseñado a mediados de los 80.
  • Lograr una solución temporal hasta la llegada de protocolos de gestión de red con mejores diseños y más completos.
  • Se basa en el intercambio de información de red a través de mensajes (PDU’s).
  • No era perfecto, además no estaba pensado para poder gestionar la inmensa cantidad de redes que cada día iban apareciendo.


SNMP v2
  • Definida en 1993 y revisado en 1995
  • Añade mecanismos de seguridad.
  • Mayor detalle en la definición de las variables.
  • Se añaden estructuras de la tabla de datos para facilitar el manejo de los datos.
  • No fue más que un parche, es más hubo innovaciones como los mecanismos de seguridad que se quedaron en pura teoría, no se llegaron a implementar.


SNMP v3
  • Desarrollado en 1998.
  • A esta versión se le agregan los mecanismos de seguridad que no se llegaron a implementar en la versión anterior, los cuales son:
  
- Integridad del Mensaje: asegura que el paquete no haya sido violado durante la transmisión. 
- Autenticación: determina que el mensaje proviene de una fuente válida. 
- Encriptación: encripta el contenido de un paquete como forma de prevención.
 

PROTOCOLO SIMPLE DE ADMINISTRACION DE RED

El Protocolo Simple de Administración de Red o SNMP es un protocolo de la capa de aplicación que facilita el intercambio de información de administración entre dispositivos de red. Es parte de la familia de protocolos TCP/IP. SNMP permite a los administradores supervisar el funcionamiento de la red, buscar y resolver sus problemas, y planear su crecimiento.

En base a este protocolo se han generado herramientas de gestión de red que nos permiten monitorear la red, también nos permite verificar posibles fallas a nivel del funcionamiento de la red.

 

PRTG Network Monitor - PAESSLER   

(the network monitoring company)

 

Monitorización de ancho de banda y uso de red

El programa opera 24 horas, 7 días a la semana en una máquina basada en Windows, monitorizando parámetros de uso de red. Los datos de monitorización son guardados en una base de datos para poder generar reportes históricos.
Todos los métodos de captación de datos de uso de red vienen integrados:
  • SNMP y WMI
  • Esnifing de paquetes
  • NetFlow, jFlow y sFlow  


Monitorización de disponibilidad y rendimiento                 

PRTG Network Monitor incluye más de 100 tipos de sensores, de cada tipo de servicio de red común (p.e. PING, HTTP, SMTP, POP3, FTP, etc.), permitiendo monitorizar velocidad y fallos de su sistema de red. Tan pronto un fallo haya sido detectada el software le alerta enviando correos electrónicos, SMS, mensajes de radiolocalizador y otros métodos de notificación.
 

  
 

Puertos 161 y 162

SNMP se apoya en UDP para el transporte de la información (capa 4 de OSI) a través de los puertos 161 (servicio) y 162 (traps).

El puerto 161 actúa como servicio de red, escuchando peticiones de clientes que deseen obtener información sobre el dispositivo. Es decir que el cliente puede verificar el estado del dispositivo o verificar que procesos está efectuando dicho cliente.

El puerto 162 es usado para las notificaciones en caso de que ocurra cualquier evento inesperado se enviara un mensaje al administrador de la red para que lo tenga en cuenta y se efectúe las medidas necesarias respecto al caso.