Este documento proporciona un método para bloquear el gusano "Código rojo" en los puntos de ingreso a la red a través del Reconocimiento de aplicaciones basadas en red (NBAR) y Listas de control de acceso (ACL) dentro del software Cisco IOS® en los routers Cisco. Esta solución debería usarse junto con los parches recomendados para los servidores IIS de Microsoft.
Nota: Este método no funciona en los Cisco 1600 Series Routers.
Nota: Parte del tráfico P2P no se puede bloquear completamente debido a la naturaleza de su protocolo P2P. Estos protocolos P2P cambian dinámicamente sus firmas para evitar cualquier motor DPI que intente bloquear completamente su tráfico. Por lo tanto, se recomienda limitar el ancho de banda en lugar de bloquearlos completamente. Acelere el ancho de banda para este tráfico. Proporcione mucho menos ancho de banda; sin embargo, deje pasar la conexión.
Cisco recomienda que tenga conocimiento sobre estos temas:
Políticas de servicio de calidad de servicio (QoS) mediante los comandos de la interfaz de línea de comandos de QoS modular (CLI).
NBAR
Listas de control de acceso (ACL)
Ruteo basado en políticas
Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware. La configuración en este documento se probó en el Cisco 3640 que ejecuta la versión 12.2(24a) del IOS de Cisco
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Lo primero que debe hacer para combatir "Código rojo" es aplicar el parche disponible de Microsoft (ver los enlaces en la sección Método A: Utilice una ACL a continuación). Esto protege los sistemas vulnerables y elimina el gusano de un sistema infectado. Sin embargo, la aplicación del parche a sus servidores sólo evita que el gusano infecte los servidores, no detiene las solicitudes GET HTTP de los servidores. Todavía existe la posibilidad de que el servidor sea bombardeado con una avalancha de intentos de infección.
La solución detallada en esta advertencia está diseñada para funcionar junto con el parche de Microsoft para bloquear las solicitudes GET HTTP "Código rojo" en un punto de ingreso a la red.
Esta solución intenta bloquear la infección, sin embargo no solucionará los problemas causados por la acumulación de un gran número de entradas de caché, adyacencias y entradas NAT/PAT, ya que la única manera de analizar el contenido de la solicitud GET HTTP es después del establecimiento de una conexión TCP. El siguiente procedimiento no ayudará a proteger contra un escaneo de la red. Sin embargo, protegerá un sitio de la infestación de una red externa o reducirá el número de intentos de infección que debe realizar una máquina. En combinación con el filtrado entrante, el filtrado saliente evita que los clientes infectados propaguen el gusano "Código rojo" a la Internet global.
La solución descrita en este documento requiere la función de marcado basada en clase dentro del software Cisco IOS. Específicamente, la capacidad para coincidir en cualquier parte de una URL HTTP utiliza la característica de clasificación de subpuerto HTTP en NBAR. A continuación, se resumen las plataformas admitidas y los requisitos mínimos de software de Cisco IOS:
Platform | Mínimo de Cisco IOS Software |
---|---|
7200 | 12.1(5)T |
7100 | 12.1(5)T |
3745 | 12.2(8)T |
3725 | 12.2(8)T |
3660 | 12.1(5)T |
3640 | 12.1(5)T |
3620 | 12.1(5)T |
2600 | 12.1(5)T |
1700 | 12.2(2)T |
Nota: Debe activar Cisco Express Forwarding (CEF) para utilizar NBAR.
La marcación basada en clases y la NBAR distribuida (DNBAR) también están disponibles en las siguientes plataformas:
Platform | Mínimo de Cisco IOS Software |
---|---|
7500 | 12.1(6)E |
FlexWAN | 12.1(6)E |
El intento de infección inicial envía una solicitud GET HTTP grande al servidor IIS de destino. A continuación se muestra la huella original de "Código rojo":
2001-08-04 16:32:23 10.101.17.216 - 10.1.1.75 80 GET /default.ida NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNN%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u 7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a 403
A continuación se muestra la huella "Código rojo" II:
2001-08-04 15:57:35 10.7.35.92 - 10.1.1.75 80 GET /default.ida XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%u9090 %u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090% u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a 403 -
Observe que la solicitud GET siempre busca un archivo con una extensión .ida. Esta es una cadena común en todos los intentos de infección y, por lo tanto, se puede utilizar como criterio de coincidencia con el marcado basado en clase en IOS. El resto de la solicitud GET no será necesariamente coherente, ya que simplemente intenta crear un desbordamiento de búfer. Esto se puede ver comparando las dos entradas anteriores.
Ahora se informa que la diferencia entre estas dos firmas se debe a una nueva cepa del gusano "Código rojo", apodado CodeRed.v3 o CodeRed.C. La cepa "Código rojo" original contiene la cadena "NNNNNN" en la solicitud GET, mientras que la nueva cepa contiene "XXXXXXXX". Consulte Symantec Advisory para obtener más detalles.
A las 6:24PM EDT, 6 de agosto de 2001, registramos una nueva huella. Hemos aprendido desde entonces que esta es la huella que deja el escáner de vulnerabilidad eEye .
2001-08-06 22:24:02 10.30.203.202 - 10.1.1.9 80 GET /x.ida AAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=X 403 HTTP/1.1 -
La técnica para bloquear "Código rojo" proporcionada en esta advertencia también puede bloquear estos intentos de escaneo simplemente ajustando la definición de mapa de clase como se muestra en la siguiente sección.
Para bloquear el gusano "Código rojo", utilice uno de los tres métodos descritos a continuación. Los tres métodos clasifican el tráfico malintencionado mediante la función Cisco IOS MQC. Este tráfico se descarta como se describe a continuación.
Este método utiliza una ACL en la interfaz de salida para descartar los paquetes marcados con "Código rojo". Utilice el siguiente diagrama de red para ilustrar los pasos de este método:
Estos son los pasos para configurar este método:
Clasifique los piratas informáticos "Código rojo" entrantes con la función de marcación basada en clases del software Cisco IOS, como se muestra a continuación:
Router(config)#class-map match-any http-hacks Router(config-cmap)#match protocol http url "*default.ida*" Router(config-cmap)#match protocol http url "*cmd.exe*" Router(config-cmap)#match protocol http url "*root.exe*"
El mapa de clase anterior busca dentro de las URL HTTP y coincide con cualquiera de las cadenas especificadas. Observe que hemos incluido otros nombres de archivo además del default.ida de "Código rojo". Puede utilizar esta técnica para bloquear intentos de hackeo similares, como el virus Sadhead, que se explica en los siguientes documentos:
Cree una política y utilice el comando set para marcar los hacks "Código rojo" entrantes con un policy map. Este documento utiliza un valor DSCP de 1 (en decimal), ya que es poco probable que otro tráfico de red lleve este valor.
Aquí se marcan los hacks "Código rojo" entrantes con un mapa de políticas denominado "mark-inbound-http-hacks".
Router(config)#policy-map mark-inbound-http-hacks Router(config-pmap)#class http-hacks Router(config-pmap-c)#set ip dscp 1
Aplique la política como política de entrada en la interfaz de entrada para marcar los paquetes "Código rojo" que llegan.
Router(config)#interface serial 0/0 Router(config-if)#service-policy input mark-inbound-http-hacks
Configure una ACL que coincida con el valor DSCP de 1, según lo establecido por la política de servicio.
Router(config)#access-list 105 deny ip any any dscp 1 Router(config)#access-list 105 permit ip any any
Nota: Cisco IOS Software Releases 12.2(11) y 12.2(11)T introducen soporte para la palabra clave log en la ACL al definir en mapas de clase para su uso con NBAR (CSCdv48172). Si está utilizando una versión anterior, no utilice la palabra clave log en la ACL. Esto obliga a que todos los paquetes sean conmutados por proceso en lugar de conmutados por CEF, y NBAR no funcionará ya que requiere CEF.
Aplique la ACL saliente en la interfaz de salida que se conecta a los servidores Web de destino.
Router(config)#interface ethernet 0/1 Router(config-if)#ip access-group 105 out
Compruebe que la solución funciona como se espera. Ejecute el comando show access-list y asegúrese de que el valor "coincide" de la sentencia deny aumente.
Router#show access-list 105 Extended IP access list 105 deny ip any any dscp 1 log (2406 matches) permit ip any any (731764 matches)
En el paso de configuración, también puede inhabilitar el envío de mensajes IP inalcanzables con el comando no ip unreachable interface-level para evitar que el router gaste recursos excesivos.
Este método no se recomienda si puede rutear el tráfico DSCP=1 a Null 0, como se describe en la sección Método B.
Este método utiliza el ruteo basado en políticas para bloquear los paquetes marcados con "Código rojo". No es necesario aplicar los comandos de este método si los métodos A o C ya están configurados.
Estos son los pasos para implementar este método:
Clasifique el tráfico y márquelo. Utilice los comandos class-map y policy-map que se muestran en el método A.
Utilice el comando service-policy para aplicar la política como política de entrada en la interfaz de entrada para marcar los paquetes "Code Red" que llegan. Véase el método A.
Cree una ACL IP extendida que coincida con los paquetes marcados como "Código rojo".
Router(config)#access-list 106 permit ip any any dscp 1
Utilice el comando route-map para generar una política de ruteo.
Router(config)#route-map null_policy_route 10 Router(config-route-map)#match ip address 106 Router(config-route-map)#set interface Null0
Aplique el route-map a la interfaz de entrada.
Router(config)#interface serial 0/0 Router(config-if)#ip policy route-map null_policy_route
Verifique que su solución funcione según lo esperado con el comando show access-list. Si está utilizando ACL de salida y ha habilitado el registro de ACL, también puede utilizar los comandos show log, como se muestra a continuación:
Router#show access-list 106 Extended IP access list 106 permit ip any any dscp 1 (1506 matches) Router#show log Aug 4 13:25:20: %SEC-6-IPACCESSLOGP: list 105 denied tcp A.B.C.D.(0) -> 10.1.1.75(0), 6 packets Aug 4 13:26:32: %SEC-6-IPACCESSLOGP: list 105 denied tcp A.B.C.D.(0) -> 10.1.1.75(0), 6 packets
Podemos tomar la decisión de descartar en la interfaz de ingreso del router, en lugar de necesitar una ACL de salida en cada interfaz de salida. Una vez más, recomendamos inhabilitar el envío de mensajes IP inalcanzables con el comando no ip unreachables.
Este método es generalmente el más escalable ya que no depende de PBR ni de ACL de salida.
Clasifique el tráfico usando los comandos class-map mostrados en el método A.
Cree una política usando el comando policy-map y utilice el comando police para especificar una acción de descarte para este tráfico.
Router(config)#policy-map drop-inbound-http-hacks Router(config-pmap)#class http-hacks Router(config-pmap-c)#police 1000000 31250 31250 conform-action drop exceed-action drop violate-action drop
Utilice el comando service-policy para aplicar la política como política de entrada en la interfaz de entrada para descartar los paquetes "Code Red".
Router(config)#interface serial 0/0 Router(config-if)#service-policy input drop-inbound-http-hacks
Verifique que su solución funcione según lo esperado con el comando show policy-map interface. Asegúrese de ver los valores incrementados para la clase y los criterios de coincidencia individuales.
Router#show policy-map interface serial 0/0 Serial0/0 Service-policy input: drop-inbound-http-hacks Class-map: http-hacks (match-any) 5 packets, 300 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: protocol http url "*default.ida*" 5 packets, 300 bytes 5 minute rate 0 bps Match: protocol http url "*cmd.exe*" 0 packets, 0 bytes 5 minute rate 0 bps Match: protocol http url "*root.exe*" 0 packets, 0 bytes 5 minute rate 0 bps police: 1000000 bps, 31250 limit, 31250 extended limit conformed 5 packets, 300 bytes; action: drop exceeded 0 packets, 0 bytes; action: drop violated 0 packets, 0 bytes; action: drop conformed 0 bps, exceed 0 bps, violate 0 bps Class-map: class-default (match-any) 5 packets, 300 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: any
Al utilizar NBAR con los métodos de este documento, tenga en cuenta que NBAR no admite las siguientes funciones:
Más de 24 coincidencias simultáneas de URL, HOST o tipo MIME
Coincidiendo más allá de los primeros 400 bytes en una URL
Tráfico que no es de IP
Modos de conmutación de multidifusión y otros modos de conmutación que no sean CEF
Paquetes fragmentados
Solicitudes HTTP persistentes canalizadas
URL/HOST/MIME/ clasificación con HTTP seguro
Flujos asimétricos con protocolos stateful
Paquetes que se originan o se dirigen al router que ejecuta NBAR
No puede configurar NBAR en las siguientes interfaces lógicas:
Fast EtherChannel
Interfaces que utilizan tunelización o encripción
VLAN
Interfaces del marcador
PPP de links múltiples
Nota: NBAR se puede configurar en las VLAN a partir de la versión 12.1(13)E del IOS de Cisco, pero sólo se admite en la trayectoria de conmutación del software.
Dado que NBAR no se puede utilizar para clasificar el tráfico de salida en un link WAN donde se utiliza tunelización o cifrado, aplíquelo en su lugar a otras interfaces del router, como la interfaz LAN, para realizar la clasificación de entrada antes de que el tráfico se conmute al link WAN para la salida.
Para obtener más información sobre NBAR, vea los enlaces de la información relacionada
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
08-Sep-2014 |
Versión inicial |