UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERÍA EN SISTEMAS
COMPUTACIONALES Y NETWORKING
DISEÑO DEL PROTOTIPO DE UNA HONEYPOT VIRTUAL QUE PERMITIRA
MEJORAR EL ESQUEMA DE SEGURIDAD EN LAS REDES DE LA CARRERA
DE INGENIERÍA EN SISTEMAS COMPUTACIONALES Y NETWORKING
DE LA UNIVERSIDAD DE GUAYAQUIL
TESIS DE GRADO
Previa a la obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
AUTOR: GUSTAVO DANIEL ESTRELLA QUIJIJE
TUTOR: ING. FRANCISCO PALACIOS O.
GUAYAQUIL – ECUADOR
2011
Guayaquil, Septiembre 2011
APROBACION DEL TUTOR
En mi calidad de Tutor del trabajo de investigación “DISEÑO DEL PROTOTIPO DE
UNA HONEYPOT VIRTUAL QUE PERMITIRA MEJORAR EL ESQUEMA DE
SEGURIDAD EN LAS REDES DE LA CARRERA DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES Y NETWORKING DE LA UNIVERSIDAD
DE GUAYAQUIL” elaborado por el Sr. ESTRELLA QUIJIJE GUSTAVO DANIEL,
egresado de la Carrera de Ingeniería en Sistemas Computacionales y Networking,
Facultad de Ciencias Matemáticas y Físicas de la Universidad de Guayaquil, previo a
la obtención del Título de Ingeniero en Sistemas, me permito declarar que luego de
haber orientado, estudiado y revisado, la apruebo en todas sus partes.
Atentamente
………………………………….
Ing. FRANCISCO PALACIOS O.
TUTOR
DEDICATORIA
Esta Tesis está dedicada a mis padres,
Gustavo y Janeth; quienes con su esfuerzo
y abnegación lograron sembrar en mí el
orgullo de ser una persona de bien, un ser
humano responsable y un profesional de
éxito.
AGRADECIMIENTO
Un cordial agradecimiento a mi tutor,
Ingeniero Francisco Palacios O., quien con
su profesionalismo, conocimientos y
paciencia; hizo posible que culminara con
éxito el desarrollo de mi tesis.
TRIBUNAL DE GRADO
Ing. Frenando Abad Montero Ing. Juan Chanabá Alcócer
DECANO DE LA FACULTAD DIRECTOR
CIENCIAS MATEMATICAS Y FISICAS CISC
TUTOR PROFESOR DEL
Ing. Francisco Palacios O. TRIBUNAL
PROFESOR DEL
TRIBUNAL
SECRETARIO
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERÍA EN SISTEMAS
COMPUTACIONALES Y NETWORKING
DISEÑO DEL PROTOTIPO DE UNA HONEYPOT VIRTUAL QUE PERMITIRA
MEJORAR EL ESQUEMA DE SEGURIDAD EN LAS REDES DE LA
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
Y NETWORKING DE LA UNIVERSIDAD DE GUAYAQUIL
Autor: Gustavo Daniel Estrella Quijije
Tutor: Ing. Francisco Palacios O.
RESUMEN El presente trabajo de Tesis se centrar en la seguridad de una red al momento de
establecer una conexión con la red de redes, INTERNET, para esto y mediante esta
investigación se dará a conocer el uso, las características y ventajas de una tecnología
innovadora llamada Honeypot; la cual en base al análisis posterior, permitiría estar
más al tanto de las tendencias actuales del modo en que operan los intruso y así
aportar como ayuda a mejorar los esquemas de seguridad de la Carrera de Ingeniería
en Sistemas Computacionales y Networking de la Universidad de Guayaquil.
Esta tecnología también es considera como una herramienta de investigación y su
filosofía se explica con una frase “CONOCE A TU ENEMIGO”, ya que al
identificarlo y aprender de él y las técnicas que usa, será posible actuar tomando
medidas que permitan mitigar en cierto modo las vulnerabilidades existentes en
cualquier entorno de red. Por otra parte la tecnología Honeypot posee una
característica en particular, que rompe con todo paradigma establecido en el medio de
la Seguridad de Redes, y es que, al contrario de otros métodos de seguridad cuyo
objetivo es prevenir los ataques la Honeypot plantea la idea de atraer al atacante con
un único fin, aprender de él. Esta técnica ayudara definir y establecer las mejores
prácticas que beneficien a cualquier organización a la hora de optimizar los métodos
de seguridad que emplean para proteger sus redes.
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERÍA EN SISTEMAS
COMPUTACIONALES Y NETWORKING
DISEÑO DEL PROTOTIPO DE UNA HONEYPOT VIRTUAL QUE PERMITIRA
MEJORAR EL ESQUEMA DE SEGURIDAD EN LAS REDES DE LA
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
Y NETWORKING DE LA UNIVERSIDAD DE GUAYAQUIL
Proyecto de trabajo de grado que se presenta como requisito para optar por el título de
INGENIERO EN SISTEMAS COMPUTACIONALES
Autor: Gustavo Daniel Estrella Quijije
C.I.: 0921888533
Tutor: Ing. Francisco Palacios O.
Guayaquil, Septiembre del 2011
CERTIFICADO DE ACEPTACIÓN DEL TUTOR
En mi calidad de Tutor del Segundo Curso de Fin de Carrera, nombrado por el
Departamento de Investigación, Desarrollo Tecnológico y Educación Contínua y la
Dirección de la Carrera de Ingeniería en Sistemas Computacionales y Networking de
la Universidad de Guayaquil,
CERTIFICO:
Que he analizado el Proyecto de Grado presentado por el/la egresado(a)
ESTRELLA QUIJIJE GUSTAVO DANIEL, como requisito previo para optar por el
título de Ingeniero cuyo problema es: DISEÑO DEL PROTOTIPO DE UNA
HONEYPOT VIRTUAL QUE PERMITIRA MEJORAR EL ESQUEMA DE
SEGURIDAD EN LAS REDES DE LA CARRERA DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES Y NETWORKING DE LA UNIVERSIDAD
DE GUAYAQUIL. Considero aprobado el trabajo en su totalidad.
Presentado por:
________________________ _________________________
Apellidos y Nombres completos Cédula de ciudadanía N°
Tutor: ____________________________
Guayaquil, Septiembre del 2011
ÍNDICE GENERAL
CARÁTULA
DEDICATORIA
AGRADECIMIENTO
TRIBUNAL DE GRADO
RESUMEN
PRESENTACIÓN DEL TEMA
CERTIFICADO DEL TUTOR
ÍNDICE GENERAL
INTRODUCCIÓN ....................................................................................................... 1
CAPÍTULO I.- EL PROBLEMA
PLANTEAMIENTO DEL PROBLEMA ......................................................... 3
Ubicación del Problema en un Contexto .............................................. 3
Formulación del Problema ................................................................... 5
Evaluación del Problema ...................................................................... 6
OBJETIVO GENERAL ................................................................................... 8
Objetivos Específicos ........................................................................... 8
ALCANCES DE LA INVESTIGACION ........................................................ 9
JUSTIFICACIÓN E IMPORTANCIA .......................................................... 11
CAPÍTULO II.- MARCO TEÓRICO
ANTECEDENTES DEL ESTUDIO .............................................................. 13
FUNDAMENTACIÓN TEÓRICA ................................................................ 13
Orígenes .............................................................................................. 13
FUNDAMENTOS DE LA SEGURIDAD INFORMÁTICA ........................ 16
Definición de seguridad informática .................................................. 16
La información de las organizaciones ................................................ 19
Seguridad Física ................................................................................. 19
Seguridad Lógica ................................................................................ 20
Importancia de la Seguridad Informática ........................................... 21
SEGURIDAD EN INTERNET ...................................................................... 23
Tipos de ataques ............................................................................................. 24
Ataques basados en diccionarios .................................................................... 26
En base a escuchar el tráfico de la red............................................................ 26
Ataques que explotan los accesos confiables ................................................. 27
Basados en las direcciones IP ......................................................................... 27
Suplantando a una identidad de confianza ..................................................... 28
Predicciones de números secuenciales ........................................................... 28
Secuestrando sesiones .................................................................................... 29
Ataques que explotan debilidades de la tecnología ........................................ 30
Ataques que explotan librerías compartidas ................................................... 30
Los atacantes .................................................................................................. 31
Factores humanos ........................................................................................... 32
Personal o ex-empleados ......................................................................... 32
Hackers, Crackers, Lamers...................................................................... 32
Los Hackers ........................................................................................ 32
Sombrero blanco ................................................................................. 33
Sombrero gris ..................................................................................... 34
Sombrero negro .................................................................................. 34
Otra clasificación de atacantes ........................................................... 35
El software con errores ............................................................................ 40
Factores no humanos ...................................................................................... 40
Herramientas más usadas para los ataques ..................................................... 41
Virus ................................................................................................... 42
Worms o Gusanos ............................................................................... 42
Troyanos ............................................................................................. 43
Bombas Lógicas ................................................................................. 44
Back Doors ......................................................................................... 45
Trap Doors .......................................................................................... 46
Bacterias ............................................................................................. 46
Security Holes .................................................................................... 47
Bugs .................................................................................................... 48
Adware ............................................................................................... 48
Spyware .............................................................................................. 49
Bot ...................................................................................................... 50
Botnets ................................................................................................ 50
Otros métodos usados para el ataque ............................................................. 51
Exploits ............................................................................................... 52
Día Cero (Zero Day) ........................................................................... 52
KeyLogger .......................................................................................... 52
Pharming/Phishing .............................................................................. 53
Spam ................................................................................................... 53
Smurf .................................................................................................. 54
BackOrifice ......................................................................................... 54
Hijacking ............................................................................................ 54
Hoax ................................................................................................... 54
Ingeniería Social ................................................................................. 55
Hacking ............................................................................................... 55
Sniffing/Eavesdrooping ...................................................................... 56
Snooping/Downloading ...................................................................... 56
Tammpering o Data Diddling ............................................................. 57
Jamming/Flooding .............................................................................. 57
Spoofing ............................................................................................. 58
Fingerprinting ..................................................................................... 58
Looping ............................................................................................... 58
Cracking ............................................................................................. 59
Zombie ................................................................................................ 59
Rootkit ................................................................................................ 60
DoS (Denial of Service) ..................................................................... 60
DDoS (Distributed Denial of Service) ............................................... 60
Mecanismos de Seguridad .............................................................................. 61
Cifrado ................................................................................................ 62
Tráfico de relleno ............................................................................... 63
Etiquetas ............................................................................................. 63
Control de enrutamiento ..................................................................... 63
Notarización ....................................................................................... 63
Firma digital ....................................................................................... 63
Integridad de datos ............................................................................. 64
Unicidad ............................................................................................. 64
Gestión de claves ................................................................................ 64
Lista de control de acceso (ACL) ....................................................... 64
Proxy ................................................................................................... 65
Firewall ............................................................................................... 65
Sistema de detección de intrusos (IDS) .............................................. 68
Informática forense ............................................................................. 71
Honeypots ........................................................................................... 71
INTRODUCCIÓN A LA TECNOLOGÍA HONEYPOT .............................. 72
Evolución de los escenarios de ataque ............................................... 72
Definición de Honeypot ..................................................................... 74
Ventajas de las Honeypot ................................................................... 76
Desventajas de las Honeypot .............................................................. 78
Clasificación de las Honeypot ............................................................ 80
Honeypot de producción ................................................................ 80
Honeypot de investigación ............................................................ 81
Honeypot de baja interacción ........................................................ 82
Honeypot de alta interacción ......................................................... 85
Honeypot físicas ............................................................................ 88
Honeypot virtuales ......................................................................... 88
Arquitectura de las Honeypot ............................................................. 89
Delante del Firewall ....................................................................... 90
Detrás del Firewall ......................................................................... 91
En una zona desmilitarizada .......................................................... 92
Aplicaciones prácticas de las Honeypot ............................................. 93
FUNDAMENTACIÓN LEGAL .................................................................... 96
PREGUNTAS A CONTESTARSE ............................................................. 103
VARIABLES DE LA INVESTIGACIÓN ................................................... 105
DEFINICIONES CONCEPTUALES .......................................................... 106
CAPÍTULO III.- METODOLOGÍA
DISEÑO DE LA INVESTIGACIÓN .......................................................... 115
Modalidad de la investigación ...................................................................... 115
POBLACIÓN Y MUESTRA ....................................................................... 116
Población .......................................................................................... 116
Muestra ............................................................................................. 117
INTRUMENTOS DE RECOLECCIÓN DE DATOS ................................. 119
Técnica de recolección de datos ....................................................... 119
Instrumentos de recolección de datos ............................................... 120
PROCEDIMIENTOS DE LA INVESTIGACIÓN ...................................... 122
PROCESAMIENTO Y ANÁLISIS ............................................................. 124
CUANTIFICACIÓN DE LOS RESULTADOS .......................................... 130
CRITERIOS PARA LA ELABORACIÓN DE LA PROPUESTA ............. 136
FASE DE PLANIFICACIÓN ...................................................................... 138
Análisis de los objetivos del Prototipo ............................................. 139
Análisis de componentes .................................................................. 140
Sistemas de detección de intrusos de red (N-IDS) ........................... 141
Sistemas de detección de intrusos de host (H-IDS) .......................... 143
Herramientas de análisis forense ...................................................... 144
FASE DE DISEÑO ...................................................................................... 145
REQUERIMIENTOS Y ESQUEMAS ........................................................ 145
FASE DE IMPLEMENTACIÓN ................................................................. 155
Software de Virtualización VMware ................................................ 155
Instalación y Configuración de VMware Workstation ..................... 160
Instalación de GuestOS en VMware Workstation ............................ 164
Configuración de la Red ................................................................... 172
Diseño del IDS de Red basado en Snort ........................................... 178
Instalación y Configuración del N-IDS ............................................ 179
WinPcap ................................................................................ 179
Snort ...................................................................................... 180
Creación de reglas en Snort .................................................. 187
Instalación y Configuración de MySQL ........................................... 191
A.C.I.D. ............................................................................................ 204
Instalación y configuración de componentes de A.C.I.D. ................ 205
PHP ....................................................................................... 206
Apache .................................................................................. 207
Pruebas de Conexión entre PHP y Apache ........................... 214
Pruebas de Conexión entre PHP y MySQL .......................... 215
Instalación de A.C.I.D. ......................................................... 218
Código fuente de A.C.I.D. .................................................... 221
Diseño del IDS de Host basado en Sebek ........................................ 226
Definición ............................................................................. 226
Funcionamiento de Sebek ..................................................... 227
Arquitectura de Sebek ........................................................... 231
Instalación de Sebek ............................................................. 234
Instalación Cliente Sebek ..................................................... 234
Configuración Cliente Sebek ................................................ 237
Preparando Servidor Linux ................................................... 241
Instalación del Servidor Sebek ............................................. 247
Herramienta de Análisis Forense ...................................................... 250
Definición ............................................................................. 250
Software comercial ............................................................... 251
Instalación y configuración de InstallWatch ........................ 253
Registro de Windows ............................................................ 257
FASE DE COMPROBACIÓN ..................................................................... 260
Prueba de Intrusión ........................................................................... 263
Ataques Remotos .................................................................. 263
Escaneo de Puertos (Portscan) .............................................. 264
Ejemplo de ataque remoto (Nmap) ....................................... 266
Resultados de una Honeypot implementada en la UTPL ................. 274
Descripción ........................................................................... 274
Estadísticas ........................................................................... 275
FASE DE EJECUCIÓN ............................................................................... 279
FASE DE ANÁLISIS ................................................................................... 281
Muestra y Análisis de datos obtenidos ............................................. 281
CAPÍTULO IV.- MARCO ADMINISTRATIVO
PRESUPUESTO .......................................................................................... 287
CRONOGRAMA DE ACTIVIDADES ....................................................... 288
CAPÍTULO V.- CONCLUSIONES Y RECOMENDACIONES
CONCLUSIONES ....................................................................................... 290
RECOMENDACIONES .............................................................................. 294
ANEXOS ................................................................................................................. 299
REFERENCIAS BIBLIOGRÁFICAS ..................................................................... 337
ÍNDICE DE ILUSTRACIONES
Ilustración 1
Secuestro de sesión a través de un paquete Sniffer .................................................... 29
Ilustración 2
Secuestro de sesión por suplantación de identidad .................................................... 30
Ilustración 3
Implementación de un IDS de Host ........................................................................... 69
Ilustración 4
Implementación de un IDS de Red ............................................................................ 70
Ilustración 5
Implementación de Honeypot delante del Firewall ................................................... 90
Ilustración 6
Implementación de Honeypot detrás del Firewall ..................................................... 92
Ilustración 7
Implementación de Honeypot en una zona desmilitarizada ....................................... 93
Ilustración 8
Honeypot: Flujo de datos entre Máquina Virtual Trampa y Snort .......................... 149
Ilustración 9
Honeypot: Almacenamiento de datos capturados por Snort en MySQL ................. 149
Ilustración 10
Honeypot: Uso de ACID para muestra de datos almacenados en MySQL.............. 150
Ilustración 11
Honeypot: Componentes relacionados con ACID ................................................... 150
Ilustración 12
Honeypot: Componentes y flujo de datos del IDS de Red....................................... 151
Ilustración 13
Honeypot: Componentes y flujo de datos del IDS de Host formado por Sebek ...... 152
Ilustración 14
Honeypot: Elementos que formaran la Máquina Virtual Trampa ............................ 153
Ilustración 15
Arquitectura del Prototipo de Honeypot, detrás del Firewall .................................. 154
Ilustración 16
VMware: Pantalla principal y la versión de VMware Workstation ......................... 156
Ilustración 17
VMware: Snapshot Manager de VMware Workstation ........................................... 158
Ilustración 18
VMware: Asistente de instalación de VMware Workstation ................................... 160
Ilustración 19
VMware: Tipo de instalación de VMware Workstation .......................................... 161
Ilustración 20
VMware: Carpeta de destino de los componentes de VMware Workstation. ......... 161
Ilustración 21
VMware: Configuración de atajos de VMware Workstation. .................................. 162
Ilustración 22
VMware: Estado de instalación ............................................................................... 162
Ilustración 23
VMware: Información del registro de VMware Workstation .................................. 163
Ilustración 24
VMware: Finalización del asistente de instalación .................................................. 163
Ilustración 25
VMware: Ventana Principal ..................................................................................... 164
Ilustración 26
VMware: Asistente de instalación de nuevas máquinas virtuales ........................... 165
Ilustración 27
VMware: Ventana de instalación del SO. Huésped (GuestOS) ............................... 165
Ilustración 28
VMware: Selección del GuestOS............................................................................. 166
Ilustración 29
VMware: Nombre de la máquina virtual y ubicación .............................................. 166
Ilustración 30
VMware: Especificar la capacidad del disco ........................................................... 167
Ilustración 31
VMware: Configuraciones de la máquina virtual .................................................... 167
Ilustración 32
VMware: Configuración personalizada de hardware, memoria .............................. 168
Ilustración 33
VMware: Configuración del adaptador de red ......................................................... 170
Ilustración 34
VMware: Características de la máquina virtual con SO Ubuntu ............................. 170
Ilustración 35
VMware: Bootscreen del SO Ubuntu ejecutándose en VMware ............................. 171
Ilustración 36
VMware: SO Ubuntu versión 10.04 LTS Lucid Linx Desktop 32 bits ................... 171
Ilustración 37
VMware: Adaptadores de red virtual creados por VMware .................................... 173
Ilustración 38
VMware: Opción Automatic Bridging..................................................................... 174
Ilustración 39
VMware: Adaptadores de red virtual disponibles .................................................... 174
Ilustración 40
GuestOS XP: Direcciones IP de la máquina virtual Windows XP .......................... 175
Ilustración 41
GuestOS XP: Grupo de trabajo de máquina virtual Windows XP .......................... 176
Ilustración 42
HostOS: Grupo de trabajo de la máquina con Windows 7 ...................................... 176
Ilustración 43
HostOS: Configuración de direcciones IP en Windows 7 ....................................... 177
Ilustración 44
N-IDS: Asistente de Instalación de Snort ................................................................ 181
Ilustración 45
N-IDS: Componentes de Snort ................................................................................ 181
Ilustración 46
N-IDS: Ruta de instalación de Snort ........................................................................ 182
Ilustración 47
MySQL: Asistente de instalación de MySQL .......................................................... 192
Ilustración 48
MySQL: Tipo de instalación MySQL ...................................................................... 192
Ilustración 49
MySQL: Carpetas y Directorios de MySQL ............................................................ 193
Ilustración 50
MySQL: Asistente de configuración de MySQL ..................................................... 193
Ilustración 51
MySQL: Tipo de configuración de MySQL ............................................................ 194
Ilustración 52
MySQL: Instancia de MySQL ................................................................................. 195
Ilustración 53
MySQL: Uso de la base de datos ............................................................................. 195
Ilustración 54
MySQL: Unidad de destino y carpetas de los ficheros de datos .............................. 196
Ilustración 55
MySQL: Número de conexiones concurrentes ........................................................ 196
Ilustración 56
MySQL: Opciones de red......................................................................................... 197
Ilustración 57
MySQL: Juego de caracteres ................................................................................... 197
Ilustración 58
MySQL: Tipo de Arranque de MySQL ................................................................... 198
Ilustración 59
MySQL: Contraseña del administrador de la base de datos .................................... 198
Ilustración 60
MySQL: Ejecuta las configuraciones para MySQL................................................. 199
Ilustración 61
MySQL: Ventana de confirmación de MySQL ....................................................... 199
Ilustración 62
MySQL: Tablas de la base de datos Snort ............................................................... 202
Ilustración 63
MySQL: Contenido de la Tabla Event ..................................................................... 203
Ilustración 64
Apache: Asistente de instalación de APACHE ........................................................ 208
Ilustración 65
Apache: Acuerdo de licencia de APACHE .............................................................. 208
Ilustración 66
Apache: Instrucciones de APACHE ........................................................................ 209
Ilustración 67
Apache: Información del servidor HTTP ................................................................. 209
Ilustración 68
Apache: Tipo de instalación de APACHE ............................................................... 210
Ilustración 69
Apache: Carpeta de destino de archivos de APACHE ............................................. 210
Ilustración 70
Apache: Instalación de APACHE ............................................................................ 211
Ilustración 71
Apache: Finaliza la instalación APACHE ............................................................... 211
Ilustración 72
Apache: Icono del monitor de APACHE ................................................................. 212
Ilustración 73
Apache: Los servicios de APACHE están ejecutándose sin ningún problema ........ 212
Ilustración 74
Apache: Comprueba que Apache y PHP están integrados....................................... 215
Ilustración 75
Apache Conexión entre PHP y MySQL realizada con éxito ................................... 217
Ilustración 76
ACID: Ejecución de ACID ...................................................................................... 220
Ilustración 77
ACID: Ventana de creación de las tablas de ACID ................................................. 221
Ilustración 78
ACID: Ventana que confirma la creación de las tablas de ACID ............................ 223
Ilustración 79
ACID: Página de inicio de ACID ............................................................................ 223
Ilustración 80
ACID: Muestra las alertas lanzadas por Snort ......................................................... 224
Ilustración 81
ACID: Muestra la información sobre un paquete .................................................... 225
Ilustración 82
SEBEK: Arquitectura típica de Sebek ..................................................................... 232
Ilustración 83
SEBEK: Implementación de Sebek para el prototipo de Honeypot ........................ 233
Ilustración 84
SEBEK: Asistente de instalación de Sebek Setup.exe ............................................. 234
Ilustración 85
SEBEK: Acuerdo de licencia de Sebek ................................................................... 235
Ilustración 86
SEBEK: Carpeta de destino de Sebek ...................................................................... 235
Ilustración 87
SEBEK: Instalación de Sebek .................................................................................. 236
Ilustración 88
SEBEK: Fin de la instalación de Sebek ................................................................... 236
Ilustración 89
SEBEK: Asistente de Configuración Sebek ............................................................ 237
Ilustración 90
SEBEK: Asistente de Configuración Sebek ............................................................ 237
Ilustración 91
SEBEK: Variables de Sebek .................................................................................... 238
Ilustración 92
SEBEK: Magic Value Sebek ................................................................................... 239
Ilustración 93
SEBEK: Adaptador de red ....................................................................................... 239
Ilustración 94
SEBEK: Nombre del programa de configuración .................................................... 240
Ilustración 95
SEBEK: Resumen de la configuración .................................................................... 240
Ilustración 96
SEBEK: Actividad en el GuestOS Windows XP ..................................................... 249
Ilustración 97
InstallWatch: Toma de Snapshot ............................................................................. 255
Ilustración 98
InstallWatch: Realizar el Análisis ............................................................................ 255
Ilustración 99
InstallWatch: Resumen de cambios tras el análisis.................................................. 256
Ilustración 100
InstallWatch: Archivos añadidos ............................................................................. 257
Ilustración 101
Prueba Intrusión: Ventana de Nmap ........................................................................ 266
Ilustración 102
Prueba Intrusión: Resultados obtenidos después del escaneo .................................. 267
Ilustración 103
Prueba Intrusión: Alerta que muestra Snort mediante ACID................................... 268
Ilustración 104
Prueba Intrusión: Putty ............................................................................................. 269
Ilustración 105
Prueba Intrusión: Command Window de Putty ....................................................... 270
Ilustración 106
Prueba Intrusión: Sebek en acción ........................................................................... 270
Ilustración 107
Prueba Intrusión: Capturas de Sebek ....................................................................... 271
Ilustración 108
Prueba Intrusión: Transferencia con FileZilla.......................................................... 272
Ilustración 109
Prueba Intrusión: Información mostrada por InstallWatch ...................................... 273
ÍNDICE DE GRÁFICOS
Gráfico 1
Visión General ......................................................................................................... 130
Gráfico 2
Defensa del Perímetro .............................................................................................. 131
Gráfico 3
Autenticación ........................................................................................................... 132
Gráfico 4
Administración y Control ......................................................................................... 133
Gráfico 5
Actualización y Evaluación...................................................................................... 134
Gráfico 6
Actividad generada con los diferentes protocolos ................................................... 276
Gráfico 7
Actividad generada con los diferentes puertos TCP ................................................ 276
Gráfico 8
Actividad generada con los diferentes puertos UDP................................................ 277
Gráfico 9
Trafico sospechoso IP‟s Fuente ............................................................................... 282
Gráfico 10
Incidentes por Puerto/Protocolo ............................................................................... 284
Gráfico 11
Alertas por Protocolo ............................................................................................... 285
ÍNDICE DE CUADROS
Cuadro 1
Formato escala evaluación de preguntas .................................................................. 124
Cuadro 2
Ejemplo evaluación de la pregunta 2, caso No ........................................................ 125
Cuadro 3
Ejemplo evaluación de la pregunta 2, caso Sí .......................................................... 125
Cuadro 4
Formato escala de evaluación de pregunta 16.......................................................... 126
Cuadro 5
Ejemplo evaluación de la pregunta 16, caso No ...................................................... 127
Cuadro 6
Ejemplo evaluación de la pregunta 16, caso Sí y subpreguntas ............................... 128
Cuadro 7
Descuento de puntaje evaluación de pregunta 25 .................................................... 129
Cuadro 8
Claves predefinidas en Windows XP ....................................................................... 259
Cuadro 9
Direcciones IP detectadas y cantidad de paquetes ................................................... 281
Cuadro 10
Incidentes detectados por Puerto y Protocolo .......................................................... 283
Cuadro 11
Porcentaje de Alertas por Protocolo ......................................................................... 285
Cuadro 12
Detalles Presupuesto del Proyecto ........................................................................... 287
Cuadro 13
Cronograma de Actividades ..................................................................................... 288
1
INTRODUCCIÓN
Las redes de datos en general son un medio de comunicación electrónico muy común
en la actualidad y a medida que estas redes, aplicaciones y en particular el internet
van evolucionando, también crecen las posibilidades de vulnerabilidad lo que implica
riesgos de ataques, esto se traduce en el daño y la pérdida que generan dichas
amenazas.
Es una realidad, que en estos últimos años los ataques generados por individuos
cuyos motivos son con fines perjudiciales, han aumentado considerablemente. Este
factor, unido a las vulnerabilidades existentes en todo tipo de sistemas operativos y
aplicaciones, convierte a cualquier organización en una víctima potencial.
Si bien es cierto la seguridad esta finamente ligada a la certeza, es decir, no existe
seguridad absoluta, lo que se intenta hacer es minimizar el impacto y el riesgo
combinando diferentes herramientas existentes en el medio. Por lo tanto y frente a
este panorama, es importante el estudio de nuevas estrategias y técnicas que permitan
generar un cierto grado de protección.
En la actualidad existen herramientas y mecanismos de defensa que son usados en las
redes de computadoras tales como, Firewalls, Sistemas de Detección de Intrusos
(Intrusion Detection System IDS), Lista de Control de Accesos (Acces Control List
ACL). Análisis realizados determinan que el problema con los mecanismos
mencionados anteriormente radica es que, muchas veces no están configurados de
manera correcta y generan una falsa sensación de seguridad.
2
Para lograr tener una red segura conviene tomar en cuenta aspectos del entorno como,
de que se debe proteger y de quien, las vulnerabilidades en el hardware o software y
de los tipos de ataques existentes. Todos estos factores mencionados han sido el
impulso para que expertos en el área de seguridad de redes generen nuevas
propuestas, es así que aparece una tecnología llamada Honeypot que permite conocer
con detalle los ataques y vulnerabilidades que sufren las redes.
En términos comprensibles un Honeypot cuya traducción literal seria “Tarro de
miel”, en el campo de la seguridad de redes, se define como un recurso de la red que
se encuentra voluntariamente vulnerable para que el intruso pueda examinarla y
atacarla, así pues se podrá conocer al atacante y los métodos que usa, analizar lo
ocurrido para finalmente proponer metodologías de prevención o mitigación de las
vulnerabilidades encontradas.
El presente trabajo consiste en diseñar el prototipo de una Honeypot virtual y el
estudio detallado de las características de esta tecnología con el fin de demostrar su
funcionamiento, monitorear y analizar los ataques hechos por intrusos, para aprender
de ellos todo lo necesario y proporcionar una herramienta de investigación para que
los administradores de la red adopten ideas y soluciones que podrían ser aplicadas
como correctivos que reducirían en cierto modo los riesgos de una ataque a las redes
de la Carrera de Ingeniería en Sistemas Computacionales y Networking de la
Universidad de Guayaquil
3
CAPÍTULO I
EL PROBLEMA
PLANTEAMIENTO DEL PROBLEMA
Ubicación Del Problema En Un Contexto
El creciente uso de redes de datos en todas las organizaciones así como la existencia
de las vulnerabilidades en sistemas y aplicaciones, han constituido desde hace mucho
tiempo el factor principal para el uso de métodos que proporcionen seguridad en las
redes. Hay que considerar que en la actualidad el aumento del ancho de banda y el
fácil acceso a la red, ha contribuido a una evolución en las técnicas de ataques,
generando cambios en los escenarios típicos que producen amenazas para cualquier
sistema conectado a una red. La cantidad de intentos de accesos no autorizados a la
información que existe a través de la Internet ha crecido durante estos últimos años,
según el Computer Security Institute, un 70% de las organizaciones anunciaron al
menos un incidente de seguridad durante 2009, frente a un 42% anunciado en 2006.
La mayoría de los expertos piensa que estos números están muy por debajo de la tasa
real, puesto que muchas organizaciones evitan dar a conocer sus incidentes y muchas
otras ni siquiera los detectan. Los intrusos aprovechan esas vulnerabilidades en las
redes para proceder a atacarlas con fines perjudiciales, generando daños costosos para
una organización.
En el entorno de la seguridad de redes existen mecanismos de defensa contra los
ataques e intrusiones, que trabajando en combinación con otras herramientas tratan de
4
reducir el impacto y los riesgos generados por los atacantes; el problema con estos
mecanismos es, que muchas veces no están configurados de manera correcta y
generan una falsa sensación de seguridad.
Todos estos factores son primordiales para proceder a investigar nuevos métodos y
obtener herramientas que disminuyan en gran proporción la vulnerabilidad en las
redes, esto es la motivación para ir en busca y generar estudios de las posibles
soluciones a una problemática creciente. Una de estas soluciones es conocer con
detalle cada uno de los movimientos que el intruso hace para vulnerar una seguridad
ya establecida, de esta manera se puede recolectar información que ayudara a definir
tendencias respecto de las actividades del atacante, activación de sistemas tempranos
de alarma, adoptar nuevas medidas de seguridad; En otras palabras corregir los
puntos vulnerables y fortalecer el conjunto de elementos que comprenden un sistema
de seguridad de redes de datos de una organización
Como es de conocimiento general en la Carrera de Ingeniería en Sistemas
Computacionales y Networking de la Universidad de Guayaquil existen redes de
datos que si bien es cierto poseen las seguridades debidas del caso, pero no están
ajenas de ser vulneradas por cualquier intruso, tomando como punto de partida la
problemática de los factores ya antes mencionados sobre las herramientas existentes y
la evolución en las técnicas de ataque.
5
Es así que, al ser una carrera tecnológica debe estar a la vanguardia de las nuevas
tendencias y de los nuevos métodos en el campo de la seguridad informática
ampliando sus horizontes; la idea que plantea esta investigación no pretende alterar
una estructura de seguridad ya establecida, sino ayudar a concebir soluciones
beneficiosas para optimizar las herramientas existentes y en uso dentro de la carrera,
adaptando esta nueva propuesta a dichas herramientas la cual dará una visión de
cuanto se puede aprender de los atacantes y que correctivos se debe aplicar para
proveer una mejora en los esquemas de seguridades.
Formulación Del Problema
Si existen herramientas en seguridad de redes, y se ha descrito que estas no son
suficientemente confiables necesitando afinar su desempeño acoplando nuevos
métodos para corregir las vulnerabilidades, y que el esquema de seguridad de las
redes de la carrera está haciendo uso de las misma; existiendo la necesidad de
adaptarse a las nuevas técnicas de seguridad debido a la constante evolución de la
tecnología y amenazas.
¿Qué ventajas tiene el uso de la tecnología Honeypot y en qué aportara el estudio de
este nuevo conocimiento como beneficio a una optimización del esquema de
seguridad de las redes de la Carrera de Ingeniería en Sistemas Computacionales y
Networking de la Universidad de Guayaquil?
6
Evaluación Del Problema
Delimitado: Como se explico en el apartado anterior del Planteamiento del problema,
es un hecho que las técnicas de ataque de los intrusos han evolucionado y que
ninguna red se escapa de ser vulnerada, en centros de educación superior como la
Carrera de Ingeniería en Sistemas Computacionales de la Universidad de Guayaquil
se usan redes de datos, las cuales poseen un esquema de seguridad ya establecido y
controlado por su administrador, pero si bien es cierto la seguridad esta finamente
ligada a la certeza, es decir no existe seguridad absoluta, lo que se intenta es
minimizar el impacto y reducir el riesgo.
Claro: Es fácil de reconocer el entorno en el que se encuentra el problema, y más aun
considerando que en la actualidad muchas organizaciones están empleando el uso de
redes datos y por supuesto aplicando las seguridades debidas al caso, dependiendo de
cuán importante sean estas redes, las organizaciones emplearan más recursos en el
área de seguridad de redes. Pero si a estas le agregamos un complemento que permita
analizar los ataques y así determinar que correctivos se puede aplicar como si fuese
una herramienta forense, seguramente se ahorraría mucho en dichos recursos.
Concreto: Esta investigación pretende generar una herramienta de apoyo a los
métodos de seguridad existentes, no para restarles importancia ni para alterar un
estructura de seguridad ya establecida, más bien ayudaría a los administradores a
7
determinar mediante el análisis a las intrusiones que correctivos se puede aplicar o
añadir para mitigar los puntos vulnerables y fortalecer ese conjunto de herramientas
que proporcionan seguridad a las redes.
Original: La idea que plantea este trabajo es novedosa debido a que, dicho de otra
manera en nuestro medio no se ha investigado totalmente un enfoque de cómo sacar
provecho al analizar los ataques de un intruso sin comprometer una red completa y
funcionalmente, claro que esta idea ha estado en el entorno y ha ido mejorando y
desarrollándose con el tiempo, pero no se ha tomado en cuenta el uso y adaptación de
esta herramienta innovadora y poco explotada.
Contextual: Debido a que el entorno en el que se desempeña el Ingeniero en
Sistemas de la Universidad de Guayaquil es más tecnológico y está en constante
cambio en todas las ramas, la seguridad en redes tampoco se queda atrás y es
conveniente que el ingeniero se prepare para los nuevos retos que trae consigo,
adaptándose y estar al vanguardia de la evolución tecnológica en computación, aquí
se destaca el estudio de un método novedoso que podrá ayudar en muchos casos a
conocer que tan amplio es el mundo de las seguridades y que se puede encontrar
métodos de mucha utilidad que ayudaran al desarrollo profesional e intelectual de los
interesados en este campo.
8
Factible: El desarrollo de este trabajo plantea el diseño de un prototipo que dará a
conocer con más claridad en qué consiste y la forma en que funciona una honeypot,
claro que con el tiempo y los recursos que posea la Carrera de Ingeniería en Sistemas
Computacionales y Networking de la Universidad de Guayaquil, podría procederse a
una implementación en un entorno de trabajo real y así se empiece a obtener los
beneficio que trae consigo el uso de una herramienta como la que hace mencionado
esta investigación.
OBJETIVO GENERAL
Diseñar el prototipo de una Honeypot virtual que permita mejorar el esquema de
seguridad en las redes de la Carrera de Ingeniería en Sistemas Computacionales y
Networking de la Universidad de Guayaquil.
Objetivos Específicos.
Explicar con detalle en qué consiste la tecnología Honeypot, tomando en cuentas
sus ventajas, tipos, costo, recursos humanos, recursos físicos y la utilidad para la
Carrera de Ingeniería en Sistemas Computacionales y Networking de la
Universidad de Guayaquil.
Proporcionar una herramienta de aprendizaje e investigación para cualquier curso
de seguridad informática o de investigación que se esté realizando dentro de la
Carrera de Ingeniería en Sistemas Computacionales y Networking de la
Universidad de Guayaquil.
9
Conocer el comportamiento de los intrusos así como sus motivos y las
herramientas que utilizan.
Proveer un recurso de seguridad pro-activa que permita identificar nuevas
tendencias en ataques.
Entrevistar a los administradores de la red, con lo que cual se pretende identificar
el estado actual de los métodos de seguridad de red aplicados en la Carrera de
Ingeniería en Sistemas de la Universidad de Guayaquil.
Demostrar a través del diseño de un prototipo, el funcionamiento de la tecnología
Honeypot tomado como base para el prototipo una Honeypot virtual.
Planificar que herramientas y mecanismos se necesitaran para la implementación
del prototipo de una Honeypot virtual.
Registrar y documentar las técnicas y herramientas usadas en la implementación
del prototipo de la Honeypot.
Analizar y explicar los datos obtenidos por el prototipo de la Honeypot.
ALCANCES DE LA INVESTIGACION
Utilizar la investigación bibliográfica para definir con detalle en qué consiste la
tecnología Honeypot, sus características principales, ventajas y utilidad.
Tomar en consideración estudios realizados sobre la tecnología Honeypot
delimitando su campo de acción y los beneficios que ha traído su uso.
Crear una entrevistas para los administradores de red.
Con los resultados obtenidos de las entrevistas, se procederá a elaborar un
10
analizar a los factores que generan dichos incidentes para así poder prescribir en
que aportara la ayuda que presta la tecnología Honeypot.
Planificar los propósitos del prototipo de la Honeypot a desarrollar y las
necesidades que se deben cumplir para lograr alcanzar dichos propósitos.
Establecer el tipo de software que se encargara de satisfacer cada una de estas
necesidades.
Proceder a seleccionar las aplicaciones que se usaran para el diseño de la
Honeypot.
Instalación de las aplicaciones y verificación de que estas se complementen de
acuerdo a la planificación realizada.
Implementado el prototipo, se debe poner a prueba su funcionamiento; con esto se
obtendrá capturas que serán analizadas para posteriormente establecer
conclusiones que serán útiles para esta investigación.
Las conclusiones obtenidas de este prototipo determinaran la utilidad de la
tecnología Honeypot, ayudara a identificar las amenazas que podrían ocurrir y de
esta manera proponer su uso como complemento a las herramientas de seguridad
de redes que usa la Carrera de Ingeniería en Sistemas Computacionales y
Networking de la universidad de Guayaquil.
Cabe destacar que el presente estudio no pretende criticar los métodos de
seguridad de redes existentes, sino, generar una propuesta para integrar una
herramienta innovadora al conjunto de métodos de seguridades que se presentan
en la actualidad.
11
JUSTIFICACION E IMPORTANCIA
Se explicara la justificación mediante los siguientes criterios:
CONVENIENCIA: La investigación es conveniente debido a que propone el estudio
de una tecnología no tan conocida en el campo de seguridad de redes, este estudio
será útil para aquellos que deseen tomarla como punto de partida y profundizar más
en esta técnica innovadora dentro de las seguridades.
RELEVANCIA SOCIAL: La investigación es de trascendencia social porque impulsa
la idea de establecer el uso de nuevas herramientas dentro de la Carrera de Ingeniería
de Sistemas Computacionales y Networking de la Universidad de Guayaquil. Ya que
al ser una carrera tecnológica se debe estar a la vanguardia de los nuevos métodos
informáticos y ofrecer a la sociedad profesionales de calidad y preparados para la
competencia.
IMPLICACIONES PRÁCTICAS: La investigación proporcionaría el conocimiento
necesario para resolver un problema real y actual en la sociedad e incluso servirá de
guía para que más adelante se ponga en práctica no solo a nivel de la Carrera sino a
nivel de la Universidad de Guayaquil.
VALOR TEORICO: Como es de conocimiento general, actualmente existen
herramientas que ayudan dentro de la seguridad de redes, este estudio contribuiría
explicando y demostrando con más detalle la existencia de Honeypot y que es posible
12
aprender y adaptar las nuevas propuestas para las exigencias que el mundo obliga en
la actualidad.
UTILIDAD METODOLOGICA: La investigación plantea el estudio e impulsa el
concepto de técnicas y metodologías existentes, para aprender no solo a monitorear
una red sino también del intruso y sus técnicas, además que este proyecto ha tomado
en cuenta un enfoque novedoso y poco explotado.
13
CAPÍTULO II
MARCO TEÓRICO
ANTECEDENTES DEL ESTUDIO
Para la ejecución de este proyecto de fin de carrera, se han tomado en consideración
estudios realizados con respecto al área de seguridad de redes informáticas, no solo
referentes al tema que se trata en la presente, que es Honeypot, sino también con
respecto a la introducción en la seguridad de redes para explicar con detalle cada uno
de los pilares que forman unas buenas directrices de seguridad, conocer más acerca de
los intrusos, técnicas que emplean y los métodos aplicados para controlar un entorno
de red. Todo esto se relaciona al presente proyecto debido a que tiene como base
trabajar de manera vinculada con los métodos de seguridad existentes y
complementarlos, así pues a través de la herramienta que propone la presente
investigación ayudara a los administradores de la red a tomar decisiones para buscar
la forma de contrarrestar en cierto grado el impacto que generan las intrusiones,
adoptando mejoras y correcciones a la seguridad para prevenir futuros incidentes.
FUNDAMENTACIÓN TEÓRICA
Orígenes
Este estudio acerca de la tecnología Honeypot, se basa fundamentalmente
en conceptos que tiene ya más de 20 años de historia, aunque la tecnología aplicada
de manera formal tiene menos y poca documentación de sus orígenes.
14
Históricamente las primeras referencias a un sistema de monitorización de intrusos
aparecen ya en la bibliografía sobre los años 90, de la mano del astrónomo y escritor
Estadounidense Clifford Stoll (Stoll, 1990); en esta obra escrita narra su experiencia
personal en la búsqueda y captura de un hacker, el cual irrumpió la seguridad de una
computadora en el Laboratorio Nacional Lawrence Berkeley en Estados Unidos. Sin
embargo los líderes en la investigación y desarrollo del concepto de Honeypot se
agrupan en el Honeynet Project (The Honeynet Proyect, 1999) que junto a una serie
de publicaciones denominadas “Know Your Enemy” (Weley, 2001), fueron las que
hicieron crecer el valor de la tecnología Honeypot.
El responsable de esta idea es Lance Spitzner, un consultor y analista informático
experto en temas de seguridad. Construyó a comienzos del año 1999 una red de seis
ordenadores en su casa diseñada para estudiar el comportamiento y formas de
actuación de los hackers. Fue de los primeros en adoptar la idea, hoy es uno de los
mayores expertos en Honeypots, precursor del proyecto Honeynet (The Honeynet
Proyect, 1999), en marcha desde 1999 y autor del libro “Honeypots: Tracking
Hackers”. Fue entonces cuando Octubre del año 1999 cuando se formó un grupo de
personas que buscaban aprender más acerca de ataques, amenazas y vulnerabilidades.
Este grupo estaba compuesto en sus comienzos por: Martin Roesch (desarrollador del
sistema de detección de intrusos llamado Snort (Roesch, 2002)), Cris Brenton, J.D
Glazer, Ed Skoudis y Lance Spitzner (autor de: The Honeynet Project (The Honeynet
Proyect, 1999)), autodenominados “Wargames mail list”, trabajaban en la
construcción de computadoras que eran utilizadas para vulnerarse unas con otras,
15
desarrollando de esta manera habilidades tanto para el ataque como metodologías de
análisis para comprender como habían sido atacadas. Finalmente este grupo fue
creciendo y se convirtió en lo que se conoce hoy como “The Honeynet Project”.
En junio de 2000 y por espacio de tres semanas, el Honeypot del proyecto fue atacado
y comprometido por un famoso grupo de hackers, lo que permitió el estudio del
comportamiento de este grupo en “real” así como demostrar la viabilidad y utilidad
de esta nueva herramienta de seguridad.
Este conocido incidente catapultó mediáticamente el concepto de Honeypot como la
última tendencia en seguridad de redes convirtiendo su libro en un best-seller de
lectura obligatoria para todos los profesionales de la seguridad (Weley, 2001).
A inicios de 2001 se convirtió en una organización sin ánimo de lucro dedicada al
estudio de los hackers(1)
(blackhats(2)
); esta organización actualmente está compuesta
por más de 30 miembros permanentes, además se han fundado capítulos (Chapters) o
grupos de desarrolladores de diversos países (The Honeynet Proyect, 2010), que
colaboran en conjunto para evolucionar esta tecnología e ir creando nuevas
soluciones basadas en Honeypots, y también proporcionan ayuda a los interesados en
esta herramienta.
1Término para designar a alguien con talento, conocimiento, inteligencia e ingenuidad, especialmente relacionada
con las operaciones de computadora, redes, seguridad, etc.
2Subcultura del grupo Hackers; es gente apasionada por la seguridad informática. Esto concierne principalmente a
entradas remotas no autorizadas por medio de redes de comunicación como Internet.
16
Cerca del año 2002 se empieza hacer uso de Honeypots para la captura de
información con el objetivo de estudiar la actividad de gusanos informáticos y
muchas organizaciones adoptaron los Honeypots como un medio de investigación y
detección de ataques informáticos.
Para el desarrollo de la presente investigación motivo de esta tesis, se planea adoptar
la guía de uno de los miembros del Honeynet Proyect pertenecientes al Spanish
Chapter (Spanish Honeynet Proyect, 2010), cuyo líder y fundador es el Ingeniero en
Telecomunicaciones y Telemática Diego González Gómez, debido a que la asesoría
que nos facilitara será de vital importancia en la etapa de planificación del prototipo.
FUNDAMENTOS DE LA SEGURIDAD INFORMÁTICA
Definición de Seguridad Informática
Si se busca la definición de seguridad en el diccionario de la Real Academia de la
Lengua Española, ésta mostraría algo como: libre y exento de todo peligro o riesgo.
La primera definición general del término seguridad informática la dan Garfinkel y
Spafford (Simpson, 1991) como aquello de lo que se puede depender para que se
comporte como se espera. Un sistema es seguro desde el punto vista de un
usuario si la serie de acciones que cada actor puede realizar están limitados por
lo que el usuario cree que el actor puede hacer (Sandeep, 1995).
17
Una definición más asimilable de seguridad informática es la siguiente: son las
medidas que permiten evitar la realización de acciones no autorizadas que
afecten de alguna manera la confidencialidad, autenticidad o integridad de la
información y que de la misma forma garanticen el funcionamiento correcto del
equipo y la disponibilidad de éste para los usuarios legítimos (Vieites, 2007).
Es lamentable decir que la información nunca va a estar libre de riesgo. La seguridad
no trata sobre cómo estar libre de peligro, más bien se refiere a una buena
administración del riesgo. Así fundamentalmente la seguridad es la mejor manera
para llevar a cabo la administración de la pérdida o riesgo.
Por lo tanto, la definición de seguridad informática desde el punto de vista que
propone este estudio queda como:
“La administración de la pérdida o riesgo en la información y del costo que resulte
de esa pérdida.”
En cualquier tipo de sistema, sea informático o no, la seguridad se la considera como
una característica la cual garantiza que el sistema está fuera de peligro, daño, riesgo o
falla, sean estas de origen interno o externo.
¿Qué es el riesgo?
El riesgo es una pérdida potencial que depende de algunos factores. Se define al
riesgo con una fórmula (Winkler, 2007):
Riesgo = (Amenaza * Vulnerabilidades / Medidas de prevención) * Valor
18
Para el caso de una organización este riesgo va a estar dado en términos monetarios.
a. Valor
Es el componente más importante del riesgo, sin el valor no hay riesgo.
Técnicamente sin valor no se tendría una pérdida.
b. Amenaza
Es esencialmente Qué o Quién puede causar algún daño si le da la oportunidad.
c. Vulnerabilidad
Las vulnerabilidades son básicamente las debilidades que permiten a la amenaza
explotarlas.
d. Medidas de prevención
Son las precauciones que una organización toma para reducir el riesgo.
La seguridad informática es de primordial importancia al iniciar desde un simple
proyecto computacional ya sea software o hardware, hasta la implementación de
aplicaciones, redes, o cualquier cosa que pueda dar paso para atentar contra la
seguridad.
La información es una de las cuestiones principales que resguarda el tema de
seguridad informática, esto conlleva a la utilización de equipos de cómputo
conectados a Internet, donde pueden ser comprometidos sin una previa revisión del
mismo sistema o red.
19
La Información de las Organizaciones
Para poder aplicar seguridad a la información se debe conocer algunas características
de esta:
“Un dato es una representación simbólica (numérica, alfabética, etc.), de un atributo o
característica de una entidad” (Norton, 2000).
“La información es un conjunto de datos organizados, que constituyen un mensaje
sobre un determinado ente o fenómeno” (Norton, 2000).
La información no siempre es privada, existe información pública y privada, el
análisis de seguridad se centrara en esta última, la información se puede clasificar de
la siguiente forma:
Critica: Es indispensable para la continuidad de la organización.
Valiosa: Es parte importante de la organización.
Sensitiva: Sólo debe ser conocida por las personas que la manejan
Seguridad Física
Se encarga del área de protección de los sistema informáticos como hardware,
dispositivos de red, dispositivos electrónicos; todo el entorno que los rodea en el
lugar que se hallan ubicados (edificios, sistemas eléctricos, seguridad en las
cerraduras), además de controlar a las personas que están encargadas de la vigilancia
20
de estos, y tanto de los sistemas informáticos como del entorno. Podemos tomar en
cuenta algunos puntos como por ejemplo (Berenguela, 2006):
Desastres naturales: está catalogado como desastre natural toda anomalía de la
naturaleza. Ejemplos: los maremotos, terremotos, etc.
Malas instalaciones: las instalaciones son un punto bastante importante, como
los cables mal ubicados o en mal estado, la infraestructura en malas condiciones,
un ejemplo bastante común de esta es que los cables eléctricos y de red estén muy
juntos.
Ataques hostiles: el 80% de los ataques a los sistemas de información provienen
desde su interior, los entes más peligrosos son los empleados disconformes, éstos
están dispuestos a vulnerar la seguridad de la organización.
Control de acceso: con este se pueden manejar bitácoras, llevando un registro del
ingreso a las instalaciones, viendo quien, a qué hora, lo que hizo y si está
permitido su acceso al lugar.
Seguridad Lógica
Consiste en la aplicación de barreras y procedimientos que resguarden el acceso a los
datos y sólo se permita acceder a ellos a las personas autorizadas para hacerlo, estos
son los puntos que la seguridad lógica debe proteger (Berenguela, 2006).
Restringir el acceso a los programas y archivos.
Asegurar que los operadores puedan trabajar sin una supervisión minuciosa y no
puedan modificar los programas ni los archivos que no correspondan.
21
Asegurar que se estén utilizados los datos, archivos y programas correctos en y
por el procedimiento correcto.
Que la información transmitida sea recibida sólo por el destinatario al cual ha sido
enviada y no a otro.
Que la información recibida sea la misma que ha sido transmitida.
Que existan sistemas alternativos secundarios de transmisión entre diferentes
puntos.
Que se disponga de pasos alternativos de emergencia para la transmisión de
información.
Importancia de la Seguridad Informática
La Seguridad Informática esta basadas en cuatro pilares fundamentales que hacen que
la información se encuentre protegida (Aldegani, 1997). Estos pilares se ocupan
principalmente de proteger cuatro aspectos de la información:
Confidencialidad
La información puede ser accedida únicamente por las personas que tienen
autorización para hacerlo.
Integridad
Se refiere a que exista total seguridad de que la información no ha sido borrada,
copiada o alterada, no sólo en su trayecto, sino también desde su origen.
22
Disponibilidad
Característica de estar siempre disponible para su uso por personas autorizadas.
Autenticidad
Algunos profesionales de la seguridad no incluyen esta característica cuando
hablan de los pilares, sino que nombran los tres anteriores. Aunque desde otro
punto de vista y particularmente no se puede soslayar este concepto, debido al
hecho de que integridad nos informa que el archivo no ha sido retocado ni
editado, y autenticidad nos informa que el archivo en cuestión es el real.
Los métodos de autenticación para verificación de identidad pueden clasificarse
en tres categorías:
Categoría 1: algo que el usuario sabe.
Un dato esencial, puede tratarse de algo de su persona o bien de un simple o
complejo password (contraseña).
Categoría 2: algo que el usuario lleva consigo.
Puede ser un documento de identidad, una tarjeta o cualquier otro elemento
que uno lleve consigo.
Categoría 3: propiedad física o acto involuntario.
La pupila, la voz y la huella dactilar son ejemplos de propiedades físicas de un
individuo y firmar es un acto involuntario, ya que uno no está pensando en
hacer cada trazo, sino que los realiza en conjunto.
23
SEGURIDAD EN INTERNET
Cuando se habla de seguridad informática muchas veces se confunde diciendo que es
igual a la seguridad en Internet. El enfoque motivo de esta investigación planta su
base en el compromiso de la seguridad a la hora de establecer una conexión entre la
red de una organización o empresa con la red de redes: Internet. De este modo, se
pretende analizar aquellas amenazas ligadas a este medio considerándolo como
seguridad de red. El conectar un sistema a Internet lo expone a numerosas amenazas
que se incrementan diariamente. Los tipos más generales de amenazas son (Ramos,
2009):
Vulnerabilidad en el software
La modificación del software presente en los dispositivos físicos del sistema o la
inclusión de nuevo software podría suponer la materialización de una grave amenaza.
Debilidades en el sistema físico hardware
La seguridad informática debe tener también en cuenta el conjunto de elementos
físicos del sistema informático conocido como el hardware, este se encuentra
compuesto: motherboard, microprocesador, disco duro, unidades de almacenamiento
extraíble, monitor, mouse, teclado, cables, etc.
Violación de los objetivos de la seguridad de la información
La posible extracción, destrucción y/o modificación de la información contenida en
un equipo, vulnerando así los objetivos anteriormente expuestos de confidencialidad,
24
integridad y disponibilidad, es una de las partes más sensibles, ya que, actualmente,
toda la información sobre individuos, empresas e incluso gobiernos está contenida en
bases de datos, archivos, etc. El robo de esta información podría suponer, entre otras
cosas, la ruina económica de la víctima.
Propagación de vulnerabilidades
Con este término se hace referencia a la extensión de las vulnerabilidades anteriores a
otros sistemas utilizando los recursos de la propia víctima o no. Es la gran capacidad
de comunicación que provee Internet lo que lo hace tan peligroso y por lo que la
seguridad en este entorno ha tomado tal repercusión.
Tipos de ataques
Se pueden encontrar multitud de trabajos referentes a la categorización y clasificación
de ataques informáticos e intrusiones (Sandeep, 1995). Aunque la clasificación más
común es según la naturaleza de los ataques y estos pueden clasificarse en (Ferrero,
2009):
Pasivos
Se trata de intrusiones en un sistema sin consecuencias para este. Por lo general se
hacen para demostrar las vulnerabilidades de un sistema o como retos que se
ponen a sí mismo los hackers más experimentados al entrar en sistemas muy
protegidos.
25
Activos
En esta ocasión la intrusión en el sistema se usa para dañarlo modificando o
eliminando archivos. Son los ataques más perjudiciales y con consecuencias más
graves.
Según el origen del atacante los ataques pueden ser (Ferrero, 2009):
Internos
El ataque proviene de la propia red. Puede ser realizado por usuarios de la red o
por atacantes que suplantan alguna identidad. Son muy peligrosos debido a los
privilegios que se tiene sobre el sistema (especialmente si trata de la identidad de
un administrador).
Externos
Los ataques provienen del exterior del sistema, en general se hacen a través de
internet. Son los ataques más conocidos y lo que se conoce popularmente como
hacking o pirateo informático.
Cabe recalcar que, como se mencionó anteriormente, este estudio se enfoca en el
compromiso de la seguridad al establecer una conexión a Internet, las formas y estilos
comúnmente usados en ataques realizados vía Internet están divididos en nueve
categorías principales (Ramírez R. , 2003):
26
Ataques basados en diccionarios
Inicialmente, el hacker o atacante en general, trata de entrar a un sistema en la red
por medio de teclear un nombre de usuario y contraseña. Para averiguar la
contraseña, se valdrá de métodos manuales o programas que lleven a cabo su
decodificación mediante una combinación de todas las palabras y letras de
diccionarios en varios idiomas con signos de puntuación y números.
En base a escuchar el tráfico de la red
Posiblemente, uno de los más difíciles de llevar a cabo, pero, cuando se logra en
una transacción comercial, se convierte en uno de los más serios.
Para ello, se utiliza el llamado “packet sniffer(1)
”, que se encargará de interceptar
los paquetes que viajan a través de la red.
Estos pueden contener información confidencial como las claves de usuarios,
paquetes de transacciones comerciales con el número de una tarjeta de crédito, e-
mail, etc. El procedimiento es obtener la IP que recibirá el paquete y, así, cuando
pase uno dirigido a ese host, lo copiará para enviarlo al sistema del atacante.
1Un dispositivo o programa que monitorea los paquetes que viajan entre las computadoras en una red. Un paquete
es un bloque de datos que transmite las identidades de las estaciones que reciben y envían información y datos
de control de error.
27
Ataques que explotan los accesos confiables
Son comunes en redes que usan un sistema operativo que incorpora mecanismos
de accesos confiables; incluidos UNIX, VMS y NT. Los usuarios de estos
sistemas pueden crear archivos de hosts confiables en los que se incluyan los
nombres de máquinas o direcciones IP, con las cuales un usuario puede acceder el
sistema sin una contraseña para ello.
Por ejemplo, si un atacante obtiene el nombre de la máquina, tendrá privilegios
para entrar al sistema, pudiéndose mover como superusuario(1)
accediendo al
archivo que los administradores de UNIX colocan en el directorio raíz con la
información de los diferentes usuarios.
Basándose en las direcciones IP
Mediante el duplicado de una dirección IP, el intruso da información falsa acerca
de la identidad de su computadora, haciéndose pasar por un host confiable dentro
de una red. Así, el intruso gana los paquetes de acceso a un sistema y sus
servicios.
1El administrador del sistema en los sistemas UNIX/Linux se denomina superusuario. El superusuario es la
persona responsable de la administración y configuración de todo el sistema, y es el único que tiene permisos
para añadir nuevos usuarios, instalar aplicaciones, configurar dispositivos, etc.
28
Suplantando a una entidad de confianza
Este tipo de ataques se han convertido en comunes y mucho más peligrosos en
tanto más usuarios se conectan a la red.
Aprovechando la ingenuidad de ciertos usuarios, el hacker solicita información
privilegiada por diferentes medios (emails, applets de Java(1)
, etc.) que emulen
confianza ante la víctima, extrayendo los datos de usuario para una plataforma
dada.
Predicción de números secuenciales
Es una técnica común para el robo de IP´s dentro de las redes UNIX. Para
establecer una conexión TCP se usa el procedimiento llamado “negociación en
tres pasos” (3-way handshake). Durante su establecimiento, algunos parámetros
como el número de secuencia son configurados para asegurar la entrega ordenada
de los datos y la robustez de la comunicación. La creación de estos números
secuenciales se basa en los relojes internos de cada computadora. En muchas
versiones UNIX, estos números obedecen un patrón que es predecible usando un
determinado algoritmo, lo que permitiría a un intruso predecir en cierta medida la
secuencia de números por medio de la escucha de patrones hechos por conexiones
legítimas. Así, llegaría a lograr un handshake no autorizado.
1Es un programa que puede incrustarse en un documento HTML; es decir en una página Web. Cuando un
Navegador carga una página Web que contiene un Applet, éste se descarga en el navegador Web y comienza a
ejecutarse. Esto permite crear programas que cualquier usuario puede ejecutar con tan solo cargar la página Web
en su navegador.
29
Secuestrando sesiones
En este tipo, el intruso encuentra una conexión existente entre dos computadoras,
generalmente de un servidor y un cliente. Inmediatamente después, penetrando a
routers desprotegidos o cortafuegos inadecuados, obtiene los números de
direcciones TCP/IP en un intercambio entre las computadoras. Tras ello, el
intruso secuestra la sesión del usuario simulando la dirección del usuario. Al
lograr esto, el secuestrador se adueña de la sesión y el host desconecta al usuario
legítimo, obteniendo así libre acceso a los archivos. Es muy difícil detectar una
sesión secuestrada, ya que el secuestrador aparece en el sistema como el usuario
secuestrado. Las Ilustraciones 1 y 2 muestran el proceso de este tipo de ataque.
Ilustración 1. El atacante usa el paquete sniffer para obtener la dirección IP del usuario o
destinatario final.
30
Ilustración 2. El atacante secuestra la sesión fingiendo ser el usuario final y obtiene libre acceso a
los archivos del usuario original.
Ataques enfocados a explotar las debilidades de la tecnología
Todos los sistemas operativos tienen sus propias debilidades, algunos son más
accesibles que otros. Al salir nuevos sistemas, pueden contener los llamados
bugs(1)
que provocarían el colapso de un equipo conectado a la red.
Explotando el sistema de librerías compartidas
Muy común en sistema UNIX. El intruso hace un reemplazo de una librería
compartida (conjunto de funciones de programas comunes que el sistema
operativo carga de un archivo a la memoria RAM en cada petición del programa)
para sus propósitos, como por ejemplo, proveerlos de privilegios para acceder una
petición.
1Un bug es un mal funcionamiento de un elemento de software. Que un programa haga cosas no requeridas, o que
no haga las cosas que debería.
31
Los atacantes
Hay muchas clases de atacantes que van variando según cada autor y cada
investigador del tema, pero la mayoría tienen un punto de vista en común: “nos
protegemos de las personas”.
A esta altura de los tiempos y con las sociedades que evolucionan, suena raro decir
que estamos cuidándonos de nosotros mismos y, más aún sabiendo que esos
elementos que protegemos son, en su mayoría, cosas creadas por nosotros mismos.
El factor más importante que incita a las personas a cometer actos en contra de los
cuatro pilares (integridad, disponibilidad, confidencialidad y autenticidad) es, sin
ninguna duda, el poder. Este poder reside en los datos y en la información, y son
compartidos por el mundo.
Como se mencionó, muchos escritores difieren al referirse sobre de quién o de qué
hay que protegerse, ya que para algunos, las catástrofes lo toman sin la debida
atención y no como un motivo para hacer resguardos de información o hacer uso de
mecanismos a fin de prevenirlos.
Si bien este estudio se enfoca en el entorno de Internet se va a hablar más en detalle
sobre quiénes y cómo son los atacantes que se localizan y usan este medio,
clasificándolos dentro de las categorías factores humanos y factores no humanos
(Gonzalez, 2009).
32
Factores Humanos
Al hablar de factores humanos, incluimos al software y/o malware, ya que los mismos
fueron ideados y creados por personas.
El personal o los ex-empleados
Son los grupos más poderosos y los que más pueden sacar provecho de los datos,
ya que una amenaza no se da cuando el ataque cobra víctimas, sino cuando está en
camino a concretarse.
Hackers, crackers, lamers.
Se trata de muchos de los que intentan entrar en los sistemas de manera externa e
interna. Si bien aquí han sido puestos en un mismo conjunto para poder
manifestar los ataques más comunes externos e internos, estos grupos son muy
diferentes entre sí y hasta se discriminan rotundamente.
Los hackers: De por sí la palabra es un neologismo utilizado para referirse a
un experto en las telecomunicaciones e informática. El entendimiento que
poseen estos atacantes es más profundo que el resto de las personas/técnicos,
ya que tienen la habilidad de razonar igual o mejor que muchos de los
programas o aplicaciones, y esto en realidad no es tan ilógico, ya que las
33
computadoras y las utilidades que se encuentran instaladas en ellas fueron
creadas por personas.
Los hackers son personas que les gusta aprender y emplear el conocimiento
adquirido, algunas veces como desafío y otras por compartir información bajo
la filosofía de que la información debe ser libre. Los hackers han creado su
propio mundo, conocido como underground, en el que se enfatiza que un
verdadero hacker no destruye información sólo aprende a través de la práctica
pero sin dañar un sistema.
Los hackers se dividen en 3 grupos:
a) Sombrero Blanco (White Hats).
Son hackers que emplean sus conocimientos para corregir vulnerabilidades,
asesorar sobre la seguridad de un sistema, corregir errores de código de
programación, entre otros. Sus conocimientos los obtuvieron irrumpiendo
sistemas en donde rebasaron los límites de la privacidad, es decir, alguna
vez pertenecieron al lado oscuro, pero ahora son los buenos que sólo quiere
ayudar. Ellos sostienen la ideología, que primero se tiene que aprender a ser
malo para conocer y después con madurez propia llegan a ser verdaderos
hackers.
34
b) Sombrero Gris (Gray Hats).
Estos propiamente no son hackers bajo el sentido ético de los sobrero blanco,
se puede decir que están en un punto intermedio de su aprendizaje,
son malos por que están en proceso de aprendizaje, pero también son
buenos por que tratan de subsanar los errores de programación que
encuentran en los sistemas que irrumpen.
c) Sombrero Negro (Black Hats).
Ellos son denominados por los mismos hackers como crackers, son personas
que no tienen escrúpulos o nunca maduraron para entender que sólo eran los
primeros pasos para llegar a ser un hacker, sus principales móviles son: el
dinero, el resentimiento, la satisfacción personal.
En el underground existen clasificaciones designadas por ellos mismos,
que identifican el nivel de conocimiento que se va adquiriendo sobre un
determinado tema. Dentro de esta clasificación se encuentran personas
con ciertas habilidades, pero que no desarrollan ningún conocimiento sobre
un tema específico, sin embargo, se desenvuelven directa o indirectamente
con ellos. Las cuales se listan a continuación:
35
Otra clasificación de atacantes.
Wannabe (Want to be).
Es una persona que realmente desea convertirse en hacker, por lo que
empezará aprendiendo y comprendiendo el área a la que desea adentrarse
para conseguir su objetivo.
Newbie.
Es el novato que comienza el camino de convertirse en un hacker, quién
demuestra su interés a los hackers sobre algún tema específico a través de
preguntas coherentes y profundas sobre códigos propios que muestran el
conocimiento que se han ido adquiriendo y el potencial que tiene para ser
un hacker.
Hacker.
Es el nivel que adquiere una persona sobre un cierto ámbito que le permite
denominarse como experto en esa materia. El hacker adquiere la madurez
necesaria en sus conocimientos para no dañar a un sistema, sino para
mejorarlo.
36
Copyhacker.
Es una persona que tiene conocimientos tecnológicos sobre un tema, pero
evita esfuerzos y utiliza las herramientas que creó un hacker para su beneficio
personal.
Crackers.
Son los antagonistas de los hackers. Se pueden dedicar a dos actividades, la
primera es romper los candados que limitan el uso de software comercial, y
la segunda, a irrumpir abruptamente en los sistemas, sin tener escrúpulo
alguno. Según los hackers son personas que no han madurado en este último
aspecto, por lo que, cualquier hazaña la realizan por venganza o beneficio
personal; sin comprender que ser un hacker no es destruir ni dañar un sistema,
sino aprender de él para mejorarlo. Saben más o menos lo mismo que los
hackers pero no comparten la ética. Por consiguiente, no les importa romper
una arquitectura o sistema una vez dentro, ni tampoco borrar, modificar o
falsificar algo; es por eso que la teoría habla de que: “los hackers son buenos y
los crackers son malos”.
Coders.
Son personas con amplios conocimientos de programación, que se dedica a la
creación de códigos maliciosos.
37
Carders.
Realizan fraudes financieros con tarjetas electrónicas, se dedican a clonar o a
interceptar transacciones financieras realizadas con tarjetas electrónicas a
través de la web.
Phreaker.
Emplea sus conocimientos en telefonía, principalmente celular. Obtiene
servicios telefónicos gratuitos, como pueden ser: transferencias de saldos,
mensajes vía SMS, tarjetas de prepago, entre otros.
Blogkers.
Son personas que modifican las páginas web de un sitio de internet.
Wizard.
Se especializa generalmente en un determinado dispositivo, conoce a
profundidad su diseño, las partes que lo constituyen y su operación. Es
reconocido como una eminencia sobre un dispositivo en particular.
Gurú.
Es el máximo nivel de conocimiento que puede ser adquirido en esta
jerarquía. No sólo es un experto más, sino conoce a profundidad varios temas
casi como si él fuese el creador de los mismos.
38
Nerd.
Persona que estudia sobre diversos temas desarrollando conocimiento sobre
éstos, pero no es un especialista en ellos.
Geek.
Es una persona que se hace experto sólo por hobbie en un ámbito
particular.
Lamer.
Desea convertirse en un hacker, pero no tiene los conocimientos sobre un
tema específico, ni el interés por desarrollarlo. Algunas veces se excusa en
decir que está incapacitado para comprender términos que le ayuden a
adquirir el conocimiento. Se usa la palabra lamer o lammer para hablar en
forma despectiva de una persona que no posee los mismos conocimientos que
tienen los expertos, pero que conserva la misma intención. Más puntualmente,
se denomina de esta manera a la persona que quiere aprender a ser un experto
sin siquiera poner esfuerzo en aprender. Más que nada, es una palabra que
usan los hackers o crackers para discriminarse del “resto” y de los novatos que
se quieren iniciar y no saben cómo, ni tampoco poseen la pasión que los
expertos tenían cuando empezaron. Hoy en día, también se emplea la palabra
“luser” que es una mezcla del término “loser” (perdedor, fracaso) y el término
“user” (usuario).
39
Script-kiddie.
Persona que cree ser un hacker por el hecho de utilizar herramientas creadas
por los hackers, que dependiendo de la metodología descrita por la
herramienta puede irrumpir en un sistema. No posee conocimientos sobre
técnicas de intrusión, ni protocolos, ni sistemas operativos y/o lenguajes de
programación. Son considerados por los hackers como personas arrogantes,
que no saben lo que hacen, ni lo que dicen sobre un tema en particular.
Estas personas pueden ser sorprendidas y capturadas en cualquier momento,
por no tener los conocimientos para no delatarse durante su irrupción a un
sistema.
Pirata Informático.
Es una persona que adquiere ilícitamente los recursos que tienen otros, a
través del uso de herramientas creadas para ese fin. Los recursos a los que
éste puede tener acceso son: música, videos, software de diversos tipos, libros
electrónicos (ebooks), etc.
Bucanero.
Es una persona que no tiene interés por aprender, sino por obtener un
beneficio financiero. Este tipo de persona adquiere las claves de
activación para el software de tipo comercial o versiones de software
previamente activadas para su uso ilimitado por los crackers, así como las
40
herramientas que desarrollan para vulnerar sistemas, trafican con ellas y
obtiene una remuneración económica por ellos.
Programador vudú.
Es una persona que utiliza códigos que fueron desarrollados por terceros, sin
comprender su funcionamiento, es decir, no se esfuerza en profundizar cómo
funciona la técnica expuesta u optimizarla. Sólo lo aplica en su beneficio.
El software con errores
Los programadores no son perfectos y, por ende, muchas veces el código con el
que realizan sus trabajos contiene errores. Esos errores no son voluntarios y se
encuentran en la mayoría de los códigos de cualquier programa, ya que la
vulnerabilidad se debe a globalizar la manera en que programan para no acotar y
que no funcionen ciertas cosas. Esas aberturas no están tan visibles y entendibles
a código cerrado; por eso se encuentran más vulnerabilidades en los entornos
Unix, que es de código abierto (código fuente disponible), razón por la cual un
Unix actualizado es el sistema operativo más seguro.
Factores no humanos
Las amenazas ambientales, si bien dependiendo de la ubicación geográfica pueden
tener más o menos periodicidad catastrófica, no son hechos que ocurran
frecuentemente. Pero esto no es motivo suficiente para no considerar la circunstancia
41
de que, si sucede, el daño será severo. Las catástrofes más comunes son los
terremotos, incendios, atentados, tormentas, etc. Existe un grupo poco conocido –más
que nada por su arbitrariedad, denominado riesgos de baja probabilidad, que habla
sobre los riesgos no comunes, que pueden ser desde que un avión se caiga sobre el
edificio en donde están los servidores y la documentación, hasta que al encargado de
la seguridad lo rapten. Obviamente, para este tipo de situaciones no hay
contramedida.
Herramientas más usadas para los ataques
Generalmente referidos como Malware (del inglés malicious software/software
malicioso), es una variedad de software o programas de códigos hostiles e intrusivos,
que tiene como objetivo infiltrarse en el sistema y dañar la computadora sin el
conocimiento de su dueño y con finalidades muy diversas. El malware puede tener
la capacidad de replicarse (propagarse a través de la red a otros equipos),
ocultarse, evadir los antivirus a través de su deshabilitación o variación de paquetes
que apariencia son fidedignos, activarse en horarios no habituales, polimórficos,
permanecer residentes en memoria, entre otras.
Sin embargo la expresión "virus informático" es más utilizada en el lenguaje
cotidiano y a menudo en los medios de comunicación para describir este tipo de
herramientas. Se debe considerar que el ataque a la vulnerabilidad por malware puede
ser a una aplicación, una computadora, un sistema operativo o una red. Existen
42
muchísimos tipos de malware, aunque a continuación, se mencionarán algunos de los
más comunes:
Virus.
Un virus es un programa destructivo que, en un esfuerzo por ocultar su existencia
y propagarse a sí mismo en la red, modifica otros programas insertando copias de
sí mismo. Así, se comporta como un parásito, convirtiéndose en una molesta
forma de ataque al sistema. Cuando el programa infectado es ejecutado, también
se ejecuta el código viral, aunque, dependiendo de la naturaleza del virus, el
código original puede o no ser iniciado.
Los virus no pueden ejecutarse como un programa independiente: necesitan un
programa anfitrión que los inicialice. Pero, una vez establecido el virus y
comenzado su ataque en el sistema, su eliminación se hace gravemente
complicada. Un virus computacional comparte muchos de los atributos de los
virus biológicos convencionales, consistiendo en tres subsistemas: Mecanismos
de infección, Trigger o activador y Misión (Norton, 2000).
Worms o Gusanos.
Son programas que se autorreplican y autoinicializan a gran velocidad, se le
conoce con este nombre por la forma de arrastrarse a través de las conexiones
que forman una red y consumir la memoria de un equipo (colapsar el equipo por
43
falta de memoria). Se diferencia de un virus debido a que este trabaja para un
host y el gusano opera bajo un esquema de red.
Aprovechan los security holes (huecos de seguridad) conocidos para llevar a cabo
su cometido. A pesar de que un worm no altera o daña otros programas, podría
convertirse en vehículo de otras amenazas como los virus o bacterias en su
trayecto. Algunas veces estos programas son diseñados simplemente para enviar
de regreso al desarrollador información acerca de los sistemas, información que
puede ser usada posteriormente para atacar al sistema de forma directa.
Generalmente, estos especímenes emplean mucho de su tiempo recogiendo y
procesando archivos de seguridad y de red, intentando encontrar rutas en la
misma hacia otros sistemas e intentando adivinar passwords (contraseñas).
Al igual que los virus, un worm cosiste en tres partes o procesos, aunque muy
distintas: Búsqueda de un nuevo host para su infección, Copia de sí mismo al
nuevo host y Provocar que la nueva copia sea ejecutada
Los síntomas del ataque de un gusano se pueden apreciar en los archivos log; en
un considerable incremento del tráfico en la red reduciendo la capacidad de
procesamiento normal, y procesos anormales corriendo en el sistema (Gonzalez,
2009).
Caballos de Troya o Troyano.
Inspirado en el Caballo de Troya de la obra la Ilíada, de Homero. Es un software
que oculta sus verdaderas intenciones, da la apariencia de ser inofensivo cuando
44
en la realidad no lo es pero permiten violar la seguridad de un sistema. Pueden
ocultarse en una foto, en un correo, en un juego y/o en páginas web. Sus
intenciones son variadas pueden ir desde modificar el ambiente de trabajo,
instalar accesos a páginas web de dudosa procedencia, modificar archivos,
inutilizar el equipo o emplearlo para realizar otros ataques.
Los troyanos son probablemente las amenazas programadas más comunes y
fáciles de implantar, son programas que imitan a un programa que el usuario
quiere ejecutar, pero son realmente diferentes. Desafortunadamente, el usuario no
es siempre consciente de que un troyano ha sido ejecutado hasta que el daño se ha
realizado. Un troyano puede ser usado para capturar passwords (contraseñas) o
cambiar permisos a archivos. El ataque de un troyano engaña al usuario en la
ejecución de un programa dañando al sistema por tomar ventaja de los permisos
de acceso del usuario. (Ramos, 2009) (Gonzalez, 2009).
Bombas lógicas.
Este suele ser el procedimiento de sabotaje más comúnmente utilizado por
empleados descontentos. Las bombas lógicas son características ocultas
construidas en un programa y ejecutadas cuando se cumplen ciertas condiciones,
tales como un cierto conjunto de claves o cierta fecha alcanzada, modificando
dramáticamente su comportamiento. Las bombas lógicas ejecutan una función o
conjunto de funciones que no fueron intencionales del programa original, siendo
las más comunes la destrucción de aplicaciones o datos. Son frecuentemente
45
colocadas por programadores encargados de mantenimiento de sistemas. Existen
muchos usos legítimos de bombas lógicas. Los time-out son ampliamente usados
por los vendedores de software, permiten administrar las provisiones
contractuales o reforzar agendas de pago. La ejecución de una bomba lógica no
necesariamente es disparada por el reloj. Las bombas lógicas son frecuentemente
perpetradas no por personas ajenas al sistema quienes han ganado acceso no
autorizado, ya que ellos prefieren hacer el daño tan pronto como sea posible, sino
por usuarios quienes están autorizados para tener acceso al sistema (Ramos,
2009).
Back Doors o Puertas Traseras.
Las back doors Son programas o partes de programa que permiten el acceso no
autorizado a un sistema. Algunas veces son insertados maliciosamente en los
sistemas, aunque otras, los programadores y desarrolladores los implementan en
aplicaciones que requieren complejos procesos de autenticación. Las back doors
permiten al usuario entrar a los sistemas rápidamente para propósitos de
evaluación, depuración, mantenimiento y monitoreo en el proceso de desarrollo
de aplicaciones. Muchas veces las back doors son olvidadas y dejadas en el
código cuando éste es liberado. Potencialmente destructivas, estas puertas traseras
pueden existir en programas por muchos años antes de ser descubiertos. De este
modo, pueden suponer un grave peligro al ser descubiertos por intrusos sin
escrúpulos, por lo que se consideran una amenaza real a la seguridad del sistema.
46
Uno de los aspectos más significativos de esta amenaza es que se encuentran
disponibles para muchos usuarios. Así, más que requerir un grado particular de
conocimientos técnicos y destreza, para la explotación de esta amenaza basta con
conocer la back door, conocimiento de fácil propagación por medio del boca a
boca o envío de correos electrónicos en boletines internos (Gonzalez, 2009).
Trap Doors o Trampas.
Las trap doors son consideradas como un caso especial de bomba lógica, aunque
se parecen a las back doors, dado que son aspectos no documentados o modos de
operación de programas que de otra forma son confiables.
Sin embargo, mientras que las back doors son deliberadamente explotadas por
usuarios conocedores, las trap doors son disparadas por algún conjunto de
condiciones de habilitación causando que estas realicen sus acciones destructivas.
Estas condiciones podrían ser la hora del sistema o la identificación del usuario al
momento de ejecutar un programa (Ferrero, 2009).
Bacterias.
Algunas veces, también llamadas conejas, son programas que existen para
recuperarse a sí mismas y, generalmente, afectan a un sistema por tomar ventaja
de los recursos computacionales que ellas consumen sólo por existir en el sistema.
Más que pegarse a otros programas, como los virus, las bacterias computacionales
simplemente al ser ejecutadas se duplican a sí mismas. No alteran los datos ni
47
destruyen archivos. Su propósito es degradar el servicio del sistema, pues
dependiendo de cómo es programada, puede empezar a ocupar todo el espacio en
disco o los ciclos de CPU muy rápidamente, llevando al sistema a detenerse
(Gonzalez, 2009).
Security Holes o Huecos de Seguridad.
Los huecos de seguridad son imperfecciones en el diseño de software que, mal
usados, otorgan privilegios a usuarios comunes. La mayoría de los servicios de
Internet (FTP, TELNET, SENDMAIL) tienen huecos de seguridad. Los huecos de
seguridad se manifiestan en cuatro formas (Ferrero, 2009) (Gonzalez, 2009)
(Ramos, 2009):
1. Huecos de Seguridad Físicos, donde el problema potencial es causado por
permitir acceso físico al equipo a personas no autorizadas, donde éstas pueden
realizar operaciones que no deberían ser capaces de realizar.
2. Huecos de Seguridad de Software, donde el problema es causado por
elementos mal escritos de software privilegiado, los cuales pueden ser
utilizados para realizar cosas que no deberían poder hacer.
3. Huecos de Seguridad por Uso Incompatible, donde por falta de experiencia
o errores propios, el administrador del sistema ensambla una combinación de
hardware y software que daña al sistema desde el punto de vista de la
seguridad. Es precisamente esta incompatibilidad al tratar de hacer dos cosas
incompatibles pero útiles que se integren, lo que crea un hueco de seguridad.
48
4. Selección de una Filosofía de Seguridad y su Mantenimiento, este hueco de
seguridad se manifiesta como un problema de percepción y entendimiento. El
software perfecto, el hardware protegido y los componentes compatibles no
trabajarán adecuadamente a menos que se seleccione una política de seguridad
apropiada y las partes del sistema se direccionen para reforzarla, pues, aún
teniendo el mejor mecanismo de password del mundo, es tiempo perdido si
los usuarios piensan que su nombre al revés es una buena contraseña.
Bugs o Insectos.
Un bug es un defecto en un programa que causa que éste realice algo inesperado.
Estos bugs a menudo son destructivos. Programas escritos en lenguajes como C o
Lenguaje Ensamblador están especialmente indefensos ante los bugs destructivos
porque los errores en el direccionamiento de memoria pueden resultar en
sobrescribir datos almacenados en áreas usualmente reservadas para el sistema
operativo (Norton, 2000).
Adware (Advertisement + Software).
Este software muestra o baja anuncios publicitarios que aparecen
inesperadamente en el equipo por medio de pantallas emergente, las cuales son
adicionadas al instalar o bajar un software a través de internet, que son bastante
molestos y consumen recursos de la memoria, incluso pueden genera cambios en
nuestro escritorio en la página principal del navegador.
49
Algunas empresas ofrecen software "gratuito" a cambio de publicitarse en su
pantalla, otras al instalar el programa, por ejemplo, se instalan junto con un
spyware sin que el usuario lo note. También existen algunos programas "a
prueba" (shareware), que mientras no son pagados, no permiten algunas opciones,
como pueden ser imprimir o guardar y, además, en ocasiones cuentan con
patrocinios temporales que al recibir la clave libera de tales mensajes publicitarios
y complementan al programa. El Adware es una aplicación que muestra
publicidad y que suele acompañar a otros programas. Si bien esto puede hacerse,
en algunas oportunidades, bajo el conocimiento del usuario, el problema radica en
los casos en los cuales se recoge información sin consultar. También pueden ser
fuente de avisos engañosos. Por lo general los programas Adware tiene la
capacidad de conectarse a servidores en línea para obtener publicidades y enviar
la información obtenida. Cabe aclarar que no toda aplicación que muestra algún
tipo de publicidad incluye Adware y esto, en muchos casos, se ha transformado en
una controversia para determinar cuándo un elemento se encuadra dentro de estas
características (Gonzalez, 2009).
Spyware.
Software o programa espía que se instala clandestinamente, se dedica a recolectar
información del sistema en el que se encuentra instalado, así como la captura de
las acciones realizadas sobre el teclado, ratón o información confidencial; es
50
decir monitorea y captura las acciones del sistema (procesos) y la de los
usuarios.
Una vez realizado el cometido, retransmite la información hacia el atacante por
medio de redes intermedias que oculten su identidad y ubicación. Generalmente
esta información es usada por empresas de publicidad para conocer las
preferencias del mercado, aunque en algunos casos lo hacen para obtener
direcciones de e-mail. Todas estas acciones se enmascaran tras confusas
autorizaciones al instalar programas de terceros, por lo que rara vez el usuario es
consciente de ello. Estos agentes espías, pueden ingresar en el PC por medio de
otras aplicaciones. Normalmente trabajan y contaminan sistemas como lo hacen
los troyanos (Gonzalez, 2009).
Bot (Contracción de la palabra Robot).
Programa instalado clandestinamente en un ordenador que lo convierte en un
zombie, es decir, el atacante tiene pleno dominio sobre él (Gonzalez, 2009).
Botnets.
Es un conjunto de máquinas que sirven a un amo (atacante), quien utiliza los
ordenadores comprometidos para realizar ataques hacia otros equipos y/o redes
diferentes a la actual. Una botnet es una colección de software robots o bots que
se ejecutan de manera autónoma. Habitualmente es un gusano que corre en un
servidor infectado con la capacidad de infectar a otros servidores. El creador de la
51
botnet tiene la capacidad de controlar todos los ordenadores infectados de forma
remota. Se convierte en dueño de la máquina y aprovecha todos sus recursos para
lo que suele ser un uso malicioso, pudiendo realizar acciones masivas como
enviar miles de correos no solicitados (SPAM), realizar ataques DoS (Denial Of
Service), distribuir otros códigos maliciosos, enviar phishing, etc.
Son múltiples las formas de ataque para construir y expandir una botnet. Así, se
hace distinción en la forma de ataque según sea la plataforma de la víctima. En
Windows es habitual el aprovechamiento de la inocencia de la víctima a la hora
de abrir cierto tipo de archivos, como puedan ser los cracks, usualmente
utilizados para el pirateo de programas. Este software, al ser ejecutado, infecta a
la máquina, lleva a cabo el escaneo de sus discos duros y de su red de área local,
hace uso de las vulnerabilidades conocidas del sistema operativo para propagarse,
Muchos de los equipos conectados a Internet no son actualizados regularmente
y/o no cuentan con cortafuegos y antivirus capaz de protegerlos de conexiones
externas y del malware que circula por Internet, lo que los convierte en individuos
idóneos para la infección (Gonzalez, 2009).
Otros métodos usados para el ataque.
A parte de las herramientas de ataque detalladas en el apartado anterior, existen otros
métodos no tan comunes y poco conocidos, a continuación se explican varios de estos
(Gonzalez, 2009):
52
Exploits (Explot it).
Son las fallas y errores en el código (bugs) de un programa o en los
Sistemas operativos, conocidos en el ámbito computacional como
vulnerabilidades a nivel del diseño de la aplicación. Dichas oportunidades son
aprovechadas por los coders (atacantes especialistas en programación) para
adentrarse a los sistemas, mediante la elaboración rápida de programas que
permitan explotarlas (de ahí su nombre actual), comprometiendo la integridad de
la información y la inhabilitación de sus servicios.
Día cero.
Al ser detectado un bug (error de código) en un sistema, este es rápidamente
difundido a través de Internet como una vulnerabilidad. La cual es aprovechada
por los atacantes durante el lapso de tiempo en el que las compañías comerciales
de los Sistemas Operativos o Antivirus realizan la reparación (parches) o
erradicación (virus). Su nombre surge del tiempo que este permanece en los
sistemas mientras es detectado y encuentran la solución a este, pudiendo ser Día
0, Día 1, Día 2...
KeyLogger.
Es un programa que se creó para registrar todas las acciones que se realicen sobre
un teclado. Estos registros se almacenan en un archivo para posteriormente
ser retransmitidos hacia el atacante, con la finalidad de utilizar la información
53
sensible capturada en beneficio propio. Generalmente se aplica en el sector
financiero o en compras electrónicas para el robo de números de tarjetas de
crédito, claves de cuentas bancarias, etc.
Pharming/ Phishing.
Es la suplantación que se hace de sitios web, en donde el atacante redirecciona la
solicitud de una página conocida hacia la que él mismo construyo, la cual
es idéntica a la comercial. Esto lo hace con el objetivo de obtener información
sensible del usuario. Los sitios más comunes son área financiera, compras
electrónicas, servicios de comunicación, correo.
Spam.
Es la generación de correos aleatorios con temáticas sobre medicamentos,
deportes, temas sexuales, entre otros; enviados a un equipo o varios a la vez
(víctimas). Provocando la saturación del buzón del correo y la generación de
tráfico en la red. Existen diversas variantes de este ataque, una de ellas puede
ser efectuada por nombres de usuarios de correo que a simple vista parecen
auténticos (provenientes de un sitio conocido) o pueden ser generados por
programas que generan nombres aleatorios en orden alfabético, para
posteriormente enviarles información considerada como basura. Para efectuar
dicho ataque, requiere previamente conocer el nombre de dominio del correo,
54
así como de adueñarse de la libreta de direcciones para multiplicar y replicar el
ataque hacia diferentes redes y dominios.
Smurf.
Es un programa que genera un paquete mal formado, en el que la dirección
origen es la dirección IP de la máquina víctima y el destino la dirección de
broadcast(1)
, de tal forma que todos los equipos respondan hacia la víctima,
generando tráfico en la red.
BackOrifice.
Es un programa cuyo objetivo es obtener el control remoto sobre un sistema.
Hijacking.
Es el robo que se produce de una sesión o de una página. Generalmente se
emplea para capturar información sensible (transacciones bancarias), que el
atacante utilizará en su beneficio.
Hoax.
Es una broma, es la prueba fehaciente de la Ingeniería Social. Contiene
información falsa la cual genera alarma y desconcierto, puede presentarse en
apariencia de un virus de alta peligrosidad o de una cadena de correo.
1Difusión en español, es un modo de transmisión de información donde un nodo (cada una de las máquinas que
conforman una red) emisor envía información a una multitud de nodos receptores de manera simultánea.
55
Es difícil detectarlos por un usuario de computadora, debido a que sus errores en
redacción, fechas y fuentes son poco evidentes.
Consiguiendo su objetivo de alarmar a un usuario, solicitando su reenvío, borrado
de un archivo peligroso alojado en el sistema dando como referencia que la
fuente se obtuvo del proveedor. Se emplea de manera general para saturar el
correo de forma manual a través del reenvío de información, degradando el canal
y el servicio de mensajería.
Ingeniería Social.
Es una técnica que permite obtener información sensible a través de la confianza
e ingenuidad de la víctima. Consiste en convencer a personas de ejecutar acciones
ilícitas. Por ejemplo llamar a un usuario haciéndose pasar por administrador del
sistema y requerirle el password con alguna excusa convincente (Ramos, 2009).
Hacking.
Es una técnica desarrollada por personas expertas en informática que se encarga
de encontrar las vulnerabilidades y limitaciones de sistemas, aplicaciones, redes
de comunicaciones, y en general de todo producto informático, con el fin de
compartirlo con otros “hackers” o incluso con los mismos fabricantes de dichos
productos (Ramos, 2009).
56
Sniffing/Eavesdrooping.
Muchas redes son vulnerables al eavesdropping, o la intercepción pasiva (sin
modificación) del tráfico de red. En Internet esto es realizado por packet sniffers,
que son programas que monitorean los paquetes de red que están direccionados a
la computadora donde están instalados. El sniffer puede ser colocado tanto en una
estación de trabajo conectada a red, como a un equipo router y esto puede ser
realizado por un usuario con legítimo acceso, o por un intruso que ha ingresado
por otras vías (Ramos, 2009).
Snooping/Downloading.
Los ataques de esta categoría tienen el mismo objetivo que el sniffing, obtener la
información sin modificarla. Sin embargo los métodos son diferentes. Además de
interceptar el tráfico de red, el atacante ingresa a los documentos, mensajes de e-
mail y otra información guardada, realizando en la mayoría de los casos una
descarga de esa información a su propia computadora. El Snooping puede ser
realizado por simple curiosidad, pero también es realizado con fines de espionaje
y robo de información o software.
Los casos más resonantes de este tipo de ataques fueron: el robo de un archivo
con más de 1700 números de tarjetas de crédito desde una compañía de música
mundialmente famosa, y la difusión ilegal de reportes oficiales reservados de las
Naciones Unidas, acerca de la violación de derechos humanos en algunos países
europeos en estado de guerra (Ramos, 2009).
57
Tammpering o Data Diddling.
Es la modificación desautorizada a los datos, o al software instalado en un
sistema, incluyendo borrado de archivos. Este tipo de ataques son particularmente
serios cuando el que los realiza ha obtenido derechos de administrador o
supervisor, con la capacidad de disparar cualquier comando y por ende alterar o
borrar cualquier información que puede incluso terminar en la baja total del
sistema en forma deliberada. O aún si no hubo intenciones de ello, el
administrador posiblemente necesite dar de baja por horas o días hasta chequear y
tratar de recuperar aquella información que ha sido alterada o borrada (Ramos,
2009).
Jamming/Flooding.
Este tipo de ataques desactivan o saturan los recursos del sistema. Esta técnica se
basa en aprovechar las debilidades que tienen los protocolos de comunicación, los
errores de diseño y arquitectura de los sistemas; para saturar o inundar los
servicios que brinda un sistema. Por ejemplo, un atacante puede consumir toda la
memoria o espacio en disco disponible, así como enviar tanto tráfico a la red que
nadie más puede utilizarla. Muchos ISPs (proveedores de Internet) han sufrido
bajas temporales del servicio por ataques que explotan el protocolo TCP
(Transmission Control Protocol o Protocolo de Control de Transmisión). Aquí el
atacante satura el sistema con mensajes que requieren establecer conexión
(Gonzalez, 2009) (Ramos, 2009).
58
Spoofing.
Esta técnica es utilizada para actuar en nombre de otros usuarios, usualmente para
realizar tareas de snooping o tampering. Una forma común de spoofing, es
conseguir el nombre y password de un usuario legítimo para, una vez ingresado al
sistema, tomar acciones en nombre de él, como puede ser el envío de falsos
emails (Ramos, 2009).
Fingerprinting.
Es una técnica empleada para reconocer el tipo de sistema operativo, con el que
opera un equipo. Dentro de los datos que se pueden obtener son la versión del
sistema operativo y los servicios que ofrece. Se basa en el tipo de respuesta que
obtiene del envío de un paquete mal formado, el cual es analizado por el atacante
y de acuerdo a sus características se determinará el tipo de sistema operativo
empleado (Gonzalez, 2009).
Looping.
Esta es una técnica en la que se utiliza a un sistema para ingresar recursivamente
a otros sistemas de manera clandestina. Su objetivo es lanzar ataques distribuidos
simultáneamente sin que el atacante sea identificado y culpen de su hazaña a las
redes involucradas. El intruso usualmente utiliza un sistema para obtener
información e ingresar en otro, y luego utiliza éste para entrar en otro, y en otro. Este
proceso tiene la finalidad de evaporar la identificación y la ubicación del atacante. El
59
camino tomado desde el origen hasta el destino puede tener muchas estaciones, que
exceden obviamente los límites de un país. El looping hace su investigación casi
imposible, ya que el investigador debe contar con la colaboración del administrador
de cada red utilizada en la ruta, que pueden ser de distintas jurisdicciones (Ramos,
2009) (Gonzalez, 2009).
Cracking.
Son programas creados para romper los candados colocados para el uso
limitado de un software comercial, también se considera cracking al programa
que busca descifrar las claves de acceso a un sistema. Se basa en técnicas de
búsqueda por diccionario (letras y palabras comunes en un lenguaje determinado)
y búsqueda por fuerza bruta (probar con números, letras y caracteres especiales
que no formen una palabra) (Gonzalez, 2009).
Zombie.
Es un ordenador que se encuentra comprometido por un atacante y éste tiene
pleno dominio sobre él. Su objetivo es atacar otros sistemas que compartan o no
la misma red. El origen de su nombre viene de la técnica vudú que se emplea
en un ser humano, para que éste pierda la voluntad y haga lo que un tercero le
indique. Este puede deshabilitar la función de un antivirus (Gonzalez, 2009).
60
Rootkit.
Es uno de los ataques más peligrosos que existen. Es un programa que mantiene
ocultos los procesos que son generados por un intruso durante la instalación
y ejecución de malware en un sistema. Debido a su característica de ocultarse,
es difícil detectar este tipo de ataque en una simple revisión, requiere de un
análisis en profundidad y de la integridad de los sistemas para detectar su
presencia (Gonzalez, 2009).
DoS (Denial of Service).
Son ataques que deniegan los servicios de un sistema. Buscan degradar los canales
de comunicación que impidan comunicarse con el sistema, bloquear equipos
pertenecientes a la red, así como el corromper el tamaño de archivos en memoria
a través de alguna vulnerabilidad que colapse al sistema (Gonzalez, 2009).
DDoS (Distributed Denial of Service).
Se basan en el mismo principio que los DoS, pero difieren en que éstos operan
para ambientes distribuidos. En este tipo de ataques se utilizan varias fuentes
coordinadas que pueden realizar un ataque progresivo, rotatorio o total (Gonzalez,
2009).
61
Mecanismos de Seguridad.
Para proteger un sistema, se debe realizar un análisis de las amenazas potenciales que
éste puede sufrir, las pérdidas que podrían generar y la probabilidad de su ocurrencia.
Este estudio genera las políticas de seguridad que definen las responsabilidades y
reglas a seguir para evitar tales amenazas o minimizar sus efectos en caso de que se
realicen. Las políticas de seguridad son el resultado de documentar las expectativas
de seguridad. El concepto de seguridad, como se explicó antes, está relacionado con
el comportamiento esperado de un sistema. Podemos afirmar que las políticas de
seguridad intentan plasmar de alguna manera en el mundo real, los conceptos
abstractos de seguridad.
Hay dos formas de definir las políticas de seguridad (Borghello, 2001) (Cifuentes,
2004) (Ramos, 2009):
a) La política de seguridad procesal consiste en plasmar de forma práctica las
ideas o filosofías de la empresa en cuanto a seguridad. Es decir depende
netamente de las decisiones de los directivos y el administrador de la red.
b) La política de seguridad formal es un modelo matemático del sistema que
abarca todos los posibles estados y operaciones así como un esquema de cómo
cada estado y operación pueden tener lugar. Por lo tanto se trabaja de acuerdo a
probabilidades de uso de servicios, en que horarios su uso es máximo y/o mínimo,
que aplicaciones son las más usadas, etc.
62
Una política de seguridad puede ser prohibitiva, si todo lo que no está expresamente
permitido está denegado, o permisiva, si todo lo que no está expresamente prohibido
está permitido.
Para implementar estas políticas de seguridad se utiliza lo que se conoce como
mecanismos de seguridad. Los mecanismos de seguridad se dividen en tres grupos:
1. Prevención: Aquellos que aumentan la seguridad de un sistema durante su
funcionamiento normal.
2. Detección: Aquellos que se utilizan para detectar violaciones de la seguridad o
intentos de violación.
3. Recuperación: Aquellos que se aplican cuando el sistema ha sido atacado.
En esta investigación se hará énfasis en los mecanismos de prevención y detección.
Los mecanismos de seguridad se crean con la intención de brindar protección a un
sistema. Entre los más comunes se encuentran (Aguilar, 2007) (Gonzalez, 2009):
Cifrado.
Las técnicas de encriptación son fundamentales para garantizar la seguridad de la
información. El cifrado garantiza que la información no es inteligible para
individuos, entidades o procesos no autorizados (confidencialidad). Consiste en
transformar un texto claro mediante un proceso matemático en un texto cifrado.
63
Tráfico de relleno.
Consiste en enviar tráfico falsificado o sin información junto con los datos válidos
para que el atacante no pueda reconocer los datos útiles.
Etiquetas.
Clasifica la información por niveles de seguridad: secreta, confidencial, no
clasificada, etc.
Control de enrutamiento.
Permite enviar información por zonas clasificadas. Así mismo permite solicitar
otras rutas en caso de violaciones de seguridad.
Notarización.
Una tercera persona física o jurídica confirma la seguridad de procedencia e
integridad de los datos.
Firma Digital.
Permite enlazar unívocamente a un documento almacenado digitalmente con una
persona específica y verificar la autenticidad del contenido del documento.
Mediante un algoritmo, emisor y receptor obtienen un par de números
denominados claves, una pública que la conocen todos, y otra privada que se la
debe tener en reserva. La clave pública y privada tienen características únicas, su
64
generación es siempre en parejas y están relacionadas de tal forma que todo lo que
sea encriptado por una de ellas sólo podrá ser desencriptado por la otra.
Integridad de datos.
Añaden datos a la información que detectan si ésta ha sido modificada.
Unicidad.
Consiste en añadir a los datos un número de secuencia, la fecha y hora, un número
aleatorio o alguna combinación de los anteriores, que se incluyen en la firma
digital o integridad de datos. Estos mecanismos poseen tres componentes
principales:
Una información secreta, por ejemplo las contraseñas.
Un conjunto de algoritmos, para llevar a cabo el cifrado.
Un conjunto de procedimientos, que definen cómo se usarán los algoritmos.
Gestión de claves.
Abarca la generación, distribución, almacenamiento, tiempo de vida, destrucción
y aplicación de las claves de acuerdo con una política de seguridad.
Lista de Control de Acceso (ACL).
Permite restringir el acceso físico o lógico a los servidores y sus servicios, o a
ciertos directorios, inclusive ficheros y programas específicos. Consta de dos
65
pasos: el primero es la autenticación que identifica al usuario o entidad que trata
de acceder a los recursos, y el segundo es la autorización que dota al usuario
autenticado de ciertos privilegios para efectuar operaciones con los datos
protegidos. Se puede implementar el control de acceso, sea por nombre y
contraseña, o por dirección IP, host o dominio, es decir los recursos son accesibles
exclusivamente por ordenadores que posean determinada dirección IP, cierto
nombre de host o, en servidores, que pertenezcan a un dominio dado.
Proxy.
Proxy hace referencia a un programa o dispositivo que realiza una acción en
representación de otro. La finalidad más habitual es la del servidor Proxy, que
sirve para permitir el acceso a Internet a todos los equipos de una organización. El
servidor Proxy, que es una computadora, intercepta las conexiones de red que un
cliente hace a un servidor de destino.
De ellos, el más famoso es el servidor Proxy de Web (comúnmente conocido
solamente como "Proxy"). Intercepta la navegación de los clientes por páginas
Web, por varios motivos posibles: seguridad, rendimiento, anonimato, etc.
Firewall (Cortafuegos).
Un Firewall es un elemento de hardware o software utilizado en una red de
computadoras para controlar las comunicaciones, permitiéndolas o prohibiéndolas
según las políticas de red que haya definido la organización responsable de la red.
66
La ubicación habitual de un cortafuegos es el punto de conexión de la red interna
de la organización con la red exterior, que normalmente es Internet; de este modo
se protege la red interna de intentos de acceso no autorizados desde Internet, que
puedan aprovechar vulnerabilidades de los sistemas de la red interna (Northcutt,
1999).
También es frecuente conectar al firewall una tercera red, llamada zona
desmilitarizada o DMZ, en la que se ubican los servidores de la organización que
deben permanecer accesibles desde la red exterior.
Estos firewalls están conformados como tipo software o hardware, visto de una
mejor forma un firewall puede ser un router, una computadora que mantiene la
red (servidor) o una computadora en específico (host), ambas con el fin de
mantener una información al día sobre los movimientos o sucesos obtenidos en la
comunicación entre equipos.
Es importante conocer algunos conceptos que se manejan dentro de las
configuraciones de firewalls, donde se puede implementar tres tipos sobre una
red, las cuales son:
1. Zona Desmilitarizada. Es la configuración de un firewall con sus respectivas
denegaciones de servicios para los usuarios, y estableciendo un conjunto de
redes o un solo host que tendrá privilegiado el tráfico libre. De este modo se
establecerá una zona desmilitarizada o libre para paquetes de entrada y salida
en un host o red específica.
67
2. Host Bastión. Es un equipo de computadora que se sitúa entre el router de la
red corporativa e Internet, este host bastión recibirá los paquetes de entrada y
examinará su destino, consultando con sus reglas de redireccionamiento
tomará las decisiones necesarias para aceptar, denegar o redirigir el tráfico
entre la Intranet e Internet.
3. Gateway o Puerta de Enlace. Es un router el cual se encarga de aceptar,
denegar y redireccionar el trafico de la red, también posee sus directivas para
denegación de servicios en puertos específicos El router como ventaja
principal lo posee integrado ya por defecto.
Para implementar el firewall se puede hacer en tres formas:
a. Firewall de red basado en host. Es un equipo que actuará como firewall
entre la Intranet e Internet.
b. Firewall basado en host. Es un firewall que actuará por equipos, y estará
instalado en cada equipo.
c. Firewall basado en routers. Es el firewall del router.
d. Firewall de equipos. Es el firewall interno que tienen los dispositivos de
hardware y son configurables mediante el mismo sistema operativo o bien el
software que proporciona el fabricante al instalar el controlador.
68
Sistema de Detección de Intrusiones (IDS).
Un Sistema de Detección de Intrusos o IDS (Intrusión Detection System) es una
herramienta de seguridad encargada de monitorizar los eventos que ocurren en un
sistema informático en busca de intentos de intrusión. Se defines como intento de
intrusión a cualquier tentativa de comprometer la confidencialidad, integridad,
disponibilidad o evitar los mecanismos de seguridad de una computadora o red.
Las intrusiones se pueden producir de varias formas: atacantes que acceden a los
sistemas desde Internet, usuarios autorizados del sistema que intentan ganar
privilegios adicionales para los cuales no están autorizados y usuarios autorizados
que hacen un mal uso de los privilegios que se les han asignado (Aguilar, 2007).
La tarea de un IDS es detectar patrones sospechosos o códigos maliciosos en los
paquetes que están circulando por la red o bien entrando a un host, en base a estos
patrones manda un alerta y realiza una acción para suprimir el problema,
posteriormente realizar la protección del equipo lo cual puede llegar a desconectar
de la red el equipo o bien la red entera, esto dependiendo de la magnitud del
problema, también contrarresta el ataque y da aviso detallado sobre las huellas o
ubicación del intruso para tomar medidas legales a dicha intrusión ilegal.
Para que un IDS realice todas las actividades mencionadas, éste posee un modo de
configuración basado en reglas (parecido al firewall) donde estas reglas indican
los patrones que deben ser cumplidos en paquetes y si encontrase patrones
distintos se le indica la acción a realizar, posteriormente se generará un registro
69
detallado (syslog) de las anomalías detectadas en el transcurso del día o conforme
se desee revisar el registro. Los IDS se dividen en tres tipos:
1. H-IDS (IDS de Host): Es un IDS que se encuentra vigilando a un único
equipo de cómputo, es decir que solo vigilará y analizará los paquetes que van
dirigidos y que provengan de ese mismo equipo. La ilustración 3 representa
un ejemplo.
Ilustración 3. Implementación de un IDS de Host.
2. N-IDS (IDS de Red): Es un IDS que por defecto es el servidor y se
encontrará vigilando todo el segmento de la red en busca de patrones distintos
para procesar un análisis en todos los paquetes que viajan hacia los equipos o
provenientes de ellos mismos. Observar la ilustración 4 para su comprensión.
70
Ilustración 4. Implementación de IDS de Red.
3. D-IDS (IDS Distribuido): En particular es una de las mejores formas de
montar un IDS, más amplio, más confiable y ajustable a las distintas
necesidades que surgen en las empresas corporativas, ya que este tipo de IDS
está conformado por un sistema Cliente-Servidor. Esto se lleva acabo
asignando equipos de cómputo únicamente para trabajar como IDS cliente en
distintas partes de la red (en caso que sea muy grande), posteriormente
estableciendo un equipo de cómputo como base principal (servidor) donde se
almacenarán todas las alertas, acciones anormales, detecciones, registros, etc.
71
Informática Forense.
Consiste en adquirir, preservar, obtener y presentar datos que hayan sido
procesados electrónicamente y almacenados en soportes informáticos, se creó
para dirigir las necesidades específicas y articuladas de la legislación, para
aprovechar al máximo una nueva forma de evidencia electrónica. Esta
información almacenada digitalmente se puede utilizar como prueba en un
proceso judicial, y se deben seguir ciertos pasos para su recuperación,
almacenamiento, análisis, y además custodia para garantizar su inmutabilidad.
Este proceso se lo puede hacer por hardware con equipos adaptados, o mediante
software comercial o libre como TCT, TSK/Autopsy, Foremost, etc (Aguilar,
2007) (Gonzalez, 2009).
Honeypots.
Las Honeypots son una herramienta innovadora desde el punto de vista de
seguridad tradicional, ya que puede ayudar en el aprendizaje de las formas de
actuar de los atacantes, y con esto mejorar el sistema de seguridad de una manera
activa. Este mecanismo de seguridad, motivo de la presente investigación y
proyecto de tesis será explicado en detalle en el siguiente apartado.
72
INTRODUCCIÓN A LA TECNOLOGÍA HONEYPOT
Evolución de los escenarios de ataque
La seguridad informática en sus primeros tiempos era defensiva, ocupándose de
mantener a los atacantes alejados. Hasta ese momento, las técnicas y tecnologías
habían sido desarrolladas para detener los ataques. Por ejemplo: en el año 1992,
Marcus Ranum llevó a cabo el desarrollo de los cortafuegos (firewalls) en su
publicación “TIS Firewall Toolkit” (Ranum, 1992).
Los dogmas estratégicos de la Seguridad Informática consisten en defender la
infraestructura de información tan bien como sea posible, detectar posibles fallas en
la estructura defensiva y reaccionar a esas fallas de manera proactiva.
Con el aumento de los anchos de banda disponibles y el abaratamiento de los accesos
a la red se ha podido observar una evolución de las técnicas de ataques existentes en
la actualidad.
Anteriormente los ataques se basaban en razonamientos simples, dada una
máquina/dominio/servicio conocido, por ejemplo: el correo personal gratuito de
Hotmail. Bastaba con obtener su dirección IP (vía consulta DNS) y proceder con
cualquiera de los ataques descritos en los apartados antes mencionados. Sin embargo,
la mejora de la conectividad permite ahora realizar combinaciones de ataques que
hasta hace unos pocos años eran casi imposibles.
73
La proliferación y difusión de herramientas específicas para este tipo de tácticas ha
ido pareja al aumento de jóvenes con ganas de emular las películas de piratas
informáticos. Y es precisamente a esta gran cantidad de público curioso, que hasta se
ha llegado a la creación de herramientas con interfaces muy sencillos y amigables que
permiten prácticamente a cualquier persona sin muchos conocimientos (script-
kiddies) rellenar un par de campos de parámetros (por ejemplo la dirección IP de
inicio y final) y lanzar ataques indiscriminados. El uso de estas herramientas junto a
pensamientos erróneos del tipo “nadie me conoce”, “quien va a querer atacarme, sino
no tengo nada importante”, lleva a que el número de ordenadores comprometidos sea
muy difícil de aproximar, y únicamente cuando es demasiado tarde (el ordenador ya
ha sido utilizado para un ataque o han borrado información) las prisas y necesidades
de seguridad en la empresas pasan a tomarse en serio.
Los atacantes más experimentados suelen hacer una especie de barrido “ciego”
(recolección al azar) por Internet, que tiene por objetivo la creación de listas de
ordenadores conectados a la red. Posteriormente, estas listas que contienen las
direcciones IP son utilizas por programas más sofisticados que comprueban los
servicios existentes en las máquinas buscando alguna vulnerabilidad que pueda ser
aprovechada para obtener el control del ordenador. Una vez conseguido el acceso se
suelen instalar programas de puerta trasera (backdoor) para poder acceder de forma
invisible a la máquina. Esta queda en estado de “espera” por tiempo indefinido hasta
que el atacante desee hacer uso de ella.
74
Cabe señalar también que muchas veces el acceso a un ordenador es utilizado como
un puente para efectuar nuevos barridos de forma que el verdadero origen del barrido
no sea descubierto. Más ordenadores comprometidos conectados a Internet significan
más potencia de búsqueda de posibles nuevas víctimas.
Nuevos tipos de ataques requieren nuevos modelos que permitan ampliar el espectro
de seguridad.
Definición de Honeypot
El concepto de Honeypot no fue extraído o inventado de la nada, sino que es fruto de
la realización de varios estudios en el campo de la seguridad de seguridad de redes.
Se define a una Honeypot como:
Un recurso de red que simula ser un objetivo real, pero destinado a ser
atacado, de tal forma que un intruso pueda ingresar, examinarla y
comprometerla. Las Honeypot no tienen en ningún caso la finalidad de
resolver o arreglar fallos de seguridad en nuestra red. Son los encargados
de proporcionarnos información valiosa sobre los posibles atacantes en
potencia a nuestra red antes de que comprometan sistemas reales (Spitzner,
Honeypot: Tracking Hackers, 2002).
Como se hace mención en la definición anterior, el valor real de la Honeypot reside
en ser atacada, examinada y vulnerada. Dicha condición permitirá:
Obtener pruebas del ataque al sistema.
Conocer nuevas vulnerabilidades.
Capturar nuevos tipos de ataques.
Descubrir riesgos de sistemas.
75
Despistar al atacante sobre los servidores en producción.
Implementar mejoras a la seguridad global de la red.
Este nuevo enfoque a la seguridad de redes rompe muchos paradigmas clásicos que se
daban como axiomas en la seguridad informática “clásica”. Debido a que en lugar de
evitar a toda costa el ataque, se incita al atacante a ingresar a la red, presentándole un
nivel de complejidad adecuado para atraerlo, no exagerado para no desalentarlo, y
ofrecerle una serie de archivos y programas atractivos para los intrusos, mientras el
personal de seguridad del sistema monitorea, registra y observa todas las acciones
para aprender todas las herramientas de ataque empleadas por el intruso, y así usar lo
aprendido para mejorar la seguridad y adicionalmente lograr desviar la atención del
sistema real.
La Honeypot es un sistema muy controlado, considerado como un sistema trampa y
ha sido diseñada para interactuar con el atacante, imitando el comportamiento de un
sistema que pueda ser de interés para el intruso, donde todo el tráfico entrante y
saliente es detectado y capturado. De este modo se puede llevar a cabo un examen en
profundidad del atacante, durante y después del ataque a la Honeypot. La información
recogida por una Honeypot es crucial para la detección y protección de las amenazas
a las que nos enfrentamos diariamente.
Cabe aclarar que una Honeypot no es un sistema de detección de intrusiones, aunque
puede utilizarse como una herramienta de apoyo, y puede ayudar a mejorar los
76
métodos de detección y aportar al conocimiento de nuevos patrones de ataque. En
resumen, es un sistema diseñado para engañar a los intrusos, poder estudiar sus
actividades y así aprender de sus métodos. Se basa en la idea de "conocer al enemigo"
para poder combatirlo (Weley, 2001).
Ventajas de las Honeypot
Las Honeypot son un concepto increíblemente simple, los cuales ofrecen una
fortaleza muy poderosa. Podemos observar sus ventajas en los siguientes puntos:
(Verdejo, 2003):
Genera un volumen pequeño de datos, al contrario que los sistemas clásicos de
seguridad que generan cientos de megas de ficheros de logs con todo tipo de
información, las Honeypots generan muy pocos datos y de altísimo valor, recogen
pequeñas cantidades de información sólo cuando el atacante interactúa con ellas.
Necesita unos recursos mínimos, a diferencia de otros sistemas de seguridad, las
necesidades de un Honeypot son mínimas. No consume ni ancho de banda ni
memoria o CPU extra. No necesita complejas arquitecturas o varios ordenadores
centralizados, cualquier ordenador conectado a la red puede realizar este trabajo.
Inexistencia de Falsas alarmas, estas herramientas de seguridad sólo deben
recibir únicamente actividades sospechosas. Esto reduce significativamente el
77
número de falsos positivos (alarma cuando no existe ataque) y falsos negativos
(omisión de alarma cuando hay verdaderamente un ataque).
Encriptación en IPv6, Uno de los problemas que presentan algunas herramientas
de seguridad es que no soportan el protocolo IPv6, sucesor del actual IPv4
ampliamente utilizado en Internet. Utilizar IPv6 a través de túneles sobre IPv4,
como hacen algunos atacantes, puede imposibilitar la detección por parte de
muchos sistemas de detección. No obstante, las Honeypot registran toda la
actividad ocurrida, por lo que se pueden identificar este tipo de ataques.
Reutilización, la mayoría de los productos de seguridad necesitan mantener al día
sus mecanismos de detección y defensa para mantener su efectividad. Si no se
renuevan, dejan de ser útiles. Pero las Honeypot, debido a su propia naturaleza,
siempre serán de ayuda independientemente del tiempo que pase, siempre habrá
atacantes dispuestos a comprometer estos sistemas de una u otra forma,
mostrando el nivel de actividad de este sector y los métodos que utilizan.
Información, Pueden recopilar información de manera detallada a diferencia de
otras herramientas de análisis de incidentes de seguridad.
Distraer al atacante, detener o entretenerlo con sistemas en los que no puede
causar daño, protegiendo así las redes y sistemas en producción.
78
Universalidad, este tipo de sistemas sirven tanto para posibles atacantes internos
como externos. De esta forma, obviamente, se ha de evitar poner a las máquinas
nombres como “Honeypot” o “attack-me”. Su objetivo es pasar desapercibidas en
una red como una máquina más.
Simplicidad, uno de los puntos más importantes a favor de las Honeypot es su
sencillez. No utilizan complicados algoritmos de análisis, ni rebuscados métodos
para registrar la actividad de los intrusos. Por el contrario, sólo hay que instalarlos
y esperar. Algunos sistemas trampa de desarrollo pueden poseer mayor nivel de
complejidad, pero no comparable a otros enfoques.
Desventajas de las Honeypot
Como cualquier otra tecnología, las Honeypot también tienen debilidades inherentes a
su diseño y funcionamiento. Esto se debe a que éstos no reemplazan a las tecnologías
actuales, sino que trabajan con las tecnologías existentes (Ramos, 2009) (Verdejo,
2003):
Son elementos totalmente pasivos, de esta forma, si no reciben ningún ataque no
sirven de nada.
Fuente potencial de riesgo, debido a la atracción de atacantes, se debe tener
cuidado en la configuración, y convertirlo en un entorno cerrado y controlado
79
(jailed envinronment), para evitar que se utilice como fuente de ataque a otras
redes e incluso a la propia.
No resuelven fallos de seguridad, las Honeypot son herramientas empleadas
para el análisis de ataques, son usadas para la búsqueda de mejoras y soluciones a
los posibles problemas que presenten los métodos de seguridad implementados en
una red.
No detienen a un atacante, al contrario, lo atraen con el fin de permitir estudiar
sus técnicas de ataque para un posterior análisis.
Fingerprint, es la identificación local o remota de un sistema o servicio. Es
posible que la deficiente implementación de la Honeypot la delate, haciéndola
reconocible ante un intruso, lo que la volverá inútil, o se lo puede utilizar para
desviar la atención de la administración de seguridad.
Visión Limitada, solo pueden rastrear y capturar actividad destinada a interactuar
directamente con ellas. No capturan información relacionada a ataques destinados
hacia sistemas vecinos, a menos que el atacante o la amenaza interactúe con la
Honeypot al mismo tiempo.
80
Clasificación de las Honeypot
Las Honeypot son una tecnología nueva con enorme potencial para la comunidad
informática, la taxonomía de los diferentes tipos de Honeypot depende de la
bibliografía consultada puesto que como todo nuevo concepto, su estandarización es
compleja y aún no ha sido universalmente aceptada.
El autor Lance Spitzner (fundador del Honeypot Proyect) y Martin Roesch (creador
de Snort) afirman que las Honeypot se pueden dividir de acuerdo a dos aspectos
fundamentales: según su Ambiente de Uso y según su Nivel de Interacción.
Según Ambiente de Uso
Bajo esta categoría se encuentran:
Honeypot de producción (Production Honeypot System): Llamados así por su
ubicación junto a la red de producción en una organización. Su principal objetivo
es el de mitigar el riesgo de un ataque informático a la red productiva de una
institución o empresa. De esta forma, una Honeypot de producción simula
diferentes servicios con el único fin de ser atacada y obtener información sobre
las técnicas empleadas para tratar de vulnerar los sistemas que componen dicha
infraestructura. Aporta un gran valor específico para asegurar sistemas y redes
con la prevención, el engaño y la disuasión de los atacantes, desviándolos de su
objetivo real hacia el señuelo.
81
Como respuesta a una intrusión se toman medidas oportunas en contra de
cualquier ataque hacia la red real (denegando cualquier acceso con un origen
determinado, limitando las capacidades de un servicio o paralizando servicios
momentáneamente en el caso de ser posible).
Las Honeypot al no ser sistemas en producción reales pueden ser apagados y
puestos para un análisis forense post ataque, lo cual puede proporcionar más
información sobre ataques realizados, esto las convierte en una herramienta
poderosa para complementar la capacidad de reacción de un administrador de red
al tener un detalle de los métodos, herramientas usadas por los atacantes en los
sistemas (Avilés, 2009).
Honeypot de investigación (Research Honeypot System): En este caso, el
principal objetivo es la recopilación de la mayor cantidad de información que
permita al investigador poder analizar las nuevas tendencias en los métodos de
ataque, así como los principales objetivos perseguidos y los distintos orígenes de
los ataques. El resultado de este análisis es recogido en informes cuyo objetivo es
respaldar la toma de decisiones en la implantación de las medidas de seguridad
preventivas. También han sido diseñadas para ser comprometidas al igual que los
de producción, sin embargo no añaden ninguna capacidad extra de seguridad o
mitigación de los ataques.
82
La principal ventaja de situar el Honeypot en una red independiente, dedicada
únicamente a la investigación, es la separación del sistema vulnerable del resto de
sistemas productivos y evitar así la posibilidad de sufrir un ataque a través del
propio Honeypot. Por el contrario, el inconveniente es la cantidad de recursos
necesarios.
Según su Nivel de Interacción
En esta categoría se destacan:
Honeypot de baja interacción: Suelen ser creadas y gestionadas por
organizaciones dedicadas a la investigación del fraude en Internet, o cualquier
tipo de organización que necesite investigar sobre las nuevas amenazas en la red.
Estas Honeypot trabajan únicamente emulando servicios y sistemas operativos.
La actividad del atacante se encuentra limitada al nivel de emulación del
Honeypot. Por ejemplo, la emulación de un servidor HTTP podría responder tan
sólo a peticiones de un fichero en particular e implementar sólo un subconjunto de
las especificaciones HTTP. El nivel de interacción debe ser el justo y suficiente
para engañar al atacante o a una herramienta automatizada, tal como un worm que
está buscando un fichero concreto para comprometer al servidor.
La ventaja de una Honeypot de Baja Interacción radica principalmente en su
simplicidad y fácil mantenimiento, ya que estas tienden a ser fáciles de utilizar y
mantenerse con un riesgo mínimo. Normalmente, basta con implementar la
Honeypot de baja interacción y dejarla recolectar datos por sí sola. La
83
información puede tratar sobre propagación de gusanos o worms en la red o el
escaneo causado por spammer de las transmisiones abiertas en la red.
La desventaja de este tipo de Honeypot es la limitada cantidad de información
recogida, al no permitirle un mayor nivel de interacción hacia el atacante, este
queda limitado en su ataque y sólo muestra quizá lo que sería uno de sus primeros
pasos dentro de la bitácora planificada para su ataque. En el ejemplo de la
emulación del servicio HTTP, con un Honeypot de baja interacción sólo se podría
registrar intentos del atacante de entrar al sistema por medio de alguna
vulnerabilidad en este servicio, pero nunca se sabría cuáles son las intenciones
reales de ingreso (Avilés, 2009).
Las Honeypot de baja interacción se dedican primordialmente a recolectar datos y
recoger información de alto nivel sobre los patrones de ataque. Además, pueden
ser usadas como un tipo de detección de intrusiones en el sistema a modo de
aviso. Asimismo, pueden ser utilizados para atraer a los intrusos y alejarlos de las
máquinas reales, aquellas que realmente son útiles.
Entre los más comunes Honeypots de baja interacción están (Segobia, 2010):
Honeyd: Quizás uno de los Honeypots más sencillos y populares. Es un
demonio que crea hosts virtuales en una red. Los anfitriones pueden ser
configurados para ejecutar servicios arbitrarios, y su comportamiento puede
ser adaptado para que simule estar en ejecución en ciertos sistemas operativos.
84
HoneyC: El objetivo de este Honeypot es la identificación de servidores web
maliciosos en la red. Para ello emula varios clientes y recaba la mayor
cantidad posible de información de las respuestas de los servidores cuando
estos contestan a sus solicitudes de conexión. HoneyC es ampliable de
diversas formas: pueden utilizarse diferentes clientes, sistemas de búsqueda y
algoritmos de análisis.
Nephentes: Honeypot de baja interacción que pretende emular
vulnerabilidades conocidas para recopilar información sobre posibles ataques.
Nephentes está diseñado para emular vulnerabilidades que los gusanos utilizan
para propagarse y cuando estos intentan aprovecharlas, captura su código para
su posterior análisis.
Honeytrap: Este Honeypot está destinado a la observación de ataques contra
servicios de red. En contraste con otros Honeypots, que se suelen centrar en la
recogida de malware, el objetivo de Honeytrap es la captura de exploits.
Glastopf: Emula miles de vulnerabilidades para recopilar datos de los ataques
contra aplicaciones web. La base para la recolección de información es la
respuesta correcta que se le ofrece al atacante cuando intenta explotar la
aplicación web. Es fácil de configurar y una vez indexado por los buscadores,
los intentos de explotación de sus vulnerabilidades se multiplican.
85
Honeypot de alta interacción: Este tipo de Honeypots constituyen una solución
compleja, ya que implica la utilización de sistemas operativos y aplicaciones
reales montados en hardware real sin la utilización de software de emulación e
involucrando aplicaciones reales que se ejecutan de manera normal, muchas veces
en directa relación a servicios como bases de datos y directorios de archivos
compartidos. Debido a todo esto constituyen una solución mucho más compleja,
son más difíciles de implementar y mantener. Retomando el ejemplo del servicio
HTTP, en este caso no se emularía dicho servicio, ahora se instalaría un sistema
operativo Windows o Unix, al cual se le instalará el servidor HTTP verdadero, al
ponerlo en línea en algunos casos estará en la misma red de otros sistemas en
producción, y brindará al atacante un nivel real de interactividad con el servicio.
Este tipo de Honeypot se trata de un sistema de computadora convencional. El
sistema no tiene tareas en la red o actividad de usuarios regulares. Así, esta
máquina no debe tener ningún proceso inesperado ni generar ningún tipo de
tráfico en la red, excepto el propio de un sistema que está activo (demonios o
servicios corriendo en el sistema). Estas presunciones facilitan el proceso de
detección del ataque: toda interacción con la Honeypot resultará sospechosa y se
convertirá en un punto de mira para una posible acción maliciosa. De este modo,
todo el tráfico de la red hacia o desde la Honeypot es registrado, así como toda la
actividad del sistema, que será grabada para un análisis posterior. También se
puede combinar el uso de varios Honeypots en una misma red, configurando de
86
esta manera una Honeynet. Por lo general, las Honeynet consisten en varias
Honeypot de diferentes tipos en cuanto a plataformas y/o sistemas operativos.
Esto permite recolectar datos sobre distintos tipos de ataques simultáneamente.
Las ventajas de este tipo de Honeypot son dos: Por un lado, se tiene la posibilidad
de capturar grandes cantidades de información referentes al modus operandi de
los atacantes debido a que los intrusos se encuentran interactuando frente a un
sistema real. De esta manera, se está en posibilidad de estudiar la extensión
completa de sus actividades: cualquier cosa desde nuevos Rootkit, zero days,
hasta sesiones internacionales. Por otro lado, las Honeypot de Alta Interacción no
asumen nada acerca del posible comportamiento que tendrá el atacante,
proveyendo un entorno abierto que captura todas las actividades realizadas y que
ofrece una amplia gama de servicios, aplicaciones y depósitos de información que
pueden servir como blanco potencial para aquellos servicios que específicamente
se desean comprometer. Esto permite a las soluciones de alta interacción conocer
comportamientos no esperados. Sin embargo, esta última capacidad también
incrementa el riesgo de que los atacantes puedan utilizar estos sistemas operativos
reales para lanzar ataques a sistemas internos que no forman parte de las
Honeypot, convirtiendo una carnada en un arma. En consecuencia, se requiere la
implementación de una tecnología adicional que prevenga al atacante el dañar
otros sistemas que no son Honeypot o que prive al sistema comprometido de sus
capacidades de convertirse en una plataforma de lanzamiento de ataques.
87
Otra de las ventajas que se obtiene al montar esta solución es la gran cantidad de
información que se puede recoger del atacante, según la complejidad de la
Honeypot, podemos ser capaces de conocer exactamente todos los pasos del
intruso, sus técnicas y sus herramientas.
Aunque este tipo de Honeypot es, tal y como se ha comentado, sumamente útil
como herramienta de seguridad e investigación, se ha de tener en cuenta la
cantidad de recursos que consumen, siendo ésta su principal desventaja.
Entre las Honeypot de altas interacciones más usadas se pueden destacar las
siguientes (Segobia, 2010):
HI-HAT (High Interaction Honeypot Analysis Toolkit): Herramienta que
transforma aplicaciones PHP en aplicaciones honeypot de alta interacción.
Además ofrece una interfaz web que permite consultar y monitorizar los datos
registrados.
HoneyBow: Herramienta de recopilación de malware que puede integrarse
con el Honeypot de baja interacción Nephentes para crear una herramienta de
recolección mucho más completa.
Sebek: Funciona como un HIDS (Host Intrusion Detection System)
permitiendo capturar una gran variedad de información sobre la actividad en
un sistema ya que actúa a muy bajo nivel. Es una arquitectura cliente-servidor,
con capacidad multiplataforma, que permite desplegar Honeypots cliente en
88
sistemas Windows, Linux, Solaris, etc., que se encargan de la captura y el
envío de la actividad recopilada hacia el servidor Sebek.
Capture-HPC: Del tipo cliente, como HoneyC, identifica servidores
potencialmente maliciosos interactuando con ellos, utilizando una máquina
virtual dedicada y observando cambios de sistema no previstos o autorizados.
Otra clasificación para las Honeypot se basa en su implementación (The Honeynet
Proyect, 2010). Se distinguen dos tipos: Honeypot Físicas y Honeypot Virtuales.
Honeypot Físicas: Las Honeypot Físicas son implementadas en una máquina
física real, convirtiéndola en una Honeypot de alta interacción la cual puede ser
comprometido totalmente. Como constituyen una máquina real, normalmente son
más caras y complejas en su implementación.
Honeypot Virtuales: En este caso, se trata de utilizar máquinas virtuales para la
implementación de la Honeypot. Este método resulta mucho más sencillo de
mantener que una Honeypot física y con una escalabilidad mucho mayor. Así,
sería posible tener miles de estos señuelos en una sola máquina física. Además,
resultan de muy bajo coste económico, por lo que son accesibles a prácticamente
cualquier persona.
89
Para la virtualización, se suele hacer uso de programas como VMware o User-
Mode Linux. Ambas aplicaciones habilitan a una máquina la simulación de un
sistema completo o no, que responde al tráfico de red enviado. Para cualquier
trabajo con las Honeypot, es necesario que el sistema pueda acceder a Internet, así
como que Internet pueda acceder al sistema. La mayoría de personas están
conectadas a Internet vía DSL o módems.
Para una experimentación prudente, es necesario tener un proveedor ISP que
suministre una conectividad IP real completa.
Arquitectura de las Honeypot
La ubicación de una Honeypot es fundamental para maximizar su efectividad, debido
a su carácter pasivo, una ubicación de difícil acceso eliminará gran parte de su
atractivo para potenciales atacantes. Por otro parte, si su ubicación es demasiado
artificial u obvia cualquier experimentado atacante la descubrirá y evitará todo
contacto con ella.
Además hay tener en cuenta que debe integrarse con el resto del sistema que se
encuentran implantados (servidores web, servidores de ficheros, DNS, etc.), y
asegurarse de que no interfiere con las otras medidas de seguridad que puedan ya
existir en la red.
La bibliografía consultada establece tres puntos básicos para albergar una Honeypot
que se adapte a las diversas necesidades (Levine, 2003) (Even, 2000):
90
Delante del Firewall: Al colocarlo delante del Firewall, hace que la seguridad de
nuestra red interna no se vea comprometida en ningún momento ya que el
Firewall evitara que el ataque vaya a la red interna. Como este se encuentra fuera
de la zona protegida por el firewall, puede ser atacado sin ningún tipo de peligro
para el resto de nuestra red.
Esta ubicación permite tener un acceso directo a los atacantes, puesto que el
firewall ya se encarga de filtrar una parte del tráfico peligroso o no deseado,
obteniendo trazas reales de su comportamiento y estadísticas muy fiables sobre la
cantidad y calidad de ataques que puede recibir la red.
Ilustración 5. Implementación de Honeypot delante del Firewall.
Además con esta configuración se evitan las alarmas de otros sistemas de
seguridad de la red al recibir ataques en el Honeypot. Sin embargo, existe el
91
peligro de generar mucho tráfico debido precisamente a la facilidad que ofrece al
Honeypot para ser atacado.
Las dificultades al usar este método son:
El ancho de banda que se consumiría, ya que al estar en el exterior del
Firewall no abra dificultad en acceder a él.
A él estar fuera de nuestro Firewall, no podremos controlar los ataques
internos.
Detrás del Firewall: En esta posición, la Honeypot queda afectado por las reglas
de filtrado del firewall. Por un lado hay que modificar las reglas para permitir
algún tipo de acceso a la Honeypot por posibles atacantes externos, y por el otro
lado, al introducir un elemento potencialmente peligroso dentro de la red se puede
permitir a un atacante que gane acceso a la Honeypot un pase directo a la red
interna.
La ubicación tras el firewall permite la detección de atacantes internos así como
firewalls mal configurados, máquinas infectadas por gusanos o virus e incluso
atacantes externos.
92
Ilustración 6. Implementación de Honeypot detrás del Firewall.
Sin embargo las contrapartidas más destacables de esta arquitectura son la gran
cantidad de alertas que generarán otros sistemas de seguridad de la red, por lo que
existe la necesidad de asegurar el resto de la red interna contra el Honeypot
mediante el uso de firewalls extras o sistemas de bloqueo de acceso, ya que si un
atacante logra comprometer el sistema tendrá vía libre en su ataque a toda la red.
En una zona desmilitarizada: Al posicionarlo aquí se hace posible la separación
del Honeypot de la red interna y la unión con los servidores, esta posibilidad
permite detectar tanto ataques internos como externos con una pequeña
reconfiguración del Firewall, debido a que se encuentra en una zona publica.
Además se elimina las alarmas de otros sistemas internos de seguridad y el
peligro que supone para la red interna al no estar en contacto directo con esta.
93
Ilustración 7. Implementación de Honeypot en una zona desmilitarizada.
Aplicaciones prácticas de las Honeypot.
Cuando son utilizados con propósitos productivos, las Honeypot proveen protección a
la organización mediante prevención, detección y respuesta a un ataque. Cuando son
utilizados con propósitos de investigación, éstos recolectan información que depende
del contexto bajo el cual hayan sido implementados.
Algunas organizaciones estudian la tendencia de las actividades intrusivas, mientras
otras están interesadas en la predicción y prevención anticipada. Las Honeypot
pueden ayudar a prevenir ataques en varias formas:
Defensa contra ataques automatizados: Estos ataques son basados en
herramientas que aleatoriamente rastrean redes enteras buscando sistemas
vulnerables. Si un sistema vulnerable es encontrado, estas herramientas
94
automatizadas atacaran y tomaran el sistema (con gusanos que se replican en la
víctima). Uno de las métodos para proteger de tales ataques es bajando la
velocidad de su rastreo para después detenerlos. Llamados “Sticky Honeypots”,
estas soluciones monitorean el espacio IP no utilizado. Cuando los sistemas son
analizados, estas Honeypots interactúan con él y disminuyen la velocidad del
ataque. Esto es excelente para disminuir la velocidad o para prevenir la
diseminación de gusanos que han penetrado en la red interna.
Protección contra intrusos humanos: Este concepto se conoce como engaño o
disuasión. La idea de esta contramedida es confundir al atacante y hacerle perder
tiempo y recursos mientras interactúa con el Honeypot. Mientras ese proceso se
lleva a cabo, se puede detectar la actividad del atacante y se tiene tiempo para
reaccionar y detener el ataque.
Métodos de Detección Precisa: Tradicionalmente, la detección ha sido una tarea
extremadamente difícil de llevar a cabo. Las tecnologías como los Sistemas de
Detección de Intrusos y sistemas de logueo han sido deficientes por diversas
razones: Generan información en cantidades excesivas, grandes porcentajes de
falsos positivos (o falsas alarmas), no cuentan con la habilidad de detectar nuevos
ataques y/o de trabajar en forma encriptada o en entornos IPv6.
Los Honeypots son excelentes en el ramo de la detección, solventando muchos de
los problemas de la detección clásica: Reducen los falsos positivos, capturan
95
pequeñas cantidades de datos de gran importancia como ataques desconocidos y
nuevos métodos de explotación de vulnerabilidades (Zero Day) y trabajan en
forma encriptada o en entornos Ipv6.
Labor Ciber-Forense: Una vez que un administrador de red se da cuenta que
uno de sus servidores fue comprometido ilegalmente, es necesario proceder
inmediatamente a realizar un análisis forense en el sistema comprometido para
realizar un control de daños causados por el atacante. Sin embargo, hay dos
problemas que afectan a la respuesta al incidente: frecuentemente, los sistemas
comprometidos no pueden ser desconectados de la red para ser analizados y la
cantidad de información que se genera es considerablemente extensa, de manera
que es muy difícil determinar lo que hizo el atacante dentro del sistema.
Las Honeypot ayudan a solventar ambos problemas, ya que son excelentes
herramientas de análisis de incidencias que pueden rápida y fácilmente ser
sacados de la red para un análisis forense completo, sin causar impacto en las
operaciones empresariales diarias. La única actividad que guardan los Honeypots
son las relacionadas con el atacante, ya que no son utilizadas por ningún otro
usuario, excepto los atacantes. La importancia de las Honeypot, es la rápida
entrega de la información, analizada en profundidad previamente, para responder
rápida y eficientemente a un incidente.
96
FUNDAMENTACIÓN LEGAL
Según el Reglamento de la Investigación Científica y Tecnológica de la
Universidad de Guayaquil:
Título Preliminar
Disposiciones Fundamentales
Objetivo De La Investigación Científica Y Tecnológica
Art. 1.- Los objetivos de la investigación en la Universidad de Guayaquil están
concebidos como parte de un proceso de enseñanza único, de carácter docente
investigativo, orientado según norma el Estatuto Orgánico, para permitir el
conocimiento de la realidad nacional y la creación de ciencia y tecnología, capaces de
dar solución a los problemas del país. Las investigaciones dirigidas a la comunidad
tienen por finalidad estimular las manifestaciones de la cultura popular, mejorar las
condiciones intelectuales de los sectores que no han tenido acceso a la educación
superior; la orientación del pueblo frente a los problemas que lo afectan; y la
prestación de servicios, asesoría técnica y colaboración en los planes y proyectos
destinados a mejorar las condiciones de vida de la comunidad.
Descripción: Este artículo guarda estrecha relación con los puntos antes mecionados
en el Capítulo I, en el apartado de Justificación e Importancia; donde se hace
referencia a la Relevancia Social e Implicaciones Practicas del presente proyecto de
Tesis. En estos dos puntos mencionados anteriormente se hace incapie en que el
proceso y resultados de esta investigación estan orientados a una población no solo
97
estudiantil que busca mejorar sus conocimientos y poner en alto el nobre de nuesta
Alma Máter, sino tambien, que intenta llegar y ser util al proporcionar el
conocimiento necesario para roselver un problema real y actual que afecta a la
sociedad y grandes empresas cuya base de sus operaciones es la tecnologia
informática.
Capítulo IV
Coordinación De Investigación De Las Unidades Académicas
Art. 14.- Las unidades académicas son responsables de la labor investigativa de sus
Profesores (as) e Investigadores (as), y trabajarán por lograr la mayor integración
posible de los proyectos de investigación a las necesidades del desarrollo científico y
metodológico del pregrado y el posgrado, y a los fines de la formación integral y
profesional de sus docentes y alumnos.
Descripción: Con el desarrollo de este proyecto se pretende sembrar la idea de
inducir la investigación dentro de la CISC, impulsando y dando a conocer a las
autoridades de este prestigioso establecimiento de Educación Superior, el concepto de
técnicas y metodologías innovadoras en el campo de la Ingenieria en Sistemas.
98
Según la Ley de Educación Superior:
Capítulo I
De la constitución, fines y objetivos del sistema nacional de educación superior
Art.3.- Las instituciones del Sistema Nacional de Educación Superior ecuatoriano,
en sus diferentes niveles, tienen los siguientes objetivos y Estrategias fundamentales:
e) Desarrollar sus actividades de investigación científica en armonía con la
legislación nacional de ciencia y tecnología y la Ley de Propiedad Intelectual.
Descripción: Uno de los puntos destacados en Capítulo I, Evaluación del Problema;
es la Originalidad del presente proyecto. Considerando que dentro del entorno e
institución donde se desarrollara la investigación, será un enfoque totalmente
novedoso, mostrando la capacidad y potencial de este concepto. Y por supuesto
respetando investigaciones realizadas anteriormente pero tomandolas como modelos
de inspiración.
Sección Novena
De la Ciencia y Tecnología
Art. 80.- El Estado fomentará la ciencia y la tecnología, especialmente en todos los
niveles educativos, dirigidos a mejorar la productividad, la competitividad, el manejo
sustentable de los recursos naturales y a satisfacer las necesidades básicas de la
población.
99
La investigación científica y tecnológica se llevará a cabo en las universidades,
escuelas politécnicas, institutos superiores técnicos y tecnológicos y centros de
investigación científica, en coordinación con los sectores productivos cuando sea
pertinente, y con el organismo público que establezca la ley, la que regulará también
el estatuto del investigador científico.
Descripción: A partir del desarrollo del proyecto, se avisora fomentar y dar a
conocer, como ya se ha mencionado en reiteradas ocaciones, el potencial de la
herramienta a desplegar gracias a esta investigación, cuyo propósito es servir tanto a
la institución educativa como tal y también estimular la continua búsqueda de
técnicas novedosas utiles para una sociedad que mira hacia un futuro basado en la
tecnología.
Según la Ley de Propiedad Intelectual:
Sección V
Disposiciones Especiales sobre ciertas Obras
Art. 28. Los programas de ordenador se consideran obras literarias y se protegen
como tales. Dicha protección se otorga independientemente de que hayan sido
incorporados en un ordenador y cualquiera sea la forma en que estén expresados, ya
sea en forma legible por el hombre (código fuente) o en forma legible por máquina
(código objeto), ya sean programas operativos y programas aplicativos, incluyendo
100
diagramas de flujo, planos, manuales de uso, y en general, aquellos elementos que
conformen la estructura, secuencia y organización del programa.
Descripción: Hay que considerar que para el desarrollo de la herramienta aquí
mencionada, se esta respetando tanto conceptos de autores asi como software
existente en el medio, a pesar de que algunos suelen ser de libre distribución. Por otro
lado la idea del desarrollo de esta investigación nació del uso de herramientas que
actualmente se usan, únicamente tomandolas y mejorando su funcionalidad. Ademas
se recibió apoyo de un grupo de desarrolladores que impulsan el uso de las
Honeypots y Honeynets como nuevo método para conocer a los intrusos e
implementar mejoras en la infraestructura de seguridad de una organización.
Según el Reglamento a la Ley de comercio electrónico, firmas electrónicas y
mensajes de datos.
Art. 21.- De la seguridad en la prestación de servicios electrónicos.- La prestación
de servicios electrónicos que impliquen el envío por parte del usuario de información
personal, confidencial o privada, requerirá el empleo de sistemas seguros en todas las
etapas del proceso de prestación de dicho servicio. Es obligación de quien presta los
servicios, informar en detalle a los usuarios sobre el tipo de seguridad que utiliza, sus
alcances y limitaciones, así como sobre los requisitos de seguridad exigidos
legalmente y si el sistema puesto a disposición del usuario cumple con los mismos.
En caso de no contar con seguridades se deberá informar a los usuarios de este hecho
101
en forma clara y anticipada previo el acceso a los sistemas o a la información e
instruir claramente sobre los posibles riesgos en que puede incurrir por la falta de
dichas seguridades.
Se consideran datos sensibles del consumidor sus datos personales, información
financiera de cualquier tipo como números de tarjetas de crédito, o similares que
involucren transferencias de dinero o datos a través de los cuales puedan cometerse
fraudes o ilícitos que le afecten.
Por el incumplimiento de las disposiciones contenidas en el presente artículo o por
falta de veracidad o exactitud en la información sobre seguridades, certificaciones o
mecanismos para garantizar la confiabilidad de las transacciones o intercambio de
datos ofrecida al consumidor o usuario, el organismo de control podrá exigir al
proveedor de los servicios electrónicos la rectificación necesaria y en caso de
reiterarse el incumplimiento o la publicación de información falsa o inexacta, podrá
ordenar la suspensión del acceso al sitio con la dirección electrónica del proveedor de
servicios electrónicos mientras se mantengan dichas condiciones.
Descripción: En algunos países de Sudamerica el Delito Informático es penado por la
ley, no obstante en nuestro país, la Constitución y Leyes no se contempla algo asi. Sin
embargo esto no quiere decir que en el Ecuador no existan delitos de esta clase. A
pesar de esto muchas organizaciones que usan una infraestructura de TI (Tecnología
de la Información), esta siempre pendientes de mantener sus servicios lo mas seguros
posibles evitando asi problemas posteriores que podrían hacer que el prestigio de la
102
organización se vea afectada. Es aquí donde interviene las herramientas de seguridad
para estos sistemas, y porque no usar un enfoque novedoso que contribuiría a una
mejora de los métodos de seguridad existentes, Conociendo al Enemigo y procurando
aprender de el y sus técnicas.
103
PREGUNTAS A CONTESTARSE
En base al análisis de la problemática presentada en esta investigación con respecto a
los nuevos escenarios y las técnicas de ataque que evolucionan a la par con la
tecnología, se han planteado las siguientes preguntas:
Si los niveles de intrusión y ataque a las redes han aumentado considerablemente
los últimos años, y si se procede a aplicar mejoras a las actuales herramientas de
seguridad corrigiendo los errores para disminuir la vulnerabilidad, adaptando a
ellas la tecnología Honeypot; ¿Será viable que en cierto modo aplicando este
nuevo concepto se reduzcan estos índices en una determinada organización?
¿Al hacer uso de la Tecnología Honeypot, añadiendo esta nueva herramienta a la
infraestructura de seguridad de la red de una organización determinada, existe la
posibilidad de que se pueda encontrar errores en la configuración de los
elementos que conforman los esquemas de seguridad?
¿Las ventajas que provee la tecnología Honeypot son un complemento útil, como
para trabajar en conjunto con las demás herramientas de seguridad, sin poner en
riesgo la infraestructura completa de la red?
104
La principal filosofía que promueve a las Honeypot es: “Conoce a tu enemigo”,
tomando como premisa esto; ¿Es posible aprender de los intrusos y de sus
técnicas de ataque, como para mejorar un esquema de seguridad y así corregir las
fallas encontradas?
¿Existirá la posibilidad de que gracias a la utilidad que ofrece la tecnología
Honeypot, los administradores de una red se adapten al uso de esta herramienta y
acojan buenas prácticas en un esquema de seguridad?
105
VARIABLES DE LA INVESTIGACIÓN
Variable Independiente
Se ha considerado como variable independiente para esta investigación:
La existencia o no de vulnerabilidad: A nivel informático, la vulnerabilidad es
considerada un defecto de hardware o software. Es el resultado de un fallo o
deficiencia durante el proceso de creación de programas o también una falta de
atención a los detalles mientras se instala algún tipo de hardware. Estos defectos
son creados de manera inconsciente y si no se corrigen a tiempo harán que se vea
comprometidos los sistemas de una organización o empresa y como resultado,
estará propensa a recibir ataques y por sobre todo a perder información valiosa.
Variable Dependiente
La variable dependiente está definida por:
Ajuste a nuevas técnicas en Seguridad de Redes: Debido a la constante
evolución de la tecnología y amenazas, es necesario realizar ajustes en las
herramientas de seguridad de redes que existen en la actualidad, ya sea, acoplando
una nueva tecnología o corrigiendo los errores que minimizan la efectividad de
estas herramientas. Pero lo más conveniente para cualquier organización que
considere importante su red y la seguridad de la misma, seria adoptar como
contramedida una técnica que permita a los expertos identificar las fallas en la
seguridad para luego proceder a fortalecer estos puntos y mejorar el desempeño
del esquema de seguridad establecido.
106
DEFINICIONES CONCEPTUALES
Red de datos: Se denomina red de datos a aquellas infraestructuras o redes de
comunicación que se han diseñado específicamente a la transmisión de
información mediante el intercambio de datos. La red de datos, también conocida
como red de ordenadores o red informática, es un conjunto de equipos conectados
por medio de cables, señales, ondas o cualquier otro método de transporte de
datos, que comparten información, recursos y servicios.
Hardware: Término inglés que hace referencia a cualquier componente físico
tecnológico, que trabaja o interactúa de algún modo con la computadora. No sólo
incluye elementos internos como el disco duro, CD-ROM, disquetera, sino que
también hace referencia al cableado, circuitos, case, etc. E incluso hace referencia
a elementos externos como la impresora, el mouse, el teclado, el monitor y demás
periféricos.
Software: El software, en sentido estricto, es todo programa o aplicación
programada para realizar tareas específicas. El término "software" fue usado por
primera vez por John W. Tukey en 1957. En una definición más amplia, se
conoce como software al equipamiento lógico o soporte lógico de una
computadora digital; comprende el conjunto de los componentes lógicos
107
necesarios que hacen posible la realización de tareas específicas, en
contraposición a los componentes físicos del sistema, llamados hardware.
Sistema Operativo: Un Sistema Operativo (SO) es el software básico de una
computadora que provee una interfaz entre el resto de programas del ordenador,
los dispositivos hardware y el usuario. Las funciones básicas del Sistema
Operativo son administrar los recursos de la máquina, coordinar el hardware y
organizar archivos y directorios en dispositivos de almacenamiento.
Host: Se refiere a las computadoras conectadas a la red, que proveen o utilizan
los servicios que ofrece. Los usuarios deben utilizar hosts para tener acceso a la
red. En general, los hosts son computadoras mono o multiusuario que ofrecen
servicios de transferencia de archivos, conexión remota, servidores de base de
datos, etc.
Equipos de comunicación: Son los dispositivo de hardware, sean estos internos
o externos, que permiten la conexión y comunicación entre los elementos que
conforman una red.
Protocolo: Es un conjunto de reglas usadas por las computadoras y equipos de
comunicación, para establecer una conexión o comunicarse unas con otras a
través de una determinada red. Un protocolo es una convención o estándar que
108
controla o permite la conexión, comunicación, y transferencia de datos entre dos
puntos finales.
Daemon, Demonio: Programa o proceso que se ejecuta en segundo plano en los
sistemas UNIX/Linux, es decir, se ejecuta sin intervención del usuario, mientras
este ejecuta o trabaja con otras aplicaciones.
IDS: El término IDS (Sistema de detección de intrusiones) hace referencia a un
mecanismo que, sigilosamente, escucha el tráfico en la red para detectar
actividades anormales o sospechosas, y de este modo, reducir el riesgo de
intrusión.
Auditoria Informática: La auditoría informática es el proceso de recoger,
agrupar y evaluar evidencias para determinar si un sistema de información
salvaguarda el activo empresarial, mantiene la integridad de los datos, lleva a
cabo eficazmente los fines de la organización, utiliza eficientemente los recursos,
y cumple con las leyes y regulaciones establecidas. También permiten detectar de
forma sistemática el uso de los recursos y los flujos de información dentro de una
organización y determinar qué información es crítica para el cumplimiento de su
misión y objetivos, identificando necesidades, duplicidades, costes, valor y
barreras, que obstaculizan flujos de información eficientes.
109
Herramientas, Mecanismos o Esquema de seguridad de redes: Conjunto de
técnicas o instrumentos sean estos, de hardware, software, reglas o normas que
son usadas para proteger un grupo de computadoras que formen una red dentro o
fuera de una organización o empresa, y cuya comunicación se desea proteger de
elementos no deseados tales como intrusos y software maliciosos (malware).
Intruso o Atacante: Es una persona o individuo que intenta acceder a un sistema
informático sin autorización, con el fin de obtener información del sistema o
sabotear al mismo. En contraste con los hackers, los intrusos tienen a menudo
malas intenciones y suelen disponer de muchos medios para introducirse en un
sistema.
Riesgo: En el contexto de la seguridad informática, la palabra riesgo casi siempre
nos hace pensar en las amenazas que pueden atentar contra la seguridad de
nuestros recursos, nuestra información o nuestra empresa. En un sentido más
estricto se considera riesgo al conjunto de circunstancias que pueden afectar el
desempeño de todo sistema informático.
Vulnerabilidad: A nivel informático, es considerada un defecto de hardware o
software. Es el resultado de un fallo o deficiencia durante el proceso de creación
de programas o también una falta de atención a los detalles mientras se instala
algún tipo de hardware. Estos defectos si no se corrigen a tiempo harán que se vea
110
comprometidos los sistemas de una organización o empresa y como resultado,
estará propensa a recibir ataques y por sobre todo a perder información valiosa.
Amenaza: En el ámbito de la seguridad informática se considera amenaza a un
quebrantamiento de las normas que van en contra de la seguridad informática, es
decir, burla los mecanismos de seguridad poniendo en riego sistemas enteros
provechándose de las vulnerabilidades de estos con fines perjudiciales. En
algunos países es considerada un delito e incluso es penado por la ley.
Puertos de Red: Un puerto de red o puerto TCP/IP hace referencia a una interfaz
de comunicación no física utilizada para que dos ordenadores intercambien datos
haciendo uso de un servicio particular. El servicio que se utilice quedará
representado por un número seguido del protocolo que se utilice para la
comunicación. A los puertos se les asigna una numeración de 2 bytes (16 bits),
por lo que existen 65535. Aunque se puede usar cualquiera de ellos para cualquier
protocolo, existen tres categorías:
1. Los puertos inferiores al 1024 son puertos reservados para el sistema
operativo y usado por "protocolos bien conocidos".
2. Los comprendidos entre 1024 (0400 en hexadecimal) y 49151 (BFFF en
hexadecimal) son denominados "registrados" y pueden ser usados por
cualquier aplicación.
111
3. Los comprendidos entre los números 49152 (C000 en hexadecimal) y 65535
(FFFF en hexadecimal) son denominados dinámicos o privados, porque son
los usados por el sistema operativo cuando una aplicación tiene que
conectarse a un servidor y por tanto necesita un puerto por donde salir.
TCP (Transmission Control Protocol): Protocolo de Control de Transmisión,
provee un flujo de bytes confiable de extremo a extremo sobre una Internet no
confiable. TCP puede adaptarse dinámicamente a las propiedades de Internet y
manejar fallas de muchas clases. Este protocolo garantiza que los datos serán
entregados en su destino sin errores y en el mismo orden en que se transmitieron.
También proporciona un mecanismo para distinguir distintas aplicaciones dentro
de una misma máquina.
IP (Internet Protocol): Protocolo de Internet, es uno de los protocolos de Internet
más importantes ya que permite el desarrollo y transporte de datagramas de IP
(paquetes de datos), aunque sin garantizar su "entrega". En realidad, el protocolo
IP procesa datagramas de IP de manera independiente al definir su representación,
ruta y envío.
ICMP (Internet Control Message Protocol): Protocolo de Control de Mensajes
de Internet, notifica errores del Protocolo de Internet (IP). Como tal, se usa para
112
enviar mensajes de error, indicando por ejemplo que un servicio determinado no
está disponible o que un router o host no puede ser localizado.
ICMP difiere del propósito de TCP y UDP ya que generalmente no se utiliza
directamente por las aplicaciones de usuario en la red. La única excepción es la
herramienta ping y traceroute, que envían mensajes de petición Echo ICMP (y
recibe mensajes de respuesta Echo) para determinar si un host está disponible, el
tiempo que le toma a los paquetes en ir y regresar a ese host y cantidad de hosts
por los que pasa.
UDP (User Datagram Protocol): Protocolo Datagrama de Usuario, proporciona
muy pocos servicios de recuperación de errores, ofreciendo en su lugar una
manera directa de enviar y recibir datagramas con datos del host a través una red
IP.
FTP (File Transfer Protocol): Protocolo de Transferencia de Archivos, es un
protocolo de red para la transferencia de archivos entre sistemas conectados a una
red, basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede
conectar a un servidor para descargar archivos desde él o para enviarle archivos,
independientemente del sistema operativo utilizado en cada equipo.
113
SMTP (Simple Mail Transfer Protocol): Protocolo Simple de Transferencia de
Correo, protocolo de red basado en texto utilizado para el intercambio de
mensajes de correo electrónico entre computadoras u otros dispositivos.
SSH (Secure Shell): Intérprete de órdenes segura, es el nombre de un protocolo y
del programa que lo implementa, y sirve para acceder a máquinas remotas a través
de una red. Permite manejar por completo la computadora mediante un intérprete
de comandos. Se puede decir que es más seguro que Telnet.
Telnet (Telecommunication Network): Es el nombre de un protocolo de red y del
programa que lo implementa, que sirve para acceder mediante una red a otra
máquina para manejarla remotamente. A diferencia de SSH, Telnet es un
protocolo poco seguro, debido a que Telnet no encripta la información que envía
por la red.
NetBIOS (Network Basic Input/Output System): Es una especificación de
interfaz para acceso a servicios de red, es decir, una capa de software desarrollado
para enlazar un sistema operativo de red con hardware específico. De forma
sencilla, NetBIOS, permite a las aplicaciones 'hablar' con la red. Su intención es
conseguir aislar los programas de aplicación de cualquier tipo de dependencia del
hardware. También evita que los desarrolladores de software tengan que
114
desarrollar rutinas de recuperación ante errores o de enrutamiento o
direccionamiento de mensajes a bajo nivel.
115
CAPÍTULO III
METODOLOGÍA
DISEÑO DE LA INVESTIGACIÓN
MODALIDAD DE LA INVESTIGACIÓN
El presente proyecto corresponde a la modalidad bibliográfica, debido a que mucha
de la información que comprende esta investigación se halla en documentos, textos,
guías, revistas, internet; lo que permitirá no solo determinar la utilidad de este
proyecto de tesis, sino, que se podrá analizar resultados obtenidos basados en otras
investigaciones, construir un modelo de demostración y generar conclusiones,
recalcando que habrá una parte en la cual se necesite obtener información de fuentes
reales al punto de llegar a realizar entrevistas para obtener información que aporte a
este trabajo de investigación.
Tipo de Investigación.- El tipo de investigación que se adapta a este trabajo se
encuentra en la categoría de proyecto factible, debido a que permitirá la elaboración
y diseño de una propuesta que se podría convertir en un modelo operativo viable, o
una solución posible, cuyo propósito es satisfacer una necesidad o solucionar un
problema de una determinada organización. Además el proyecto factible debe tener
apoyo en una investigación de tipo documental o bibliográfica.
116
También está enmarcado en el tipo de investigación aplicada, ya que usa
conocimientos existentes y los pone en práctica, realizando un aporte significativo y
viable para cualquier entidad interesada en el tema que se trata en la presente. La
investigación aplicada, guarda íntima relación con la básica, pues depende de los
descubrimientos y avances de la investigación básica y se enriquece con ellos, pero se
caracteriza por su interés en la aplicación, utilización y consecuencias prácticas de los
conocimientos (Sabino, 1978). La investigación aplicada busca el conocer para hacer,
para actuar, para construir, para modificar (Rutinel, 1997).
POBLACIÓN Y MUESTRA
Población
Para el desarrollo de esta investigación en lo que respecta a los análisis de varios
factores que influyan en la seguridad de una red, se ha elegido como el escenario en
donde se producen y se obtienen los datos un centro de educación superior, como lo
es la Carrera de Ingeniería en Sistemas Computacionales y Networking de la
Universidad de Guayaquil; específicamente el Departamento Informático. Y debido a
que, como toda área de tecnología de la información y seguridad es limitada a su
acceso, los datos que se manejan contienen información muy sensible y esta
categorizada como información clasificada y que además está restringida solo para el
uso de personal autorizado. Cabe destacar que se tomo en consideración opiniones
muy importantes como la del personal integrante del área en mención y ayudantes
que desempeñan sus actividades dentro del mismo departamento. Además se planifica
117
obtener información que permita evaluar la vulnerabilidad que se podrían presentar
con los usuarios finales que hacen uso de los servicios que presta la Red de la CISC.
Muestra
Para determinar a qué elementos de la población antes mencionada se debía aplicar
los instrumentos de recolección de datos, se procedió a realizar un análisis descriptivo
de las tareas que realizaban cada uno de los individuos pertenecientes al área de
investigación. Con esto se logro establecer que los más aptos para ser entrevistados
serian aquellos individuos relacionados con el entorno de la infraestructura de la red
de la CISC, incluyendo en este grupo a los administradores y ayudantes. Además para
corroborar si las respuesta dadas por los agentes que controlan la red eran
efectivamente reales, se seleccionó un pequeño grupo que haga uso y trabaje a diario
con los servicios que ofrece la red, es decir, los Usuarios Finales. Cabe destacar que
la muestra seleccionada no sobrepasa los 25 individuos, por lo que el procesamiento y
análisis de la información obtenida se llevara a cabo en base a tabulaciones y técnicas
estadísticas que permitan llegar a un resultado lo más aproximado posible.
Dentro de la variedad de métodos existentes para la selección de muestras basados en
la Teoria de Muestreo, se ha elegido uno que mas se ajusta al desarrollo de la presente
investigación; El Metodo de Muestro No Probabilistico. Este método es usado para
estudios exploratorios e investigaciones aplicadas, donde el muestreo probabilístico
resulta excesivamente costoso, aun siendo consciente de que no sirven para realizar
118
generalizaciones, se seleccionan a los sujetos siguiendo determinados criterios
procurando, en la medida de lo posible, que la muestra sea representativa.
Para lograr la designación de los individuos mencionados anteriormente y que
formaran la muestra, se considero un tipo de selección que forma parte del Metodo de
Muestro No Probabilistico; El Muestreo Intencional o de Conveniencia.
Este muestreo se caracteriza por un esfuerzo deliberado de obtener muestras
"representativas" mediante la inclusión en la muestra de grupos típicos. También
permitio que el investigador seleccione directa e intencionadamente los individuos de
la población. El caso más frecuente de este procedimiento el utilizar como muestra
los individuos a los que se tienen fácil acceso. A criterio del investigador los
elementos son elegidos sobre lo que él cree que pueden aportar al estudio.
119
INSTRUMENTOS DE RECOLECCIÓN DE DATOS
TÉCNICA DE RECOLECCIÓN DE DATOS.
La técnica que se aplicó para el levantamiento y recolección de información dentro
del Departamento Informático e instalaciones de la CISC, en lo que corresponde a la
seguridad de la red (Vulnerabilidad y Protección), se valió de las Entrevistas. La
finalidad de emplear esta técnica, es realizar una medición de las vulnerabilidades
usando dos variables (como se las denominó en este estudio), Vulnerabilidad y
Protección, que serán útiles para el proceso de análisis más adelante.
Se ha tomando en cuenta las opiniones de varios ayudantes que están vinculados a la
administración de los elementos que conforman la red, considerando como la ayuda
más importante la del Sr. Freddy Pincay quien es el administrador con más tiempo
laborando en el área y que posee mayor conocimiento sobre los equipos y técnicas
que se usan para la seguridad de la red de la CISC. Por otra parte, se decidió
entrevistar a varios usuarios finales, esto amplia el enfoque de la presente
investigación no solo ayudando a determinar los eventos desde un punto raíz
(Departamento Informático) sino también demostrando que los usuarios internos de
los servicios que ofrece la red de la CISC influyen mucho en la infraestructura de
seguridad de una red. Estas entrevistas permitirán alcanzar con éxito los objetivos
específicos planteados en la presente tesis y por supuesto serán base fundamental para
elaborar un diagnóstico del estado de la seguridad y vulnerabilidades de la red y sobre
120
todo que permita proponer y acoplar la introducción de la herramienta innovadora que
es motivo de esta tesis.
INSTRUMENTOS DE RECOLECCIÓN DE DATOS.
Para proceder a realizar las entrevistas con las personas mencionadas anteriormente,
se ha elaborado un guión de entrevista a base de preguntas claras y concisas (abiertas
y cerradas), que permiten al investigador autor de este trabajo, evaluar de manera
puntual e inmediata los elementos determinantes que puedan generar un grado
vulnerabilidad que afecte la red.
Como se mencionó anteriormente, el Departamento Informático maneja información
sensible, por lo que se ha previsto la realización de una solicitud dirigida al
Coordinador del Departamento de Graduación, Ingeniero Darwin Patiño. Solicitando
la autorización pertinente para proceder con el levantamiento de información en el
Departamento. La respuesta a esta solicitud llego inmediatamente, informando al
Coordinador de Hardware, Ingeniero Alfonso Guijarro que se autorizaba para
proceder con las entrevistas.
Cabe destacar que la información que se proyectaba obtener para evaluar los niveles
de Vulnerabilidad y Protección, no iba a ahondar mucho en lo que respecta a datos
sensibles, cuyo acceso está permitido solo por personal autorizado. Únicamente se
requería conocer lo básico con respecto a las herramientas y técnicas empleadas para
121
mantener el esquema de seguridad de manera funcional. El guión de entrevista que se
utilizó, se encuentra en los Anexos de esta investigación.
Una vez completado el proceso de entrevistas al personal del área del Departamento
Informático y usuarios finales, se realizará un análisis con la información obtenida.
Con este análisis se descubrirán resultados que vislumbraran el panorama real del
estado actual del esquema de seguridad que poseen las redes de la CISC, basado en
las dos variables que se han mencionado anteriormente, Vulnerabilidad y
Protección. Estos resultados serán factor primordial y determinante para exponer la
relación frente a la problemática existente entre las actuales herramientas de
seguridad y las nuevas amenazas que van apareciendo en el entorno aprovechándose
de las vulnerabilidades para burlar la seguridad de una red.
Es así que a través de este instrumento de recolección de datos se pretende mostrar e
informar cual es la ventaja que provee emplear una técnica novedosa de investigación
informática en la que se analiza al atacante y sus técnicas, para luego a base de este
conocimiento, las personas conocedoras y preparadas en el área de seguridad de
redes, los usen y puedan aplicar los correctivos necesarios a una infraestructura de
seguridad de redes mejorando así su desempeño.
122
PROCEDIMIENTOS DE LA INVESTIGACIÓN
Esta investigación se encuentra estructurada en las partes que se detallan a
continuación:
Capítulo I: El Problema
Planteamiento del Problema.
Evaluación del Problema.
Objetivo General de la Investigación.
Objetivos Específicos de la Investigación.
Alcances de la Investigación.
Justificación e Importancia.
Capítulo II: Marco Teórico
Antecedentes del Estudio.
Fundamentación Teórica.
Fundamentos de la Seguridad Informática.
Seguridad en Internet.
Introducción a la Tecnología Honeypot.
Fundamentación Legal.
Definiciones Conceptuales.
123
Capítulo II: Metodología
Diseño de la Investigación (Tipo de Investigación).
Instrumentos de Recolección de Datos.
Procedimiento de la Investigación.
Procesamiento y Análisis.
Criterios para la Elaboración de la Propuesta.
Capítulo IV: Marco Administrativo
Cronograma de Actividades.
Presupuesto.
Referencias Bibliográficas.
Anexos.
Capítulo V: Conclusiones y Recomendaciones
Conclusiones.
Recomendaciones.
124
PROCESAMIENTO Y ANÁLISIS
Una vez obtenidas las respuestas por parte de las personas entrevistadas se procede a
evaluarlas convencionalmente, transfiriendo las respuestas a la herramienta EXCEL
para la elaboración de gráficos. En la metodología aplicada para evaluar las
entrevistas, se otorga un valor de vulnerabilidad y de seguridad para cada una de las
preguntas, tal como se aprecia en el Cuadro 1, posteriormente se ha previsto crear
varios grupo con las preguntas de la entrevista (Defensa del Perímetro,
Autenticación, Administración y Control, Actualización y Evaluación), que
permitan identificar las principales áreas de un entorno sujeto al esquema de
seguridad que se trata evaluar. Los valores vulnerabilidad y protección de cada
pregunta serán útiles para desarrollar gráficos, a modo de visualizar de mejor forma
los resultados.
Cuadro 1
Formato escala de evaluación de preguntas
VULNERABILIDAD ESCALA RESPUESTA CANTIDAD
0 - 2 Sí - No lo se
PROTECCIÓN ESCALA RESPUESTA CANTIDAD
0 - 2 No
Elaboración: Gustavo Estrella Quijije.
La Cuadro No. 1muestra la escala de evaluación de la pregunta número 2 de la
entrevista hecha a los administradores y ayudantes.
125
¿Se permite el acceso ilimitado a los empleados para navegar en internet?
o Sí
o No
o No lo se
Dependiendo de la respuesta se asignará el valor máximo a la alternativa elegida y
mínimo a la rechazada, así como la cantidad de personas que respondieron a dicha
pregunta. Por ejemplo, si en la pregunta 4, responde “sí se permite el acceso ilimitado
a los empleados para navegar en Internet”, lo que es un peligro para los datos de
ambas parte, la tabla quedaría de la forma que se muestra en el Cuadro 2, en el caso
contrario se muestra en el Cuadro 3. Y por defecto se entregan como vulnerabilidad
a las respuestas “No lo sé”.
Cuadro 2
Evaluación pregunta 2 “No” “No lo sé”
Elaboración: Gustavo Estrella Quijije.
Cuadro 3
Evaluación pregunta 2 “Sí”
VULNERABILIDAD PROTECCIÓN
0 2
Elaboración: Gustavo Estrella Quijije.
VULNERABILIDAD PROTECCIÓN
2 0
126
Existen algunas preguntas que dependiendo del resultado permiten contestar
subpreguntas, la evaluación cambia en estos casos, observar el Cuadro 4, se otorga
mayor cantidad de puntos según la respuesta obtenida de las subpreguntas. Utilizando
como ejemplo la pregunta número 16, la cual si obtiene como respuesta Sí, se es
posible contestar otras tres preguntas.
Cuadro 4
Formato escala de evaluación de pregunta 16
VULNERABILIDAD ESCALA RESPUESTA CANTIDAD
0 - 2 Sí - No lo se
PROTECCIÓN ESCALA RESPUESTA CANTIDAD
0 - 5 No Elaboración: Gustavo Estrella Quijije.
¿Se utiliza firewalls u otros controles de acceso en los perímetros de la red para
proteger los recursos?
o Sí
o No
o No lo se
En caso de responder Si:
a. ¿Se aplica estos controles en todas las oficinas?
o Sí
o No
127
b. ¿Se hace uso de alguna red DMZ para separar redes internas y externas
de los servicios albergados en la CISC?
o Sí
o No
o No lo se
c. ¿Se comprueba periódicamente el Firewall para garantizar que funciona
según lo previsto?
o Sí
o No
En caso de responder “No”, la tabla se rellena de forma normal, tal como se muestra
en el Cuadro 5. Esto se debe a que no se puede contestar las subpreguntas.
Cuadro 5
Evaluación de pregunta 16 “No”
VULNERABILIDAD PROTECCIÓN
2 0
Elaboración: Gustavo Estrella Quijije.
En caso de responder “Sí” a la pregunta 16, se adicionan los resultados de las
subpreguntas, si los resultados son negativos en las subpreguntas, se evalúa solo con
un puntaje de 2. Si se aplica Firewall en todos los equipos de la CISC, se adiciona 1 a
la columna “protección”, si posee una red DMZ, se adiciona nuevamente 1 al puntaje
y si se comprueba periódicamente su funcionamiento se adiciona 1 más. Por ejemplo,
128
si tan posee firewall en todos los equipos, pero no posee una red DMZ y tampoco se
hace una revisión periódica, la evaluación luciría como observa en el Cuadro 6.
Cuadro 6
Evaluación de pregunta 16 “Si” y subpreguntas
VULNERABILIDAD PROTECCIÓN
0 3
Elaboración: Gustavo Estrella Quijije.
Preguntas A Usuarios
Para poder obtener una visión general de la seguridad de la red es necesario recurrir a
quienes la utilizan a diario, los usuarios finales de la CISC, los que poseen la mejor
apreciación del funcionamiento de la red.
Las preguntas realizadas a usuarios van en directa relación con el cuestionario
realizado para los administradores y ayudante, ya que dependiendo de las respuestas
obtenidas de esta sección se procederá a mantener o disminuir el puntaje de preguntas
que tengan relación con ellas en el cuestionario. Por ejemplo si el administrador en la
pregunta 25.a, respondió que existen controles para usuarios.
¿Para qué cuentas son aplicados estos controles de contraseñas?
o Administradores
o Usuarios
o Accesos remotos
Otros:_________________________________________________
129
Pero al realizar la pregunta 2 a los usuarios, estos responden “No”, esto implica que
no se está dando cumplimiento a los controles de contraseñas. En la evaluación de la
pregunta 25 se descontará puntaje, tal como se muestra en el Cuadro 7. El puntaje a
descontar depende del impacto de la vulnerabilidad, la escala variará desde 1 a 3, en
caso de respuesta satisfactoria se conservará la puntuación.
Cuadro 7
Descuento de puntaje evaluación de pregunta 25
VULNERABILIDAD PROTECCIÓN
VULNERABILIDAD PROTECCIÓN
0 4
0 3
Elaboración: Gustavo Estrella Quijije.
130
CUANTIFICACIÓN DE LOS RESULTADOS
Una vez obtenidas las respuestas de las entrevistas, estas se evalúan y cuantifican,
A continuación en el Gráfico 1 se muestra una visión general del estado actual de
vulnerabilidad de la CISC.
Elaboración: Gustavo Estrella Quijije. Fuente: Resultados obtenidos de las entrevistas (Anexos)
Análisis: Visión general del estado actual de vulnerabilidad de la CISC,
obsérvese que el nivel de protección evaluado es aceptable frente al nivel de
vulnerabilidad, pero esto está lejos de un óptimo rendimiento de seguridad.
Los datos que generan el Gráfico 2 se enfocan en un grupo de preguntas
clasificadas como Defensa de Perímetro de la Red. Aquí hay que mencionar que
no existe ningún control en lo que respecta al uso de dispositivos de
almacenamiento externo que utilizan los usuarios, esto puede ser causa de pérdida
131
o fuga de información relevante. Por otra parte se noto que varios usuarios
pudieron identificar algún tipo de virus como ellos lo llaman, causando molestias,
esto da a notar que no se está llevando un control en el software antivirus o si se
lo lleva no le prestan mucha atención. Se recuerda que tipos de malware como
Troyanos, Worms, Spyware, etc. Pueden aprovecharse de este descuido.
Elaboración: Gustavo Estrella Quijije. Fuente: Resultados obtenidos de las entrevistas (Anexos)
Análisis: Se puede apreciar la baja vulnerabilidad en comparación con las
medidas de protección existentes, la CISC cuenta con firewalls, segmentación,
IDS‟s, Proxy que son catalogadas como buenas medidas de seguridad, pero si
estas medidas no se manejas de manera correcta y no se las configura
adecuadamente; Generan una falsa sensación de seguridad, lo cual conlleva
riesgos inminentes para le red. Es recomendable que si se posee un sistema
que permita identificar a las intrusiones, se aproveche los beneficios que
ofrece, para de esta manera mantener una infraestructura de seguridad
completamente funcional y sin brechas que sean atractivas para los intrusos.
132
Con las respuestas obtenidas por parte de los responsables de administrar la red de
la CISC se podría decir que la institución cuenta con un buen sistema de
autenticación para el acceso a sus sistemas aunque no es el óptimo, debido a que
no existen controles para hacer cumplir las políticas de seguridad con respecto a
las contraseñas, esto se ratifico al observar las respuestas obtenidas por los
usuarios donde gracias a su colaboración se llego a determinar que no se les
obliga a cambiar sus contraseñas cada cierto tiempo (como debería ser) y si lo
hacen, es simplemente porque ellos ven la necesidad de realizar un cambio. Tal
como se puede apreciar en el Gráfico 3, existe un 24% de vulnerabilidad en lo
que a autenticación se refiere.
Elaboración: Gustavo Estrella Quijije. Fuente: Resultados obtenidos de las entrevistas (Anexos)
Análisis: La autenticación es uno de los factores principales que se deben
considerar en un la seguridad de la red, con la información obtenida de los
usuarios, se entiende que no se cumplen las normas de creación de contraseñas
ni el control de estas. Lo que deja gravemente abierto un punto frágil para que
133
cualquier intruso externo o interno tome control de un equipo corriendo el
riesgo de convertirse en una Bot, que puede ser usada como puente para lanzar
ataques a otros equipos e incluso puede ocurrir un Secuestro de Sesión o
Suplantación de identidad (Phishing).
Sin duda alguna, una de las mayores fortalezas de la CISC es la forma de
administración y control que posee sobre los sistemas, esto debido a que cuenta
con personal interno capacitado para mantener la red e incluso para atender los
incidentes que se presentan en las estaciones de trabajo de los usuarios, este
resultado se expresa en el Gráfico 4.
Elaboración: Gustavo Estrella Quijije. Fuente: Resultados obtenidos de las entrevistas (Anexos)
Análisis: La opinión que tienen los usuarios con respecto a los servicios de
atención por parte de soporte técnico es positiva, además que se afirmó por
parte de los entrevistados que en el Departamento Informático existe tanto
área de Software como de Hardware, cada una con su propio líder encargado
de administrarla adecuadamente y que también existen individuos capacitados
para una correcta administración de la red y los sistemas de seguridad. Se dio
a notar también que se llevan los controles debidos en lo que respecta a
pruebas de nuevos componentes de la red antes de pasar a producción.
134
En el Gráfico 5 se puede apreciar que gracias al nivel de actualizaciones y
evaluaciones tanto en aplicaciones, sistemas operativos y red que realizan dentro
de la CISC, se mantiene un bajo nivel de vulnerabilidad, sin embargo sería
conveniente recomendar que las evaluaciones de seguridad también sean hechas
no solo por personal interno, sino también, por un grupo externo capacitado. Esto
con el fin de ampliar la visión que se posee en del entorno y su seguridad.
Elaboración: Gustavo Estrella Quijije.
Fuente: Resultados obtenidos de las entrevistas (Anexos)
Análisis: La gestión de actualización se lleva a cabo de manera adecuada, lo
cual genera un índice aceptable de protección, esta gestión de actualización va
de la mano con las pruebas que se deben realizar antes de implementar un
elemento nuevo a la red, lo cual en cierto modo ayuda a reducir posibles fallos
en aplicaciones y sistemas operativos como Security Holes, Bugs, Exploits,
etc.
135
Con este análisis se puede concluir que las redes de la CISC posee una baja
vulnerabilidad, pero esto no implica que esté completamente asegurada, tal como
se muestra en el Gráfico 1, aún queda un 27% del total examinado que se debe
asegurar. Además es importante señalar que si alguna de estas vulnerabilidades es
detectada por atacantes, el sistema se puede ver completamente comprometido.
Ya que se tienen los resultados del análisis se está en posición de tomar
decisiones con respecto al mejoramiento de la seguridad para corregir los puntos
frágiles en su esquema; Por lo tanto es aquí donde se propone la introducción del
prototipo de Honeypot que es motivo de esta tesis.
La cual, explotando su principal característica de monitorear, identificar, analizar
y aprender de los intrusos y sus técnicas, permitirá a los administradores de la red
y expertos en seguridad aplicar de manera óptima y mediante análisis previo, las
mejoras que se puedan emplear para reducir las vulnerabilidades de las
herramientas de seguridad establecidas dentro la red de la CISC. Y no solo eso
sino que también podría ser usada como un instrumento de exploración para
determinar las tendencias de los intrusos, lo cual sería útil para cualquier curso de
investigación interesado en aprender y aprovechar el uso de esta herramienta
innovadora.
136
CRITERIOS PARA LA ELABORACION DE LA PROPUESTA
Se ha proyectado, para una mejor organización, el establecer varias fases que permita
identificar cada uno de los pasos que se den para que el desarrollo e implementación
del prototipo de la Honeypot Virtual de Alta Interacción concluya con éxito. En el
presente apartado se detallara cada una de estas fases.
A modo de proporcionar una visión general se exponen las fases que forman parte de
esta propuesta:
1. Fase de planificación: En esta fase se determinaran las herramientas y
mecanismos necesarios para la implementación de una Honeypot Virtual de
Alta Interacción, considerando elementos de Hardware y Software. También
se tratara de plantear los propósitos de la Honeypot y las necesidades que se
deben cubrir para alcanzar dichos propósitos.
2. Fase de diseño: Se define completamente cada uno de los elementos que
conformaran la Honeypot, funciones y esquemas de la arquitectura que se
usara para la implementación del prototipo planificado. Estos esquemas serán
de gran utilidad, puesto que así se entenderá de una manera más fácil que es lo
que se pretende realizar.
Además se procederá establecer el tipo de software y hardware que se usará y
la estructura que debe seguir en cuanto a funcionalidad.
137
3. Fase de implementación: En esta fase se procederá a instalar y configurar
cada una de las herramientas, para luego proceder a comprobar si trabajan
bien en conjunto, si se complementan y responden tal como se había
planificado. Pues como es de conocimiento, el uso de Software de diferente
origen puede suponer una fuente de incompatibilidades entre sí y con el
Sistema Operativo.
4. Fase de comprobación: Una vez implementado la Honeypot, se hace
necesario un periodo de prueba para demostrar si su funcionamiento es el más
estable y cumple con los requerimientos.
5. Fase de ejecución: Se pone en marcha todos los mecanismos que conforman
la Honeypot Virtual de Alta Interacción, procediendo ejecutar sus servicios en
un ambiente real (Producción). Es aquí donde se empezaran a realizar las
capturas de incidentes para posteriormente realizar los análisis necesarios.
6. Fase de análisis: En esta última fase se pretende observar y estudiar las
diferentes capturas de los datos que haya realizado la Honeypot, y de esta
manera permita establecer su provecho y extraer conclusiones útiles para esta
investigación.
138
FASE DE PLANIFICACIÓN
Es debido a la curiosidad por aprender y emprender el estudio en algo novedoso, que
en el entorno donde se desarrolla esta investigación prácticamente aun no se había
escuchado, este fue uno de los motivos que inspiraron la elaboración de esta tesis. Y
porque novedoso; Pues es simplemente que la idea que plantea este trabajo y que ha
estado en el medio, rompe conto todos los paradigmas y tabúes de la seguridad de
red, que en vez de prevenir los ataques hechos por los intrusos (como lo hacen las
típicas herramientas de seguridad), este método se centra en atraerlos con el fin de
estudiar su comportamiento, aprender de ellos y concluir aplicando mejoras en los
esquemas de seguridad. Por otra parte dada la repercusión de Internet como medio de
comunicación y el grave peligro que suponen los ataques informáticos en la
actualidad a través de este, sorprende la escasez de recursos asignados a un analizador
de este entorno, como son las Honeypot.
Actualmente y con respecto a la tecnología Honeypot, existen varias opciones
(software) que permiten construir una Honeypot sin ningún inconveniente, estas
herramientas se hallan en la página oficial del Honeynet Proyect (The Honeynet
Proyect, 1999), incluso existe una suite de instalación conocida como el “Honeywall
CDROM” (actualmente en la versión 1.4), que es un CD booteable el cual se instala
en el disco duro y viene con todas las herramientas que permiten la captura, control y
análisis de datos; con todas las funcionalidades para la implementación de una
Honeypot.
139
Cabe enfatizar que en primera instancia se avisto hacer uso de una Honeypot
prediseñada, pero la desventaja de estas es que poseen una arquitectura cerrada y no
permiten la personalización que se requería para el desarrollo del prototipo que
propone esta tesis. Sin embargo y gracias a la guía facilitada por uno de los
integrantes del Honeynet Proyect pertenecientes al Spanish Chapter (Spanish
Honeynet Proyect, 2010), cuyo líder y fundador es el Ingeniero en
Telecomunicaciones y Telemática Diego González Gómez, se logro definir para la
fase de planificación, la forma y herramientas con las que la Honeypot va a
interactuar. Por otra parte se hizo uso de un foro Ecuatoriano “ECUALUG.ORG”
(Ecualug.org, 2010), donde se tratan temas referentes a Linux, Servidores, Honeypots
y otras herramientas. Este foro fue mucha ayuda, y en el cual se hizo necesario abrir
un hilo de discusión sobre Honeypots para poder emprender el desarrollo del presente
prototipo.
Análisis de los objetivos del Prototipo de la Honeypot Virtual de Alta
Interacción
Se ha hecho necesario definir el objeto de análisis, es decir, que es lo que se pretende
estudiar con la implementación del prototipo de la Honeypot dentro del marco de la
seguridad. De esta manera es muy importante definir los recursos, servicios y el tipo
de sistema que se desean poner a prueba con el fin de ser comprometidos. Además se
debe elegir el tipo de datos que se quieren analizar, las amenazas y herramientas de
intrusión a las que se pretende exponer la máquina y el modo con el que se desea
140
recoger esta información de forma tal que sea útil y fácil de analizar. Igualmente se
debe reiterar una de las funcionalidades que ofrecen las Honeypot, como la
distracción frente a las intrusiones.
Es justamente a todo lo expuesto anteriormente que se llegó a definir para el
desarrollo del prototipo que plantea esta investigación crear una Honeypot de Alta
Interacción, porque abre un campo mucho más extenso en cuanto al modo de análisis.
Por otra parte y debido a que la configuración de este tipo de señuelos es mucho más
compleja y costosa en lo que respecta a mantenimiento y evaluación, se decidió
centrar el estudio en un solo sistema operativo y se eligió a Windows.
Análisis de componentes.
A continuación se mencionan algunos puntos que ayudaran a determinar las
herramientas y medios que se van a utilizar para la implementación del prototipo.
Anteriormente ya se estableció que para el diseño del prototipo se va a hacer
uso de una Honeypot de Alta Interacción para analizar un sistema Windows.
Decidir si la Honeypot será física o virtual.
Establecer el tipo de herramientas que interactuaran con ella y su entorno, y
también que se usara para la recogida de datos.
Tal y como se definió en los tipos de Honeypot, el uso de máquinas virtuales
supone un menor coste, tanto económico como de carga de trabajo para el
141
desarrollador. Así que se optó por el uso de este tipo de aplicaciones, puesto
que su versatilidad y utilidad resultan una buena opción.
Cuando la plataforma este lista, se deben agregar las herramientas necesarias
para la monitorización de la máquina trampa. Así, se recurre a los IDS que
formaran parte y trabajaran en combinación con otros elementos para formar
la Honeypot.
Hay que recordar que existen dos claros tipos importantes de IDS, ambos
necesarios para el diseño del prototipo.
o N-IDS (Sistema de detección de intrusiones de red), que se orienta a la
seguridad dentro de la red.
o H-IDS (Sistema de detección de intrusiones en el host), que se orienta
a la seguridad en el host.
Sistema de Detección de Intrusiones de Red (N-IDS).
En el presente apartado se detallan algunas características relevantes referentes a
los N-IDS:
Un N-IDS forma un sistema que puede verificar paquetes de información que
viajan por una red para descubrir si se ha producido alguna actividad
maliciosa o anormal.
El N-IDS pone uno o más de los adaptadores de red del sistema en modo
promiscuo. Éste es una especie de modo "invisible", en el que una
computadora conectada a una red compartida, captura todo el tráfico que
142
circula por ella. Este modo está muy relacionado con los packet sniffers que se
basan en este género para realizar su tarea.
En entornos de seguridad, es común encontrar diversos IDS en diferentes
partes de la red. Por lo general, se colocan fuera de la red para estudiar los
posibles ataques, así como también se colocan internamente para analizar
solicitudes que hayan pasado a través del Firewall o que se han realizado
desde adentro.
Los principales métodos utilizados por un N-IDS para informar y bloquear
intrusiones son:
Reconfiguración de dispositivos externos (Firewall en routers): Comando
enviado por el N-IDS a un dispositivo externo para que se reconfigure
inmediatamente y así poder bloquear una intrusión.
Envío de un correo electrónico a uno o más usuarios: envío de un correo
electrónico una intrusión seria.
Registro del ataque: se guardan los detalles de la alerta en una base de datos
central, incluyendo información como el registro de fecha, la dirección IP del
intruso, la dirección IP del destino, el protocolo utilizado y la carga útil.
Almacenamiento de paquetes sospechosos: se guardan todos los paquetes
originales capturados y/o los paquetes que dispararon la alerta.
Apertura de una aplicación: se lanza un programa externo que realice una
acción específica
143
Envío de un ResetKill: se construye un paquete de alerta TCP para forzar la
finalización de una conexión (sólo válido para técnicas de intrusión que
utilizan el protocolo de transporte TCP).
Notificación visual de una alerta: se muestra una alerta en una o más de las
consolas de administración.
Sistema de Detección de Intrusiones de Host (H-IDS).
Los H-IDS también poseen ciertas características que se mencionan a
continuación:
El H-IDS se encuentra en un host particular. Por lo tanto, su software cubre
una amplia gama de sistemas operativos como Windows, Solaris, Linux, Aix,
etc.
El H-IDS actúa como un daemon o servicio estándar en el sistema de un host.
Tradicionalmente, el H-IDS analiza la información particular almacenada en
registros (como registros de sistema, mensajes, logs).
También captura paquetes de la red que entran y salen del host para poder
verificar las señales de intrusión (como ataques DoS, Backdoors, troyanos,
intentos de acceso no autorizado, ejecución de Malware).
144
Herramientas de Análisis Forense.
El Análisis Forense es una metodología de estudio ideal para el análisis
posterior de incidentes, mediante el cual se trata de reconstruir cómo el intruso
ha penetrado en el sistema, y permite valorar los daños ocasionados.
Los servicios de análisis forense comprenden el estudio de los sistemas para
determinar el grado de compromiso y exposición, los datos de los presuntos
atacantes, el nivel de intrusión alcanzado y la recuperación de datos en caso de
pérdidas.
Permiten analizar los ataques sufridos, así como la necesidad de desvelar a los
atacantes o intrusos.
Ayudan a conocer qué herramientas y metodologías han empleado los
atacantes para entrar en el sistema, y todo ello orientado a planificar
adecuadamente planes que impidan que los ataques se repitan.
Realizar trabajos de análisis forense es necesario para asegurar,
principalmente, que las brechas de seguridad han sido resueltas y que el
incidente que se haya producido no vuelva a ocurrir.
Los datos de un análisis forense permiten trazar la identidad de los atacantes,
así como su localización, pudiendo obtener de estos datos información útil
para procesos judiciales o laborales.
145
FASE DE DISEÑO
En los apartados anteriores ya han quedado definidos los componentes necesarios
para desarrollar el Prototipo de la Honeypot Virtual de Alta Interacción, pero aun no
se ha establecido el tipo de Software que se ha de emplear para llevar a cabo cada una
de las tareas.
A modo de describir de manera general, a continuación se mencionan los
requerimientos necesarios para en el desarrollo del la Honeypot:
1. Conexión a Internet.
2. Una Máquina Física.
3. Un Router.
4. Un Programa Antivirus con Firewall.
5. Un Programa de Virtualización.
6. Un IDS de Red.
7. Un IDS de Host.
8. Un Programa de Análisis Forense.
REQUERIMIENTOS Y ESQUEMAS
1. Conexión a Internet.
Es de mucha importancia poseer una conexión a internet estable, que facilite la
navegación, esto permitirá realizar capturas de manera dinámica y sin
interrupciones o pérdida de conectividad. Para motivos de este estudio se utilizó
146
una conexión cuya velocidad es de 550 Kbps, aunque se lo recomendable seria
una conexión igual a 3 Mbps.
2. Máquina Física.
Se usara una computadora con las siguientes características:
Sistema Operativo: Microsoft Windows 7 Ultimate Edition.
Tipo de Sistema: Equipo basado en X86 de 32 bits
Procesador: X86 Intel Core 2 Duo E4500 2.20GHz.
Memoria RAM: DDR2 4GB.
Disco Duro: SATA 120GB.
Directorio de Windows: C:\Windows.
Directorio del Sistema: C:\Windows\System32.
Configuración Regional: Español.
Recomendaciones: Tener Firewall de Windows activado y actualizado.
Actualizar el Sistemas Operativo a la última revisión.
Particionar el disco duro.
3. Router.
Se ha previsto usar un Router que permita administrar la red que se pretende
hacer con la Máquina Física y las Máquinas Virtuales. Además este proveerá de
conexión a Internet a la Máquina Física a través de un cable Ethernet. En la
actualidad los Routers traen un Firewall incorporado, por lo que se recomienda
147
activarlo y configurarlo. Por otra parte hay señalar que la arquitectura que se va
emplear, es ubicar la Honeypot detrás del Firewall.
Para este caso se va a usar un Router D-Link Wireless 150 (Dir-600) de 4
Puertos.
4. Programa Antivirus con Firewall.
Se debe prescindir de un buen antivirus en la Máquina Física, que mantenga
monitoreado todo el sistema que se está ejecutando sobre dicha computadora para
impedir alguna infección que pase desapercibida e informe inmediatamente de
cualquier incidente. La Honeypot debe ser aislada del sistema real, se necesita
anular toda comunicación con la máquina real para evitar que ésta última sea
infectada por cualquier malware. Para ello, es necesario usar un Firewall, sea este
el del Router, el de Windows o el del Antivirus.
Para efectos de esta investigación se usara el antivirus McAfee INTERNET
SECURITY SYSTEM, el cual integra varias herramientas muy útiles para la
prevención de infecciones junto con una interfaz que facilita su administración,
entre las características más destacadas de este antivirus están:
Un Firewall Bidireccional muy fácil de configurar y administrar.
Protección Residente en Tiempo Real y Active Protection que brinda la
protección más rápida frente a amenazas perjudiciales.
Escudo de protección Online, Site Advisor
148
Modo invisible que vuelve el equipo invisible frente a los piratas
informáticos
Anti-Rootkit, Anti- Phishing, Anti-Spam, Anti-Spyware, Anti-Malware
Protección de identidad.
5. Programa de Virtualización.
Existen varias opciones en el medio con respecto a este tipo de Software, pero la
que más llamo la atención tanto por su flexibilidad y ventajas, fue VMware
Workstation Versión 6.5.2.
Este programa de gran versatilidad permite el arranque de varias máquinas
virtuales con funcionalidad completa o a elección del usuario. Además, incluye
multitud de herramientas para la gestión de las unidades virtuales, que se
mostraran más adelante; y que facilitan de sobremanera la gestión y
mantenimiento de la Honeypot.
6. IDS de Red.
En lo que respecta al IDS de Red, se utilizará Snort, ya que es un Software open
source (libre distribución) con grandes capacidades. La versión de Snort que se
usará es la 2.8.6 que es la más actual hasta este momento.
Snort trabaja a modo de Packet Sniffer, se basa en reglas para el monitoreo del
tráfico que está pasando sobre red, será el encargado de escuchar todo tráfico
sospechosos que circulen en la red, en el caso del presente estudio, estará
149
monitoreando los paquete que entre o salga de la máquina virtual trampa. En la
Ilustración 8 se muestra el flujo de datos entre Snort, la Red y la Máquina Virtual
Trampa.
Ilustración 8. Honeypot: Flujo de datos entre Máquina Virtual Trampa y Snort.
Snort permite monitorear uno o varios Host concretos en una red, avisando de los
posibles ataques que sobre él o ellos se efectúan. Puesto que por sí solo Snort
guarda todos los datos en ficheros a modo de log, se encuentra el problema al
momento de mostrar los resultados, pues revisar cada uno de los logs resulta
altamente tedioso e ineficiente. Es por ello que se ha previsto utilizar una base de
datos MySQL para guardar toda la información de forma ordenada.
Ilustración 9. Honeypot: Almacenamiento de datos capturados por Snort en MySQL.
SNORT MySQL
VMware
Máquina
Virtual Trampa
Windows XP
SNORT
Internet Router
150
Aun con el apoyo de una Base Datos para almacenar todo lo que capture Snort, el
proceso de revisión de esta información sigue siendo engorroso, porque habría
que consultarlo a través de SQL Querry. Para mejorar esto, se pretende usar la
herramienta ACID (Analysis Console for Intrusion Databases/Consola de
Análisis para Bases de Datos de Intrusiones), que es un instrumento gráfico
basado en Web que permite mostrar a través de un browser toda la información
almacenada en la base de datos MySQL de tal forma que sea comprensible para el
análisis.
Ilustración 10. Honeypot: Uso de ACID para muestra de datos almacenados en MySQL.
ACID al estar basado en Web fue creado en lenguaje PHP, por lo que requiere de
la coparticipación de PHP (Lenguaje Nativo) y un Servidor Web que interprete
este lenguaje, en este caso Apache.
Ilustración 11. Honeypot: Componentes relacionados con ACID.
MySQL ACID
ACID
PHP
APACHE
151
La Ilustración 12 muestra los componentes anteriormente mencionados y que
formarán parte del IDS de Red, así como el flujo de datos entre ellos.
Ilustración 12. Honeypot: Componentes y flujo de datos del IDS de Red.
7. IDS de Host.
Gracias a las recomendaciones y guías que se facilitaron por parte de los
miembros del Honeynet Proyect Spanish Chapter, se optó por utilizar Sebek
versión 3.0.5 como IDS de Host. Sebek Fue creado por el Honeynet Project, de
donde nació la idea de construir el prototipo que se diseñara en esta tesis.
Este programa está albergado en la propia Honeypot, pero necesita un
componente más para su funcionamiento: un servidor al que enviarle la
información, para el caso de la tecnología Honeypot, al servidor se lo conoce
como Honeywall Gateway. Así, debido a la baja capacidad de recursos, se tuvo
que configurar el servidor como otra máquina virtual, aun cuando la mayor
efectividad se obtiene por medio de otra computadora física que haga las veces de
SNORT MySQL ACID
PHP
APACHE
152
Servidor y Honeywall Gateway(1)
. Para este caso, el servidor consistirá en una
máquina Linux. La Ilustración 13 muestra los componentes y flujo de datos del
IDS de Host.
Ilustración 13. Honeypot: Componentes y flujo de datos del IDS de Host formado por Sebek.
8. Programa de Análisis Forense.
Para realizar el análisis posterior a la detección de incidentes, se usará un
programa llamado InstallWatch. Este es un programa de análisis forense,
también residente en la propia Honeypot. Este software permitirá llevar a cabo el
estudio de la Honeypot una vez comprometida y finalizado el proceso de captura
o exposición a las intrusiones, mostrando todos los componentes del sistema que
han sido alterados.
1Es un ordenador configurado para filtrar y observar el tráfico que generan una o varios Honeypot. El equipo que
hace este papel debe ser invisible para las Honeypots con el fin de estudiar en profundidad y sin interferir qué
hacen y cómo actúan los intrusos.
VMware
Máquina
Virtual Trampa
Cliente SEBEK
(Windows XP)
Servidor
SEBEK
(Linux)
153
Ilustración 14. Honeypot: Elementos que formaran la Máquina Virtual Trampa.
Con la finalidad de mostrar la arquitectura completa e interacción entre los distintos
programas que conformaran el Prototipo de la Honeypot Virtual de Alta Interacción
que se propone en la presente investigación, se ha construido un esquema como se
muestra en la Ilustración 15. Recordando que se empleará una Honeypot detrás del
Firewall.
VMware
Máquina
Virtual Trampa
Windows XP
Cliente Sebek
InstallWatch
154
Ilustración 15. Arquitectura del Prototipo de Honeypot detrás del Firewall
Firewall
Máquina Física
VMware
Máquina
Virtual Trampa
Cliente SEBEK
InstallWatch
Servidor
SEBEK
ACID
PHP APACHE
SNORT
MySQL
Internet Router
155
FASE DE IMPLEMENTACIÓN
En esta fase se explicara detalladamente y paso a paso el proceso de instalación y
configuración de los componentes del Prototipo de la Honeypot Virtual de Alta
Interacción. Se destacaran también los pasos más relevantes con ayuda de
ilustraciones, considerando el manejo de los componente y los ajustes necesarios para
la interconexión de todas las herramientas necesarias. Este apartado se podría
considerar como un manual de instalación.
La primera parte en esta fase de implementación, consiste en la instalación del
Software de Virtualización VMware Workstation y la configuración de la red entre
las máquinas virtuales y la máquina física.
Software de Virtualización VMware Workstation.
Para el desarrollo del prototipo se avisto el uso de máquinas virtuales y en este caso
se eligió como software de virtualización a VMware Workstation Versión 6.5.2.
VMware Workstation es un producto de software especializado de la empresa
VMware Inc., que permite tener instalado más de un sistema operativo de manera
simultánea sobre la misma máquina física. Este software permite a los usuarios armar
múltiples computadoras virtuales y usar una o más de esas computadoras virtuales
simultáneamente con el sistema operativo anfitrión o HostOS (es el sistema operativo
sobre el que se instala VMware). Cada instancia de máquina virtual puede ejecutar su
156
propio sistema operativo huésped o GuestOS (Es el sistema operativo que se instala
sobre VMware) como Windows, Linux, Unix, Solaris, etc.
Ilustración 16. VMware: Pantalla principal y la versión de VMware Workstation.
Ejecutar una máquina virtual es como abrir un programa cualquiera, sólo que en lugar
de centrarnos en el uso de las herramientas del programa como tal (aunque igual tiene
muchas opciones) lo que se hace es “arrancar” otro PC dentro de nuestro sistema
operativo o HostOS, entonces podremos ver cómo se expone la pantalla de booteo en
una ventana. Desde este punto ya tratamos a esta aplicación como si en realidad fuera
otro PC físicamente.
VMware Workstation es una opción de virtualización muy usada, está diseñada para
el usuario de escritorio y disponible para plataformas Linux y Windows. Las ventajas
de usar VMware Workstation para la implementación de la Honeypot Virtual son:
157
Opciones de red, VMware provee dos formas de manejar las redes. La primera es
en modo puente (Bridged), que permite a una Honeypot usar la tarjeta del
computador y parecer ser otra máquina en la red. La segunda opción es redes sólo
en la máquina (Host Only), con lo que se puede controlar mejor el tráfico con un
firewall, estos modos se explicaran con detalle en el proceso de creación y
configuración de la máquina virtual.
VMware crea una imagen de cada GuestOS, estas imágenes son simplemente
unos archivos, lo que le hace muy movible. Esto significa que pueden ser
transferidas a otros computadores. Para restaurar un Honeypot a su estado
original, basta con hacer una copia de seguridad (snapshot) en su lugar.
Fácil de usar, VMware viene con una interfaz gráfica (en Windows y en Linux)
que hace que sea muy simple instalar, configurar y ejecutar los sistemas
operativos.
La posibilidad de suspender una máquina virtual, se puede pausar la máquina
virtual y, cuando se activa de nuevo, todos los procesos continúan como si nada
hubiese pasado.
Al ser un producto comercial, VMware viene con soporte, actualizaciones, y
parches.
158
Un uso interesante de VMware, es la facilidad y rapidez de montar máquinas
virtuales. Una vez que la Honeypot es comprometida y se aprenda tanto como se
pueda de ella, se desearía empezar de nuevo. Así, bastaría con cargar una de las
copias o snapshots efectuadas previamente para regresar al estado deseado. Para
ello, VMware dispone del Snapshot Manager, que despliega el árbol de imágenes
de la máquina virtual guardadas, facilitando su gestión. Un ejemplo se muestra en
la Ilustración 17.
Otra característica de VMware es la capacidad de ejecutar varias redes detrás del
HostOS. Si sólo se tiene una máquina, se puede tener una Honeypot y el propio
computador personal en una máquina sin preocuparse de la contaminación de
datos de cada lado.
Ilustración 17. VMware: Snapshot Manager de VMware Workstation.
159
Algunas desventajas son:
El precio por licencia, VMware Workstation es bastante elevado, lo que limita
su accesibilidad.
Requerimientos del sistema, VMware debe ejecutarse bajo un entorno dado, y
cada máquina virtual necesitará su propia ventana. Así que además de la memoria
que se asigne a un sistema operativo Guest, tiene la sobrecarga de un sistema
operativo instalado HostOS.
Cantidad limitada de sistemas operativos Guest, con VMware sólo se puede
ejecutar un número pequeño de Máquinas Virtuales (1-4).
Reconocimiento, puede ser posible reconocer el software VMware en una
Honeypot, especialmente si las "VMware Tools" están instaladas en los sistemas.
Esto podría alertar a los intrusos. Sin embargo, VMware Workstation tiene
opciones que pueden hacer el reconocimiento más difícil, como la posibilidad de
establecer direcciones MAC para las interfaces virtuales. Esto se explicara con
más detalle en la configuración de la red.
160
Instalación y Configuración de VMware Workstation.
El proceso de instalación de VMware Workstation se lo realizó usando como HostOS
a Windows 7 Ultimate Edition, destacando que no hubo ningún problema de
compatibilidad durante el proceso; la instalación no conlleva mayor dificultad debido
a que usa el asistente de instalación paso a paso, con lo cual se hace fácil este
proceso.
Ilustración 18. VMware: Asistente de instalación de VMware Workstation.
Continúa con el tipo de instalación, se puede elegir entre:
Típica: Instala todas las características del programa (recomendada).
Personalizada: Permite elegir al usuario que características desea instalar y
donde ubicarlas (avanzada).
Se decidió elegir la opción típica, ya que se requería instalar todo los componentes
del programa.
161
Ilustración 19. VMware: Tipo de instalación de VMware Workstation.
Se debe configurar la carpeta de destino de donde se desea instalar todos los
componentes del programa, en este caso se eligió la dirección por defecto que el
asistente muestra.
Ilustración 20. VMware: Carpeta de destino de los componentes de VMware Workstation.
162
Se configura los atajos y accesos directos.
Ilustración 21. VMware: Configuración de atajos de VMware Workstation.
El asistente comienza con el proceso de instalación.
Ilustración 22. VMware: Estado de instalación.
Llenar los casilleros con la información de registro del producto.
Nombre de usuario: Persona que va a usar el producto.
Compañía: Organización a la que pertenece.
Numero de serie: Numero de registro del producto.
163
Ilustración 23. VMware: Información del registro de VMware Workstation.
Con esto el asistente finalizará la instalación de VMware y por último se debe
reiniciar la PC.
Ilustración 24. VMware: Finalización del asistente de instalación.
Una vez instalado VMware, ya se podrá proceder a instalar los GuestOS que se harán
uso para el desarrollo del proyecto y que formaran parte de las máquinas virtuales.
164
Instalación de GuestOS en VMware Workstation.
Para crear una máquina virtual simplemente se debe elegir la opción NEW VIRTUAL
MACHINE (Nueva Máquina Virtual) en la ventana principal de la aplicación.
Ilustración 25. VMware: Ventana Principal.
Se ejecuta el asistente de instalación de nuevas máquinas virtuales, muestra las
siguientes opciones:
Típica: Crea una máquina virtual en pocos paso (recomendada).
Personalizada: Crea una máquina virtual con opciones avanzadas (avanzada).
165
Ilustración 26. VMware: Asistente de instalación de nuevas máquinas virtuales.
Ahora se procede a la instalación del sistema operativo huésped (GuestOS), una de
las características de esta versión de VMware es que permite instalar el sistema
operativo desde una unidad CD o DVD y también desde imágenes de discos (ISO),
esto hace que la instalación del sistema operativo se más rápida e intuitiva.
Por otra parte se puede crear la máquina virtual e instalar el sistema operativo
después, que es la opción que se eligió para este caso, debido a que de esta manera
podemos personalizar la instalación de la máquina virtual.
Ilustración 27. VMware: Ventana de instalación del SO. Huésped (GuestOS).
166
Hay que elegir el sistema operativo huésped (GuestOS) que se instalará en la máquina
virtual, para este ejemplo se uso la instalación de una distribución Linux que es
Ubuntu en su última versión 10.04 LTS Lucid Linx Desktop 32 bits.
Ilustración 28. VMware: Selección del GuestOS.
Darle un nombre a la máquina virtual y la ubicación donde se instalara, estas
opciones pueden ser cambiadas de acuerdo a los requerimientos del usuario.
Ilustración 29. VMware: Nombre de la máquina virtual y ubicación.
Asignarle una capacidad del disco físico a la máquina virtual, el mínimo es de 8GB
(recomendado) aunque si se posee un disco con gran capacidad se le puede asignar
más, para este proyecto se va a usar una cantidad de 10GB y se recomienda dejar
marcada la opción de almacenar el disco virtual en un único archivo (Store virtual
167
disk as a single file), debido a que así se ahorrara espacio en el disco físico que será
necesario para guardar los log de alertas que se detallaran más adelante.
Ilustración 30. VMware: Especificar la capacidad del disco.
Se muestra un resumen de las configuraciones que se han ido realizando para la
máquina virtual que se está creando, además se encuentra la opción de Personalizar
Hardware (Customize Hardware), la cual permitirá cambiar algunas opciones y que
se uso para adaptar la máquina virtual a las necesidades de la investigación.
Ilustración 31. VMware: Configuraciones de la máquina virtual.
Las características de hardware que se pueden adaptar se muestran en el cuadro
Dispositivo (Device) y se detallan a continuación:
168
Memoria: Es la cantidad de memoria RAM que se le asignará a la máquina
virtual, la que viene por default es de 512MB, para el proyecto se uso una
cantidad de 1GB, esto determinara la velocidad de carga de procesos en la
máquina virtual que posee el sistema operativo huésped. Una desventaja de
usar demasiada memoria RAM para una máquina virtual, es que, se verá
afectado el rendimiento de la máquina física; por lo tanto se recomienda usar
la asignación de memoria RAM de manera que no afecte ni a la máquina
física anfitriona (Host) ni a las máquina virtuales huéspedes (Guest), que sea
equilibrada y que no reste demasiados recursos.
Unidades de cd/dvd y floppy: Estas unidades son detectadas
automáticamente por el asistente de creación de máquinas virtuales, así que no
implica mayores cambios
Ilustración 32. VMware: Configuración personalizada de hardware, memoria.
169
Adaptador de Red: VMware trae varios modos de conexión a red.
Modo Bridged (Recomendado): El modo bridge es muy útil si
queremos que la máquina virtual sea parte de nuestra red física y de esta
manera permitir acceder a recursos de nuestra red de manera directa, o por
ejemplo, permitir acceder a recursos que se encuentren en la máquina
como un servidor web, ficheros etc.
Modo NAT (Network Address Translation): Esta opción está disponible
para el primer adaptador de red en la máquina virtual. Permite a la
máquina virtual compartir una conexión a una red física TCP/IP con el
sistema operativo host. Si usa esta opción, la máquina virtual no aparecerá
como equipo independiente en la red. Suele usar de manera compartida la
dirección IP de la máquina física.
Host-Only: Ofrece conexión en red sólo entre máquinas virtuales. Este
tipo de conexión de red resulta útil si se desea preparar un canal para
comunicaciones en red para las máquinas virtuales en un equipo físico a la
vez que se aísla las máquinas virtuales de todas las redes externas, tanto
con cables como inalámbricas, y el sistema operativo host.
Custom: Permite personalizar el tipo adaptador de red que usara, los
principales son:
VMnet0 (Bridge).
VMnet1 (Host - Only).
VMnet8 (NAT).
170
Para efectos de la investigación el modo que se ha usado es el modo Bridge,
así se reconocerá a las máquinas virtuales como si fueran otros equipos de la
red y que estarán conectadas mediante un router.
Ilustración 33. VMware: Configuración del adaptador de red.
Con esto el asistente finalizará la creación de la máquina virtual y de manera
automática la mostrara en la barra que se encuentra en la parte izquierda de la ventana
principal de VMware.
Ilustración 34. VMware: Características de la máquina virtual con SO Ubuntu.
171
Después de la creación de la máquina virtual se procede a instalar el sistema
operativo huésped (GuestOS), no se explicara con detalle la instalación de un sistema
operativo debido a que este procedimiento no varía y es como instalarlo en una
máquina física; se recomienda seguir los pasos del asistente de instalación del sistema
operativo y configurarlo de la manera más adecuada para evitar problemas a futuro.
Ilustración 35. VMware: Bootscreen del SO Ubuntu ejecutándose en VMware.
Ilustración 36. VMware: SO Ubuntu versión 10.04 LTS Lucid Linx Desktop 32 bits.
172
Configuración de la Red.
Para desarrollo de esta investigación se ha usado 2 máquinas virtuales, una con el
Sistema Operativo Ubuntu versión 10.04 LTS Lucid Linx Desktop 32 bits y otra con
el Sistema Operativo Windows XP Professional Service Pack 2, esta máquina virtual
será la que actué de trampa dentro de la Honeypot y para este propósito se le ha
desactivado el Firewall, las Actualizaciones Automáticas y no posee antivirus; esto se
hizo con el fin de hacerla más vulnerable y así analizar las debilidades de un sistema
habitual frente a las infecciones externas.
Es de suma importancia tener un Firewall (Hardware o Software) y Antivirus eficaces
instalados en la máquina física, de modo que se inhiba la comunicación entre ésta y la
virtual, para evitar posibles contagios. En este caso, se ha hecho uso de AVG Internet
Security System Versión 9, que permite una gestión sencilla de reglas sobre las
comunicaciones de la máquina física y también un Firewall. Además se usará un
Router (D-Link Wireless 150 Dir-600), que también posee un Firewall, el cual será
configurado a modo de prevenir un ataque o infecciones en la máquina física.
Es aconsejable que todas las máquinas, sean estas Físicas y Virtuales se les asigne
una dirección IP fija, para evitar posibles fallos en la configuración de los programas
que componen la Honeypot.
173
Las siguientes recomendaciones en la configuración de red se aplicaron en la máquina
virtual que tiene como sistema operativo a Windows XP:
Se recomienda revisar la configuración de la red a través de Virtual Network
Editor, que se encuentra en el menú Edit de la ventana principal de VMware
Workstation.
En la pestaña Summary se muestran los adaptadores de red virtuales que el
software VMware ha creado cuando se lo instaló, se puede observar que cada
adaptador hace referencia a uno de los modos de conexión de red: Bridged, Host-
Only y NAT.
Ilustración 37. VMware: Adaptadores de red virtual creados por VMware.
Se recuerda que hay que configurar los adaptadores de red en modo Bridged, para
que simulen ser otros computadores de la red de modo que se les pueda asignar
una IP más adelante
174
En la pestaña Automatic Bridging debe estar marcada la opción automatic
bridging, ya que con esto se le obliga al programa a que reconozca de manera
automática la tarjeta de red de la máquina física.
Ilustración 38. VMware: Opción Automatic Bridging.
La pestaña Host Virtual Network Mapping muestra los adaptadores de red virtual
disponible, esto se configura de manera automática siempre y cuando se tome en
consideración el punto anterior.
Ilustración 39. VMware: Adaptadores de red virtual disponibles.
175
Ahora hay que proceder a configurar la máquina virtual que tiene como GuestOS
a Windows XP. Se le debe asignar una IP fija ya que el router usa DHCP y
también porque que la configuración del resto de elementos que conformaran la
Honeypot así lo requieren. Como se menciona antes, esta será la máquina trampa
y de la cual se procederá a realizar los análisis de los ataques que realicen los
intrusos. La configuración de red para esta máquina quedó de la siguiente manera:
Dirección IP: 192.168.0.104. (Rango de IP clase C).
Mascara de subred: 255.255.255.0.
Puerta de enlace predeterminada: 192.168.0.1 (IP del router).
Servidor DNS preferido: 192.168.0.1 (IP del router).
Ilustración 40. GuestOS XP: Direcciones IP de la máquina virtual Windows XP.
Para la asignación de las IP hay tener muy en cuenta el rango de direcciones,
en este caso y para efectos del desarrollo del prototipo se uso una red clase C.
Una vez asignadas las IP se procede a crear un grupo de trabajo, para de esta
forma establecer la comunicación entre la máquina anfitriona y las máquinas
virtuales. El grupo de trabajo en este caso se le denomino EMPRESARIAL.
176
Ilustración 41. GuestOS XP: Grupo de trabajo de máquina virtual Windows XP.
La máquina física con el HostOS Windows 7 Ultimate Edition también debe
pertenecer al mismo grupo de trabajo para poder visualizar al resto de equipos
de la red.
Ilustración 42. HostOS: Grupo de trabajo de la máquina con Windows 7.
También se le debe asignar una dirección IP fija.
Dirección IP: 192.168.0.104. (Rango de IP clase C).
Mascara de subred: 255.255.255.0.
177
Puerta de enlace predeterminada: 192.168.0.1 (IP del router).
Servidor DNS preferido: 192.168.0.1 (IP del router).
Ilustración 43. HostOS: Configuración de direcciones IP en Windows 7.
Con estas configuraciones ya será posibles ver todos los equipos pertenecientes al
grupo de trabajo, tanto en la máquina virtual como en la máquina física. Y para
finalizar se recomienda usar una ventana de comando en la máquina virtual y la física
para enviar paquetes de prueba ejecutan el comando PING, esta una forma determinar
si se ha configurado correctamente la red y existe comunicación entre los equipos.
178
DISEÑO DEL IDS DE RED BASADO SNORT
Snort es una herramienta cuya función general es la de un Packet Sniffer, a nivel de
seguridad de redes se lo usa en combinación con otras herramientas para formar un
Sistema de Detección de Intrusiones de Red (N-IDS). Snort Fue desarrollado por
Martin Roesch, este programa es capaz de ejecutar análisis de tráfico y
autentificación de paquetes en tiempo real en redes TCP/IP (Roesch, 2002).
Realiza análisis del contenido de paquetes y puede ser usado para detectar una
variedad de ataques y pruebas de intrusión. Los eventos detectados por Snort pueden
ser registrados en bitácoras, tanto en archivos de texto (syslog) o en alguna base de
datos como MySQL o Postgres, para el posterior análisis del administrador de red.
Así mismo existen herramientas de terceros que en combinación con Snort permiten
mostrar informes en tiempo real, tales como ACID (Analysis Console for Intrusion
Databases/Consola de Análisis para Bases de Datos de Intrusión) o para convertirlo
en un Sistema Detector y Preventor de Intrusos.
Snort dispone actualmente de unas 1.600 reglas y de multitud de aplicaciones para el
análisis de sus alertas, implementa un motor de detección de ataques y barrido de
puertos que permite registrar, alertar y responder ante cualquier anomalía
previamente definida (IETF, 2004). Usa un lenguaje de creación de reglas flexibles,
potentes y sencillas. Durante su instalación ya nos provee de cientos de filtros o
reglas para backdoor, DDoS, finger, FTP, Telnet, ataques web, Nmap.
179
Puede funcionar como sniffer (podemos ver en consola y en tiempo real qué ocurre en
nuestra red, todo nuestro tráfico), registro de paquetes (permite guardar en un archivo
los logs para su posterior análisis, o un análisis offline) o como un IDS normal.
Cuando un paquete coincide con algún patrón establecido en las reglas de
configuración, se registra en un log. Así se sabe cuándo, de dónde y cómo se produjo
el ataque.
Este programa está disponible bajo licencia GPL, gratuito y funciona bajo
plataformas Windows y UNIX/Linux. Dispone de una gran cantidad de filtros o
patrones ya predefinidos, así como actualizaciones constantes ante casos de ataques,
barridos o vulnerabilidades que vayan siendo detectadas a través de los distintos
boletines de seguridad (Snort, 2010).
Instalación y Configuración del N-IDS
WinPcap
Para comenzar, Snort hace uso de una librería denominada Pcap, creada por los
expertos en seguridad informática Van Jacobson, Craig Leres y Steven McCanne, del
Laboratorio Nacional Lawrence Berkeley. Esta librería tiene una versión para Linux
(LibpCap) aunque para esta investigación se usara la versión para Windows
denominada WinPcap, que es un driver de captura de paquetes, esto significa que
WinPcap puede tomar paquetes de una red y colocarlo en Snort.
180
La versión de WinPcap que se utilizó para el desarrollo del prototipo que propone
esta investigación fue la 4.1.2 descargable desde:
http://www.winpcap.org/install/default.htm
Para su instalación únicamente hay que ejecutar el programa de instalación (WinPcap
4.1.1.exe), este lanzará un asistente que guiara paso a paso a través de la instalación
de la librería; este proceso no conlleva mayor dificultad.
Snort llama a WinPcap de forma automática, por lo tanto si al momento de ejecutar
Snort, éste no funciona adecuadamente, puede ser que WinPcap no haya sido
correctamente instalado.
Snort
Tras la instalación de WinPcap se procede a la descarga de Snort desde la siguiente
dirección web:
http://www.snort.org/snort-downloads
Donde se encontraran las versiones disponibles, en este caso se ha descargado la
versión más reciente (Snort 2.8.6.1.exe) que se encuentra en la sección Binaries de
dicha página. Una vez descargado, se procede a instalar Snort desde el ejecutable,
aquí también estará disponible un asistente de instalación.
181
Ilustración 44. N-IDS: Asistente de Instalación de Snort.
En esta parte del proceso de instalación es recomendable seleccionar la opción “I do
not plan to log to a database, or I am planning to log to one of the databases listed
above”, al marcar esta opción permitirá que después se pueda realizar la conexión a
una base de datos definida por el administrador, para este caso será MySQL.
En la siguiente ventana se recomienda instalar todos los componentes que Snort
muestra, así que se deben seleccionar todos.
Ilustración 45. N-IDS: Componentes de Snort.
Para finalizar con la instalación se debe elegir la ruta donde se ubicara Snort y todos
sus componentes, se eligió la que el asistente ofrece por defecto C:/Snort.
182
Ilustración 46. N-IDS: Ruta de instalación de Snort.
Cuando Snort haya sido instalado, a continuación se debe descargar el fichero de
reglas que se encuentran en la página web de Snort desde la siguiente dirección:
http://www.snort.org/snort-rules
Para poder realizar esta descarga fue necesario registrarse en la página web oficial de
Snort, debido a que existen dos tipos de descargas: una para los Usuarios con
Subscripción (versión pago) y otra para los Usuarios Registrados (versión gratuita); la
diferencia entre ambas, radica en que las actualizaciones de las reglas para los
Usuarios Registrados (versión gratuita) salen 30 días después que las de los Usuarios
con Subscripción (versión pago). Así después de unos breves pasos donde se llena
una hoja de registro en la web de Snort, se procedió a descargar el archivo de reglas
(snortrules-snapshot-2853.tar.gz) y se lo descomprime en el directorio raíz de Snort
(C:\Snort).
183
Cuando se haya completado el proceso de instalación de Snort y las reglas, se debe
proseguir con la configuración. Lo primero que se debe hacer es acceder a la carpeta
C:\Snort\etc, en este directorio encontraremos un fichero llamado snort.conf que es
el fichero de configuración que se utilizará para adecuar Snort a las necesidades del
proyecto. Se puede acceder al contenido del fichero con un editor de texto que no
corrompa el formato original del archivo (Wordpad). En este fichero hay que
configurar tres módulos para poder adaptar Snort a las necesidades del N-IDS que se
pretende construir:
1. Configuración de la red.
En el fichero snort.conf, hay que buscar una línea como la que se presenta abajo,
donde podemos ver que la red que aparece por defecto es:
var HOME_NET any
Lo que se debe hacer es modificar esta variable. La podemos modificar de tres
modos dependiendo de lo que se quiera:
Una red clase C: var HOME_NET 192.168.1.0/24
Un Host específico : var HOME_NET 192.168.1.3/32
Varios Host: var HOME_NET 92.168.1.2/32,192.168.1.3/32,192.168.1.4/32
Para el presente caso lo que nos interesa es monitorizar un solo host, por lo que
utilizamos el segundo modo, quedando la variable así:
var HOME_NET IpdelHost/32
184
La IP del Host será la que se le configuro anteriormente a la maquina virtual que
posee como GuestOS Windows XP, quedando de esta manera:
var HOME_NET 192.168.0.104/24
2. Configuración de las reglas.
Para que Snort detecte y avise sobre posibles intentos de ataques es necesario que
se le asigne un conjunto de reglas a seguir. De forma predeterminada la base de
estas reglas está en la ruta C:\Snort\rules.
Para indicar esto, en el fichero snort.conf, se debe reemplazar la línea var
RULE_PATH\rules y var SO_RULE_PATH\so_rules respectivamente por:
var RULE_PATH c:\snort\rules y var SO_RULE_PATH c:\snort\so_rules
Casi al final del fichero snort.conf aparecen una serie de sentencias con el
siguiente formato:
include $RULE_PATH/name.rules
Se trata de las sentencias que incluyen las diferentes librerías de reglas. Las que
tienen el símbolo “#” delante son las que están comentadas, si se quiere que se
incluyan, solamente hay que quitarle el símbolo “#” de delante. Por ahora se les
quitará el símbolo “#” a todas.
185
3. Configuración de accesos a ficheros.
Solamente quedan por modificar las librerías dinámicas para acceso al análisis de
las reglas. Snort fue inicialmente desarrollado para Linux, de modo que, aunque la
versión anuncia un programa para Windows, se encuentran aun algunos partes del
código para la plataforma Linux. Por lo que existe un error en el código fuente, y
este reside en las rutas de acceso a dos directorios necesarios para la ejecución del
programa, pues estas se encuentran definidas de la forma en que es propia en
Linux, si no se corrige esto se genera un error a la hora de ejecutar el programa.
Para solucionar este problema es necesario cambiar las siguientes líneas de código
dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/ por
dynamicpreprocessor directory c:\snort\lib\snort_dynamicpreprocessor y
dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so por dynamicengine
c:\snort\lib\snort_dynamicengine\sf_engine.dll
Además se recomienda eliminar el archivo SF_SDF.DLL de la siguiente ruta
C:\snort\lib\snort_dynamicpreprocessor, debido a que este archivo resulta
incompatible con las configuraciones hechas hasta ahora, caso contrario causara
conflictos cuando se levanten los servicios de Snort.
Ahora ya se puede realizar una prueba; primero se recomienda iniciar la maquina
virtual que posee como GuestOS a Windows XP. Con toda la configuración realizada
anteriormente en el fichero snort.conf, ya se puede probar Snort desde una ventana de
186
comando; para ello una vez ubicado en el directorio C:\Snort\bin hay que escribir la
siguiente línea:
Snort –dev –c C:\Snort\etc\snort.conf –l C:\Snort\log –i3
Con esto se comenzará a ver el tráfico que circula por el host determinado en la
configuración. Si buscamos en el directorio C:\Snort\log, podemos ver como en el
fichero alert.ids (Se puede ver su contenido a través de Worpad) se han ido
almacenando las alertas que los ficheros de reglas tienen reconocidas como tráfico del
que deben de alertar. Las opciones que se han pasado en la línea de comandos a Snort
son:
-d: visualizar los campos de datos que pasan por la interface de red.
-e: Snort nos mostrará información más detallada.
-v: Iniciamos Snort en modo sniffer visualizando en pantalla las cabeceras de los
paquetes TCP/IP.
-c: Directorio del archivo que utilizará Snort como fichero de configuración.
-l: Directorio donde guardar las alertas y logs.
-i: Interfaz que monitorizaremos.
Para saber la interfaz que se desea monitorizar, se ejecuta en una ventana de comando
una vez ubicado en el directorio C:\Snort\bin la línea Snort –W, lo que dará un
listado de números y descripciones de las posibles interfaces. Puesto que VMware
genera dos adaptadores virtuales, en este caso aparecieron tres interfaces: los dos
adaptadores generados por VMware y el adaptador de la máquina real.
187
Para determinar cuál de las interfaces era necesaria asociar a Snort, se hizo uso de la
opción que da Snort para la creación de reglas. Por lo cual fue necesario crear una
regla que alertase de los ping hechos desde otro host hacia la máquina que se pretende
monitorizar y viceversa; de este modo, se probó a iniciar Snort con cada una de las
interfaces mostradas por el comando Snort -W y hacer ping desde otro host, y así
obtener la interfaz que detectase la alerta y, por tanto, la adecuada. Pero para ello, es
necesario conocer un poco más acerca de la configuración de reglas para Snort, y
poder desarrollar la regla para los ping.
Creación De Reglas En Snort
La definición de reglas convierte a Snort en una herramienta muy potente a la hora de
detectar intrusiones, por lo que resulta muy interesante el análisis de su creación.
Snort utiliza un lenguaje simple para la definición de las reglas. La mayoría de las
reglas están escritas en una sola línea. A continuación se describen los pasos que hay
que seguir para crear un fichero con reglas nuevas que se quieran utilizar.
El primer paso es crear el fichero “.rules” (se ha usado el nombre misReglas.rules),
en el que se debe introducir las reglas que se requieran, este fichero estará alojado en
la carpeta rules que se encuentra en el directorio raíz de Snort (c:\Snort\rules). Una
vez creado, hay que abrir al fichero de configuración snort.conf (c:\Snort\etc) y
después de la inclusión de los ficheros de reglas que nos proporciona Snort, hay que
introducir una sentencia del tipo:
include <fichero de reglas>
188
Que en caso será:
include $RULE_PATH/misReglas.rules
Con esta sentencia se le dice a Snort que cuando arranque, introduzca las reglas del
fichero misReglas.rules en su base de datos de reglas.
Lo que hay que hacer a continuación es acceder al fichero en el que se clasifican y se
priorizan las reglas, en el cual, se introducirá el nuevo tipo del conjunto de reglas que
se va a crear y le asignara prioridad. Este fichero se llama classification.config y se
encuentra en la carpeta etc (c:\Snort\etc), la misma que el fichero de configuración de
Snort. Como se puede observar, las diferentes clasificaciones de reglas tienen el
siguiente patrón:
config <directiva>: nombre, descripción, prioridad
Se creará una clasificación (directiva classification) de reglas que se la llamará user-
rules, cuya descripción será “tráfico que nos interesa”, y la prioridad será 5. Para
crearla, se introduce la siguiente línea en el fichero:
config classification: user-rules, Trafico que nos interesa, 5
Una vez que se ha realizado esto, solamente queda comenzar a crear las reglas que se
necesiten. Es importante comentar que para la creación de reglas se necesita unos
pequeños conocimientos sobre protocolos, como pueden ser ICMP, TCP.
Ahora se procede a crear una regla muy simple, que va a alertar de los ping que se
realizan desde la máquina que se pretende monitorizar de nuestra red hacia el exterior
y viceversa.
189
Se comienza abriendo el fichero misReglas.rules que se ha creado anteriormente, y se
debe introducir las reglas. Las reglas en Snort se componen de dos partes, la cabecera
y las opciones, teniendo la siguiente forma:
<cabecera> (<opciones>)
Cabecera:
Las cabeceras tienen el siguiente formato:
<acción> <protocolo> <redFuente con máscara> <puerto> --> <redDestino
con máscara> <puerto>
La acción que se va a crear es una acción del tipo alert.
El protocolo será ICMP.
La red fuente será la variable $HOME_NET que se modifico en el fichero de
configuración anteriormente, que tiene incluida la máscara de red.
El puerto será any, refiriéndonos a todos los puertos.
Como red destino se pone $EXTERNAL_NET, una red externa
De nuevo se toma como puerto a any
Opciones:
Una vez creada la cabecera, se pasa a rellenar las opciones. Existe un gran número
de opciones, pero aquí sólo se comentarán algunas de las más importantes:
msg: Escribe un mensaje de alerta.
itype: tipo ICMP.
icode: código ICMP.
190
flags: flags TCP (A, S, F, U, R y P).
sid: ID de la regla.
classtype: tipo de la regla, (el tipo creado en el fichero classification.config).
content: buscan un patrón en el contenido de los datos del paquete.
rev: número de revisión de la regla.
Las opciones que se utilizarán para la regla ping que se desea crear serán msg,
itype, icode, sid, rev y classtype. El código de un ping en el protocolo ICMP es 0,
y el tipo es 8, con lo cual el campo icode tendrá el valor 0 y el itype el 8.
Para finalizar se debe introducir la regla en el fichero misReglas.rules. La regla
será la siguiente:
alert icmp $HOME_NET any -> $EXTERNAL_NET any (msg:"PING que
se lanza desde mi máquina"; icode:0; itype:8; sid:10000;classtype:user-rules;
rev:0;)
Cuando ya se haya creado la regla, se ejecuta Snort con cada una de las interfaces, se
hace un ping desde la máquina y se comprueba si se ha capturado la alarma en el
fichero alert.ids.
C:\Snort\bin> snort -dev -c c:\Snort\etc\snort.conf -l C:\Snort\log –i3
Con todo esto, se obtuvo como resultado que la interfaz adecuada para la asociación
con Snort era la del adaptador de la máquina real (adaptador numero 3). Y así se
finaliza con la configuración de Snort.
191
Instalación y Configuración de la Dase de Datos MySQL.
Snort ofrece capacidades de almacenamiento de sus bitácoras tanto en archivos de
texto como en bases de datos de libre distribución. En este caso, se hará uso de la
base de datos MySQL, un sistema de gestión de base de datos relacional, multihilo y
multiusuario.
Lo primero que se debe hacer es descargar el driver ODBC debido a los problemas de
compatibilidad que se pueden encontrar, el nombre del archivo es Connector-ODBC
Versión 3.51.27. En la página oficial de este driver se pueden encontrar descargas
para las diferentes plataformas como Windows, Linux, Unix, Sun Solaris, Mac OS X
entre otras. Para este caso se eligió la plataforma Windows el nombre de la descarga
para esta plataforma es Windows (x86, 32-bit), MSI Installer Connector-ODBC, el
cual se encuentra en la siguiente dirección web:
http://dev.mysql.com/downloads/connector/odbc/3.51.html
Se procede a instalar el driver descargado haciendo uso del asistente de instalación.
Cuando haya finalizado la instalación de este driver se puede continuar con la
instalación de MySQL. Se descarga la base de datos de la página oficial de MySQL:
http://dev.mysql.com/downloads/mysql/
Aquí aparecerán varias versiones del instalador de la base de datos, en este caso se
eligió la versión para Windows de 32 bits, Windows (x86, 32-bit), MSI Installer
que es compatible con el HostOS que posee la maquina física Windows 7 Ultimate
Edition. Una vez descargado hay que proceder a ejecutar el instalador y aparecerá el
asistente de instalación.
192
Ilustración 47. MySQL: Asistente de instalación de MySQL.
En la siguiente ventana se elige el tipo de instalación. Para este caso se escogió la
opción Típica.
Ilustración 48. MySQL: Tipo de instalación MySQL.
Aparecen las carpetas y directorios que se van a crear durante el proceso de
instalación.
193
Ilustración 49. MySQL: Carpetas y Directorios de MySQL.
Después aparecerá el asistente de configuración de MySQL, nos muestra dos
opciones marcadas, la primera indica que se desea configurar MySQL ahora, esta
opción la dejamos marcada; y la segunda indica si se desea registrar a MySQL, por el
momento no se desea registrar así que desmarcamos esta opción.
Ilustración 50. MySQL: Asistente de configuración de MySQL.
Se muestra una ventana de donde se especifica qué tipo de configuración se va a
aplicar, se eligió la opción Configuración Detallada.
194
Ilustración 51. MySQL: Tipo de configuración de MySQL.
Dependiendo del uso que se quiera dar al equipo en el que se instala marcaremos una
de las tres opciones:
Developer Machine: marcaremos esta opción si en el equipo donde hemos
instalado MySQL Server se utiliza también para otras aplicaciones. MySQL
Server utilizará la memoria mínima necesaria.
Server Machine: marcaremos esta opción si vamos a utilizar el equipo para
algunas aplicaciones (no demasiadas). Con esta opción MySQL Server
utilizará un nivel medio de memoria.
Dedicated MySQL Server Machine: marcaremos esta opción sólo si
queremos utilizar el equipo como un servidor dedicado exclusivamente a
MySQL. Con esta opción MySQL Server utilizará el máximo de memoria
disponible. Se obtendrá un rendimiento elevado pero el equipo sólo servirá
para MySQL.
195
En este caso se marca Developer Machine.
Ilustración 52. MySQL: Instancia de MySQL.
Se debe elegir el uso que se le dará a la base datos, aquí se marco la opción Base de
datos multifuncional.
Ilustración 53. MySQL: Uso de la base de datos.
Seleccionar la unidad y la carpeta donde queramos guardar los ficheros de datos
(Tablespace) de la Base de Datos.
196
Ilustración 54. MySQL: Unidad de destino y carpetas de los ficheros de datos.
Ahora hay que determinar el número aproximado de conexiones concurrentes (varios
clientes conectados a la vez) que tendrá el servidor de MySQL. La primera opción
asume unas 20, la segunda unas 500 y la tercera permite especificarlas manualmente.
Este parámetro es aproximado no tiene por qué ser exacto:
Ilustración 55. MySQL: Número de conexiones concurrentes.
Se recomienda dejar marcadas las opciones "Enable TCP/IP Networking" si
queremos que los clientes se puedan conectar mediante TCP/IP al equipo servidor de
MySQL. Podremos cambiar el puerto por el que lo harán, por defecto se suele dejar
3306 (si tenemos instalado algún firewall deberemos abrir dicho puerto) y también
197
“Enable Strict Mode” para que la base de datos se comporte de a manera de una base
de datos tradicional.
Ilustración 56. MySQL: Opciones de red.
Seleccionar el juego de caracteres que se quiere utilizar, por defecto está marcado la
primera opción.
Ilustración 57. MySQL: Juego de caracteres.
El siguiente paso es importante pues nos pide que especifiquemos el tipo de
iniciación de los servicios de MySQL Server. Si seleccionamos la primera opción
“Install As Windows Service” el programa de instalación nos creará un Servicio que
será el encargado de ejecutar MySQL Server, también nos permite especificar el
198
nombre del servicio y si queremos que arranque automáticamente al iniciar el sistema
“Launch the MySQL Server automatically”. La segunda opción “Include Bin
Directory in Windows PATH” añadirá las variables de entorno necesarias para la
ejecución de los ficheros necesarios para iniciar MySQL. La opción recomendada es
“Install As Windows Service”.
Ilustración 58. MySQL: Tipo de Arranque de MySQL.
Introducir la contraseña para el usuario administrador (root) y marcar la opción
“Enable root access from remote machines” si se quiere que se pueda acceder como
administrador desde otros equipos aunque este no es el caso.
Ilustración 59. MySQL: Contraseña del administrador de la base de datos.
Por último pulsar en “Execute” para finalizar la configuración de MySQL.
199
Ilustración 60. MySQL: Ejecuta las configuraciones para MySQL.
Si no hay problemas mostrará esta ventana indicando que el proceso de instalación y
configuración de MySQL Server ha terminado y se ha instalado e iniciado el Servicio
que ejecutará MySQL:
Ilustración 61. MySQL: Ventana de confirmación de MySQL.
Una vez instalado MySQL, tenemos que crear la base de datos sobre la que se
trabajará. Para ello accedemos como root a la base de datos. Esto se hace desde la
carpeta bin del directorio raíz de MySQL mediante una ventana de comando:
C:\program files\MySQL\MySQL server 5.1\bin> mysql -u root –p
Describiendo la línea de comando anterior:
200
-u: nombre de usuario en este caso (root).
-p: contraseña del usuario root.
Una vez hecho esto, nos pedirá la clave del root. Acto seguido, tenemos que crear la
base de datos:
create database snort;
A continuación, se han de crear las tablas con las que trabajará Snort. Para ello se
necesita un fichero llamado create_MySQL. Este fichero contiene un script de
creación de las tablas que usara Snort para almacenar las alertas, se lo puede consultar
en los Anexos de esta investigación, aunque también se encuentra en el directorio de
Snort (C:\Snort\schemas). Snort trae por default estos scripts de creación de tablas
para diferentes Bases de Datos (Postgres, MySQL, DB2, Oracle, MsSQL), pero para
este caso se usara el script de MySQL. Se debe modificar una línea de este fichero de
creación de las tablas, debido a que, si no, sería imposible almacenar las alarmas que
crea un escaneo de puertos, ya que no pertenece a ninguna clase de reglas. La línea es
una de las pertenecientes a la creación de la tabla signature (línea 25):
sig_class_id INT UNSIGNED NOT NULL,
A la cual hay que cambiarla de la siguiente manera:
sig_class_id INT UNSIGNED,
Una vez hecho esto, desde la línea de comando nos ubicamos en el directorio de
MySQL (C:\program files\MySQL\MySQL server 5.1\bin) y se ejecuta la siguiente
línea:
201
mysql -u root -p -D snort < c:\Snort\schemas\create_mysql
Nos pedirá la clave del root, y se crearan las tablas necesarias.
Ahora tenemos que darle permisos al usuario con el que se modificará la base de
datos Snort de la siguiente manera (dentro de MySQL, habiendo accedido con el
root); lanzamos la sentencia GRANT, indicando los permisos que otorgamos, la base
de datos y los objetos de la misma sobre los que estamos asignando privilegios, el
nombre del usuario y el password, la sentencia queda de esta forma:
mysql> Grant INSERT,SELECT,UPDATE,CREATE,DELETE on snort.* TO
„gustavo‟@‟localhost‟ identified by 'gustavo';
En esta línea permitimos al usuario „gustavo‟, seleccionar (SELECT), insertar
(INSERT), actualizar (UPDATE), crear (CREATE) y borrar (DELETE) en todos los
objetos (*) de la base de datos Snort, además indicamos que el contexto sea la
máquina local de la base de datos (localhost), lo que impedirá que el usuario se
conecte desde otras máquinas, y finalmente asignamos un password mediante la
sentencia IDENTIFIED BY.
Se sale de MySQL (quit) y se accede con el usuario creado directamente a la base de
datos Snort:
mysql -u gustavo -D snort –p
De nuevo, pedirá la clave. Una vez dentro, se comprueba que se han creado todas las
tablas mediante la sentencia:
show tables;
202
En la figura se muestra el resultado de este comando una vez creadas las tablas que
posteriormente se utilizaran para la gestión de las alertas lanzadas por Snort.
Ilustración 62. MySQL: Tablas de la base de datos Snort.
Ahora hay que proceder a modificar el fichero snort.conf para que Snort interactúe
con MySQL, para lo que se descomenta la línea (se elimina el carácter „#‟):
#output database: log, <db_type>, user=<username> password=<password> test
dbname=<name> host=<hostname>
Y se introducen los valores de usuario, clave, nombre de la base de datos y Host,
puerto quedando de esta manera:
output database: log, mysql, user=gustavo password=gustavo dbname=snort
host=localhost port=3306 sensor_name=snort_sensor
Una vez realizados estos cambios, tan sólo queda comprobar que se ha procedido
adecuadamente, para lo que se enciende la maquina virtual con el GuestOS Windows
Xp, se levantan los servicios de Snort tal y como se ha hecho anteriormente:
C:\Snort\bin> snort -dev -c c:\Snort\etc\snort.conf -l C:\Snort\log –i3
Si hasta este punto se ha configurado bien todo, los servicios de Snort se levantaran
sin ningún problema. Se realiza alguna acción para que se creen alertas (por ejemplo,
203
se hace un ping desde otro host hacia la máquina con el GuestOS Windows Xp
aprovechando la regla que se creó para distinguir las interfaces):
Ping 192.168.0.104
Y accedemos a la base de datos Snort con el usuario que se creó:
C:\program files\MySQL\MySQL server 5.1\bin> mysql -u gustavo -D snort –p
Ejecutando a continuación en el directorio la siguiente sentencia donde muestra el
contenido de la tabla Event que es donde Snort almacena las alertas detectadas:
mysql> select * from event;
De este modo, se pueden ver, si todo ha sido correcto y si las alarmas que se han
producido se han almacenado en la base de datos creada.
Ilustración 63. MySQL: Contenido de la Tabla Event.
204
ACID (Analysis Console for Intrusion Databases/Consola de Análisis para Bases
de Datos de Intrusiones).
Una vez que se ha instalado y configurado el detector de intrusos Snort, y la forma de
cómo asociarlo a una base de datos, en la que se almacenara la información que sea
detectada. Hay que buscar la manera de mostrar dicha información debido a que esta
es muy abundante y si no se la trata de forma adecuada, es como si no se tuviera
nada.
La información que se encuentra almacenada en la base de datos es extensa y para
proceder a revisarla, se ha de acceder por medio de líneas de comando y sentencias
SQL lo cual llega a ser muy engorroso.
Así pues, se necesita de una herramienta que permita visualizar, trate los logs, haga
un resumen de la información y presente los resultados de una forma clara y fácil de
entender; de modo que sea sencillo para el usuario el darse cuenta si ha ocurrido o
está ocurriendo algo. Para realizar este fin, se ha tomado en consideración una
herramienta llamada ACID (Analysis Console for Intrusion Databases/Consola de
Análisis para Bases de Datos de Intrusiones).
ACID es un motor de análisis basado en el lenguaje de programación PHP, que
permite buscar y procesar una base de datos que registre eventos de seguridad
generados por varios IDS, firewalls y herramientas de monitoreo de red. Las
características que incluyen actualmente son:
205
Creador de Query y una interfaz de búsqueda, para encontrar alertas en
coincidencia con los metadatos (ejemplo, firmas, tiempo de detección), así como
pruebas de redes subyacentes.
Visor de paquetes (decodificador), muestra gráficamente los paquetes de
información de alertas de registro de las capas 3 y 4 (OSI)
Gestión de alertas, proporcionando lógicamente la construcción de grupos de
alertas de incidentes, eliminando los falsos positivos.
Cuadro y generación de estadísticas, basadas en tiempo, firmas, protocolos,
dirección IP, puertos TCP/UDP.
Instalación y Configuración de ACID y sus Complementos
ACID es un sistema basado en Web, creado con el lenguaje de programación PHP,
por lo que necesita de un servidor capaz de interpretar PHP, tener instalado PHP y
varias herramientas que permitan su ejecución. Para el caso del servidor, se optó por
Apache, debido a que es un producto de libre distribución y también por la
compatibilidad con varias de las herramientas que se usaron en el desarrollo del
prototipo.
206
Instalación de PHP.
Habrá que descargar desde el sitio web oficial de PHP:
http://www.php.net
En la sección “downloads” los binarios de Windows correspondientes al paquete
comprimido, en este caso, la versión 5.2.14
En esta página se encontraran dos versiones de ese mismo archivo: un zip y un
installer. Son varios los artículos y foros que recomendaban la descarga del archivo
zip, de modo que se descargó esta versión y se descomprimió en una carpeta creada
previamente en el directorio C:\php. Una vez descomprimido en el directorio
mencionado, dentro de esta carpeta encontraremos un archivo llamado “php.ini-
recomended”, y es el que se utilizará para la configuración de PHP.
Antes de realizar cualquier cambio al fichero es recomendable que se haga una copia
del mismo en cualquier otro lugar para trabajar con esta copia. Este fichero se abre
con un editor de texto y hay que llevar a cabo las siguientes modificaciones:
1. Especificar la ruta donde se guardan las extensiones de PHP (que dan soporte a
MySQL).
extension_dir = "C:\php\ext\"
2. Habilitar el soporte de MySQL descomentando las extensiones (quitando el
carácter „;‟) las siguientes líneas:
extension=php_mysql.dll
extension=php_mysqli.dll
207
3. Habilitar el modo de presentación grafico que usara ACID (quitando el carácter
„;‟ ) a la siguiente línea:
extension=php_gd2.dll
4. Modificar el tiempo máximo de ejecuciones por Script (esta en segundos).
max_execution_time = 60
5. Modificar el manejo de mensajes de errores para que únicamente muestre los
reportes de errores y no de avisos o advertencias.
error_reporting = E_ALL & ~E_NOTICE
Una vez hecho estos cambios se deben guardar el fichero con el nombre “php.ini”.
Se lo copia al directorio C:\php. Se recomienda reiniciar la máquina para que los
cambios surtan efecto.
Instalación de APACHE.
Hay que descargar el Web Server del sitio oficial de APACHE:
http://www.apache.org/
Ubicado en la sección “Apache Projects”, se encuentra el servidor HTTP se lo
selecciona y nos dirigirá para proceder a la descarga. El paquete de instalación del
servidor Web, en este caso es la versión 2.2.16-win32-x86-no_ssl.msi
208
Cuando se haya descargado hay que ejecutar el archivo, entonces aparecerá el
Asistente de instalación que nos guiara a través del proceso.
Ilustración 64. Apache: Asistente de instalación de APACHE.
En la siguiente ventana muestra el acuerdo de licencia, en la cual hay que aceptar los
términos del acuerdo.
Ilustración 65. Apache: Acuerdo de licencia de APACHE.
209
Ahora nos muestra algunas instrucciones sobre el servidor HTTP.
Ilustración 66. Apache: Instrucciones de APACHE.
A continuación habrá que ingresar cierta información para identificar nuestro servidor
HTTP.
Network Domain (Dominio de Red): localhost
Server Name (Nombre del Servidor): localhost
Administrator´s Email Address: gustavo@localhost
Seleccionar la opción For All Users, on Port 80, as a Service.
Ilustración 67. Apache: Información del servidor HTTP.
210
Elegir el tipo de instalación, para este caso se selecciona la opción Típica.
Ilustración 68. Apache: Tipo de instalación de APACHE.
Configurar la carpeta de destino, se dejo la que viene por defecto, recordar la ruta de
destino.
Ilustración 69. Apache: Carpeta de destino de archivos de APACHE.
211
Con esto y para finalizar se procede a la instalación del servidor HTTP.
Ilustración 70. Apache: Instalación de APACHE.
La última ventana muestra que la instalación ha concluido con éxito.
Ilustración 71. Apache: Finaliza la instalación APACHE.
212
Ahora veremos un icono (el de Apache Web Server) en la bandeja del sistema. Este
es el Monitor de Servicio de Apache (Apache Service Monitor), con el cual podemos
detener, iniciar o reiniciar los servicios de Apache.
Ilustración 72. Apache: Icono del monitor de APACHE.
Como se puede observar Apache está ejecutándose bajo Windows 7, como un
servicio más, y para comprobarlo abrimos una ventana del Web Browser (Internet
Explore) y escribimos en la barra de direcciones lo siguiente:
http://localhost
Con lo que se mostrara una ventana como esta.
Ilustración 73. Apache: Los servicios de APACHE están ejecutándose sin ningún problema.
213
Ahora que ha finalizado la instalación del servidor Apache con éxito a continuación,
se procede a la configuración de PHP como módulo de Apache Web Server (integrar
PHP con APACHE), para lo que se edita el archivo de configuración “httpd.conf” de
Apache Web Server ubicado en la ruta (C:\Program Files\Apache Software
Foundation\Apache2.2\conf), Para realizar estos cambios se recomienda detener los
servicios de nuestro servidor Apache Web Server desde el Monitor de Servicios
Apache. Cuando ya se hayan detenido los servicios hay que proceder a hacer las
siguientes modificaciones:
1. Agregar la ubicación del archivo php.ini y el módulo de PHP para Apache en la
sección LoadModule del archivo de configuración de Apache. Ubicar después del
ejemplo:
# Example:
# LoadModule foo_module modules/mod_foo.so
#
PHPIniDir "C:/php"
LoadModule php5_module "C:/php/php5apache2_2.dll"
2. Agregar el MIME correspondiente a los archivos de PHP al final de la carga del
módulo mime_module.
<IfModule mime_module>
.
AddType application/x-httpd-php .php
</IfModule>
214
Se guardan todos los cambios realizados en el archivo de configuración de Apache
Web Server, una recomendación es que reinicie la máquina para que los cambios
surtan efecto.
Realizando Pruebas De Conexión
Conexión entre PHP y APACHE
Ahora se procederá realizar una prueba para verificar si estas dos herramientas están
trabajando en conjunto. Para esto vamos a crear un archivo llamado “info.php”,
mediante un editor de texto, al cual le añadiremos las siguientes líneas de código
PHP:
<?php
phpinfo();
?>
Se guardan los cambios en el archivo, y se lo copia al directorio donde se encuentra la
carpeta “htcdocs” de Apache Web Server (C:\Program Files\Apache Software
Foundation\Apache2.2\htdocs).
Abrir una ventana del Web Browser Internet Explorer y en la barra de direcciones
escribir lo siguiente http://localhost/info.php o http://192.168.0.102/info.php en
ambos casos debe aparecer una ventana muy parecida a la que muestra la Ilustración
75.
215
Ilustración 74. Apache: Comprueba que Apache y PHP están integrados.
Demostrando así que la conexión entre PHP y Apache se ha realizado con éxito, caso
contrario se recomienda verificar las configuraciones.
La dirección IP en este caso, es la que se le asigno a la maquina física (HostOS
Windows 7 Ultimate), así que es recomendable usar la dirección IP que posea el
sistema donde se vaya a implementar esta herramienta.
Conexión entre PHP con MySQL.
Ahora hay que realizar la configuración para que PHP trabaje con la base de datos
MySQL.
Para esto, en la carpeta ubicada en (C:\php) se encuentra un archivo llamado
“libmysql.dll”, este archivo se lo copia a la siguiente ruta (C:\Windows\System32).
Hay que asegurarse de no sobrescribir cualquier archivo ya existente en esa carpeta.
216
En caso de que ya exista otro con el mismo nombre se recomienda renombrar dicho
archivo y luego proceder a copiar el nuevo.
Para comprobar la conexión entre PHP y MySQL se procede a crear un Script simple
que llamaremos “testmysql.php”, en el cual se debe añadir las líneas de código PHP
que se detallan a continuación. Para el caso del presente estudio quedo de la siguiente
manera, recordando que hay que cambiar el nombre del servidor (localhost), nombre
de usuario administrador de la base de datos (root) y la clave (gustavo).
<?PHP
//recuerde cambiar el password que configuró
//para conectarse a la base de datos MySQL como root
//first parameter is server name, 2nd username 'root', 3rd is password
$rst = @mysql_connect("localhost","root","gustavo");
if (!$rst){
echo( "<p>Unable to connect to database manager.</p>");
die('Could not connect: ' . mysql_error());
exit();
} else {
echo("<p>Successfully Connected to MySQL Database Manager!</p>");
}
if (! @mysql_select_db("mysql") ){
echo( "<p>Unable to connect database...</p>");
exit();
} else {
echo("<p>Successfully Connected to Database 'MYSQL'!</p>");
}
?>
217
Cuando ya se tenga creado el Script “testmysql.php” lo copiamos a la siguiente ruta
(C:\Program Files\Apache Software Foundation\Apache2.2\htdocs), y procedemos a
ejecutarlo abriendo una ventana de Internet Explorer y escribiendo lo siguiente en la
barra de direcciones, http://localhost/testmysql.php y debe mostrara una ventana
como la de la Ilustración 76, en la cual se expone que la conexión se ha realizado con
éxito (Successfully Connected to MySQL Database Manager! Successfully Connected
to Database 'MYSQL'!)
Ilustración 75. Apache Conexión entre PHP y MySQL realizada con éxito.
218
Instalación de ACID.
Sólo queda configurar ACID, para lo que, en primer lugar, hay que descargar dos
ficheros:
Adodb: http://sourceforge.net/projects/adodb/
PHPlot: http://sourceforge.net/projects/phplot/
Los archivos se descomprimen en el directorio raíz de Snort (C:\Snort) y se
recomienda cambiar el nombre de las carpetas dejándolas como “adodb y phplot”.
Para instalar ACID, hay que proceder a descargarlo, la versión que se uso es la
0.9.6b23.
http://acidlab.sourceforge.net/
Se descomprime el archivo en una carpeta que se llame “Acid” en el directorio raíz
del servidor web, que en este caso por haber instalado Apache es:
C:\Program Files\Apache Software Foundation\Apache2.2\htdocs
Ahora se comienza a modificar las siguientes líneas del fichero “acid_conf.php”, que
hacen referencia a los valores de configuración de host, conexión, base de datos y
contraseñas, este fichero se encuentra en la misma carpeta Acid que se creó para
descomprimirlo:
$DBlib_path = "C:\Snort\adodb";
/* Alert DB connection parameters
* - $alert_dbname : MySQL database name of Snort alert DB
* - $alert_host : host on which the DB is stored
219
* - $alert_port : port on which to access the DB
* - $alert_user : login to the database with this user, usuario que tiene
permisos para conectarse a la base de datos de Snort
* - $alert_password : password of the DB user, clave del usuario
*
* This information can be gleaned from the Snort database
* output plugin configuration.
*/
$alert_dbname= "snort";
$alert_host = "localhost";
$alert_port = "3306";
$alert_user = "gustavo";
$alert_password = "gustavo";
ACID crea tablas adicionales para que el usuario pueda archivar alertas importantes.
Se puede indicar otro usuario para acceder a ellas modificando los siguientes valores
del fichero:
/* Archive DB connection parameters */
$archive_dbname = "snort_archive";
$archive_host = "localhost";
$archive_port = "";
$archive_user = "user_archive";
$archive_password = "123456";
220
Con esto ya tenemos instalado ACID, es recomendable reiniciar todos los servicios.
Ahora para probarlo hay que abrir una ventana del navegador (Internet Explorer) y en
la barra de direcciones escribimos http://localhost/acid/acid_main.php, y nos
aparecerá una ventana como la que muestra la ilustración 76
Ilustración 76. ACID: Ejecución de ACID.
La primera vez que se accede a ACID muestra un error, debido a que todavía no se
han crea las nuevas tablas de almacenamiento para las Alert Group. Para proceder a
crear estas tablas se debe seleccionar la opción Select Setup Page, que mostrara una
ventana como la de la Ilustración 77.
221
Ilustración 77. ACID: Ventana de creación de las tablas de ACID.
Aquí se deberían crear las tablas ACID al que pulsar el botón Create ACID AG, pero
existe una incompatibilidad entre PHP 5 y el código php de ACID. Para corregir esta
incompatibilidad hay que llevar a cabo ciertos cambios en el código fuente de ACID.
Cambiando Código Fuente de ACID.
Para que las tablas de ACID puedan crearse sin ningún problema y que la consola de
este programa funcione; primero hay realizar algunos cambios en ACID para que este
sea compatible con los elementos instalados hasta ahora y sobre todo que el código
fuente usa dos funciones $HTTP_POST_VARS y $HTTP_GET_VARS que, para las
últimas versiones de PHP han cambiado con el nombre de $_POST y $_GET. Debido
esto, las variables no son reconocidas y algunos botones y enlaces no funcionan, por
lo que es necesario cambiar en el código fuente, en donde se hallen presentes las
funciones antiguas mencionados y proceder a cambiarlas por la nuevas funciones.
222
Los archivos sobre los cuales hay que trabajar para realizar las modificaciones son los
siguientes:
acid_log_error.inc
acid_state_common.inc
acid_state_criteria.inc
Estos archivos se encuentran en el directorio de ACID (C:\Program Files\Apache
Software Foundation\Apache2.2\htdocs\acid). Para más detalles, el código fuente de
estos archivos se encuentra en la sección Anexos.
Además hay que corregir otro error que se encuentra en el fichero “acid_db.inc”. En
él hay que cambiar las líneas de código 84 y 153 por las siguientes:
84: $sql = "SELECT vseq FROM `schema`";
153: $sql = "SELECT vseq FROM `schema`";
Pues de lo contrario se producir un error en la columna Signature de la base de datos
de ACID, que en vez de mostrar la descripción de la alerta muestra sólo una
numeración.
Cuando se hagan todos los cambios señalados anteriormente hay que reiniciar todos
los servicios para ejecutar nuevamente ACID en una ventana de Internet Explorer y
presionar el botón Create ACID AG, al hacerlo aparecerá una ventana como la que
muestra la Ilustración 78, donde se confirma la creación de las tablas de ACID.
223
Ilustración 78. ACID: Ventana que confirma la creación de las tablas de ACID.
Al ingresar otra vez a ACID y si Snort ha registrado movimientos en la red
almacenándolos en MySQL, se mostrara la ventana de Inicio de ACID con un
resumen de la actividad en la red.
Ilustración 79. ACID: Página de inicio de ACID.
224
Con esto se ha conseguido una configuración completa y manejable de un IDS de red
basado en Snort. Así, se obtendrán un resumen general de los incidentes detectados
como lo muestra la Ilustración 79, en la que se aprecia el tipo de tráfico
intercambiado y sus proporciones.
También se puede ver una enumeración de todas las alertas (Ilustración 80), de las
que se puede obtener más información detallada (longitud del paquete, contenido de
datos, flags, opciones, etc) con un clic click (Ilustración…..).
Ilustración 80. ACID: Muestra las alertas lanzadas por Snort.
226
DISEÑO DEL IDS DE HOST BASADO EN SEBEK
Definición
Un IDS de host (H-IDS) es un sistema de detección de intrusos instalado en el
propio host perteneciente a una red, que busca detectar anomalías que indiquen un
riesgo potencial, revisando las actividades en la máquina. Puede tomar medidas
protectoras, pero en este caso no serán de interés, pues lo que se pretende es
permitir el ataque para ser analizado. Existen múltiples aplicaciones aptas para
este cometido, pero fue Sebek (un programa de código abierto) la que se eligió,
debido a su gran potencial y funcionamiento.
Sebek (diseñado principalmente para Win32 y Linux) es una avanzada y compleja
herramienta de captura de datos, diseñada para detectar las actividades del
atacante en una Honeypot, sin que él pueda saberlo. Algunas características se
mencionan a continuación:
Tiene dos componentes. El primero es un cliente que se ejecuta en las
Honeypot, su propósito es capturar todas las actividades hechas por los
atacantes (pulsaciones de teclado, carga de archivos, contraseñas), entonces
secretamente se enviar los datos al servidor, Se puede decir que Sebek es
básicamente un KeyLogger, pero con características mucho más avanzadas y
orientadas al monitoreo.
227
El segundo componente es el servidor que recoge los datos de las Honeypot.
El servidor normalmente se ejecuta en la Honeywall Gateway, pero también
puede funcionar de forma independiente.
El objetivo principal de Sebek es capturar datos que ayuden a recrear de forma
fiable los eventos sucedidos dentro de un equipo trampa. De gran utilidad para
determinar cuándo consiguió entrar el intruso, cómo lo hizo y qué hizo
después de conseguir acceso.
La información obtenida puede permitir saber quién es el intruso, cuáles son
sus motivos y con qué trabaja. Para prescribir qué hizo el atacante después de
la intrusión, también se necesitan los datos que proporcionan las pulsaciones
de teclado del intruso y el impacto de su ataque.
Funcionamiento de Sebek.
Sebek se puede integrar en una Honeypot de Alta Interacción, permitiendo a los
administradores recopilar actividades tales como las pulsaciones de teclado en el
sistema, incluso en entornos de cifrado (Wesley, 2003).
Cuando no se usa cifrado, es posible monitorizar las pulsaciones de teclas de un
intruso capturando el tráfico en la red y luego usando una herramienta como
228
Whireshark(1)
(antes conocido como Ethereal) para reensamblar el flujo TCP y
examinar los contenidos de la sesión. Esta técnica no solo permite saber qué
escribió el intruso, sino también lo que vio como salida. Las técnicas de
reensamblado de flujo proporcionan un método casi ideal para capturar las
acciones de un intruso cuando la sesión no va cifrada.
Pero cuando la sesión va cifrada, el reensamblado deja los contenidos cifrados de
la sesión. Muchos han demostrado que este camino es demasiado difícil. En vez
de romper el cifrado de una sesión, otros han buscado formas de esquivar el
cifrado. La información cifrada debe ser descifrada en algún punto para poder
usarla. El proceso de esquivar el cifrado implica capturar los datos después del
descifrado. La idea es dejar que los mecanismos habituales de descifrado hagan su
trabajo, y entonces, conseguir acceso a estos datos no protegidos. Los primeros
intentos de esquivar el cifrado tomaron forma de binarios troyanizados. Cuando
un intruso entra en un equipo trampa, él o ella accederán a la máquina
comprometida usando aplicaciones de cifrado como SSH(2)
.
1 Antes conocido como Ethereal, es un analizador de protocolos, capturador de paquetes de red (llamado a veces,
Sniffer). Utilizado para realizar análisis y solucionar problemas en redes de comunicaciones para desarrollo de
software y protocolos. Permitirá ver, a un nivel bajo y detallado, qué está pasando en la red.
2 Secure SHell, en español: intérprete de órdenes segura, es el nombre de un protocolo y del programa que lo
implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la
computadora mediante un intérprete de comandos.
229
Para contrarrestar el peligro de los binarios troyanizados, los intrusos comenzaron
a instalar sus propios binarios. Pareció muy evidente que el método más robusto
para capturar datos, era acceder a los datos desde el núcleo del sistema operativo.
Cuando se capturan datos desde el núcleo, el intruso puede usar los binarios que
quiera, y aún así, será posible registrar sus acciones. Más aún cuando el espacio
de usuario y el espacio del núcleo están divididos, tenemos una forma simple de
hacer la técnica más óptima, ocultando las propias acciones de todos los usuarios,
incluso del root.
Las primeras versiones de Sebek fueron diseñadas para recolectar las pulsaciones
de teclas directamente desde el núcleo. Esas primeras versiones eran una versión
modificada del Rootkit Adore1, que utilizaba una llamada sys_read troyanizada
para capturar las pulsaciones de teclado. Este sistema registraba las pulsaciones en
un fichero oculto y las exportaba a través de la red de forma que pareciera un
tráfico UDP cualquiera, como NetBIOS(2)
. Este sistema permite a los usuarios
monitorizar pulsaciones de teclas del intruso, pero era complejo, fácil de detectar
a través del uso de sniffers y tenía un rendimiento limitado. Esta última cuestión
hacía más difícil recolectar otro tipo de datos que no fueran pulsaciones de teclas.
1 Un Rootkit es una herramienta, o un grupo de ellas que tiene como finalidad esconderse a sí misma y esconder
otros programas, procesos, archivos, directorios, claves de registro, y puertos que permiten al intruso mantener
el acceso a un sistema para remotamente comandar acciones o extraer información sensible.
2 NetBIOS, "Network Basic Input/Output System", es una especificación de interfaz para acceso a servicios de
red, es decir, una capa de software desarrollado para enlazar un sistema operativo de red con hardware
específico.
230
La siguiente versión de Sebek, la versión 2, fue diseñada no sólo para recolectar
pulsaciones de teclas, sino para todos los datos que pasaran por sys_read.
Recolectando todos los datos, se extendió la capacidad de monitorización a toda
actividad dentro del equipo trampa incluyendo, aunque no limitándose a, las
pulsaciones de teclas. Si se copia un fichero al equipo trampa, Sebek verá y
registrará el fichero, obteniendo una copia idéntica. Si un intruso lanza un cliente
de IRC(1)
o de correo, Sebek verá sus mensajes. Un objetivo secundario fue hacer
a Sebek más difícil de detectar, ocultar el tráfico de los registros completamente
de un atacante. Así, cuando un intruso ejecuta un rastreador para detectar tráfico
sospechoso, es incapaz de detectar el tráfico perteneciente a Sebek.
Sebek no es sólo una alternativa al reensamblado de sesiones TCP, para usarse
solo de cara al cifrado, sino que también proporciona la habilidad de monitorizar
los trabajos internos del equipo trampa de forma transparente, en comparación
con otras técnicas de caja negra. Si un intruso instala un malware y sale del
sistema, con Sebek podemos seguir el rastro de las acciones locales del software
maligno aunque no acceda a la red.
1 IRC (Internet Relay Chat) es un protocolo de comunicación en tiempo real basado en texto, que permite
conversaciones entre dos o más personas. Se diferencia de la mensajería instantánea en que los usuarios no deben
acceder a establecer la comunicación de antemano, de tal forma que todos los usuarios que se encuentran en un
canal pueden comunicarse entre sí, aunque no hayan tenido ningún contacto anterior.
231
Sebek versión 3 amplía esta funcionalidad interceptando un nuevo conjunto de las
llamadas al sistema. Además, se recupera el identificador de proceso padre
(PPID). Esta versión de Sebek es capaz de recopilar información acerca de
cualquiera de las comunicaciones y de establecer su relación con el proceso
específico que se ejecuta en la Honeypot. Esta información también ayudará a
correlacionar datos de Sebek con el tráfico de la red de datos capturados por un
Sniffer, en este caso, Snort. Además, si una conexión de red se asocia a un intento
de intrusión, es posible determinar directamente el proceso en peligro. Así, se
pueden identificar todos los archivos visitados durante una intrusión.
Arquitectura de Sebek.
Sebek se basa en una arquitectura cliente-servidor. El cliente está instalado en la
máquina trampa y el servidor es típicamente desplegado en el Honeywall
Gateway, es decir, la puerta de enlace a través de la que pasa todo el tráfico de la
Honeypot (Wesley, 2003).
El cliente Sebek captura los datos del equipo trampa y los envía a través de la red
donde son recolectados por el servidor. El servidor Sebek, a nivel de usuario,
contiene herramientas que permiten recolectar y mostrar información capturada y
exportada por el cliente Sebek, esto lo hace de dos posibles fuentes: la primera es
capturando paquetes directamente de la red, y la segunda es a través de un archivo
de captura de tráfico.
232
La Ilustración 82 muestra la implementación típica de Sebek, en la que el módulo
cliente se instala en el equipo trampa. Las actividades del intruso capturadas por
el equipo trampa se envían a la red (de forma oculta al intruso) y son recolectadas
de forma pasiva por la pasarela Honeywall.
Ilustración 82. SEBEK: Arquitectura típica de Sebek.
Así, el cliente Sebek es capaz de obtener las pulsaciones de teclado introducidas
por el atacante en el señuelo, incluyendo los comandos ejecutados. Una vez se
han recolectado los datos, se almacenan en una base de datos relacional o se
extraen inmediatamente las pulsaciones de teclas. Las comunicaciones usadas por
Sebek están basadas en UDP por ser no orientadas a conexión fiables.
233
Con la explicación detallada anteriormente se puede proceder a la instalación de
la última versión de Sebek en la Honeypot (cliente Sebek para Windows), así
como la creación de una nueva máquina virtual que haga las veces de servidor (en
este caso Linux), recolectando toda la información enviada por la máquina
trampa. El modo más óptimo y efectivo es instalar el servidor e incluso Snort en
el Honeywall, en el caso del prototipo de Honeypot que se propone en esta tesis,
se hizo todo ello sobre una sola computadora, implementando el servidor en una
nueva máquina virtual; debido a que el Honeywall requiere de una nueva máquina
física y los recursos económicos para el desarrollo de este proyecto no lo
permitían. Así, la arquitectura que se empleará será como la que se muestra en la
Ilustración 83:
Ilustración 83. SEBEK: Implementación de Sebek para el prototipo de Honeypot.
234
INSTALACIÓN DE SEBEK
La instalación tanto del cliente como del servidor no conllevan demasiada
complejidad, pero sí es aconsejable llevar a cabo algunos ajustes que mejorarán el
rendimiento. Los archivos necesarios para la instalación en ambos sistemas se pueden
encontrar en las siguientes direcciones:
https://projects.honeynet.org/sebek/ (Cliente)
http://old.honeynet.org/tools/sebek/ (Servidor)
Instalación del Cliente Sebek
Para la instalación de Sebek sobre una plataforma Windows como cliente, se
descargo el archivo comprimido (.zip) de la dirección mencionada arriba de este
apartado. La versión que se utilizó fue Sebek-win32-3.0.5. Se descomprime el
archivo, deben copiarse los dos archivos ejecutables, Configuration Wizard.exe y
Setup.exe a la máquina virtual trampa (Windows Xp). Hay que ejecutar el archivo
Setup.exe.
Ilustración 84. SEBEK: Asistente de instalación de Sebek Setup.exe.
235
Ahora aparecerá el acuerdo de licencia y aceptamos los términos.
Ilustración 85. SEBEK: Acuerdo de licencia de Sebek.
El asistente Setup.exe instala el controlador en la ubicación estándar de Windows,
C:\WINDOWS\system32\drivers en Windows XP.
Ilustración 86. SEBEK: Carpeta de destino de Sebek.
Mostrará que el nombre del driver es Sebek, lo cual habrá que cambiar más
adelante, este cambio se hace como contramedida para evitar que el intruso se dé
236
cuenta de que esta en la Honeypot. Hay que recordar que se debe borrar todo
rastro que delate la Honeypot.
Ilustración 87. SEBEK: Instalación de Sebek.
La instalación de Sebek finaliza con éxito.
Ilustración 88. SEBEK: Fin de la instalación de Sebek.
237
Configuración del cliente Sebek
Ahora hay que configurar Sebek antes de reiniciar la máquina de lo contrario no
funcionará correctamente. Para esto hay que ejecutar el archivo Configuration
Wizard.exe. Nos muestra una ventana de bienvenida don se muestra un resumen
de lo que va a configurar.
Ilustración 89. SEBEK: Asistente de Configuración Sebek.
Elegir la ubicación del driver Sebek, por defecto se ubica en la ruta
C:\WINDOWS\system32\drivers\SEBEK.SYS.
Ilustración 90. SEBEK: Asistente de Configuración Sebek.
238
Ingresar la “Destination MAC”, “Destination IP” y “Destination Port”, se
recomienda dejar estas variables tal y como lo muestra el asistente.
Destination Mac: La dirección MAC de la Gateway de red, no se recomienda
ponerla debido a que esto pondría en riesgo la red.
Destination IP: Es la IP del Honewall Gateway, tampoco se recomienda
ponerla porque esto delataría el servidor.
Destination Port: El que nos muestra el asistente es el 1101, por donde el
cliente enviara al servidor (de manera oculta) todo tráfico que sea sospechoso.
Ilustración 91. SEBEK: Variables de Sebek.
239
El magic value ayudara a identificar la Honeypot y sus paquetes, se recomienda usar
el botón Random Value para asignar otro valor.
Ilustración 92. SEBEK: Magic Value Sebek.
Seleccionar el adaptador de Red.
Ilustración 93. SEBEK: Adaptador de red.
240
Especificar el nombre del programa que se usara para la configuración, también
es recomendable cambiarlo, en este caso será “HP” por Honeypot.
Ilustración 94. SEBEK: Nombre del programa de configuración.
Por último muestra un resumen de todo el proceso de configuración.
Ilustración 95. SEBEK: Resumen de la configuración.
Una buena práctica es la de no guardar una copia de los ficheros de configuración
de Sebek en la propia máquina trampa, una vez haya sido instalado.
Cuando el programa se ha instalado, es oculto y sólo puede ser visitado y
reconfigurado utilizando el ejecutable Configuration Wizard.exe pero con el
241
nombre que se indica en una variable definida durante la configuración del
mismo. Se recomienda cambiar el nombre por defecto de la herramienta
Configuration Wizard.exe que sirve para gestionar Sebek, y, por tanto, el nombre
de esta variable, a un valor no estándar. Para finalizar hay que reiniciar la
maquina virtual trampa.
Preparando Maquina Virtual Servidor Linux
Ya se definió que se va usar una maquina virtual que haga de servidor (Honeywall
Gateway), y el sistema operativo que se eligió para este fin, fue la distribución Linux
de Ubuntu versión 10.04 LTS Lucid Linx Desktop 32 bits, descargable de la
siguiente dirección:
http://ubuntu.com.es/descargas.html
Se eligió esta distribución de Linux, por la afinidad y experiencia que posee el autor
de la presente tesis con este sistema operativo, además que desde el punto de vista del
autor de esta investigación; Ubuntu ofrece muchas características y herramientas
fáciles de utilizar y entender para aquellos que se están iniciando en el uso de los
sistemas operativos Linux, es un sistema operativo estable. A más de eso Ubuntu
ofrece un entorno gráfico (GNOME/LINUX) amigable e intuitivo que facilitara la
administración de la Honeypot desde el servidor.
Posee un sistema de descarga de paquetes conocido como SYNAPTIC, que facilitará
la descarga e instalación de ciertos complementos que serán necesarios para la
instalación de Sebek como servidor.
242
Antes de proceder con la instalación de Sebek como servidor se ha considerado hacer
una breve reseña de cómo configurar ciertos elementos en el Servidor Linux para
prepararlo antes de la implementación de Sebek.
Configurar IP Fija
Se recomienda asignar una IP fija a todas las máquinas que forme parte de la
Honeypot, es así que con el servidor Linux también hay que hacer lo mismo, y
para esto se debe hacer lo siguiente:
En una ventana de Consola o Terminal y digitar la siguiente línea:
#sudo nano –w /etc/network/interfaces
Pedirá que ingrese el password del usuario administrador, a continuación se abrirá
un fichero en el que hay que cambiar lo que tiene escrito por estas líneas:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.106
netmask 255.255.255.0
gateway 192.168.0.1
En este caso, el Gateway es la dirección IP del Router que por lo general suele
ser 192.168.0.1, aunque si se posee otra dirección pues habría que cambiar esta
243
línea. Cuando ya se haya configurado todo se pulsa CTRL+X, preguntara que si
se desean guardar los cambios, escogemos Si y presionamos la tecla enter y se
guardaran nuestros cambios.
Ademas hay que proceder configurar el DNS que se necesita para poder tener
acceso completo a la red, para esto en una Terminal digitar la siguiente linea:
sudo nano /etc/resolv.conf
Con lo que se abrira una ventana de editor donde se debe cambiar la siguiente
linea agregando la IP del DNS:
nameserver 192.168.0.1
Esta es la IP (del router) que viene configurada por default, pero si es necesario
hay que cambiarla para poder tener acceso completo a la red. Se guardan los
cambios.
Por ultimo reiniciamos la red:
sudo /etc/init.d/networking restart
Ahora solo resta hacer una prueba de conectividad, haciendo un PING desde la
maquina física con Windows 7 a la virtual con Ubuntu y viceversa.
Actualizar Ubuntu.
Antes que nada, es posible que durante la instalación de Sebek en Ubuntu se
presenten errores, pero esto ocurre porque se necesita actualizar Ubuntu con
ciertos paquetes. Para realizar esta actualización de manera segura, se procede a
abrir una Terminal y digitamos lo siguiente.
244
sudo aptitude update && sudo aptitude safe-upgrade
Se pide el ingreso del password del administrador, buscara las actualizaciones e
instalara, esto puede tardar cierto tiempo. Ahora se procede a descargar algunos
paquetes complementarios. Así mismo hay que abrir una Terminal y digitar las
líneas.
sudo apt-get install subversion
sudo apt-get install make gcc automake autoconf libc6-dev patch linux-headers-server
sudo apt-get install build-essential
Todo esto con la finalidad de evitar errores al tratar de compilar el paquete de
Sebek en Linux.
LIBPCAP
Aun falta un último componente y es la librería LIBPCAP, esta permitirá
capturar los paquetes que envía el Cliente Sebek hacia el Servidor, poniendo la
tarjeta de red en modo promiscuo; así que hay que descargar todos los
componentes de esta librería. Para esto se usara SYNAPTIC que es un gestor de
búsqueda de paquetes y se lo encuentra en “Sistema>Administracion>Gestor de
paquetes Synaptic”. Hay que realizar una búsqueda con la palabra Libpcap, donde
aparecerán algunos resultados pero las que se necesitan son las siguientes.
Libpcap0.8-dbg
Libpcap0.8-dev
Libpacp0.8
245
SAMBA
Samba es un software que permite al ordenador con Ubuntu poder compartir
archivos e impresoras con otras computadoras en una misma red local. Utiliza
para ello un protocolo conocido como SMB/CIFS compatible con sistemas
operativos UNIX o Linux, como Ubuntu, pero además con sistemas Windows (7,
Vista, XP, NT, 98...), OS/2 o incluso DOS. También se puede conocer como
LanManager o NetBIOS.
Para instalar este servicio es necesario abrir una ventana de Consola o Terminal y
digitar la siguiente línea:
sudo aptitude install samba samba-client smbfs smbclient
Inmediatamente empezara la descarga del paquete. Una vez instalado Samba, solo
resta poner a la maquina que tiene Ubuntu en el mismo grupo de trabajo de las
otras dos Máquinas (Windows 7 y Xp), para hacer esto hay abrir el fichero de
configuración escribiendo la siguiente línea en una ventana de Consola:
$sudo nano /etc/samba/smb.conf
Abierto el fichero, buscamos (CTRL+W) la línea que diga algo como:
workgroup = MSHOME
Y reemplazamos MSHOME por el nombre de nuestro grupo de trabajo, en este
caso EMPRESARIAL. Se pulsa CTRL+X, pedirá que si se desean guardar los
cambios, escogemos Si y presionamos la tecla enter y se guardaran nuestros
cambios. Ahora ya todas las máquinas (Windows 7, Xp y Ubuntu) pertenecen al
mismo grupo de trabajo.
246
Configuración del firewall en Ubuntu.
Tanto la máquina física HostOS Windows 7 y la máquina virtual que hace de
servidor GuestOS Linux deben poseer un firewall. Toda distribución Linux ofrece
un firewall muy potente, flexible, fácil de configurar y adaptar a las necesidades
de los usuarios.
Para este cometido se hará uso de IPTABLES, que permite crear reglas para
configurar un firewall que proteja nuestro servidor. En primer lugar hay que
descargar el paquete de IPTABLES si aun no se encuentra instalado. Para esto en
una Terminal digitar la siguiente línea:
sudo apt-get install iptables
Instalado IPTABLES, hay que proceder a crear nuestro firewall. El siguiente paso
es crear un Script en el escritorio de Ubuntu el cual llamaremos Firewall.sh, el
contenido de este fichero con respecto a las reglas del firewall dependerá del
administrador de la red y las necesidades que él tenga, pero para el caso del
desarrollo del Prototipo que se presenta en esta tesis; se creó un conjunto de
reglas que permite cerrar todos los puerto, excepto los que usa Sebek y también
aísla toda comunicación con la maquina trampa, restringiendo su acceso al
servidor. Para más detalles del contenido de este Script consultar la sección de
Anexos.
Una vez que se posea el Script configurado hay que darle permiso de ejecución de
la siguiente manera:
247
sudo chmod +x firewall.sh
Ejecutar el fichero usando la siguiente línea de comando:
sudo sh firewall.sh
Procedemos a comprobar la salida generado por IPTABLES usando la siguiente
línea:
sudo iptables -L
Comprobado el firewall si cumple con los requerimientos, el último paso sería
hacer que el Firewall se cargue al iniciar Ubuntu, y para esto hay que copiar el
fichero firewall.sh al directorio /etc/init.d/, en base a las siguientes líneas de
comando:
sudo cp firewall.sh /etc/init.d/
sudo update-rc.d firewall.sh defaults
Se debe reiniciar la máquina para que los cambios surtan efecto.
Con estas configuraciones, Ubuntu ya está listo para cumplir la función de Honeywall
Gateway con Sebek como Servidor.
Instalación del Servidor Sebek.
Primero hay proceder a descargar Sebek desde la dirección dada anteriormente, el
fichero se encuentra en formato .tar.gz, para este caso se usar la versión Sebekd-
3.0.3 que es la versión servidor para Linux.
http://old.honeynet.org/tools/sebek/
248
Hay que copiar el fichero descargado al escritorio de la Máquina Virtual GuestOS
Ubuntu y a continuación procedemos a descomprimirlo vía Terminal.
gustavo@servidor1:~/Escritorio$ tar xvzf sebekd-3.0.3.tar.gz
Ahora hay que compilar la carpeta descomprimida. Para esto nos dirigimos al
directorio donde está la carpeta y usamos el comando ./configure
gustavo@servidor1:~/Escritorio/sebekd-3.0.3$ ./configure
Una vez compilado y comprobado que no existan errores ni falta de alguna
librería o paquete, es momento de instalarlo.
gustavo@servidor1:~/Escritorio/sebekd-3.0.3$ make
gustavo@servidor1:~/Escritorio/sebekd-3.0.3$ sudo make install
Después de esto en el directorio /usr/local/bin/ aparecerán unos módulos que
serán los que usaremos para extraer la información. Algunos de estos módulos
son:
sbk_extract: Lo invocaremos para extraer la información, posee entre otros
los flags –i para identificar la interfaz y -p para identificar el puerto.
sbk_ks_log.pl: permite extraer las pulsaciones de teclado.
sbk_upload.pl: sirve para almacenar los datos en la base de datos MySQL.
La principal herramienta de extracción se llama sbk_extract y se basa en Libpcap.
Simplemente captura tráfico en modo promiscuo filtrándolo por el puerto de
destino. Desde la línea de comandos del servidor, sbk_ks_log.pl permite visualizar
249
la actividad de pulsaciones de teclas en la máquina donde ha instalado el cliente
de Sebek. No necesita parámetros de ejecución y toma su entrada de sbk_extract.
Para ejecutar los servicios de Sebek solo basta con abrir una terminal y ubicarse
en el directorio /usr/local/bin$ y escribir la siguiente línea de comando:
gustavo@servidor1:/usr/local/bin$ sudo sbk_extract -i eth0 –p 1101 | sbk_ks_log.pl
En la Ilustración 96 se muestra el ejemplo de su aplicación.
Ilustración 96. SEBEK: Actividad en el GuestOS Windows XP.
En este ejemplo, sbk_extract está capturando datos en la interfaz eth0 y esperando
los registros en el puerto UDP 1101. Entonces envía estos registros a
sbk_ks_log.pl para la extracción de las pulsaciones de teclas.
250
HERRAMIENTA DE ANALISIS FORENSE
Definición.
El análisis forense, en criminalística, es una ciencia aplicada para hallar y
descubrir la verdad sobre un crimen cometido, tiene como punto de referencia tres
partes bien relacionadas entre sí también conocida como evidencia: Escena del
crimen, Sospechoso y la Victima.
En el ámbito digital (seguridad de redes) el análisis forense no difiere mucho de
este concepto; puesto que también se pretende analizar, en base a Evidencias, un
entorno de red (Escena del crimen) que se supone seguro y que el Intruso
(Sospechoso) ha tratado de vulnerar con el fin de alcanzar su objetivo (Victima).
El análisis forense va de la mano con un conjunto de procesos también conocido
como Gestión de Incidentes, donde se detalla lo siguiente:
1. Preparación de las herramientas de análisis.
2. Detección de incidentes.
3. Análisis Forense.
4. Selección de estrategia de respuesta a los incidentes.
5. Recuperación y Mejoramiento de esquemas de seguridad.
6. Seguimiento de incidentes.
251
Los objetivos que busca del análisis forense se describen a continuación:
Saber que ha sucedido.
Determinar la magnitud del incidente.
Determinar entidades implicadas.
Prevenir y mejorar la preparación para incidentes futuros.
Eliminar el riego y las posibles responsabilidades.
Si es necesario, denunciar.
Software Comercial.
Dentro del Software recomendado para análisis forense se encuentran:
Autopsy: Esta basado en la librería TSK (The Sleuth Kit), que es una
colección de herramientas en líneas de comando, que permiten realizar
análisis e investigar los volúmenes de las unidades de disco y los archivos de
datos del sistema. Autopsy es una herramienta que posee una interfaz gráfica a
manera de Browser con la misma funcionalidad de la librería TSK, juntas
permite investigar todos los sistemas de archivos y discos existentes en un
entorno determinado. Está disponible para plataformas Windows, Linux,
Unix. (AUTOPSY, 2003).
VMware: Es el Software de virtualización usado en el desarrollo del prototipo
de la presente tesis. La característica de capturar Snapshots de los estados de
una máquina, lo vuelve una herramienta útil para proceder a un análisis
252
forense donde se pueden determinar los cambios realizados retomando un
snapshot previo al incidente para comprobar que elementos han sido alterados
por el intruso.
Foremost: Es un programa de consola para recuperar archivos basándose en
sus cabeceras, pie de página y estructuras de datos internas. Este proceso se
conoce comúnmente como data carving (corte en capas de datos). Foremost
puede trabajar en archivos de imágenes o directamente en un disco duro. Las
cabeceras se pueden especificar en un archivo de configuración o utilizando
líneas de comandos para especificar los tipos integrados de archivos. Estos
tipos integrados permiten dar un vistazo a las estructuras de datos de un
formato de archivo dado que permite una recuperación más rápida y más
fiable. También está disponible para plataformas Windows, Linux, Unix.
(FOREMOST, 2010).
F.I.R.E.: Forensic Insident Responce Enviroment (Entorno de respuesta
forense a incidentes), es una distribución portátil basado en un CD booteable,
cuya finalidad es la de proveer un entorno que permita realizar análisis
forenses, respuesta a incidentes, recuperación de datos, escaneo de virus y
evaluación de vulnerabilidades.
253
También provee las herramientas necesarias para un análisis forense con solo
insertar el LIVE CD en sistemas Win32, SPARC Solaris y Linux X86.
(F.I.R.E, 2010).
InstallWatch: Es un software fácil de administrar que permite al usuario
monitorizar qué archivos y directorios se crean durante la instalación de un
paquete de software en tiempo real. Esto permite saber con exactitud lo que se
ha instalado en el sistema para efectos de un análisis forense posterior.
InstallWatch tiene la característica de detectar todo cambio hecho en el
Registro del Sistema, programas y archivos creados e instalados y cambios en
la configuración. Es compatible con plataformas Windows y también posee
una distribución para Linux.
Instalación y Configuración de InstallWatch.
El Software que se usará para las tareas de análisis forense será InstallWatch Pro
versión 2.5C. Por la fácil administración y compatibilidad con las herramientas
usadas hasta ahora. Este programa permite realizar snapshots de la máquina en la
que se instala para poder llevar a cabo la comparación de un estado inicial con
uno posterior, en el caso de la Honeypot, tras haber sido vulnerada.
De esta manera, cuando se compruebe por medio de los IDS‟s que la máquina
trampa ha sido comprometida y se han registrado todos los movimientos que se
crean necesarios, se llevará a cabo el análisis, obteniéndose todos los archivos y
254
registros del sistema de la máquina que hayan sido añadidos, modificados o
borrados. Así, se puede localizar el Software instalado como consecuencia de la
intrusión además del efecto que causan, y continuar con el análisis del modo en
que actúan.
La instalación de este programa no es de gran complejidad, puesto que es guiada
por el asistente de instalación del programa; se la realizara sobre la máquina
virtual trampa, en este caso, la que posee el Sistema Operativo Windows XP.
InstallWatch trabaja usando el Registro de Windows y lo que hace es tomar un
snapshot, como punto de partida cuando la máquina aun no ha sido
comprometida, para posteriormente realizar comparaciones en los cambios que se
han realizado en el registro. La idea es que InstallWatch recibirá el apoyo del
monitoreo del IDS de Red (Snort) y del IDS de Host (Sebek), con lo cual se
evitará los Falsos Positivos.
Una vez inicializado el programa, es recomendable tomar un snapshot. La
snapshot debe tomarse en un punto en el que se esté seguro de que el sistema esté
totalmente libre de malware. Se debe tener en cuenta que cualquier acción que se
efectúe en la máquina será almacenada en registros o archivos, por lo que es
preferible tenerla lista para no realizar cambios posteriores que puedan confundir
a la hora de hacer el análisis. La Ilustración 97 muestra a InstallWatch en
ejecución, resaltando el botón Snapshot.
255
Ilustración 97. InstallWatch: Toma de Snapshot.
Inmediatamente realizada la snapshot, ya es posible llevar a cabo el análisis tan
sólo haciendo click sobre la opción Analyze, se debe asignar un nombre a dicho
análisis para ser guardado.
Ilustración 98. InstallWatch: Realizar el Análisis.
256
En la Ilustración 99, se muestra un resumen de todos los cambios efectuados una
vez efectuado el análisis.
Ilustración 99. InstallWatch: Resumen de cambios tras el análisis.
Además, se puede verificar la cantidad de información sobre los archivos y
registros añadidos, borrados o modificados (Al ser este el primer Snapshot se
observan muy pocos cambios).
257
Ilustración 100. InstallWatch: Archivos añadidos.
De esta manera, se demuestra la ventaja del programa InstallWatch y el gran
potencial que posee, que será útil para estudiar los cambios detectados que se
produjeran durante algún ataque a la Honeypot.
Registro de Windows.
InstallWatch ofrece múltiple información sobre los cambios efectuados en los
registros. Es importante tener un cierto conocimiento sobre los registros de
Windows XP, ya que la Honeypot corre sobre este sistema operativo.
El Registro contiene información que Windows utiliza como referencia
continuamente, por ejemplo los perfiles de los usuarios, las aplicaciones
instaladas en el equipo y los tipos de documentos que cada aplicación puede
crear, las configuraciones de las hojas de propiedades para carpetas y los iconos
258
de aplicaciones, los elementos de hardware que hay en el sistema, los puertos que
se están utilizando.
En Windows XP, los archivos auxiliares de todas las secciones excepto
HKEY_CURRENT_USER están en la carpeta %SystemRoot%\System32\Config.
Los archivos auxiliares para HKEY_CURRENT_USER están en la carpeta
%SystemRoot%\Profiles\NombreUsuario. Las extensiones de los archivos de
estas carpetas indican el tipo de datos que contienen. A veces, la falta de
extensión también puede indicar el tipo de datos que contienen (Soporte
Microsoft, 2010).
Las características de seguridad de Windows XP permiten que un administrador
controle el acceso a las claves del Registro. Los tipos de datos definidos que se
usan en Windows XP son caracteres y el tamaño máximo del nombre de un valor
es de 16.383 de caracteres. Los valores largos (de más de 2.048 bytes) deben
almacenarse como archivos con el nombre almacenado en el Registro, lo que
contribuye a que el Registro se utilice eficazmente. El tamaño máximo de un
valor es el de la memoria disponible. (Soporte Microsoft, 2010).
En la siguiente tabla que se muestra a continuación se describe las claves
predefinidas que utiliza el sistema:
259
Cuadro 8
Claves predefinidas en Windows XP
Carpeta o clave o Clave
Predefinida Descripción
HKEY_CURRENT_USER
Contiene la raíz de la información de configuración del
usuario que ha iniciado sesión. Las carpetas del usuario,
los colores de la pantalla y la configuración del Panel de
control se almacenan aquí. Esta información está
asociada al perfil del usuario. La clave a veces aparece
abreviada como "HKCU".
HKEY_USERS
Contiene todos los perfiles de usuario cargados
activamente en el equipo. HKEY_CURRENT_USER es
una subclave de HKEY_USERS. HKEY_USERS puede
aparecer abreviada como "HKU".
HKEY_LOCAL_MACHINE
Contiene información de configuración específica del
equipo (para cualquier usuario). Esta clave a veces
aparece abreviada como "HKLM".
HKEY_CLASSES_ROOT
Es una subclave de
HKEY_LOCAL_MACHINE\Software.
La información que se almacena aquí garantiza que
cuando abra un archivo con el Explorador de Windows
se abrirá el programa correcto. Esta clave a veces
aparece abreviada como "HKCR".
La clave HKEY_CLASSES_ROOT proporciona una vista
del Registro que combina la información de estos dos
orígenes. HKEY_CLASSES_ROOT también proporciona
una vista combinada para los programas diseñados para
versiones anteriores de Windows. Para cambiar la
configuración del usuario interactivo, se deben realizar
los cambios en
HKEY_CURRENT_USER\Software\Classes en lugar de
en HKEY_CLASSES_ROOT. Para cambiar la
configuración predeterminada, se deben realizar los
cambios en
HKEY_LOCAL_MACHINE\Software\Classes. Si escribe
valores en una clave de HKEY_CLASSES_ROOT, el
sistema almacena la información en
HKEY_LOCAL_MACHINE\Software\Classes.
Si escribe valores para una clave en
HKEY_CLASSES_ROOT y la
clave ya existe en
HKEY_CURRENT_USER\Software\Classes, el sistema
almacenará la información ahí, en lugar de en
HKEY_LOCAL_MACHINE\Software\Classes.
HKEY_CURRENT_CONFIG Contiene información acerca del perfil de hardware que
utiliza el equipo local cuando se inicia el sistema.
Elaboración: Gustavo Estrella Quijije.
Fuente: Soporte Microsoft
260
FASE DE COMPROBACIÓN
Después de la instalación del último componente del Prototipo de la Honeypot, es
necesario realizar una comprobación, que permita determinar si los pasos que se han
realizado anteriormente están correctos, si los componentes instalados trabajan bien
en conjunto y en general, comprobar si la Honeypot funciona adecuadamente.
Para inicializar la Honeypot se han de seguir los siguientes pasos:
Paso 1. Se debe poner en marcha los servicios de IDS de red, Snort. Esto se lo
hace vía línea de comando ubicado en el directorio C:\snort\bin, donde se escribe
la siguiente línea de comando:
C:\snort\bin>snort –dev –c C:\snort\etc\snort.conf –l C:\snort\log –i3
Paso 2. Se enciende la máquina virtual que hace el papel de servidor Sebek y se
inicia Sebek. Desde una terminal hay que ubicarse en el directorio /usr/local/bin
escribe la siguiente línea de comando para iniciar los servicios de Sebek:
gustavo@servidor1:/usr/local/bin$ sudo sbk_extract -i eth0 –p 1101 |
sbk_ks_log.pl
Paso 3. Encender la máquina virtual trampa; se recomienda como buena práctica
hacer un snapshot con el Snapshot Manager que ofrece VMware, en un estado
en que la maquina esté preparada, es decir, con todo el software instalado; así en
caso de un ataque se puede volver al estado en el que la maquina se encontraba
libre de malware y lista para ser lanzada otra vez.
261
Otra recomendación es que no se debe ejecuta ningún tipo de tarea en esta
máquina, para evitar los falsos positivos. La monitorización por medio de los
IDS‟s irá informando de todo movimiento existente en la máquina.
Paso 4. Tomar un snapshot de la maquina virtual trampa con el programa
InstallWatch antes de que ésta acceda a la red y pueda ser infectada. Hay que
recordar que el cliente Sebek se inicia automáticamente cuando se enciende la
máquina trampa.
Con todo esto la Honeypot queda lista para ser vulnerada y observar los movimientos
de los intrusos que sean detectados por medio de los IDS‟s (Snort y Sebek).
Paso 6. Establecer un periodo de captura prudencial, dependiendo de la red las
capturas de intrusiones pueden tardar un tiempo en producirse, esto se debe, a que
una red Corporativa es mucho más atractiva para el atacante que una red Doméstica.
Se puede dar por finalizado un periodo de captura cuando se han detectado
intrusiones o la máquina virtual ya no responde por errores graves en el sistema
consecuencia de los ataques, entonces se toma una snapshot y se procede a hacer el
análisis con InstallWatch usando el botón Analize, para detectar e identificar el
malware encontrado. Con esto será posible realizar los análisis pertinentes sobre
dicho malware.
262
Metodología que se aplicó para el Análisis Forense
Con la finalidad de aprender mas acerca del malware hallado, se ha hecho uso de
la herramienta suministrada por www.virustotal.com, www.symantec.com,
es.mcafee.com y esp.sophos.com/security/analyses/viruses-and-spyware. Estas
páginas proveen de un servicio de análisis de archivos que permite identificar y
describen las características detalladas de virus, gusanos, troyanos y malware en
general recurriendo a las bases de datos de varios motores antivirus. Asi se puede
consultar la documentación que los distintos motores antivirus ofrecen, lo que
proporciona una gran ayuda para proceder con el análisis, así determinar un punto
de comparación con los resultados obtenidos.
Identificado el malware, se procede a ejecutarlo en la máquina virtual trampa.
Previamente hay que asegurarse de cargar la máquina virtual trampa desde un
snapshot en la cual esté libre de infecciones y, asimismo, haber tomado una
snapshot con InstallWatch para poder efectuar un analisis posteriormente.
Hay que permitir un tiempo de ejecución, durante el que se observa el tráfico de
red utilizando Snort, de modo que se pueda reconocer el posible tráfico generado.
A continuación se efectúa el análisis con InstallWatch. Asi se obtendrá
información del efecto que causo el malware sobre la máquina virtual trampa,
considerando como comparativa la documentación hayada en las direcciones web
anteriormente descritas. Dicha documentación no siempre coincidirá con los
resultados de nuestro análisis forense, pero será tomada como referencia de una
caracterización genérica del malware encontrado.
263
Prueba De Intrusión
Para demostrara la funcionalidad de la Honeypot fue útil realizar unas pruebas que
permitieron determinar si todo estaba funcionando como debía.
En este apartado se detallaran los pasos que dieron para realizar dichas pruebas,
tomando como premisa: Los primeros paso que haría un Intruso para atacar
remotamente un sistema.
Ataques Remotos
Un ataque remoto es cualquier ataque que se lanza desde un ordenador a otro
cualquiera, independientemente del lugar en el que se encuentren ambos. Puede ser
que se encuentren en una misma oficina, o que la distancia entre ambos sea muy
grande.
Anteriormente ya se habían analizado varios de los tipos de ataques que usan los
intrusos para vulnerar un sistema, pero ahora se limitara a hablar únicamente de los
ataques remotos más usados. Entre los cuales se destacan:
Escaneos de puertos
Spoofing
Negaciones de servicio (DoS)
Interceptación
Ataques a aplicaciones
Correo electrónico
Ataques vía web
264
Para el ejemplo de ataque remoto que se pretende realizar, se hará uso del Escaneo de
Puertos.
Escaneo De Puertos (Portscan)
Una de las primeras actividades que un potencial atacante realizará contra su
objetivo será sin duda un escaneo de puertos, un Portscan; esto le permitirá
obtener en primer lugar información básica acerca de qué servicios estamos
ofreciendo en nuestras máquinas y, adicionalmente, otros detalles de nuestro
entorno como qué sistema operativo tenemos instalados en cada host o ciertas
características de la arquitectura de nuestra red. Analizando qué puertos están
abiertos en un sistema, el atacante puede buscar agujeros en cada uno de los
servicios ofrecidos: cada puerto abierto en una máquina es una potencial puerta
de entrada a la misma.
Comprobar el estado de un determinado puerto es a priori una tarea muy sencilla;
incluso es posible llevarla a cabo desde línea de comando, usando una
herramienta tan genérica como Telnet o el comando netstat.
Por lo general, nadie con experiencia usaría Telnet para realizar un escaneo de
puertos masivo contra un sistema o contra toda una red; existen herramientas
como Strobe o Nmap (la más conocida) que pueden realizar esta tarea de una
forma más o menos cómoda y automatizable.
265
Evidentemente, ninguno de estos programas se dedica a lanzar telnets contra los
puertos de un sistema: los escaneadores de puertos actuales implementan
diferentes técnicas que permiten desde detectar la versión del sistema operativo
usado en la máquina atacada, hasta pasar inadvertidos ante diferentes sistemas de
detección de intrusos.
Existen diferentes aproximaciones para clasificar los escaneos de puertos, tanto en
función de las técnicas seguidas en el ataque como en función de a qué sistemas o
puertos concretos va dirigido. Por ejemplo:
Escaneo horizontal: Cuando el atacante busca la disponibilidad de determinado
servicio en diferentes máquinas de una red; como ejemplo, si el intruso dispone
de un exploit que aprovecha un fallo en la implementación de sendmail, es normal
que trate de averiguar qué máquinas aceptan peticiones SMTP en un determinado
segmento para posteriormente atacar a dichos sistemas.
Escaneo vertical: Suele denotar el interés del atacante en un host concreto; si
comprueba todos los puertos del sistema al escaneo se le denomina vanilla,
mientras que si sólo lo hace contra determinados puertos o rangos, se le denomina
strobe (en referencia al programa del mismo nombre).
266
Ejemplo De Ataque Remoto (Nmap)
En base a la técnica del escaneo de puertos, se iniciara con la prueba de intrusión.
Para esto se utilizo el programa NMAP, el cual es muy fácil de usar, simplemente con
poner la dirección IP del host y pulsar un botón, el programa automáticamente
mostrara información detallada del host que se pretende atacar. Antes de iniciar con la
prueba de intrusión se recuerda que la Honeypot debe estar activada y lista.
Para proceder con la demostración, se ha instalado el programa NMAP en un host
diferente al que se encuentra la Honeypot pero perteneciente a la misma red, es decir,
que será un ataque interno.
Ilustración 101. Prueba Intrusión: Ventana de Nmap.
Como se puede apreciar en la Ilustración 101, hay que escribir la dirección IP en el
cuadro de texto Target, y a continuación presionar el botón Scan, para que muestre la
267
información detallada de un host determinado; en este caso el objetivo será la
máquina trampa perteneciente a la Honeypot. Cuya dirección IP 192.168.0.104.
Ilustración 102. Prueba Intrusión: Resultados obtenidos después del escaneo.
Después del escaneo, Nmap nos muestra información útil para proceder con un
ataque, por ejemplo: Una lista detallada de los puertos que se encuentran abiertos
junto a su respectivo nombre y número, los protocolos a los que están vinculados y
también una descripción de la máquina con el sistema operativo que usa, el grupo de
trabajo al que pertenece y el usuario actual.
Con toda esta información y para continuar con el ejemplo de la utilidad de la
Honeypot, el IDS de Red conformado por Snort, MySQL y ACID han lanzado la
alerta respectiva de que se ha hecho un escaneo de puertos desde un host, como se
muestra en la siguiente Ilustración:
268
Ilustración 103. Prueba Intrusión: Alerta que muestra Snort mediante ACID.
Aquí se observa cómo Snort ha detectado tráfico sospechoso y lo identifica lanzando
un mensaje Warning: Nmap correspondiente al escaneo de puertos que se ha
realizado, muestra además la dirección fuente 192.168.0.101 y los puertos fuente
desde donde se lanzo el escaneo. También nos permite ver la dirección destino
(Máquina trampa) y los puertos por donde se realizó la acción junto con su respectivo
protocolo.
Para continuar con la segunda parte de la demostración, en lo que respecta al acceso
remoto a la máquina trampa, se ha tomado en consideración acceder a través del
puerto 22 correspondiente a SSH (Secure Shell). Previamente se ha instalado un
servidor SSH en la máquina trampa, con el fin de hacer el sebo más atractivo para los
intrusos. El servicio SSH que se uso para este fin fue OpenSSh compatible con
plataformas Windows. Aunque también existen versiones para Linux, Unix, Solaris.
La instalación de este nuevo servicio en la máquina trampa, hará como se dijo
anteriormente, que el sebo sea más atractivo al momento de implementar la Honeypot
en red de producción.
En esta demostración fue necesario configurar varios elementos del servicio SSH,
como por ejemplo los permisos de conexión para los usuarios administradores. En
este caso se ha creado un usuario denominado Intruso, el cual posee permisos de
269
administrador, mediante el cual accederemos remotamente para manipular el
contenido de la máquina trampa.
Con el fin de establece una sesión remota, se hará uso de un programa llamado Putty,
que se especializa en realizar conexiones remotas; sea usando el puerto 22 (SSH) o el
puerto 23 (Telnet) vía línea de comando en Windows, o mediante una terminal en
Linux.
Este programa es fácil usar, simplemente hay especificar el número de puerto
correspondiente por el cual se realizara la conexión.
Ilustración 104. Prueba Intrusión: Putty.
En el presente ejemplo se usara la dirección IP de la máquina trampa y el puerto 22
correspondiente al servicio SSH que está instalado en dicho host. Un vez que se
proceda con la conexión usando Putty, el servidor pedirá el nombre de usuario y la
contraseña para permitir el acceso remoto, se recuerda que se utilizará el usuario
Intruso y su respectivo password.
270
Putty utiliza líneas de comando, como si fuera un Command Window, para acceder a
los diferentes directorios de una computadora conectada a la red y que preste los
servicios SSH.
Ilustración 105. Prueba Intrusión: Command Window de Putty.
Cuando se ha realizado la conexión desde la máquina que hace de intruso hacia la
máquina trampa, el Servidor Sebek empieza a capturar todos los movimientos que el
atacante haga en los diferentes directorios. En el ejemplo que sigue, se puede
observar como el Servidor Sebek captura y muestra los movimientos del atacante, el
identificador de proceso PID, Interprete comandos que está usando para la conexión
(sshd y cmd), la hora, fecha y el host desde donde se hizo la conexión.
Ilustración 106. Prueba Intrusión: Sebek en acción.
Una observación que se hizo durante esta prueba, es que, cuando el intruso usaba un
comando por ejemplo el comando Dir, se pudo ver que las letras del comando se
duplicaban (ddiirr). Esto no es un error del programa, y se debe a que Sebek, en la
271
captura de interrupciones de teclado, asume que el intruso usa una Terminal o
Ventana de Comando; pero como las pruebas han sido realizadas desde un Cliente
SSH (Putty), Sebek también captura las líneas de comando que se ejecutan en estos
interpretes de comando, por lo que se duplican las letras del comando ingresado.
Esto no es impide o afecta el funcionamiento de Sebek, ya que el programa sigue
capturando los movimientos del intruso a través de los directorios de la máquina
trampa, incluso muestra las salidas por pantalla que el intruso observa con un simple
comando Dir.
Ilustración 107. Prueba Intrusión: Capturas de Sebek.
Para el siguiente paso se procederá a copiar a la máquina trampa, un archivo que
simulara ser un Malware se lo ha llamado troyano.exe y otro llamado keylogger.exe.
Para realizar esta acción se utilizo un programa de transferencias de archivos vía SSH
llamado FileZilla Client, el cual simplemente con ingresar la dirección IP del host, el
usuario, la contraseña y el puerto permitirá transferir archivos a cualquier host que
posea un servicio SSH.
272
En este ejemplo se transferirán los archivos antes mencionados al directorio Windows
del usuario administrador, esto permitirá demostrar el análisis forense con el
programa InstallWatch.
Ilustración 108. Prueba Intrusión: Transferencia con FileZilla.
Cuando se complete el proceso de transferencia llega el momento de verificar la
efectividad del programa InstallWatch, y simplemente con pulsar el botón Analize,
mostrara los cambios efectuados en la máquina trampa, en este cado los archivos
añadidos.
273
Ilustración 109. Prueba Intrusión: Información mostrada por InstallWatch.
Como se puede observar en la ilustración anterior InstallWatch ha detectado que dos
archivos han sido añadidos; InstallWatch muestra el directorio donde se añadieron, el
nombre de los archivos, el tamaño, los atributos, la fecha y hora.
La finalidad de esta prueba de intrusión, aparte de probar el funcionamiento de la
Honeypot, permite tener una visión más amplia del potencial que poseen el conjunto
de herramientas que la conforman y la utilidad que esta tecnología ofrece, así pues, el
Prototipo de Honeypot Virtual de Alta Interacción está listo para ser ejecutado.
274
Resultados De Una Honeypot Implementada En La UTPL
La información que se presenta a continuación fue extraída de un artículo de la
Pagina Oficial del Proyecto Honeynet de la UTPL (Universidad Técnica Particular de
Loja). (UTPL, 2010).
Todo esto con el fin de mostrar las estadísticas de la aplicación de esta tecnología no
solo en el ámbito educativo-investigativo, sino también, para dar a conocer el
potencial y los beneficios que ofrece esta herramienta.
Descripción
Actualmente las organizaciones disponen de información importante, fundamental en
el desarrollo y crecimiento de sus actividades, es por esto que deberían mantener una
infraestructura necesaria para la detección de posibles intentos de intrusión en los
sistemas que la organización maneja.
A nivel de Latinoamérica Brasil, México, Perú, Chile y Argentina cuentan con
equipos formales que trabajan en temas de seguridad y que reportan datos estadísticos
sobre los comportamientos detectados en cada país.
A nivel de Ecuador no existe un registro oficial y público sobre el número de
incidentes o ataques de seguridad que se presentan. Muchas empresas que ofrecen
servicios de seguridad manejan cifras que por cuestiones de confidencialidad no
pueden ser expuestas y, por tanto no permiten tener una visión sobre la situación
actual del país en cuanto a ataques o incidentes de seguridad.
275
Hoy por hoy se encuentra en desarrollo el Sitio Web Oficial del Honeynet Proyect
Capitulo Ecuador (www.honeynet.ec). Pero debido a la falta de conocimiento hacia
esta tecnología, por parte de las autoridades gubernamentales, e instituciones de
educación superior; No se ha logrado conseguir el apoyo para continuar con el
desarrollo de emprender y cambiar los paradigmas con esta tecnología innovadora.
Sin embargo, grupos de estudiantes en diferentes universidades del país, interesados
en los avances tecnológicos, han logrado de manera independiente llevar a cabo una
demostración de la funcionalidad de esta herramienta. Siendo ellos los canales de
información para dar a conocer las características y beneficios de la Tecnología
Honeypot a las autoridades pertinentes. Y es gracias a estos estudiantes
emprendedores y en busca de algo novedoso que contribuya tanto a sus universidades
como al país, que se ha visto en la Tecnología Honeypot una herramienta de
seguridad valiosa, no solo por aportar a una seguridad proactiva, sino por constituir
un potencial recurso de investigación que permite afrontar la seguridad desde una
perspectiva que se alinea a los objetivos de las Universidades.
Estadísticas de la Honeypot
A continuación se mostraran los resultados generales obtenidos actualmente con la
implementación de una Honeypot en la UTPL, tomando en consideración el factor de
incidencia y los protocolos de red que se ven afectados durante las intrusiones.
276
GRAFICO 6
Actividad generada por los diferentes protocolos
Representación del número de paquetes correspondientes a Sebek
Elaboración: Proyecto Honeynet UTPL. Fuente: Proyecto Honeynet UTPL.
Análisis: Se puede apreciar que la mayor incidencia de paquetes sospechosos,
se haya sobre el protocolo TCP, seguido del protocolo ICMP. Se logro obtener
estos resultados gracias a la herramienta Sebek en combinación con ACID que
proporciona una visión más clara de la cantidad de paquetes sospechosos
detectados.
GRAFICO 7
Actividad generada por los diferentes puertos
TCP
Elaboración: Proyecto Honeynet UTPL. Fuente: Proyecto Honeynet UTPL.
277
Análisis: Se presenta los puertos TCP más vulnerables y usados por los
intrusos para atacar un sistema. En este caso el puerto el 445 (Microsoft-ds)
que corresponde al Bloque de mensajes de servidor (Server Message Block,
SMB). SMB permite compartir archivos e impresoras (entre otras cosas) entre
nodos de una red. Este puerto está abierto por defecto y es utilizado
principalmente en ordenadores con Microsoft Windows y DOS para la
comunicación con sistemas remotos. Además se observa la incidencia sobre el
puerto 13 (DAYTIME), que proporciona un servicio horario enviado desde un
servidor Microsoft, pero al ser un puerto abierto por defecto se puede pensar
que no implica peligro, pero resulta atractivo para los intrusos y representa
vulnerabilidad para una red.
GRAFICO 8
Actividad generada por los diferentes puertos UDP
Elaboración: Proyecto Honeynet UTPL. Fuente: Proyecto Honeynet UTPL.
Análisis: Los ataques por NetBIOS, tanto en los puertos 137 (NetBIOS-ns
“Servicios de nombres NETBIOS utilizados en Red Hat Enterprise Linux por
Samba”) y 138 (Netbios-dgm “Servicios de datagramas NETBIOS utilizados
en Red Hat Enterprise Linux por Samba”), son más usuales de ser vulnerados.
Estos puertos comúnmente no son detectados como abiertos aun teniendo un
Firewall con la correspondiente advertencia, por lo que se hace difícil
determinar su estado a menos de que se proceda a administrarlos de forma
manual agregando restricciones.
Gracias a estos factores proporcionados por la UTPL en conjunto con la tecnología
Honeypot, un experto en seguridad de redes podría determinar en que debería trabajar
para mejorar la estructura de seguridad de redes de una organización.
278
Pero cada organización posee un esquema de seguridad distinto y es ahí donde se
muestra el potencial de esta herramienta que es adaptable, flexible y no afecta en lo
más mínimo una infraestructura ya establecida. Contribuye tanto a la investigación de
las tendencias de los intrusos, aplicando la filosofía que identifica a esta tecnología
“Conoce a tu enemigo”, así como en las mejoras que se pueden establecer para que
dicho esquema de seguridad de la red optimice su desempeño.
279
FASE DE EJECUCIÓN
Para la presente fase se considero implementar el prototipo a modo de prueba y para
realizar capturas de incidentes, en uno de los laboratorios de la CISC con la finalidad
de obtener datos reales de malware o trafico malicioso dentro de la red. Con los
permisos debidos se procedió a la implementación y puesta en ejecución de la
Honeypot.
Para cumplir con el cometido de esta fase, fue necesario adoptar y respetar las reglas
que se han establecido para el uso del Laboratorio de Graduación, con respecto a los
horarios de atención y uso de los equipos ahí existentes. A causa de esto no fue
posible mantener a la Honeypot en constante funcionamiento, sin embargo en las
pocas horas de trabajo y ejecución se pudo obtener datos interesantes, en lo que
respecta a Trafico Malicioso en la red. Más adelante se expone datos importantes y
resultados determinados gracias al análisis de la información lograda con las capturas
hechas por la Honeypot.
Para la obtención de esta información fue necesario emular ciertos servicios en la
máquina trampa, con el único propósito de hacerla más llamativa y también se
procedió a abrir puertos de comunicación de protocolos como TCP y UDP. Dentro de
los servicios emulados por la Honeypot e instalados en la maquina trampa se
implemento los siguientes:
280
FTP 21
SSH 22
TELNET 23
HTTP 80
Por otro lado hay q mencionar q no se hicieron mayores cambios en el Sistema
Operativo de la maquina trampa, dejando los puertos que vienen abiertos por defecto
en Microsoft Windows XP, entre estos puertos se encuentran:
135 EPMAP: Correspondiente al Mapeador de Windows.
139 Netbios-ssn: Comunicación recursos compartidos en redes Microsoft.
445 Microsoft-ds: SMB Server Message Block, parecido al Puerto 139.
2869 SSDP Simple (Service Discovery Protocol): Protocolo Simple de
Descubrimiento de Servicios, usado para búsquedas de dispositivos UPnP.
Gracias a estos servicios en ejecución, se pudo detectar tráfico sospechoso y varias
direcciones IP externas que trataban de acceder y hacer uso a los servicios antes
mencionados. A más del tráfico sospechoso e intentos de acceso, no se detecto
mayores cambios en la máquina trampa, debido a la contrariedad antes mencionado
con respecto a los horarios de atención en el laboratorio de la CISC.
Pero estos datos serán útiles para proceder a elaborar un análisis, en lo que respecta al
uso por parte de los intrusos sobre los puertos TCP Y UDP, para luego establecer
estadísticas que serán necesarias para la conclusión del presente proyecto;
demostrando así la factibilidad, capacidad y utilidad de esta herramienta.
281
FASE DE ANÁLISIS
Muestra y Análisis De Datos Obtenidos En La Fase De Ejecución
A continuación se mostrara cuadros correspondientes a un resumen y extracto de los
incidentes más significativos detectados por la Honeypot como tráfico sospechoso e
intentos de acceso, esta información en un inicio es mostrada en ACID., pero a
manera de ser interpretada se elaboraron los cuadros que se presentaran a
continuación. Estos cuadros serán usados para generar un análisis estadístico de las
incidencias notables durante la fase de ejecución.
Cuadro 9
Direcciones IP detectadas y cantidad de paquetes
NUMERO IP FUENTE PAQUETES
EN BITS UBICACIÓN IP
1 149.156.99.93 11252 POLONIA
2 193.2.91.26 10620 ESLOVENIA
3 200.17.168.123 8054 BRASL
4 62.94.205.130 6684 ITALIA
5 220.117.113.241 4497 EE.UU.
6 200.91.243.242 3225 COLOMBIA
7 210.231.97.142 2562 JAPON
8 209.152.165.211 2502 EE.UU.
9 59.160.169.8 2077 INDIA
10 202.133.250.97 1972 TAIWAN Elaboración: Gustavo Estrella Quijije.
Fuente: Insidentes detectados en el periodo de pruebas y ejecución dentro del Laboratorio de
Graduación del CISC (15 dias).
En el Cuadro 9 se muestran las direcciones IP mas recurrentes, que se detectaron al
querer acceder a la máquina trampa, así como el numero de paquetes enviados desde
la IP fuente hasta su destino, estos paquetes de datos fueron detectados por Snort y
282
mostrados por ACID como trafico malicioso. Además para determinar de qué lugar
provenían los paquetes de datos, fue necesario ubicar geográficamente las direcciones
IP, para esto se uso herramientas web que cumplen con esta función:
http://www.adslayuda.com/geolocalizacion.html
http://www.geolocalizacionip.com.ar/
En las Direcciones Web anteriores se puede acceder a un servicio de ubicación
geográfica de direcciones IP de manera gratuita y sin ninguna dificultad, solo basta
con ingresar la dirección IP y luego se muestra en un mapa la ubicación exacta.
GRAFICO 9
Elaboración: Gustavo Estrella Quijije.
Fuente: Cuadro 9
Análisis: La mayor cantidad de paquetes de datos sospechosos provienen de una IP
ubicada en Polonia, durante la detección de este incidente, Snort mostraba intentos
de conexión vía SSH y TELNET. Aparentemente el intruso quería hacerse con el
283
control de la máquina trampa. No se encontró evidencia de algún malware, pero
Sebek también fue capaz de identificar los intentos de acceso.
Cuadro 10
Incidentes Detectados por Puerto y Protocolo
Número Puerto/protocolo Paquetes
En Bits Nombre puerto
1 139/TCP 174040 NETBIOS
2 22/TCP 71818 SSH
3 135/TCP 34574 MAPEADOR DE
WINDOWS/EPMAP
4 80/TCP 24701 HTTP
5 21/TCP 15879 FTP
6 135/UDP 1053 MAPEADOR DE
WINDOWS/EPMAP
7 23/TCP 972 TELNET
8 25/TCP 895 SMTP
9 80/UDP 1 HTTP Elaboración: Gustavo Estrella Quijije.
Fuente: Obtenidos de los insidentes detectados en el periodo de pruebas y ejecución dentro del
Laboratorio de Graduación del CISC (15 dias).
La mayor cantidad de paquetes sospechosos que se detectaron usaban el Puerto 139
para el acceso, este puerto corresponde al NETBIOS-SSN que permite la
administración de los recursos en redes Microsoft, por lo general este puerto viene
abierto por defecto y el firewall no detecta ninguna anomalía en el uso de este puerto,
por lo que pasa por alto los intentos de intrusión a través de este puerto. En el
siguiente grafico se muestra un análisis comparativo de los puertos más usados por
los intrusos que fueron detectados en la CISC:
284
GRAFICO 10
Elaboración: Gustavo Estrella Quijije.
Fuente: Cuadro 10
Análisis: Antes se mencionó que el puerto más usado para accesos no autorizados
durante el periodo de ejecución de la Honeypot dentro de la CISC fue el Puerto
139/TCP, abierto por defecto y casi indetectable por las herramientas de seguridad
tradicionales. Sin embargo la Honeypot fue capaz de identificar gran cantidad de
tráfico sobre este puerto. Seguido de trafico sobre el puerto 22/TCP,
correspondiente al servicio SSH instalados en la máquina trampa. Además se
registro tráfico sobre otro de los puertos que vienen abiertos por defectos Windows,
este es el puerto 135.
NOTA: La falta de atención sobre los puertos que se encuentra abierto por defecto
en el SO Windows, no se debe al descuido de los administradores, sino mas bien, al
desconocimiento de incidencias sobre estos que como se dijo antes, estos puertos no
son detectados como maliciosos por el Firewall, a falta de configuración de
seguridad sobre ellos es necesario aplicar alguna política de negación de acceso o
limitar la conexión a usuarios autorizados.
285
Es debido a los datos capturados por el IDS de Red basado en Snort y al fácil
reconocimiento de estos por medio de ACID, que se puede extraer una muestra los
resultados de la actividad por protocolo como se observa en al Cuadro 11:
Cuadro 11
Porcentaje de Alertas por Protocolo
PROTOCOLO PORCENTAJE
TCP 61,5 %
UDP 18 %
ICMP 20,5 % Elaboración: Gustavo Estrella Quijije. Fuente: Resumen de insidencias mostrado por ACID
El Cuadro anterior facilita un análisis comparativo mediante estadística para
identificar el porcentaje de incidencias que ocurren en los protocolos detallados antes:
GRAFICO 11
Elaboración: Gustavo Estrella Quijije. Fuente: Cuadro 11
286
Análisis: Es fácil identificar que la mayor cantidad de incidentes detectada fue sobre
el protocolo TCP (Transmision Control Protocol), el cual también esta relacionados
con los puertos usados por los intrusos y descritos anteriormente. Las alertas ICMP
(Internet Control Message Protocol) están asociadas mayormente a intentos de
acceso fallidos. ICMP es un subprotocolo de notificación de errores. Las alertas TCP
y UDP están, por lo general, asociadas a accesos con éxito, sea para perpetrar el
ataque, para llevar a cabo un escaneo de puertos, etc.
Con toda esta información obtenida en un periodo de capturas de 15 días, no
constante pero suficiente, se demuestra que tan potente es el prototipo de Honeypot
que se ha desarrollado durante esta investigación. Una vez analizado los datos
obtenidos gracias a la Honeypot, es importante que el administrador encargado
busque la manera de mitigar los errores encontrados para proteger la red y optimizar
el esquema de seguridad a su cargo.
287
CAPÍTULO IV
MARCO ADMINISTRATIVO
PRESUPUESTO
Los gastos que se llevaron a afecto para el cumplimiento de los objetivos del proceso
de la presente investigación se detallan a continuación en el siguiente cuadro:
Cuadro 12
Detalles del presupuesto del Proyecto
Descripción PU Cantidad Subtotal
Monitor LCD LG Flatron L192WS $ 250,00 1 $ 250,00
Pc de escritorio 2GB RAM DDR2,
Mainboard Intel, Procesador Core 2 Duo,
Disco Duro 350 GB
$ 700,00 1 $ 700,00
Modulo de memoria RAM DDR2 2GB $ 85,00 1 $ 85,00
Router D-Link Dir-600 $ 50,00 1 $ 50,00
Cable UTP CAT 5 $ 0,30 5 $ 1,50
Conectores RJ-45 $ 0,10 4 $ 0,40
Ponchadora $ 18,00 1 $ 18,00
Impresora HP Deskjet D1660 $ 50,00 1 $ 50,00
Cartuchos de tinta negro $ 25,00 4 $ 100,00
Cartuchos de tinta a color $ 35,00 3 $ 105,00
Fotocopias $ 0,03 50 $ 1,50
Servicio de Internet $ 25,00 8 $ 200,00
Resma de papel bond A4 $ 3,50 4 $ 14,00
Empastado de Tesis $ 20,00 5 $ 100,00
Transporte $ 10,00 6 $ 60,00
Alimentación $ 2,00 35 $ 70,00
TOTAL
$ 1.805,40
288
CRONOGRAMA DE ACTIVIDADES
NUM NOMBRE DE TAREA DURACION COMIENZO FIN PREDECESORA
1 Etapa de preparación 49 días 21/04/2010 28/06/2010
2 Charlas del 2do Seminario de Fin de Carrera 21 días 21/04/2010 19/05/2010
3 Preparación del documento para la Propuesta de Tesis 4 días 20/05/2010 25/05/2010 2
4 Presentación de la Propuesta de Tesis al Dpto. de Graduación de la Carrera 1 día 26/05/2010 26/05/2010 3
5 Proceso de revisión y aprobación del tema propuesto por parte del Dpto. de Graduación 23 días 27/05/2010 28/06/2010 4
6
Diseño del prototipo de una Honeypot virtual que permita mejorar el esquema de
seguridad en las redes de la Carrera de Ingeniería en Sistemas Computacionales y
Networking de la Universidad de Guayaquil
143 días 29/06/2010 30/12/2010 5
7 Recolección de información bibliográfica sobre el tema. ALCANCE: Usar investigación
bibliográfica 15 días 29/06/2010 16/07/2010 5
8 Selección y organización de fuentes de información 10 días 29/06/2010 09/07/2010
9 Revisión de estudios similares. ALCANCE: Estudios realizados 5 días 12/07/2010 16/07/2010 8
10 Estructuración del Capítulo 1: Planteamiento del Problema 14 días 06/07/2010 23/07/2010 5
11 Presentación de avances al tutor 14 días 06/07/2010 23/07/2010
12 Correcciones del capítulo 14 días 06/07/2010 23/07/2010
13 Estructuración del Capítulo 2: Marco Teórico 26 días 31/07/2010 27/08/2010 10,7
14 Presentación de avances al tutor 26 días 31/07/2010 27/08/2010
15 Correcciones del capitulo 26 días 31/07/2010 27/08/2010
16 Entrevista al administrador de redes, ayudantes y usuarios finales de la Carrera
Ingeniería Sistemas Computacionales y Networking 5 días 30/08/2010 03/09/2010 13
17 Elaboración del modelo para la entrevista. ALCANCE: Crear entrevista 1 día 30/08/2010 30/08/2010
18 Proceder con las entrevistas 1 día 31/08/2010 31/08/2010 17
19 Realizar análisis de la entrevista. ALCANCE: Análisis 2 días 02/09/2010 03/09/2010 18
20 Estructuración del Capítulo 3: Metodología 26 días 06/09/2010 07/10/2010 16,13
21 Presentación de avances al tutor 26 días 06/09/2010 07/10/2010
289
22 Correcciones del capitulo 26 días 06/09/2010 07/10/2010
23 Planificación y Diseño del prototipo. ALCANCE: Planificación y Diseño 6 días 06/09/2010 13/09/2010 16
24 Análisis del tipo de software a usar 4 días 06/09/2010 09/09/2010
25 Análisis del tipo de hardware a usar 1 día 06/09/2010 06/09/2010
26 Definir las ventajas del software. ALCANCE: Tipo de Software 2 días 10/09/2010 13/09/2010 24
27 Selección de aplicaciones. ALCANCE: Selección software 2 días 14/09/2010 15/09/2010 23
28 Descargar instaladores de las aplicaciones y Sistema Operativo 2 días 14/09/2010 15/09/2010
29 Implementación del prototipo. ALCANCE: Implementación 14 días 16/09/2010 01/10/2010 27
30 Instalación y Configuración del hardware y software 14 días 16/09/2010 01/10/2010
31 Etapa de pruebas del prototipo 30 días 04/10/2010 12/11/2010 29
32 Comprobación del funcionamiento del prototipo 2 días 04/10/2010 05/10/2010
33 Captura de incidentes. ALCANCE: Capturas 20 días 06/10/2010 02/11/2010 32
34 Análisis de las capturas. ALCANCE: Análisis y conclusiones 4 días 03/11/2010 08/11/2010 33
35 Organización y análisis de resultados obtenidos del prototipo 4 días 09/11/2010 12/11/2010 34
36 Estructuración de los Capítulos 4 y 5: Marco administrativo, Conclusiones y
Recomendaciones 12 días 15/11/2010 30/11/2010 31
37 Presentación de avances 12 días 15/11/2010 30/11/2010
38 Corrección de los capítulos 12 días 15/11/2010 30/11/2010
39 Finaliza Tutorías del Segundo Curso de Fin de Carrera 1 día 30/11/2010 30/11/2010
40 Entrega de documentación y aportes adicionales 22 días 01/12/2010 30/12/2010 39
290
CAPÍTULO V
CONCLUSIONES Y RECOMENDACIONES
CONCLUSIONES
La detección de intrusos en redes de computadoras es una actividad compleja, debido
al incremento constante de vulnerabilidades explotadas y el aumento de la
complejidad de las tecnologias de software y hardware empleadas.
Por esta razon herramientas como las Honeypot, no pueden ser despreciadas, puesto
que podrían brindan una ayuda unica a los administradores de una red, cuando la
posibilidad de intrusos es cierta.
Durante la fase de Planificación y Diseño se elegio un Honeypot Virtual de Alta
Interacción. La selección de esta arquitectura fue definida por los recursos disponibles
para el proyecto, la seguridad, el riesgo y la facilidad para realizar la recolección de
datos. En la presente investigación se ha descrito el diseño completo de un Prototipo
de Honeypot Virtual de Alta Interacción, que en caso de ser implementada en un
ambiente de Producción real , y como ya se ha explidado a lo largo de este trabajo,
seria una herramienta útil para determinar posibles vulnerabilidades en el esquema de
seguridad de cualquier organización. El proceso de instalación y despliegue de la
Honeypot no fue tan sencillo como podría parecer a priori; La incompatibilidad del
software e incluso del sistema operativo, supuso un gran obstáculo al momento de
realizar el proceso de implementación del prototipo.
291
Las ventajas que brinda este enfoque novedoso y poco explotado, es la facilidad de
adaptación, administración e implementación en un entorno de trabajo, no requiere de
grandes recurso para ser diseñada y posee características únicas a diferencias de otros
métodos de seguridad que se basan en reglas para prevenir de cierto modo posibles
intrusos.
Esta característica propia de las Honeypot de atraer al intruso, la hacen una
herramienta muy útil de investigación, análisis y seguridad que ayuda complementar
un infraestructura de seguridad de redes, útil para determinar la forma de actuar del
intruso, sus herramientas y técnicas asi como las tendencias actuales que ellos poseen.
Aplicando esto conocimiento, aprendiendo del enemigo y analizando los datos
obtenidos, será factible que el administrador de una red proceder a mejorar los
esquemas de seguridad a su cargo y optimizar de forma positiva su rendimiento.
Gracias a la combinación de herramientas como IDS´s de Red (Snort) y Analsis
Forense (InstallWatch) en complento con el IDS´s de Host (Sebek) que trabaja de
manera oculta al intruso, hacen que la Honeypot se capaz de capturar, detectar y
reconocer toda clase de trafico sospechoso y no pasa por alto ninguna traza maliciosa
que pueda perjudicar a la Intranet de forma tal que se pueda disminuir la incidencia
de falsos positivos. La información obtenida de un ataque y capturada por la
Honeypot es muy detallada presenta desde la IP del intruso hasta que comandos uso y
el Malware que implanto en nuestros sistemas, haciendo fácil su reconocimiento.
292
Aunque el periodo de prueba de la Honeypot en un entorno real no fue muy extenso,
debido al ambiente de trabajo, horarios de atención no muy comodos y sobre todo el
cronograma de actividades planificado de acuerdo a las exigencias de la CISC, lo cual
no permitia extenderse mas alla de las fechas establecidas; Se pudo obtener capturas
de intrusiones relevantes como para demostrar el funcionamiento, realizar un análisis
y generar estadísticas que ayudaron a concluir con éxito esta investigación.
No obtstante, para futuras implementaciones y periodos de ejecución de la Honeypot
Virtual de Alta Interacción que se propuso en esta tesis, se recomienda que estos
periodos sean más extensos o incluso indefinidos, de acuerdo a las exigencias del
admistrador, debido a que la Honeypot es un recurso que debe estar en constante
funcionamiento para obtener mejores resultados y observar como evoluciona el
malware.
Por otro parte, durante el proceso del desarrollo de esta investigación se han
manifiestado las debilidades de algunas herramientas para detectar por sí solas los
ataques. Los multiples tipos y actividades del software malicioso se ponen en
evidencia, así como la tremenda tarea que hoy en día tienen las empresas anti-
malware para detectarlos y combatirlos.
Así, el uso de sniffers es sumamente extendido, incluso por usuarios particulares, pero
tal y como se ha confirmado, es insuficiente para este tipo de detecciones. De esta
manera, la implementación aquí desarrollada supone una alternativa para cubrir todas
estas carencias.
293
Por ultimo cabe destacar que el presente estudio no pretende desfavorecer o
discriminar los métodos de seguridad de redes existentes, sino, generar una propuesta
para integrar una herramienta innovadora al conjunto de métodos de seguridades que
se presentan en la actualidad. Proponer la utilización de la tecnología Honeypot como
complemento, con el fin de que esta herramienta proporcione la información
necesaria para aprender de los intrusos y ayude a los administradores de las redes de
la Carrera de Ingeniería en Sistemas Computacionales de la Universidad de
Guayaquil a determinar las posibles vulnerabilidades, para posteriormente emprender
las mejoras en el esquema de seguridad.
294
RECOMENDACIONES
A pesar que exista mucha información sobre las amenazas en Internet, los
documentos actuales en cuanto a las Honeypots no se encuentra en gran cantidad,
pues a pesar del tiempo, es un proyecto que aún no ha terminado de despegar. Con
este estudio se puede concluir que existe la necesidad de profundizar en un área de
suma utilidad para el combate de los ataques por parte de los intrusos; en un mundo
que cada dia se hace mas dependiente de la informática, donde un alto porcentaje de
los datos personales y de empresa se encuentran en bases de datos, archivos y
elementos contenedores gravemente expuestos a las actividades delictivas de estos
intrusos.
Con la experiencia adquirida en Honeypots se puede hacer las siguientes
recomendaciones:
En la presente investigación se propuso un analisis a pequeña escala, es decir, una
sola Honeypot. Si se pretende vislumbrar el verdadero potencial de esta
tecnología, entonces por que no desarrollar más, abriendo asi campo a las
HONEYNETS, con lo cual se podría obtener mayor cantidad de datos que
analizar para establecer patrones más consolidados de los ataques, lo que
facilitarían el combate de las amenazas informáticas.
295
Debido al uso de máquinas virtuales y a la gran cantidad de información recogida
por la Honeypot, se recomienda que la máquina donde se vaya a implementar sea
de buenas características, las más importantes Disco Duro, RAM y Procesador;
cumpliendo con los requerimientos planteados en esta investigación para que asi
la Honeypot tenga un funcionamiento optimo.
Con respecto a la compatibilidad y portabilidad de los programas usados, no
existió limitantes al momento de elegir el software, aunque en este proyecto se
utilizó tanto Sistemas Operativos Windows y Linux, varios de los softwares
descritos a lo largo de esta investigación son multiplataforma y de libre
distribución.
Para la máquina que actua de Honeywall Gateway, se recomienda usar una
distribución Linux, en este caso, se ha usado la distribución Ubuntu 10.04 X86 de
32bits y cuya versión del Kernel es 2.6.32, debido a la experiencia que el autor de
la presente tesis ha tenido con esta distribución, además de que facilitó la
administración y comunicación del Servidor Sebek con el Cliente instalado en la
máquina trampa. En conclusión, al momento de levantar los servicios de la
Honeypot se observo un comportamiento estable de todo el sistema.
Aislar cualquier comunicación de la máquina trampa del resto de los equipos que
conforman la red, para evitar posibles contagios.
296
Hacer la maquina trampa mas atractiva para los intrusos, agregandole servicios
adicionales (FTP, WEB, MAIL) adaptándola a las necesidades del administrador.
O incluso usar replicas de un servidor real en producción, evitando asi el riesgo de
que el verdadero servidor sea comprometido.
Con el fin de que el administrador pueda obtener mejores resultados para el
análisis e investigación de incidentes, es importante mantener a la Honeypot en
constante funcionamiento las 24 horas del dia, 7 dias a la semana o el tiempo que
el administrador crea prudente como para lograr los objetivos deseados.
Al momento de realizar capturas de intrusiones, una buena práctica es proceder
con la toma de Snapshots para el posterior análisis Offline.
Buscar actualizaciones de las reglas de Snort y de software que pueda ayudar al
análisis forense.
Gracias al análisis de los eventos detectados por el Prototipo de Honeypot de
prueba implementada en uno de los laboratorios de la CISC y presentado en este
documento, se recomienda a los administradores de red considerar las altas tasas
de usos en determinados puertos abiertos por defecto y especialmente los de
administración, con lo que se podría denegar el acceso a los mismos o bloquear
las IP‟s no registradas.
297
La implementación de una Honeypot Virtual de Alta Interacción en una
institución de educación, proporciona una visión más amplia en el campo de la
investigación en seguridad informática. Conjuntamente una Honeypot también
puede ser usada como una herramienta de aprendizaje e investigación para cursos
de seguridad informática, porque posee características como: portablididad,
facilidad de administración, seguridad e integridad en los datos recolectados.
Son muy bien conocidas las consecuencias de los intrusos y sus acciones tras un
ataque, pero no así, los procesos que hay detrás de sus actividades; en todo caso,
si se tomara en consideración este ultimo punto de una manera tal que se estudiara
dichas acciones y la forma de actuar del intruso, se evitaría en un futuro la gran
cantidad de secuelas, ya que, si se conoce el comportamiento, se puede proceder
de forma más óptima para su contención.
Con este proyecto se ofrece una guía no sólo para el administrador preocupado
por la seguridad de sus sistemas, sino tambien para aquel individuo interesado en
profundizar sus conocimientos en esta disciplina. Su aplicación se puede extender
a investigaciones como:
o Análisis de origen de SPAM.
o Monitoreo de ataques en redes Wireless.
o Análisis forense (FORENSIC).
o Perfiles de ataque, entre otros.
298
La implementación de Honeypots ha sido de gran utilidad en otros países como:
Brasil, México, España; es por ello que esta tecnología está siendo adoptada por
las organizaciones para mejorar su seguridad generando un aporte proactivo y
preventivo. Tambien se han convertido en elementos fundamentales, en especial
en organizaciones que investigan sobre seguridades.
En nuestro pais, se está iniciando el proyecto de Honeynet Capitulo Ecuador, ya
que instituciones educativas de prestigio como la ESPOL y UTPL han visto en
esta tecnología un gran potencial que se podría explotar, pero la falta de apoyo
institucional por factores externos a las unidades academicas, han hecho retrasar
el desarrollo de este proyecto. Sin embargo, hay personas que creen en la
capacidad de esta tecnología y con aportes propios han logrado mostrar solo una
parte de los beneficios que ofrece esta herramienta.
299
ANEXOS
GUIÓN DE PREGUNTAS PARA ENTREVISTA CON EL ADMINISTRADOR
DE LA RED Y AYUDANTES DEL DEPARTAMENTO INFORMATICO
Esta evaluación se ha diseñado para evaluar el riesgo en la red de la CISC y las
medidas de seguridad utilizadas para mitigar dicho riesgo. Se han desarrollado
preguntas con las que es posible realizar una evaluación de las tecnologías, los
procesos y el personal.
2. ¿Tienen conexión permanente a Internet?
o Sí
o No
3. ¿Se permite el acceso ilimitado a los empleados para navegar en internet?
o Sí
o No
o No lo se
4. ¿Cuántas áreas posee el Dpto. Informático?
5. ¿Cuántas personas tienen acceso al Dpto. Informático?
o Administradores
o Pasantes
o Otros
6. ¿Existe algún método de control que registre el acceso de los usuarios a los
servidores?
o Sí
o No
o No lo se
300
7. ¿Posee algún tipo de red privada o de uso confidencial, es decir limitada solo a
usuarios autorizados?
o Sí
o No
o No lo se
En caso de responder Sí:
a. ¿Se permite que los empleados accedan a esta red?
o Sí
o No
o No lo se
8. ¿Poseen medios para respaldo de la información?
o Sí
o No
En caso de responder Sí:
a. ¿Estos medios se encuentran dentro o fuera de las instalaciones de la
CISC?
o Dentro
o Fuera
o No lo se
9. Aparte de los medios de respaldo, ¿se permite a los empleados procesar
información relevante fuera de las instalaciones de la CISC?
o Sí
o No
o No lo se
10. ¿La CISC puede operar si la red de datos no está disponible?
o Sí
o No
o No lo se Ayuda a determinar si existe un plan de contingencia o si los procesos básicos seguirán dando servicios, en caso de que se vea afectada la red de datos.
11. ¿Se hace subcontratación para el mantenimiento o la propiedad de alguna parte
de la infraestructura tecnológica?
o Sí
o No Subcontratar la implantación de la infraestructura conlleva un mayor riesgo para el entorno debido a la dependencia generada en recursos externos.
12. ¿La red tiene más de un segmento?
o Sí
o No
o No lo se En caso de un ataque, la segmentación limita el daño posible.
301
13. ¿Tiene la CISC planificaciones para la selección y utilización de componentes de
nuevas tecnologías?
o Sí
o No
o No lo se La falta de planificación para la utilización de las tecnologías aumenta la posibilidad de tiempos de inactividad y de
ataques.
14. ¿Cree que la CISC participa en la adopción rápida de las nuevas tecnologías?
o Sí
o No
o No lo se
15. ¿Se limita el acceso a la información en función de los roles de los usuarios?
o Sí
o No
o No lo se El acceso a los datos y a las aplicaciones confidenciales debe limitarse conforme a los privilegios de las cuentas
individuales. Es importante dispones de mecanismos para el cumplimiento de estas limitaciones a fin de evitar traspasos de información no autorizados.
16. ¿Antes de implantar nuevos servicios o aplicaciones se realiza alguna evaluación
para determinar los posibles riesgos de seguridad?
o Sí
o No
17. ¿Se utiliza firewalls u otros controles de acceso en los perímetros de la red para
proteger los recursos?
o Sí
o No
o No lo se Los firewalls son un elemento importante para proteger las redes contra ataques. Es por ello que los firewalls, u
otros controles de acceso a nivel de red, son imprescindibles para la seguridad de la empresa.
En caso de responder Si:
a. ¿Se aplica estos controles en todas las oficinas?
o Sí
o No
b. ¿Se hace uso de alguna red DMZ para separar redes internas y externas
de los servicios albergados en la CISC?
o Sí
o No
o No lo se
c. ¿Se comprueba periódicamente el Firewall para garantizar que funciona
según lo previsto?
o Sí
o No
302
18. ¿Cuántos servidores poseen y de qué tipo son (Sistemas Operativos que usan)?
19. ¿Se usa firewall en los host para proteger los servidores?
o Sí
o No El firewall personal implementado en el host proporciona otra capa de defensa frente a las amenazas al extender
la funcionalidad del firewall hasta las computadoras de escritorios, equipos portátiles o servidores.
20. ¿Se usa hardware o software de detección de intrusos (IDS‟s) para identificar los
ataques a la seguridad?
o Sí
o No
21. ¿Se utiliza antivirus acorde con la cantidad de usuarios que hay en la CISC?
o Sí
o No
En caso de responder Sí:
a. Que sistemas lo usan:
o Mail server
o Host de perímetro (Gateway, Proxy, etc.)
o Computador de escritorio
o Servidores
o Otros:_______________________________________________
22. ¿Se puede acceder a la red de la CISC en forma remota?
o Sí
o No
En caso de responder Sí:
a. Quien se puede conectar a la red en forma remota
o Autoridades
o Empleados
o Terceros
b. ¿Se utiliza la tecnología VPN para las conexiones remotas?
o Sí
o No
303
23. ¿La red dispone de conexión inalámbrica?
o Sí
o No
En caso de responder Sí:
a. ¿Cuáles de los siguientes controles que menciono a continuación utiliza?
o Cambiar el nombre de la red predeterminado (conocido también
como SSID) de los puntos de acceso.
o Desactivar la difusión del SSID.
o Activar Wired Equivalent Privacy (WEP).
o Activar restricciones de direcciones MAC (filtrado por MAC).
o ¿Algún otro método? ___________________________________
24. ¿A parte de Firewall e IDS qué tipo de mecanismos de seguridad tienen
implementados actualmente para proteger las redes de la CISC?
25. ¿Con los mecanismos de seguridad que poseen actualmente, se ha logrado detectar
y mitigar algún tipo de intrusión?
o Sí
o No
o No lo se
En caso de responder Sí:
a. ¿Qué tipo de intrusiones han sido capaz de detectar los mecanismos de
seguridad que hay implementados (Spoofing, Sniffing, Rootkit)? Y
frecuencias.
b. ¿Existe algún método que Uds. usen para proceder analizar los ataques a la
seguridad que sufre la red ejemplo Análisis Forense?
o Sí
o No
c. ¿Una vez detectado la intrusión se realiza algún procedimiento para
corregir la vulnerabilidad existente?
o Sí
o No
o No lo se
304
26. ¿Hay controles para hacer cumplir las políticas de seguridad con respecto a las
contraseñas en todas las cuentas de los usuarios?
o Sí
o No
o No lo se
En caso de responder Sí:
a. ¿Para qué cuentas son aplicados estos controles de contraseñas?
o Administradores
o Usuarios
o Accesos remotos
o Otros:_________________________________________________ Las políticas para las contraseñas deben cumplirse en todas las cuentas, no solo en las de los administradores.
b. ¿El bloqueo de cuentas está activado para impedir el acceso a las cuentas
tras una serie de intentos de registro fallido?
o Sí
o No Para proteger frente a ataques por fuerza bruta, las cuentas deben configurarse para que no permitan el acceso
después de una cantidad determinada de intentos fallidos.
27. ¿Hay controles para hacer cumplir las políticas de contraseña con respecto a las
aplicaciones clave que usan dentro del establecimiento?
o Sí
o No
28. ¿Las aplicaciones clave del ambiente cuentan con mecanismos para limitar el
acceso a las funciones e información critica?
o Sí
o No El acceso a aplicaciones y datos sensibles debe limitarse conforme a los privilegios de cada cuenta.
29. ¿Las aplicaciones clave guardan mensajes en archivos como bitácoras o logs,
del uso para un posterior análisis y auditoria?
o Sí
o No
o No lo se Los archivos con la bitácora del uso son necesarios para auditar actividades sospechosas y anormales.
En caso de responder Sí:
a. Que tipos de eventos se registran:
o Intentos de autenticación fallidos
o Autenticaciones correctas.
o Errores de aplicación.
o Se denegó acceso a los recursos.
o Acceso a recursos permitido.
o Cambios a los datos.
o Cambios a las cuentas de usuarios.
305
30. ¿Los sistemas son configurados por personal interno o esta tarea la efectúan
otros proveedores o distribuidores de hardware?
o Configurada por personal interno o Configurada por un proveedor o distribuidor de hardware
31. ¿Cuáles de las soluciones siguientes se han instalado en las terminales de
trabajo y los equipos portátiles de los empleados?
o software de firewall personal
o software de detección y eliminación de spyware
o software de encriptación de discos
o software de administración/control remoto
o protector de pantalla protegido por contraseña
o Otros:____________________________________________________
o Ninguno
32. ¿Se han aplicado controles de seguridad físico para garantizar la seguridad de
la propiedad de la CISC?
o Sí
o No
o No lo se
33. ¿La CISC y los administradores conocen las vulnerabilidades de seguridad que
existen, tanto para las aplicaciones como para la red?
o Sí
o No
o No lo se
En caso de responder Sí:
a. ¿La carrera cuenta con los procedimientos para abordar dichas
vulnerabilidades?
o Sí
o No
34. En los últimos seis meses, ¿se ha sustituido radicalmente algún componente
tecnológico de gran importancia?
o Sí
o No
o No lo se
35. ¿Se cambia muy a menudo el personal técnico que apoya a las actividades
dentro del área?
o Sí
o No
306
36. ¿Existe un proceso establecido para las directivas de actualización y revisión?
o Sí
o No
En caso de responder Sí:
a. ¿Para qué componentes existen?
o Sistemas operativos
o Aplicaciones
o Ambos
37. ¿Se prueban las actualizaciones y revisiones antes de aplicarlas?
o Sí
o No
38. ¿Dentro del área existen individuos o grupos que sean responsables de la
seguridad de la red y sistemas?
o Sí
o No
o No lo se
En caso de responder Sí:
a. ¿Tienen estos individuos o grupos experiencia en el tema de la seguridad?
o Sí
o No
o No lo se
39. ¿Se realiza evaluaciones de la seguridad del entorno a través de terceros?
o Sí
o No
o No lo se Las evaluaciones de seguridad realizadas por terceros facilitan una visión más independiente y objetiva de sus soluciones de seguridad.
En el caso de responder Sí:
a. ¿Con que frecuencia se llevan a cabo estas evaluaciones?
o Semanal
o Mensual
o Trimestral
o Anual
o Cada 2 años más o menos
40. ¿Se realizan evaluaciones de la seguridad de forma interna?
o Sí
o No
o No lo se
En el caso de responder Sí:
307
a. ¿Con que frecuencia se llevan a cabo estas evaluaciones?
o Semanal
o Mensual
o Trimestral
o Anual
o Cada 2 años más o menos
GUIÓN DE PREGUNTAS PARA ENTREVISTA A USUARIOS FINALES
Este cuestionario ha sido elaborado para entrevistar a los usuarios de la red de la
CISC, con el fin de determinar los niveles de vulnerabilidad frente a los agentes
internos y sus respectivas estaciones de trabajo que usan los servicios que ofrece la
red.
1. ¿Tiene acceso ilimitado a cualquier página de internet?
a. Sí
b. No
2. ¿Cuándo va a iniciar la sesión en su estación de trabajo, se le pide que ingrese el
nombre de usuario y la contraseña?
a. Sí
b. No
3. ¿Cambia regularmente su contraseña?
a. Sí
b. No
4. ¿Su estación de trabajo ha sufrido ataques de virus?
a. Sí
b. No
5. ¿Usa dispositivos de almacenamiento tipo pendrive, flash memory u otro?
a. Sí
b. No
308
6. ¿Su estación de trabajo posee antivirus?
a. Sí
b. No
7. ¿Cómo considera la velocidad de procesamiento que posee su estación de trabajo?
o Excelente
o Muy buena
o Buena
o Regular
o Pésima
8. ¿Tiene permisos para instalar cualquier tipo de programas en su estación de
trabajo?
a. Sí
b. No
9. ¿Bloquea el equipo cuando debe ausentarse??
a. Sí
b. No
10. ¿Ha sido capacitado en seguridad en informática, ya sea en el cuidado al descargar
archivos o programas desde Internet?
a. Sí
b. No
11. ¿A parte de Ud. existe alguna otra persona que use su estación de trabajo?
a. Sí
b. No
12. ¿Ha sufrido pérdida de información en su estación de trabajo?
a. Sí
b. No
13. ¿Utiliza programas que no tienen relación con su labor?
a. Sí
b. No
14. ¿Cuando su estación de trabajo presenta algún problema Ud. lo reporta
inmediatamente a Soporte técnico?
a. Sí
b. No
309
15. La atención por parte del Soporte Técnico al problema que Ud. reporto es:
o Inmediata
o Se tarda poco
o Lo dejan de un día para otro
o No le prestan atención
16. ¿Una vez solucionado el problema, le ha vuelto a ocurrir lo mismo?
a. Sí
b. No
17. ¿Ocupa alguna computadora de uso personal, por ejemplo en su hogar, para
operar con información que maneja en su puesto de trabajo dentro del la CISC?
o Sí
o No
18. ¿Alguna vez ha notado, si los servicios que ofrece la red, por ejemplo: Conexión a
Internet, Uso de alguna Aplicación, Uso de una Impresora; han dejado de
funcionar, pero de manera general?
o Sí
o No
o No lo se
19. ¿Desde su punto de vista cómo calificaría el funcionamiento de la red interna y
sus servicios?
a. Excelente
b. Muy buena
c. Buena
d. Regular
e. Pésima
310
TABULACIÓN DE RESULTADOS DE LAS ENTREVISTAS
Defensa del Perímetro
PREG
UNTA VULNERAB
ILIDAD ESC
ALA RESPU
ESTA CANTI
DAD PROTE
CCIÓN ESC
ALA RESPU
ESTA CANTI
DAD
1 8 0 - 2 Sí 4
1 0 - 2 No ….
2 2 0 - 2 Sí - No
lo se 1
6 0 - 2 No 3
5 1 0 - 2 No - No
lo se ….
8 0 - 2 Sí 4
6 4 0 - 3 Sí 2
4 0 - 2 No - No
lo se 2
7 2 0 - 2 No 1
6 0 - 3 Sí 3
8 1 0 - 2 Sí ….
6 0 - 2 No - No
lo se 4
9 4 0 - 2 No - No
lo se 2
3 0 - 2 Sí 2
10 2 0 - 2 Sí 1
6 0 - 2 No 3
11 4 0 - 2 No - No
lo se 2
4 0 - 2 Sí 2
16 1 0 - 2 No - No
lo se ….
16 0 - 5 Sí 4
18 1 0 - 2 No ….
8 0 - 2 Sí 4
19 2 0 - 2 No 1
6 0 - 2 Sí 3
20 1 0 - 2 No ….
6 0 - 3 Sí 4
21 6 0 - 4 Sí 2
4 0 - 2 No 2
22 2 0 - 3 Sí 4
1 0 - 2 No ….
24 2 0 - 2 No - No
lo se 1
12 0 - 5 Sí 3
Total 43
97
311
Autenticación
PREG
UNTA VULNERAB
ILIDAD ESC
ALA RESPU
ESTA CANTI
DAD PROTE
CCIÓN ESC
ALA RESPU
ESTA CANTI
DAD
14 1 0 - 2 No - No
lo se ….
8 0 - 2 Sí 4
25 4 0 - 2 No - No
lo se 2
6 0 - 4 Sí 2
26 1 0 - 2 No ….
5 0 - 2 Sí 4
27 2 0 - 2 No 1
5 0 - 2 Sí 3
28 2 0 - 2 No - No
lo se 1
7 0 - 3 Sí 3
Total 10
31
Administración Y Control
PREG
UNTA VULNERAB
ILIDAD ESC
ALA RESPU
ESTA CANTI
DAD PROTE
CCIÓN ESC
ALA RESPU
ESTA CANTI
DAD
12 2 0 - 2 No - No
lo se 1
6 0 - 2 Sí 3
13 1 0 - 2 Sí ….
8 0 - 2 No - No
lo se 4
15 1 0 - 2 No - No
lo se ….
8 0 - 2 Sí 4
31 1 0 - 2 No - No
lo se ….
6 0 - 2 Sí 4
32 4 0 - 2 No - No
lo se 2
4 0 - 3 Sí 2
33 1 0 - 2 Sí ….
8 0 - 2 No - No
lo se 4
34 2 0 - 2 Sí 1
2 0 - 2 No 3
37 1 0 - 2 No - No
lo se ….
12 0 - 3 Sí 4
Total 13
54
312
Actualización y Evaluación
PREG
UNTA VULNERAB
ILIDAD ESC
ALA RESPU
ESTA CANTI
DAD PROTE
CCIÓN ESC
ALA RESPU
ESTA CANTI
DAD
35 1 0 - 2 No ….
10 0 - 3 Sí 4
36 1 0 - 2 No ….
8 0 - 2 Sí 4
38 8 0 - 2 No - No
lo se 4
1 0 - 3 Sí ….
39 2 0 - 2 No - No
lo se 1
6 0 - 3 Sí 3
Total 12
25
313
SCRIPT DE CREACIÓN DE TABLAS PERSONALIZADO PARA LA BASE
DE DATOS SNORT, ARCHIVO create_MySQL
#create_MySQL
# Copyright (C) 2000-2002 Carnegie Mellon University
#
# Maintainer: Roman Danyliw <[email protected]>,
#
# Original Author(s): Jed Pickel <[email protected]> (2000-2001)
# Roman Danyliw <[email protected]>
# Todd Schrubb <[email protected]>
CREATE TABLE `schema` ( vseq INT UNSIGNED NOT NULL,
ctime DATETIME NOT NULL,
PRIMARY KEY (vseq));
INSERT INTO `schema` (vseq, ctime) VALUES ('107', now());
CREATE TABLE event ( sid INT UNSIGNED NOT NULL,
cid INT UNSIGNED NOT NULL,
signature INT UNSIGNED NOT NULL,
timestamp DATETIME NOT NULL,
PRIMARY KEY (sid,cid),
INDEX sig (signature),
INDEX time (timestamp));
CREATE TABLE signature ( sig_id INT UNSIGNED NOT NULL
AUTO_INCREMENT,
sig_name VARCHAR(255) NOT NULL,
sig_class_id INT UNSIGNED,
sig_priority INT UNSIGNED,
sig_rev INT UNSIGNED,
sig_sid INT UNSIGNED,
sig_gid INT UNSIGNED,
PRIMARY KEY (sig_id),
INDEX sign_idx (sig_name(20)),
INDEX sig_class_id_idx
(sig_class_id));
CREATE TABLE sig_class ( sig_class_id INT UNSIGNED NOT NULL
AUTO_INCREMENT,
sig_class_name VARCHAR(60) NOT NULL,
PRIMARY KEY (sig_class_id),
INDEX (sig_class_id),
INDEX (sig_class_name));
# store info about the sensor supplying data
314
CREATE TABLE sensor ( sid INT UNSIGNED NOT NULL
AUTO_INCREMENT,
hostname TEXT,
interface TEXT,
filter TEXT,
detail TINYINT,
encoding TINYINT,
last_cid INT UNSIGNED NOT NULL,
PRIMARY KEY (sid));
# All of the fields of an ip header
CREATE TABLE iphdr ( sid INT UNSIGNED NOT NULL,
cid INT UNSIGNED NOT NULL,
ip_src INT UNSIGNED NOT NULL,
ip_dst INT UNSIGNED NOT NULL,
ip_ver TINYINT UNSIGNED,
ip_hlen TINYINT UNSIGNED,
ip_tos TINYINT UNSIGNED,
ip_len SMALLINT UNSIGNED,
ip_id SMALLINT UNSIGNED,
ip_flags TINYINT UNSIGNED,
ip_off SMALLINT UNSIGNED,
ip_ttl TINYINT UNSIGNED,
ip_proto TINYINT UNSIGNED NOT NULL,
ip_csum SMALLINT UNSIGNED,
PRIMARY KEY (sid,cid),
INDEX ip_src (ip_src),
INDEX ip_dst (ip_dst));
# All of the fields of a tcp header
CREATE TABLE tcphdr( sid INT UNSIGNED NOT NULL,
cid INT UNSIGNED NOT NULL,
tcp_sport SMALLINT UNSIGNED NOT NULL,
tcp_dport SMALLINT UNSIGNED NOT NULL,
tcp_seq INT UNSIGNED,
tcp_ack INT UNSIGNED,
tcp_off TINYINT UNSIGNED,
tcp_res TINYINT UNSIGNED,
tcp_flags TINYINT UNSIGNED NOT NULL,
tcp_win SMALLINT UNSIGNED,
tcp_csum SMALLINT UNSIGNED,
tcp_urp SMALLINT UNSIGNED,
PRIMARY KEY (sid,cid),
INDEX tcp_sport (tcp_sport),
INDEX tcp_dport (tcp_dport),
INDEX tcp_flags (tcp_flags));
# All of the fields of a udp header
CREATE TABLE udphdr( sid INT UNSIGNED NOT NULL,
315
cid INT UNSIGNED NOT NULL,
udp_sport SMALLINT UNSIGNED NOT NULL,
udp_dport SMALLINT UNSIGNED NOT NULL,
udp_len SMALLINT UNSIGNED,
udp_csum SMALLINT UNSIGNED,
PRIMARY KEY (sid,cid),
INDEX udp_sport (udp_sport),
INDEX udp_dport (udp_dport));
# All of the fields of an icmp header
CREATE TABLE icmphdr( sid INT UNSIGNED NOT NULL,
cid INT UNSIGNED NOT NULL,
icmp_type TINYINT UNSIGNED NOT NULL,
icmp_code TINYINT UNSIGNED NOT NULL,
icmp_csum SMALLINT UNSIGNED,
icmp_id SMALLINT UNSIGNED,
icmp_seq SMALLINT UNSIGNED,
PRIMARY KEY (sid,cid),
INDEX icmp_type (icmp_type));
# Protocol options
CREATE TABLE opt ( sid INT UNSIGNED NOT NULL,
cid INT UNSIGNED NOT NULL,
optid INT UNSIGNED NOT NULL,
opt_proto TINYINT UNSIGNED NOT NULL,
opt_code TINYINT UNSIGNED NOT NULL,
opt_len SMALLINT,
opt_data TEXT,
PRIMARY KEY (sid,cid,optid));
# Packet payload
CREATE TABLE data ( sid INT UNSIGNED NOT NULL,
cid INT UNSIGNED NOT NULL,
data_payload TEXT,
PRIMARY KEY (sid,cid));
# encoding is a lookup table for storing encoding types
CREATE TABLE encoding(encoding_type TINYINT UNSIGNED NOT NULL,
encoding_text TEXT NOT NULL,
PRIMARY KEY (encoding_type));
INSERT INTO encoding (encoding_type, encoding_text) VALUES (0,
'hex');
INSERT INTO encoding (encoding_type, encoding_text) VALUES (1,
'base64');
INSERT INTO encoding (encoding_type, encoding_text) VALUES (2,
'ascii');
# detail is a lookup table for storing different detail levels
316
CREATE TABLE detail (detail_type TINYINT UNSIGNED NOT NULL,
detail_text TEXT NOT NULL,
PRIMARY KEY (detail_type));
INSERT INTO detail (detail_type, detail_text) VALUES (0,
'fast');
INSERT INTO detail (detail_type, detail_text) VALUES (1,
'full');
# be sure to also use the Snortdb-extra tables if you want
# mappings for tcp flags, protocols, and ports
CREATE TABLE sig_reference (sig_id INT UNSIGNED NOT NULL,
ref_seq INT UNSIGNED NOT NULL,
ref_id INT UNSIGNED NOT NULL,
PRIMARY KEY(sig_id, ref_seq));
CREATE TABLE reference ( ref_id INT UNSIGNED NOT NULL
AUTO_INCREMENT,
ref_system_id INT UNSIGNED NOT NULL,
ref_tag TEXT NOT NULL,
PRIMARY KEY (ref_id));
CREATE TABLE reference_system ( ref_system_id INT UNSIGNED NOT
NULL AUTO_INCREMENT,
ref_system_name VARCHAR(20),
PRIMARY KEY (ref_system_id));
317
MODIFICACIÓN AL CÓDIGO FUENTE DE ACID
Archivo acid_log_error.inc
<?php
/*
* Analysis Console for Intrusion Databases (ACID)
*
* Author: Roman Danyliw <[email protected]>, <[email protected]>
*
* Copyright (C) 2000, 2001 Carnegie Mellon University
* (see the file 'acid_main.php' for license details)
*
* Purpose: debugging and logging routines
*
*/
function ErrorMessage ($message)
{
echo '<FONT COLOR="#FF0000">'.$message.'</FONT><P>';
}
function FatalError ($message)
{
echo '<FONT COLOR="#FF0000"><B>ACID FATAL ERROR:</B>
'.$message.'</FONT>';
die();
}
function PrintServerInformation()
{
echo '';
}
function PrintPageHeader()
{
GLOBAL $HTTP_SERVER_VARS, $DBtype, $ADODB_vers,
$HTTP_SESSION_VARS;
$tmp = session_encode();
if ( isset($HTTP_SERVER_VARS['HTTP_REFERER']) )
$http_referer = $HTTP_SERVER_VARS['HTTP_REFERER'];
else
$http_referer = "";
if ( isset($HTTP_SERVER_VARS['HTTP_USER_AGENT']) )
$http_user_agent = $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
318
else
$http_user_agent = "";
if ( isset($HTTP_SERVER_VARS['SERVER_SOFTWARE']) )
$server_software = $HTTP_SERVER_VARS['SERVER_SOFTWARE'];
else
$server_software = "";
echo "<PRE>
<B>URL:</B> '".$HTTP_SERVER_VARS["PHP_SELF"]."'
(<B>referred by:</B> '".$http_referer."')
<B>PARAMETERS:</B>
'".$HTTP_SERVER_VARS["QUERY_STRING"]."
<B>CLIENT:</B> ".$http_user_agent."
<B>SERVER:</B> ".$server_software."
<B>SERVER HW:</B> ".php_uname()."
<B>DATABASE TYPE:</B> $DBtype <B>DB ABSTRACTION
VERSION:</B> $ADODB_vers
<B>PHP VERSION:</B> ".phpversion()." <B>PHP API:</B>
".php_sapi_name()."
<B>ACID VERSION:</B> ".$GLOBALS['ACID_VERSION']."
<B>SESSION ID:</B> ".session_id()."( ".strlen($tmp)."
bytes )
</PRE>";
}
function PrintHTTPPost()
{
GLOBAL $_POST;
echo "<BR><B>HTTP POST Variables</B><PRE>";
print_r($_POST);
echo "</PRE>";
}
?>
319
Archivo acid_state_common.inc
<?php
/*
* Analysis Console for Intrusion Databases (ACID)
*
* Author: Roman Danyliw <[email protected]>, <[email protected]>
*
* Copyright (C) 2000-2002 Carnegie Mellon University
* (see the file 'acid_main.php' for license details)
*
* Purpose: routines to manipulate shared state (session
* information)
*
*/
/*
**************************************************************
*********
* Function: InitArray()
*
* @doc Defines an initializes a 1 or 2 dimensional PHP array.
*
* @param $a (in/out) array to initialize
* @param $dim1 number of elements of first dimension
* @param $dim2 number of elements of second dimension
* @param $value default value
*
**************************************************************
**********/
function InitArray(&$a, $dim1, $dim2, $value)
{
$a = "";
/* determine the number of dimensions in the array */
if ( $dim2 == 0 ) /* 1-dim */
for ( $i = 0; $i < $dim1; $i++ )
$a[$i] = $value;
else /* 2-dim */
for ( $i = 0; $i < $dim1; $i++ )
for ( $j = 0; $j < $dim2; $j++ )
$a[$i][$j] = $value;
}
/*
**************************************************************
*********
* Function: RegisterGlobalState()
*
320
* @doc Application-specific wrapper for PHP session_start().
It performs
* a couple of additional configuration checks (notably
for custom
* PHP session handlers).
*
**************************************************************
**********/
function RegisterGlobalState()
{
/* Deal with user specified session handlers */
if (session_module_name() == "user" )
{
if ( $GLOBALS['use_user_session'] != 1 )
{
ErrorMessage("PHP ERROR: A custom (user) PHP session
have been detected. However, ACID has not been ".
"set to explicitly use this custom
handler. Set <CODE>use_user_session=1</CODE> in ".
"<CODE>acid_conf.php</CODE>");
die();
}
else if ( $GLOBALS['user_session_path'] != "" )
{
if ( is_file($GLOBALS['user_session_path']) )
{
include_once($GLOBALS['user_session_path']);
if ( $GLOBALS['user_session_function'] != "" )
$GLOBALS['user_session_function']();
}
else
{
ErrorMessage("PHP ERROR: A custom (user) PHP
session hander has been configured, but the supplied ".
"hander code specified in
<CODE>user_session_path</CODE> is invalid.");
die();
}
}
else
{
ErrorMessage("PHP ERROR: A custom (user) PHP session
handler has been configured, but the implementation ".
"of this handler has not been specified
in ACID. If a custom session handler is desired, ".
"set the <CODE>user_session_path</CODE>
variable in <CODE>acid_conf.php</CODE>.");
die();
321
}
}
session_start();
if ( $GLOBALS['debug_mode'] > 0 )
echo '<FONT COLOR="#FF0000">Session
Registered</FONT><BR>';
}
/*
**************************************************************
*********
* Function: CleanVariables()
*
* @doc Removes invalid characters/data from a variable based
on a
* specified mask of acceptable data or a list of
explicit values.
*
* Note: only the mask or explicit list can be used a a
time
*
* @param item variable to scrub
* @param valid_data mask of valid characters
* @param exception array with explicit values to match
*
* @return a sanitized version of the passed variable
*
**************************************************************
**********/
function CleanVariable($item, $valid_data, $exception = "")
{
return $item;
/* Check the exception value list first */
if ( $exception != "" )
{
if ( in_array($item, $exception) )
return $item;
else
return "";
}
if ( $valid_data == "" )
return $item;
$regex_mask = "";
322
if ( ($valid_data & VAR_DIGIT) > 0 )
$regex_mask = $regex_mask . "0-9";
if ( ($valid_data & VAR_LETTER) > 0 )
$regex_mask = $regex_mask . "A-Za-z";
if ( ($valid_data & VAR_ULETTER) > 0 )
$regex_mask = $regex_mask . "A-Z";
if ( ($valid_data & VAR_LLETTER) > 0 )
$regex_mask = $regex_mask . "a-z";
if ( ($valid_data & VAR_ALPHA) > 0 )
$regex_mask = $regex_mask . "0-9A-Za-z";
if ( ($valid_data & VAR_SPACE) > 0 )
$regex_mask = $regex_mask . "\ ";
if ( ($valid_data & VAR_PERIOD) > 0 )
$regex_mask = $regex_mask . "\.";
if ( ($valid_data & VAR_OPAREN) > 0 )
$regex_mask = $regex_mask . "\(";
if ( ($valid_data & VAR_CPAREN) > 0 )
$regex_mask = $regex_mask . "\)";
if ( ($valid_data & VAR_BOOLEAN) > 0 )
$regex_mask = $regex_mask . "\)";
if ( ($valid_data & VAR_OPERATOR) > 0 )
$regex_mask = $regex_mask . "\)";
if ( ($valid_data & VAR_PUNC) > 0 )
$regex_mask = $regex_mask . "\!\#\$\%\^\&\*\_\-
\=\+\:\;\,\?\ \(\))";
if ( ($valid_data & VAR_USCORE) > 0 )
$regex_mask = $regex_mask . "\_";
if ( ($valid_data & VAR_AT) > 0 )
$regex_mask = $regex_mask . "\@";
return ereg_replace("[^".$regex_mask."]", "", $item);
}
323
/*
**************************************************************
*********
* Function: SetSessionVar()
*
* @doc Handles retrieving and updating persistant session
(criteria)
* data. This routine handles the details of checking
for criteria
* updates passed through POST/GET and resolving this
with values
* that may already have been set and stored in the
session.
*
* All criteria variables need invoke this function
before they are
* used for the first time to extract their previously
stored values,
* and process potential updates to their value.
*
* Note: Validation of user input is not performed by
this routine.
*
* @param $var_name name of the persistant session variable
to retrieve
*
* @return the updated value of the persistant session
variable named
* by $var_name
*
**************************************************************
**********/
function SetSessionVar($var_name)
{
GLOBAL $_POST, $_GET, $HTTP_SESSION_VARS;
if ( isset($_POST[$var_name]) )
{
if ( $GLOBALS['debug_mode'] > 0 ) echo "importing POST
var '$var_name'<BR>";
return $_POST[$var_name];
}
else if ( isset($_GET[$var_name]) )
{
if ( $GLOBALS['debug_mode'] > 0 ) echo "importing GET
var '$var_name'<BR>";
return $_GET[$var_name];
}
324
else if ( isset($HTTP_SESSION_VARS[$var_name]) )
{
if ( $GLOBALS['debug_mode'] > 0 ) echo "importing
SESSION var '$var_name'<BR>";
return $HTTP_SESSION_VARS[$var_name];
}
else
return "";
}
/*
**************************************************************
*********
* Function: ImportHTTPVar()
*
* @doc Handles retrieving temporary state variables needed to
present a
* given set of results (e.g., sort order, current
record). The
* values of these variables are never persistantly
stored. Rather,
* they are passed as HTTP POST and GET parameters.
*
* All temporary variables need invoke this function
before they are
* used for the first time to extract their value.
*
* Optionally, sanitization parameters can be set, ala
CleanVariable()
* syntax to validate the user input.
*
* @param $var_name name of the temporary state variable
to retrieve
* @param $valid_data (optional) list of valid character
types
* (see CleanVariable)
* @param $exception (optional) array of explicit values
the imported
* variable must be set to
*
* @see CleanVariable
*
* @return the sanitized value of the temporary state variable
named
* by $var_name
*
**************************************************************
**********/
325
function ImportHTTPVar($var_name, $valid_data = "", $exception
= "")
{
GLOBAL $_POST, $_GET, $debug_mode;
$tmp = "";
if ( isset($_POST[$var_name]) )
{
//if ( $debug_mode > 0 ) echo "importing POST var
'$var_name'<BR>";
$tmp = $_POST[$var_name];
}
else if ( isset($_GET[$var_name]) )
{
//if ( $debug_mode > 0 ) echo "importing GET var
'$var_name'<BR>";
$tmp = $_GET[$var_name];
}
else
$tmp = "";
return CleanVariable($tmp, $valid_data, $exception);
}
/*
**************************************************************
*********
* Function: ExportHTTPVar()
*
* @doc Handles export of a temporary state variables needed
to present a
* given set of results (e.g., sort order, current
record). This
* routine creates a hidden HTML form variable.
*
* Note: The user is responsible for generating the
appropriate HTML
* form code.
*
* Security Note: Only, temporary variables should make
use of this
* function. These values are exposed in
HTML to the
* user; he is free to modify them.
*
* @param $var_name name of the temporary state variable
to export
* @param $var_value value of the temporary state variable
326
*
* @see ImportHTTPVar
*
**************************************************************
**********/
function ExportHTTPVar ($var_name, $var_value)
{
echo "<INPUT TYPE=\"hidden\" NAME=\"$var_name\"
VALUE=\"$var_value\">\n";
}
?>
327
Archivo acid_state_criteria.inc
<?php
/*
* Analysis Console for Intrusion Databases (ACID)
*
* Author: Roman Danyliw <[email protected]>, <[email protected]>
*
* Copyright (C) 2001-2002 Carnegie Mellon University
* (see the file 'acid_main.php' for license details)
*
* Purpose: routines to manipulate shared state (session
* information)
*
*/
include_once("acid_state_common.inc");
include_once("acid_state_citems.inc");
class CriteriaState
{
var $clear_criteria_name;
var $clear_criteria_element;
var $clear_url;
var $clear_url_params;
var $criteria;
function CriteriaState($url, $params = "")
{
$this->clear_url = $url;
$this->clear_url_params = $params;
/* XXX-SEC */
GLOBAL $db;
$this->criteria['sig'] = new SignatureCriteria(&$db,
&$this, "sig");
$this->criteria['sig_class'] = new
SignatureClassificationCriteria(&$db, &$this, "sig_class");
$this->criteria['sig_priority'] = new
SignaturePriorityCriteria(&$db, &$this, "sig_priority");
$this->criteria['ag'] = new AlertGroupCriteria(&$db,
&$this, "ag");
$this->criteria['sensor'] = new SensorCriteria(&$db,
&$this, "sensor");
$this->criteria['time'] = new TimeCriteria(&$db, &$this,
"time", TIME_CFCNT);
328
$this->criteria['ip_addr'] = new IPAddressCriteria(&$db,
&$this, "ip_addr", IPADDR_CFCNT);
$this->criteria['layer4'] = new Layer4Criteria(&$db,
&$this, "layer4");
$this->criteria['ip_field'] = new IPFieldCriteria(&$db,
&$this, "ip_field", PROTO_CFCNT);
$this->criteria['tcp_port'] = new TCPPortCriteria(&$db,
&$this, "tcp_port", PROTO_CFCNT);
$this->criteria['tcp_flags'] = new TCPFlagsCriteria(&$db,
&$this, "tcp_flags");
$this->criteria['tcp_field'] = new TCPFieldCriteria(&$db,
&$this, "tcp_field", PROTO_CFCNT);
$this->criteria['udp_port'] = new UDPPortCriteria(&$db,
&$this, "udp_port", PROTO_CFCNT);
$this->criteria['udp_field'] = new UDPFieldCriteria(&$db,
&$this, "udp_field", PROTO_CFCNT);
$this->criteria['icmp_field'] = new
ICMPFieldCriteria(&$db, &$this, "icmp_field", PROTO_CFCNT);
$this->criteria['data'] = new DataCriteria(&$db, &$this,
"data", PAYLOAD_CFCNT);
/*
* For new criteria, add a call to the appropriate
constructor here, and implement
* the appropriate class in acid_stat_citems.inc.
*/
}
function InitState()
{
RegisterGlobalState();
$valid_criteria_list = array_keys($this->criteria);
foreach ( $valid_criteria_list as $cname )
$this->criteria[$cname]->Init();
}
function ReadState()
{
RegisterGlobalState();
/*
* If the BACK button was clicked, shuffle the
appropriate
* criteria variables from the $back_list (history) array
into
* the current session ($HTTP_SESSION_VARS)
*/
329
if ( ($GLOBALS['maintain_history'] == 1) &&
(ImportHTTPVar("back", VAR_DIGIT) == 1) )
{
PopHistory();
}
/*
* Import, update and sanitize all persistant criteria
variables
*/
$valid_criteria_list = array_keys($this->criteria);
foreach ( $valid_criteria_list as $cname )
{
$this->criteria[$cname]->Import();
$this->criteria[$cname]->Sanitize();
}
/*
* Check whether criteria elements need to be cleared
*/
$this->clear_criteria_name =
ImportHTTPVar("clear_criteria", "",
array_keys($this->criteria));
$this->clear_criteria_element =
ImportHTTPVar("clear_criteria_element", "",
array_keys($this->criteria));
if ( $this->clear_criteria_name != "" )
$this->ClearCriteriaStateElement($this-
>clear_criteria_name,
$this-
>clear_criteria_element);
/*
* Save the current criteria into $back_list (history)
*/
if ( $GLOBALS['maintain_history'] == 1 )
PushHistory();
}
function GetBackLink()
{
return PrintBackButton();
}
function GetClearCriteriaString($name, $element = "")
{
330
return ' <A HREF="'.$this-
>clear_url.'?clear_criteria='.$name.
'&clear_criteria_element='.$element.$this-
>clear_url_params.'">...clear...</A>';
}
function ClearCriteriaStateElement($name, $element)
{
$valid_criteria_list = array_keys($this->criteria);
if ( in_array($name, $valid_criteria_list) )
{
ErrorMessage("Removing '$name' from criteria");
$this->criteria[$name]->Init();
}
else
ErrorMessage("Invalid criteria element");
}
}
/*
**************************************************************
*********
* Function: PopHistory()
*
* @doc Remove and restore the last entry of the history list
(i.e.,
* hit the back button in the browser)
*
* @see PushHistory PrintBackButton
*
**************************************************************
**********/
function PopHistory()
{
GLOBAL $HTTP_SESSION_VARS;
if ( $HTTP_SESSION_VARS['back_list_cnt'] >= 0 )
{
/* Remove the state of the page from which the back
button was
* just hit
*/
unset($HTTP_SESSION_VARS['back_list'][$HTTP_SESSION_VARS['back
_list_cnt']]);
331
/*
* save a copy of the $back_list because
session_destroy()/session_decode() will
* overwrite it.
*/
$save_back_list = $HTTP_SESSION_VARS['back_list'];
$save_back_list_cnt =
$HTTP_SESSION_VARS['back_list_cnt']-1;
/* Restore the session
* - destroy all variables in the current session
* - restore proper back_list history entry into the
current variables (session)
* - but, first delete the currently restored
entry and
* decremement the history stack
* - push saved back_list back into session
*/
session_unset();
if ( $GLOBALS['debug_mode'] > 2 )
ErrorMessage("Popping a History Entry from
#".$save_back_list_cnt);
session_decode($save_back_list[$save_back_list_cnt]["session"]
);
unset($save_back_list[$save_back_list_cnt]);
--$save_back_list_cnt;
$HTTP_SESSION_VARS['back_list'] = $save_back_list;
$HTTP_SESSION_VARS['back_list_cnt'] =
$save_back_list_cnt;
}
}
/*
**************************************************************
*********
* Function: PushHistory()
*
* @doc Save the current criteria into the history list
($back_list,
* $back_list_cnt) in order to support the ACID back
button.
*
* @see PopHistory PrintBackButton
*
332
**************************************************************
**********/
function PushHistory()
{
GLOBAL $HTTP_SERVER_VARS, $HTTP_SESSION_VARS, $_POST;
if ( $GLOBALS['debug_mode'] > 1 )
{
ErrorMessage("Saving state (into
".$HTTP_SESSION_VARS['back_list_cnt'].")");
}
/* save the current session without the $back_list into the
history
* - make a temporary copy of the $back_list
* - NULL-out the $back_list in $HTTP_SESSION_VARS (so
that
* the current session is serialized without these
variables)
* - serialize the current session
* - fix-up the QUERY_STRING
* - make a new QUERY_STRING that includes the
temporary QueryState variables
* - remove &back=1 from any QUERY_STRING
* - add the current session into the $back_list
(history)
*/
$tmp_back_list = $HTTP_SESSION_VARS['back_list'];
$tmp_back_list_cnt = $HTTP_SESSION_VARS['back_list_cnt'];
$HTTP_SESSION_VARS['back_list'] = NULL;
$HTTP_SESSION_VARS['back_list_cnt'] = -1;
$full_session = session_encode();
$HTTP_SESSION_VARS['back_list'] = $tmp_back_list;
$HTTP_SESSION_VARS['back_list_cnt'] = $tmp_back_list_cnt;
$query_string = $HTTP_SERVER_VARS["QUERY_STRING"];
if ( isset($_POST['caller']) ) $query_string .=
"&caller=".$_POST['caller'];
if ( isset($_POST['num_result_rows']) ) $query_string .=
"&num_result_rows=".$_POST['num_result_rows'];
if ( isset($_POST['sort_order']) ) $query_string .=
"&sort_order=".$_POST['sort_order'];
if ( isset($_POST['current_view']) ) $query_string .=
"¤t_view=".$_POST['current_view'];
if ( isset($_POST['submit']) ) $query_string .=
"&submit=".$_POST['submit'];
333
$query_string = ereg_replace("back=1&", "", $query_string);
++$HTTP_SESSION_VARS['back_list_cnt'];
$HTTP_SESSION_VARS['back_list'][$HTTP_SESSION_VARS['back_list_
cnt']] =
array ("PHP_SELF" =>
$HTTP_SERVER_VARS["PHP_SELF"],
"QUERY_STRING" => $query_string,
/*$HTTP_SERVER_VARS["QUERY_STRING"], */
"session" => $full_session );
if ( $GLOBALS['debug_mode'] > 1 )
{
ErrorMessage("Insert session into slot
#".$HTTP_SESSION_VARS['back_list_cnt']);
echo "Back List (Cnt =
".$HTTP_SESSION_VARS['back_list_cnt'].") <PRE>";
print_r($HTTP_SESSION_VARS['back_list']);
echo "</PRE>";
}
}
/*
**************************************************************
*********
* Function: PrintBackButton()
*
* @doc Returns a string with the URL of the previously viewed
* page. Clicking this link is equivalent to using the
browser
* back-button, but all the associated ACID meta-
information
* propogates correctly.
*
* @see PushHistory PopHistory
*
**************************************************************
**********/
function PrintBackButton()
{
GLOBAL $HTTP_SESSION_VARS;
if ( $GLOBALS['maintain_history'] == 0 )
return "<FONT>Back</FONT>";
334
$criteria_num = $HTTP_SESSION_VARS['back_list_cnt'] - 1;
if (
isset($HTTP_SESSION_VARS['back_list'][$criteria_num]["PHP_SELF
"]) )
return "<FONT><A
HREF=\"".$HTTP_SESSION_VARS['back_list'][$criteria_num]["PHP_S
ELF"].
"?back=1&".
$HTTP_SESSION_VARS['back_list'][$criteria_num]["QUERY_STRING"]
."\">Back</A></FONT>";
else
return "<FONT>Back</FONT>";
}
?>
335
ARCHIVO DE CONFUGURACIÓN DEL FIREWALL
EN UBUNTU 10.04 USANDO IPTABLES
Archivo firewall.sh
#!/bin/bash
#-s Especifica una direccion de origen
#-d Especifica una direccion de destino
#-p Especifica un protocolo
#-A Especifica una interfaz de entrada
#-o Especifica una interfaz de salidad
#-i Especifica la accion a ejecutar sobre el paquete
#--sport Puerto de origen
#--dport Puerto de destino
echo -n Aplicando reglas de firewall...
#Borrar todas la reglas
iptables -F
iptables -X
#Politica General.
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#Permite conexion establecida por paquetes que vienen de otras
pc
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j
ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j
ACCEPT
#Acepta todo de local host
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
##OTRAS PROTECCIONES##
# Quitamos los pings.
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
# No respondemos a los broadcast.
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Para evitar el spoofing nos aseguramos de que la direccion
origen del paquete viene del sitio correcto.
for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do
/bin/echo "1" > ${interface}
done
# Los ICMPs redirigidos que pueden alterar la tabla de rutas.
for interface in /proc/sys/net/ipv4/conf/*/accept_redirects;
do
/bin/echo "0" > ${interface}
Done
336
# No guardamos registros de los marcianos.
/bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
# Asegurar, aunque no tenga soporte el nucleo, q no hay
forward.
/bin/echo "0" > /proc/sys/net/ipv4/ip_forward
###Reglas de los puertos####
# Permitimos la comunicación con el servidor dns
iptables -A INPUT -p UDP --dport 53 -j ACCEPT
iptables -A INPUT -p TCP --dport 53 -j ACCEPT
#Permiso para SEBEK
iptables -A INPUT -p UDP --dport 1101 -j ACCEPT
iptables -A INPUT -p TCP --dport 1101 -j ACCEPT
#No permitir que nada mas entre
iptables -A INPUT -i eth+ -p udp -j DROP
iptables -A INPUT -i eth+ -p tcp -m tcp --syn -j DROP
#Permitimos todo el trafico de la LAN
iptables -A INPUT -s 192.168.0.102 -j ACCEPT
iptables -A INPUT -s 192.168.0.106 -j ACCEPT
echo "OK verifique lo que se aplica con: sudo iptables -L"
#Fin del script
337
REFERENCIAS BIBLIOGRÁFICAS
LIBROS
Aguilar, G. (2007). Sistema de Detección de Intrusos para una red inalambrica
de una PYME. México DF: Instituto Politécnico Nacional, Escuela Superior de
Ingeniería Mecánica y Eléctrica.
Aldegani, G. (1997). Seguridad Informática. Argentina: MP Ediciones.
Alfaro, J. (2009). Implantación de un N-IDS en la Universidad de Valencia.
España: Universidad de Valencia.
Ander-Egg, E. (1990). Técnicas de Investigación Social (1 era ed.). Alicante,
España: Editora Gráfica Díaz.
Avilés, J. (2009). Captura y Análisis que sufren las redes de datos de la ESPOL,
Implantando una Honeynet . Guayaquil, Ecuador: ESPOL, Facultad de Ingeniería
en Electricidad y Computación.
Berenguela, A. (2006). Metodología de medición de vulnerabilidades en redes de
datos de organizaciones. Chile: INACAP, Ingeniería en Conectividad y Redes.
Borghello, C. (2001). Seguridad Informática, sus implicancias e implementación.
Buenos Aires, Argentina: NN.
Cifuentes, J. (2004). Manual de Detección de vulnerabilidades en redes TCP/IP.
Cali, Colombia: Universidad del Valle, Facultad de Ingeniería, Escuela de
Ingeniería Eléctrica y Electrónica.
Fernandez, H. (2008). Detección y Limitaciones de ataques clásicos con
Honeynets virtuales. Argentina: Universidad Nacional de Comahue.
338
Ferrero, J. A. (2009). Sistema híbrido para la detección de código malicioso.
España: Universidad Complutense de Madrid, Facultad de Informática, Sistemas
Informáticos.
Gonzalez, V. (2009). Sistema de detección de intrusos basado en sistema experto.
México DF: Instituto Politécnico Nacional, Centro de investigación en
computación.
Kuehl, K. (2000). The Honeynet Project: Advancements in Honeypot tools.
Estados Unidos.
López, D. (2009). Análisis inicial de la anatomía de un ataque a un sistema
informático. México: UNAM (Universidad Autónoma de México).
Martínez, B. (2009). Honeypot Virtual de Alta Interacción para Windows XP.
España: Universidad Carlos III de Madrid.
Northcutt, S. (1999). Network Intrusion Detection: An analyst’s handbook .
Estados Unidos: New raiders.
Norton, P. (2000). Introducción a la Computación (Tercera ed.). México:
MacGraw-Hill.
Ramos, D. (2009). Simulación de un Sistema de Protección Y Seguridad de
Servidores WEB y de Correo Electrónico. Quito: Universidad Politécnica
Nacional. Facultad de Ingeniería Eléctrica y Electrónica.
Ranum, M. (1992). TIS Firewall Tooolkit. Estado Unidos.
339
Rutinel, J. U. (1997). Diccionarios de Investigación Científica. Santo Domingo,
República Dominicana: Editora Universitaria UASD (Univesidad Autonoma de
Santo Domingo).
Sabino, C. (1978). El proceso de la investigación. Buenos Aires, Argentina:
Editorial El Cid Editor.
Sandeep, K. (1995). Classification and Detection of Computers Intrusions. West
Lafayette, Estados Unidos: Tesis de PhD de la Purdue University.
Simpson, G. (1991). Practical UNIX Security. California, Estados Unidos:
O'Reilly ans Associates.
Spitzner, L. (2003). Definitions and value of Honeypots. EE.UU.
Stoll, C. (1990). The cuckoo's egg: Tracking a spy throught the maze of computer
espionage. Estados Unidos: Doubleday.
Verdejo, G. (2003). Seguridad en redes IP. España: Universidad Autónoma de
Barcelona, Departamento de Informática: Doctorado en Informática.
Vieites, A. G. (2007). Enciclopedia de la Seguridad Informática. México:
Alfaomega Grupo Editorial.
Winkler, I. (2007). Zen an the Art of Information Security. Estados Unidos:
Syngress Publishing.
Zurutaga, U. (2009). Estado del Arte Sistemas de Detección de Intruso. País
Basco, España: Universidad de Mondragón.
340
PUBLICACIONES
Cheswick, W. (2000). Firewalls and Internet Security. New Jersey, Estados
Unidos: NN.
Cotal, S. (2009). Honeypots y Honeynets. Argentina: Dpto. Ciencias de la
Computación, Universidad Nacional de Comahue .
Espinoza, M. (s.f.). UTPL (Universidad Técnica Particular de Loja). Recuperado
el 15 de Septiembre de 2010, de Honeynet como Apoyo a la Investigación de
Seguridad de Redes en entornos Universitarios:
http://www.utpl.edu.ec/honeynet/wp-content/uploads/2009/09/proyecto-honeynet-
utpl.pdf
Even, L. (2000). Honeypot System Explained. Recuperado el 18 de Agosto de
2010, de SANS: The most trusted source for computer security training,
certification and research: http://www.sans.org/security-
resources/idfaq/honeypot3.php
Grajales, T. (2000). Tipos de Investigación . Recuperado el 15 de Junio de 2010,
de Documento que muestra los tipos de investigación:
http://tgrajales.net/investipos.pdf
Levine, J. (2003). The use of honeynets to detect exploited systems across large
enterprise. Recuperado el 18 de Agosto de 2010, de IEEE Workshop on
Information Assurance: http://www.tracking-hackers.com/papers/gatech-
honeynet.pdf
341
Papers Honeynet Proyect, Universidad de Michigan. (2008). Recuperado el 10
de Agosto de 2010, de Guia de Introducción a las Honeypot:
http://niels.xtdnet.nl/papers/honeynet/mgp00001.html
Ramírez, R. (2003). Honeypot Honeynet: señuelos y máquinas trampa, conozca a
su enemigo. SIC: Revista de seguridad en informática y comunicaciones (56), 62-
64.
Metodología de la Investigación. (2010). Recuperado el 10 de Agosto de 2010,
de Tesis y Monografías: Metodología de la Investigación:
http://www.mistareas.com.ve/
Weley, A. (2001). The Honeynet Proyect. Recuperado el 23 de Julio de 2010, de
Papers: Know Your enemy: http://www.project.honeynet.org/papers
Wesley, A. (13 de Septiembre de 2003). Conoce a tu enemigo: Sebek 2.
Recuperado el 11 de Septiembre de 2010, de Papers Honeynet Proyect:
http://his.sourceforge.net/honeynet/papers/sebek/
342
DIRECCIONES WEB
A.C.I.D. (Analysis Console for Intrusion DataBase). (2010). Recuperado el 15
de Septiembre de 2010, de Pagina Oficial de ACID:
http://www.andrew.cmu.edu/user/rdanyliw/snort/snortacid.html
ABCdatos. (2010). Recuperado el 17 de Julio de 2010, de Guia de Intalación y
Configuración de VMware workstation 6:
http://foros.abcdatos.com/viewtopic.php?t=16671
ALEGSA. (2010). Recuperado el 20 de Julio de 2010, de Conceptos de VMware
worstation: http://www.alegsa.com.ar/Dic/vmware%20workstation.php
Analysis Console for Intrusion Databases (ACID). (s.f.). Recuperado el 27 de
Agosto de 2010, de Sitio Web para descargar ACID:
http://acidlab.sourceforge.net/
Apache Software Foundation. (1999). Recuperado el 27 de Agosto de 2010, de
Sitio Web de Apache Software Foundation, Descarga de APACHE WEB
SERVER: http://www.apache.org/
AUTOPSY. (2003). Recuperado el 13 de Octubre de 2010, de Sitio web oficial de
AUTOPSY, Programa de análisis forence: http://www.sleuthkit.org/autopsy/
CEPEU. (2010). Recuperado el 20 de Septiembre de 2010, de Seguridad
Informática: Pilares Básicos:
http://www.cepeu.edu.py/LIBROS_ELECTRONICOS_3/lpcu082%20-%2001.pdf
343
Comunidad Underground de México. (08 de Junio de 2010). Recuperado el 12
de Agosto de 2010, de Paper Cyber Crimen y el Nacimiento de la Informática
forense + HoneyPots :
https://www.underground.org.mx/index.php?action=printpage;topic=25638.0
CONATEL. (17 de Abril de 2002). Reglamento a la Ley de comercio
electrónico, firmas electrónicas y mensajes de datos. Recuperado el 2010 de
Agosto de 2010, de Sitio Web del CONATEL:
http://www.conatel.gov.ec/site_conatel/index.php?option=com_content&view=art
icle&catid=48%3Anormas-del-sector&id=99%3A-reglamento-a-la-ley-de-
comercio-electronico-firmas-electronicas-y-mensajes-de-datos&Itemid=103
CONESUP. (s.f.). Ley de Educacion Superior. Recuperado el 26 de Agosto de
2010, de Sitio Web del CONESUP: http://www.conesup.net/leyes.php
Configuracion de Redes en VMware. (Agosto de 2008). Recuperado el 25 de
Julio de 2010, de Guía de Configuración en modo Bridged VMware:
http://dacosta51.wordpress.com/2008/08/07/vmware-configuracin-de-red-en-
modo-bridge/
Cristalab. (2010). Recuperado el 22 de Julio de 2010, de Guía Básica Práctica de
VMware Worstation : http://foros.cristalab.com/guia-basica-practica-de-vmware-
workstation-t6051/
Ecualug.org. (2010). Recuperado el 17 de Septiembre de 2010, de Foro de
discusion Ecualug.org: http://www.ecualug.org
344
F.I.R.E. (2010). Recuperado el 13 de Octubre de 2010, de Sitio web oficial de
Forensic Insident Responce Enviroment (F.I.R.E): http://fire.dmzs.com/
FOREMOST. (2010). Recuperado el 13 de Octubre de 2010, de Sitio web oficial
de FOREMOST: http://foremost.sourceforge.net/
Honeyd. (2010). Recuperado el 07 de Septiembre de 2010, de Virtual Honeypots:
http://www.honeyd.org
Honeypots. (2010). Recuperado el 5 de Septiembre de 2010, de Herramientas de
seguridad de la Información: http://honeypots.wordpress.com/
IETF. (2004). Recuperado el 27 de Julio de 2010, de IDWG - Intrusion Detection
Working Group: http://datatracker.ietf.org/wg/idwg/charter/
Kuehl, K. (2002). The Honeynet project: Advancements in Honeypot tools.
Recuperado el 23 de Julio de 2010, de Presentacion sobre The Honeynet project:
Advancements in Honeypot tools:
http://www.google.com.ec/url?sa=t&source=web&cd=1&ved=0CBQQFjAA&url
=http%3A%2F%2Fwinfingerprint.sourceforge.net%2Fpresentations%2Fhoneynet
_project-
mexico2003.ppt&ei=KNpJTIT8MIP_8AbkqtzBDg&usg=AFQjCNE4MiwXqBPT
UuTSzWr3SsM3Xfdg1A&sig2=JTZH4gUIidpX48C51qISfA
Microsoft TechNet. (2010). Recuperado el 30 de Julio de 2010, de TechCenter de
clientes Windows, Máquinas Virtuales: http://technet.microsoft.com/es-
es/library/ee449441%28WS.10%29.aspx
345
Reglamento de la Investigación Científica y Tecnológica de la Universidad de
Guayaquil. (5 de Julio de 2006). Recuperado el 26 de Agosto de 2010, de
Documento de Sitio web de la Universidad de Guayaquil:
http://www.ug.edu.ec/dipacad/descargas/general/Reglam_Inv_Cient.pdf
Roesch, M. (2002). Snort. Recuperado el 27 de Julio de 2010, de Snort - The
Open Source Intrusion Destection System: http://www.snort.org/
Segobia, A. (30 de Abril de 2010). Security Artwork. Recuperado el 16 de Agosto
de 2010, de Honeynets II: Honeypots (Para aprender, perder… o no):
http://www.securityartwork.es/2010/04/30/honeypots-ii-para-aprender-
perder%E2%80%A6-o-no/
SICE. (s.f.). Ley de la Propiedad Intelectual. Recuperado el 19 de Agosto de
2010, de Sitio Web del SICE :
http://www.sice.oas.org/int_prop/nat_leg/ecuador/L320ind.asp
Snort. (2010). Recuperado el 27 de Julio de 2010, de Sitio Web Home de Snort:
http://www.snort.org/
Soporte Microsoft. (2010). Recuperado el 13 de Octubre de 2010, de Sitio web
Oficial del Soporte Microsoft (Descripcion del Registro del Sistema):
http://support.microsoft.com/kb/256986/es
Soporte producto VMware Workstation. (2010). Recuperado el 2010 de Julio de
15, de Soporte a usuarios de VMware Worstation:
http://www.vmware.com/support/product-support/workstation/
346
Source Forge. (s.f.). Recuperado el 27 de Agosto de 2010, de Sitio Web para
descargar Adodb: http://sourceforge.net/projects/adodb/
Source Forge. (s.f.). Recuperado el 27 de Agosto de 2010, de Sitio Web para
descargar PHPlot: http://sourceforge.net/projects/phplot/
Spanish Honeynet Proyect. (2010). Recuperado el 15 de Julio de 2010, de Sitio
Web Home del Honeynet Proyect: Spanish Chapter: http://honeynet-es.org/
Spitzner, L. (2002). Honeypot: Tracking Hackers. Recuperado el 12 de Agosto
de 2010, de The Honeynet Proyect: http://www.honeynet.org/
The Honeynet Proyect. (1999). Recuperado el 23 de Junio de 2010, de Sitio Web
Home del Honeypot Proyect: http://www.honeynet.org/
The Honeynet Proyect. (2010). Recuperado el 23 de Julio de 2010, de Capitulos o
Chapters de diversos paises: http://www.project.honeynet.org/og
UBUNTU. (2010). Recuperado el 1 de Agosto de 2010, de Sitio web oficial de
Ubuntu Español: http://ubuntu.com.es/
UNAM CERT (Universidad Autónoma de México). (2010). Recuperado el 5 de
Septiembre de 2010, de PAPERS Proyecto Honeynet UNAM:
http://www.honeynet.unam.mx/es/papers.pl
UTPL (Universidad Técnica Particular de Loja). (2010). Recuperado el 10 de
Septiembre de 2010, de Proyecto Honeynet: http://www.utpl.edu.ec/honeynet/
Top Related