



(13 opiniones)
La primera de estas fallas señala que las diferentes líneas de acceso al sistema requieren un password. Los siguientes comandos especifican un password para cada unas de las líneas (consola y auxiliar):
JuanK (config)# line console 0
JuanK (config-line)# password 0okmnji9
JuanK (config-line)# exit
JuanK (config)# line aux 0
JuanK (config-line)# password 9ijnbhu8
JuanK (config-line)# exit
La siguiente falla hace referencia al establecimiento de restricciones sobre los paquetes que puedan especificar rutas específicas de envio, controladas por opciones de enrutamiento contenidas en los datgramas, las cuales pueden ser utilizadas en diferentes clases de ataques, tales como “spoofing”. La siguiente instrucción hace que este servicio no este disponible:
JuanK (config)# no ip source-route
El protocolo CDP[1] utilizado por Cisco Routers para identificar otros dispositivos enrutadores dentro de la misma red. Este protocolo permite que dispositivos puedan determinar la clase de enrutador que se tiene, asi mismo como la versión de IOS, pudiendo ser esta información utilizada en diseño de ataques de denegación del servicio (Denial Of Service) y debería estar no disponible dentro de los servicios del enrutador [3]. La siguiente instrucción, logra establecer esta condición:
JuanK (config)# no cdp run
Dentro de las siguientes fallas se reporta, para cada unas de los enlaces de acceso (vty, console y aux), que no tienen un control de tiempo para sesiones de usuarios; es decir, se trata de prevenir que usuarios no autorizados ingresen a través de sesiones abandonadas. La ejecución del comando exec-tiemout 5 en cada una de las conexiones hace que tras 5 minutos de abandono por parte del usuario, la comunicación sea interrumpida
JuanK (config)# line vty 0 4
JuanK (config-line)# exec-timeout 5
JuanK (config-line)# exit
JuanK (config)# line console 0
JuanK (config-line)# exec-timeout 5
JuanK (config-line)# exit
JuanK (config)# line aux 0
JuanK (config-line)# exec-timeout 5
JuanK (config-line)# exit
Al mostrarse la configuración del enrutador por pantalla, los passwords de acceso son mostrados en texto plano; para evitar esto, la ejecución del comando service password-encryption hace que los passwords mostrados por pantalla no sean vistos y aprendidos por personas no autorizadas.
JuanK (config)# service password-encryption
De igual forma, otro problema que puede presentarse, sucede cuando se establecen conexiones al enrutador, donde después de establecida la conexión, el usuario remoto corta su sesión inesperadamente, pero mantiene la conexión en línea. Esto podría ocasionar que usuarios malintencionados se adueñen de la conexión. La ejecución del comando service tcp-keepalives-in, hace que las sesiones que no responden se corten inmediatamente.
JuanK (config)# service tcp-keepalives-in
Es importante resaltar que los enrutadores Cisco en su configuración por defecto permiten ser usados como servidores Proxy de direcciones de red (MAC), actuando como intermediarios en el manejo de ARP (Address Resolution Protocol) entre diferentes segmentos LAN. Con la ejecución de no ip proxy-arp, se establece que esta función no sea asumida por el enrutador para cada unas de las interfaces [8]. La ejecución es la siguiente
JuanK (config)# interface serial 0
JuanK (config-if)# no ip proxy-arp
JuanK (config-if)# exit
JuanK (config)# interface serial 1
JuanK (config-if)# no ip proxy-arp
JuanK (config-if)# exit
JuanK (config)# interface ethernet 0
JuanK (config-if)# no ip proxy-arp
JuanK (config-if)# exit
JuanK (config)# interface ethernet 1
JuanK (config-if)# no ip proxy-arp
JuanK (config-if)# exit
La configuración inicial del enrutador incluía la aceptación de cualquier protocolo para la comunicación remota al enrutador a través del enlace vty 0 4. Con el comando transport input se quiere seleccionar solo los protocolos admitidos por cada unos de los enlaces. Para el caso del enrutador Cisco Router Series 2500 se opto por telnet como protocolo, pero se advierte que este protocolo envía los mensajes por texto plano. Se puede seleccionar otros protocolos como ssh pero la versión de enrutador que trabajamos no lo reconoce. La instrucción es
JuanK (config)# line vty 0 4
JuanK (config-line)# transport input telnet
JuanK (config-line)# exit
Para la actual arquitectura, el puerto aux no se encuentra en uso, siendo una potencial ruta de acceso para ataques, por lo tanto se considera importante no activarla y bloquear cualquier tipo de protocolo de acceso. Hay que advertir que ante cualquier contingencia es útil tener el puerto abierto para comunicaciones vía MODEM, esto siendo una decisión de configuración. La siguiente instrucción, deshabilita protocolos de comunicación:
JuanK (config)# line aux 0
JuanK (config-line)# no exec
JuanK (config-line)# transport input none
JuanK (config-line)# exit
Al finalizar las instrucciones de hardening, se salvó la configuración, ejecutando la siguiente línea de comando:
JuanK # write memory
Realizada la configuración anterior, la herramienta RAT es de nuevo ejecutada sobre el enrutador, obteniéndose el siguiente resultado:

Figura 4 – Resultado final RAT
En la nueva salida de RAT, reporta un fallo de seguridad con respecto a la autenticación de logins de acceso. Esto debido a que debería implantarse un servidor de logins, por medio del protocolo tacacs+[2] [8] y hacer la autenticación y centralización de nombres. La ejecución del siguiente comando verifica este requerimiento:
JuanK(config)# line vty 0 4
JuanK(config-line)# login authentication default
JuanK(config-line)# exit
Con la actual configuración, se realizó otra prueba de scanner con otro analizador llamado Nessus [12], el cual reportó fallos de bajo riesgo. Estos fallos se resumen a continuación:
Se encuentra habilitado Service Finger, quien hace parte de la familia de pequeños servicios disponibles por IOS y puede liberar información de usuarios a posibles atacantes [3]. Aunque no constituye alto riesgo, se pueden deshabilitar si no se están utilizando, con la siguiente ejecución:
JuanK (config)# no service finger
Siendo el servicio Finger un integrante de los pequeños servicios de UTP / TCP, deshabilitando estos servicios se inhabilita el servicio Finger. Esto se consigue con la ejecución de:
JuanK (config)# no service tcp-small-servers
JuanK (config)# no service udp-small-servers
Dentro del concepto de “endurecimiento” (hardening) se incluye el aseguramiento de logs generados por IOS donde existen varias estrategias para el manejo de los mismos [3], en estas se incluyen, guardar los logs generados en un sector de memoria del enrutador, y establecer una conexión con otro dispositivo donde se quieran enviar, para su posterior análisis en incidentes deseguridad.
Para la primera opción se asigna un sector de memoria, lo que se consigue con la ejecución de logging buffered, al cual se le da el tamaño de la memoria de asignación, verificando previamente la capacidad de la memoria actual. La instrucción se muestra a continuación:
JuanK (config)# logging buffered 16000
Para el segundo caso, se envían los logs generados a un dispositivo que alberga un administrador de logs; en este caso Syslogd [13] en sistemas Linux y WSyslogD en sistemas WinNT. Se ejecuta el comando logging indicando la dirección IP del dispositivo al que se pretende enviar los logs, como se indica:
JuanK (config)# logging 192.168.10.26
JuanK (config)# logging 192.168.10.28
JuanK (config)# logging trap 7
el dispositivo con dirección IP 192.168.10.26 tiene a Syslogd como administrador de logs, mientras que el dispositivo con dirección 192.168.10.28 tiene instalado WSyslogD [7]. Los logs se pueden ver en su visor, como se muestra
a continuación:

Figura 5 – Visor de logs en WSyslogD
La ejecución logging trap 7 establece la clase de logs que se quieren registrar, en este caso 7 (debugging).
La salida del comando show logging muestra por consola los logs generados por IOS, como se muestra:
JuanK# show logging
Syslog logging: enabled (0 messages dropped, 0 flushes, 0 overruns)
Console logging: level debugging, 21 messages logged
Monitor logging: level debugging, 0 messages logged
Trap logging: level informational, 25 message lines logged
Logging to 192.168.10.26, 25 message lines logged
.
.
.
Oct 6 09:31:08.515 UTC: %SYS-5-CONFIG_I: Configured from console by console
Oct 6 09:33:53.439 UTC: %SYS-5-CONFIG_I: Configured from console by console
JuanK#
La estructura de los logs generados está compuesta por 3 partes: la fecha y hora cuando el mensaje fue generado, nombre del mensaje y nivel de severidad (ver Tabla 1) y por último el testo del mensaje. El último mensaje mostrado, se genero en Octubre 6 a las 9:33.53 a.m., el nivel de severidad es 5 que corresponde notifications y por último muestra el texto, notificando que ha habido una actualización de la configuración por medio de consola [8].
Tabla 1 – Niveles de severidad en Cisco logs
|
Nivel |
Nombre de Nivel |
Descripción |
|
0 |
Emergencias |
Enrutador no funciona |
|
1 |
Alerta |
Acción necesaria Inmediata |
|
2 |
Critico |
Condición crítica |
|
3 |
Errores |
Condición de error |
|
4 |
Advertencias |
Condición de advertencia |
|
5 |
Notificaciones |
Eventos normales |
|
6 |
Informacional |
Mensaje de información |
|
7 |
Debugging |
Mensaje de debugging |
Por último, el establecimiento de usuarios autorizados para sesiones remotas de acceso (telnet), se establece por medio de la creación de modelos de acceso [3]. Estos permiten establecer una conexión para un usuario, por medio de la autenticación de login y password. La siguiente instrucción, establece un modelo [8] en el que se requiere el nombre de usuario (login) y password correspondiente, y luego verifica acceso a IOS y la configuración del enrutador, por medio del parámetro enable., como se muestra:
JuanK (config)# aaa new-model
JuanK (config)# aaa authentication login default local
JuanK (config)# aaa authentication enable default enable
A continuación se crean usuarios autorizados para acceso remoto:
JuanK (config)# username camilo password 8uhbvgy7
Lo anterior señala la creación del usuario camilo con el password 8uhbvgy7.
La configuración final del enrutador se presenta a continuación:
Using 1265 out of 32762 bytes
!
! Last configuration change at 15:19:32 UTC Sat Oct 4 2003
! NVRAM config last updated at 15:19:40 UTC Sat Oct 4 2003
!
version 10.3
no service finger
service tcp-keepalives-in
service timestamps log datetime msec show-timezone
service password-encryption
no service udp-small-servers
no service tcp-small-servers
|