25 de xuño de 2008
Ferramentas de seguridade en GNU/Linux
Curso de Extensión Universitaria
Milagros Fernández Gavilanes
mfgavilanes@udc.es
Departamento de Computación
Universidade de A Coruña
Herramientas de análisis de vulnerabilidades en redes y servicios. 
Medidas de prevención y respuesta
2
Objetivos
● ¿Qué es una vulnerabilidad? 
● ¿Qué tipos de vulnerabilidades existen?
● ¿Qué herramientas permiten realizar análisis de vulnerabilidad?
● ¿Cómo funciona una herramienta de análisis de vulnerabilidad?
● ¿Qué tipos de análisis de vulnerabilidades existen?
● ¿Cuales son las ventajas y desventajas de estas herramientas?
● ¿Qué tipo de herramientas existen hoy en día en el mercado?
● Una herramienta concreta: Nessus
3
¿Qué es una vulnerabilidad?
● Es la posibilidad de un daño debido a la materialización de una 
amenaza sobre un sistema. Pueden ser debilidades en el nivel 
físico sobre:
● la  organización,  los  procedimientos,  equipos,  software, 
información
● Provocan  debilidades  en  el  sistema  que 
pueden  explotarse  y  dar  lugar  a 
consecuencias no deseadas.
● Una  de  las  causas  por  las  que  una 
vulnerabilidad puede materializarse es por la 
ausencia de un mecanismo de control
4
¿Qué es una vulnerabilidad?
● Los  sistemas  informáticos 
usan  una  diversidad  de 
componentes. 
● Los  ataques  se  pueden 
producir en cada eslabón de 
esta  cadena,  siempre  y 
cuando  exista  una 
vulnerabilidad  que  pueda 
aprovecharse
5
¿Qué es una vulnerabilidad?
● Tipos de vulnerabilidades
● Acceso físico: en este caso, el atacante tiene acceso a las 
instalaciones e incluso a los equipos: 
●
Interrupción del suministro eléctrico. 
●
Apagado manual del equipo. 
●
Vandalismo. 
●
Apertura de la carcasa del equipo y robo del disco duro.
●
Monitorización del tráfico de red.
● Intercepción de comunicaciones: 
●
Secuestro de sesión. 
●
Falsificación de identidad. 
●
Redireccionamiento o alteración de mensajes. 
6
¿Qué es una vulnerabilidad?
● Denegaciones de servicio: interrumpir el funcionamiento normal 
de un servicio. Las denegaciones de servicio se dividen en: 
●
Explotación de las debilidades del protocolo TCP/IP.
●
Explotación de las vulnerabilidades del software del servidor.
●  Intrusiones:
●
Análisis de puertos
●
Elevación  de  privilegios:  consiste  en  aprovechar  una 
vulnerabilidad  en  una  aplicación  al  enviar  una  solicitud 
específica.  En  ciertos  casos,  esto  genera  comportamientos 
atípicos  que  permiten  acceder  al  sistema  con  derechos  de 
aplicación.  Los  ataques  de  desbordamiento  de  la  memoria 
intermedia (búfer) usan este principio. 
●
Ataques malintencionados (virus, gusanos, troyanos). 
7
¿Qué es una vulnerabilidad?
● Ingeniería  social:  el  eslabón  más  débil  es  el  mismo  usuario. 
Muchas  veces  es  él  quien,  por  ignorancia  o  a  causa  de  un 
engaño,  genera  una  vulnerabilidad  en  el  sistema  al  brindar 
información  (la  contraseña,  por  ejemplo)  o  al  abrir  un  archivo 
adjunto. Cuando ello sucede, ningún dispositivo puede proteger 
al usuario contra la falsificación: sólo el sentido común, la razón 
y  el  conocimiento  básico  acerca  de  las  prácticas  utilizadas 
pueden ayudar a evitar este tipo de errores.
● Puertas trampa: son puertas traseras ocultas en un programa 
de software que brindan acceso. 
8
¿Qué es una vulnerabilidad?
● Lo que se pretende:
asegurar que la información es 
accesible sólo para aquellos 
autorizados a tener acceso
Confidencialidad
Integridad Disponibilidad
Salvaguardar la información 
tanto en calidad como en 
cantidad
Asegurar que los usuarios 
autorizados tienen acceso a la 
información y a los activos 
asociados cuando es requerido
Salvaguardar la información 
tanto en calidad como en 
cantidad
Asegurar que los usuarios 
autorizados tienen acceso a la 
información y a los activos 
asociados cuando es requerido
asegurar que la información es 
accesible sólo para aquellos 
autorizados a tener acceso
9
¿Qué herramientas permiten estos análisis?
● Escáneres de vulnerabilidades
● Definición:  herramienta  que  permite  realizar  pruebas  o  test  de 
ataque  para  determinar  si  una  red  o  equipo  tiene  fallos  de 
seguridad.
● Caso especial de detectores de intrusiones. La diferencia radica en:
●
Detección  de  intrusos:  sistema  de  tipo  dinámico  →  trabaja  de 
forma continua
●
Escáneres  de  vulnerabilidades:  sistema  de  tipo  estático  → 
trabaja en intervalos de tiempo determinado
10
¿Cómo funciona un escáner de vulnerabilidades?
● El proceso de análisis se divide en varias etapas:
● Se muestrea un conjunto específico de atributos de sistema.
● Los  resultados  del  muestreo  se  almacenan  en  un  recipiente  de 
datos seguro.
● Los  resultados  se  organizan  y  comparan  con  al  menos  un 
conjunto  de  referencia  de  datos  (puede  ser  una  plantilla  de 
"configuración ideal" generada manualmente, o bien una imagen 
del estado del sistema hecha con anterioridad)
● Se genera un informe con las diferencias entre ambos conjuntos 
de datos.
11
¿Qué tipos de análisis de vulnerabilidades existen?
● Existen 2 formas de clasificar los análisis de vulnerabilidades:
● en base a la fuente de datos:
●
análisis basados en máquinas
●
análisis basados en red
● en base al nivel de confianza del que hace uso:
●
usando credenciales (uso identificación y autenticación que 
concedan acceso a partes internas del sistema)
●
sin uso de credenciales
12
Análisis de vulnerabilidades basado en máquina
● Definición: Tipo de análisis que utiliza información del sistema 
(ajustes  de  configuración,  contenidos  de  ficheros,  etc)  para  la 
detección  de  vulnerabilidades.  Obtiene  esta  información  a 
través de consultas por lo que tiene acceso autorizado.
● Llamada evaluación pasiva o análisis con acreditaciones
● Desventajas:
● el motor del analizador está muy relacionado con el SO 
●
mantenimiento costoso
●
administración  del  escáner  complicado  en  sistemas 
heterogéneos
● usar  credenciales  protegidas  para  evitar  que  sean  objeto  de 
ataque
13
Análisis de vulnerabilidades basado en máquina
● Tipos de vulnerabilidades basado en máquinas que nos 
podemos encontrar:
● ataques a escala de privilegios → buscan obtener permisos de 
super usuario “root” en sistemas Unix o de administrador en 
sistemas Windows
● errores en permisos de ficheros
● entradas de usuarios duplicadas o sospechosas
● cuentas de usuario abiertas por defecto
14
Ejemplo análisis de vulnerabilidad basado en máquina
● Un  script  como  el  siguiente  se  encarga  de  avisar  mediante 
correo  electrónico  al  administrador  del  sistema  en  caso  de 
encontrar entradas anómalas en el fichero de contraseñas
#!/usr/bin/perl
$count==0;
open(MAIL, "| /usr/lib/sendmail mikal");
print MAIL "To: Administrationn";
print MAIL "Subject: Password Reportn";
open(PASSWORDS, "cat /etc/passwd |");
while(<PASSWORDS>) {
      $linenumber=$.;
      @fields=split(/:/, $_);
      if($fields[1] eq "") {
            $count++;
            print MAIL "n***WARNING***n";
            print MAIL "Line $linenumber has a blank password.n";
            print MAIL "Here's the record: @fieldsn";
      }
}
close(PASSWORDS);
if($count < 1) print MAIL "No blank password foundn";
print MAIL ".n";
close(MAIL);
15
Ejemplo de herramienta basado en máquina
● Uno de los primeros escáneres de vulnerabilidades en sistemas 
Unix fue COPS
● COPS se encarga de buscar problemas de configuración típicos 
como por ejemplo: permisos erróneos de ficheros, directorios y 
servicios, contraseñas de usuarios débiles, bits de suplantación 
impropios etc. ATTENTION:
Security Report for Sun Abr 20 20:57:09 CET 2003 from host vm3
Warning! NFS filesystem exported with no restrictions!
Warning! NFS filesystem exported with no restrictions!
Warning! NFS filesystem exported with no restrictions!
Warning! NFS filesystem exported with no restrictions!
Warning! /dev/fd0 is_World_writable!
Warning! /dev/fd0 is_World_readable!
Warning! /var/spool/mail is_World_writable!
Warning! /etc/security is_World_readable!
Warning! /usr/local/bin is_World_writable!
Warning! /root/adduser.log is_World_readable!
Warning! /root/bash.man is_World_readable!
Warning! /root/bin is_World_readable!
Warning! /root/control is_World_readable!
Warning! /root/cops_1_04.tar is_World_readable!
Warning! /root/cops.man is_World_readable!
Warning! /root/cops_man.html is_World_readable!
16
Otro ejemplo de herramienta basado en máquina
● Otra herramienta similar es TIGER que está formado por un 
conjunto de scripts y código C
#hosts.equiv      This file describes the names of the
#                 hosts which are to be considered "equivalent",
#                 i.e. which are to be trusted enought
#                 for allowing rsh (1) commands.
#
#hostname
#Checking accounts from /etc/passwd...
#Performing check of .netrcfiles...
#Checking accounts from /etc/passwd...
#Performing check of PATH components...
#Only checking user'root'
­­WARN­­[path002w]/usr/bin/amadmin in root's
         PATH from default is not owned by root (owned by amanda).
­­WARN­­[path002w]/usr/bin/amcheckdb in root's
         PATH from default is not owned by root (owned by amanda).
­­WARN­­[path002w]/usr/bin/amcleanup in root's
         PATH from default is not owned by root (owned by amanda).
­­WARN­­[path002w]/usr/bin/amdump in root's
         PATH from default is not owned by root (owned by amanda).
17
● Definición: Tipo de análisis que requiere conexión de red con la 
máquina  a  ser  evaluada.  Realiza  ataques  contra  ella  para 
deducir sus debilidades. No necesita tener acceso al sistema.
● Llamada evaluación activa o análisis sin acreditaciones
● Técnicas de evaluación:
● “Exploits”: lanza ataques reales, programados mediante lenguajes 
de  scripts.  Una  vez  lanzado,  se  espera  a  recibir  una  señal 
indicando el éxito o fracaso del ataque.
● Método  de  inferencia:  no  explotan  vulnerabilidades,  sino  que 
buscan indicios de que se realizaron ataques en la máquina.
Análisis de vulnerabilidades basado en red
18
Análisis de vulnerabilidades basado en red
● Protocolo TCP/IP
● Protocolo ICMP
19
● Tipos de vulnerabilidades basado en red que nos podemos 
encontrar usando Exploits:
● ataques con técnica Smurf: se basa en el uso de servidores de 
difusión para paralizar una red. Un servidor de difusión tiene la 
capacidad de duplicar un mensaje y enviarlo a todos los equipos 
de una misma red. 
Análisis de vulnerabilidades basado en red
●
El  ping  aprovecha  una 
vulnerabilidad  del  protocolo 
ICMP, lo cual permite  probar 
las  conexiones  de  una  red 
enviando  un  paquete  y 
esperando la respuesta
20
Análisis de vulnerabilidades basado en red
● Tipos  de  vulnerabilidades  basado  en  red  que  nos  podemos 
encontrar usando Exploits:
● Ataque  ping  de  la  muerte:  Consiste    en  crear  un  datagrama  IP 
cuyo  tamaño  total  supere  el  máximo  autorizado  (65.536  bytes). 
Cuando  un  paquete  de  este  tipo  se  envía  a  un  sistema  que 
contiene una pila vulnerable de protocolos TCP/IP, éste produce la 
caída del sistema. 
● Ataque por fragmentación: consiste en saturar el tráfico de la red 
(denegación  de  servicio)  para  aprovechar  el  principio  de 
fragmentación del protocolo IP. 
● Ataque  LAND:  Es  un  ataque  de  red  que  consiste  en  enviar  un 
paquete con la misma dirección IP y el mismo número de puerto 
en los campos fuente y destino de los paquetes IP. 
21
Análisis de vulnerabilidades basado en red
● Tipos  de  vulnerabilidades  basado  en  red  que  nos  podemos 
encontrar usando Exploits:
● Ataque  SYN:  (también  denominado  "inundación  TCP/SYN") 
consiste  en  saturar  el  tráfico  de  la  red  (denegación  de  servicio) 
para  aprovechar  el  mecanismo  de  negociación  de  tres  vías  del 
protocolo TCP. 
●
El ataque SYN consiste en enviar una 
gran  cantidad  de  solicitudes  SYN  a 
través  de  un  ordenador  con  una 
dirección IP inexistente o no válida. En 
consecuencia, el equipo de destino no 
puede recibir un paquete ACK
22
Análisis de vulnerabilidades basado en red
● Tipos  de  vulnerabilidades  basado  en  red  que  nos  podemos 
encontrar usando método de inferencia:
● comprobación de versiones del sistema y de las aplicaciones
● comprobación del estado de los puertos
● comprobación de conformidad de protocolo mediante solicitud de 
estado.
23
Ventajas e inconvenientes de estas herramientas
● Ventajas:
● Mejoran la seguridad de un sistema, especialmente en entornos 
en los que no se cuenta con un sistema de detección de intrusos.
● Proporcionan las pruebas necesarias para documentar el estado 
de la seguridad de los sistemas en el comienzo de un proyecto y 
sirven  para  restablecer  la  base  del  sistema  cuando  ocurren 
cambios importantes.
● Se  utilizan  regularmente,  pueden  detectar  cambios  en  el  estado 
de la seguridad de un sistema, informando de los problemas que 
requieren corrección.
● Reduce eficazmente los fallos de seguridad más comunes de un 
sistema.  Alarma  de  forma  precisa  de  muchos  problemas  de 
configuración que se le pueden pasar por alto a un administrador 
de sistemas o a un gestor de seguridad.
24
Ventajas e inconvenientes de estas herramientas
● Desventajas:
● Los analizadores basados en máquina, debido a su dependencia 
del sistema operativo, son más costosos y complicados de 
gestionar.
● Los analizadores basados en red son independientes de la 
plataforma, pero también son menos exactos y propensos a emitir 
falsas alarmas en sus resultados.
● Si se utilizan escáneres de vulnerabilidades en sistemas 
informáticos en los cuales se está ejecutando algún sistema de 
detección de intrusos, los análisis de vulnerabilidades pueden ser 
bloqueados.
● Algunas pruebas basadas en red, como los ataques de denegación 
de servicio pueden llevar a provocar la caída del sistema. Este tipo 
de pruebas deben hacerse de forma controlada.
25
¿Qué tipo de herramientas existen hoy en día?
●               GFI LANguard :
● Escanea redes y reporta información como:
● el  nivel  de  service  pack  de  cada  máquina,  falta  de  parches  de 
seguridad,  recursos  compartidos,  puertos  abiertos,  servicios/ 
aplicaciones  activas  en  el  equipo,  datos  del  registro,  passwords 
débiles,  usuarios  y  grupos,  puntos  de  acceso  wireless, 
dispositivos USB ...
● Escanea los resultados y los guarda en documentos HTML, sobre 
los que se puede consultar la información
● Existe una versión gratuita que está disponible para su prueba y 
uso no comercial durante 30 días
26
¿Qué tipo de herramientas existen hoy en día?
●             eEye­ retina: 
● Su  función  es  explorar  todas  las  maquinas  de  una  red  e 
informar sobre cualquier vulnerabilidad encontrada. 
● Esta muy distribuida en el mercado, es sencilla y rápida para el 
escaneo de vulnerabilidades, últimamente tiene buenas críticas
27
¿Qué tipo de herramientas existen hoy en día?
●         Nikto : 
●
● Nikto es un escáner de servidores Web, open source (GPL) que 
busca  más  de  2000  archivos/CGIs  potencialmente  peligrosos  y 
problemas en más de 200 servidores.
● Tiene  la  capacidad  de  no  sólo  probar  vulnerabilidades  de  CGI 
sino  también  que  lo  hace  de  forma  evasiva,  evitando  los 
sistemas de detección de intrusos.
● Viene  con  una  documentación  muy  completa,  la  cual  es 
recomendable revisar antes de ejecutar el programa.
● Es una buena herramienta pero limitada por su uso de Whisker/ 
libwhisker, debido a la falta de actualizaciones de esta última, por 
lo que las vulnerabilidades más críticas no son detectadas
28
¿Qué tipo de herramientas existen hoy en día?
●        WebScarab
●  Herramienta que permite analizar aplicaiones que se 
comunican usando protocolos de comunicación Web como el 
HTTP y el HTTPS
● Almacena los resultados de sus escaneos lo que permite 
consultarlos por parte del usuario tantas veces como lo desee.
● WebScarab está diseñada para ser una herramienta que 
expone a un desarrollador de aplicaciones basadas en HTTP(S) 
a depurar los errores de implementación que puedieron surgir y 
permitir identificar vulnerabilidades en el sistema.
29
●         Nessus: 
● Es la herramienta de evaluación de vulnerabilidades para UNIX 
de mayor renombre.
● Nessus  es  el  mejor  escáner  de  vulnerabilidades  "Open 
Source"  (GPL)  que  hay  disponible  en  la  red  y  el  que  mejor 
funciona sobre UNIX. Se actualiza constantemente, con más de 
11.000 plugins gratuitos.
● Nessus 3 ahora es de código cerrado, pero es de coste gratuito 
a menos que desees los plugins más recientes.
¿Qué tipo de herramientas existen hoy en día?
30
Nessus
31
Nessus
● Definición:  Es  una  herramienta  basada  en  un  modelo 
cliente/servidor  que  cuenta  con  su  propio  protocolo  de 
comunicación. El trabajo correspondiente para explorar y probar 
ataques contra objetivos es realizado por el servidor de Nessus, 
mientras  que  las  tareas  de  control,  generación  de  informes  y 
presentación de los datos son gestionadas por el cliente.
● Consta por tanto de 4 ficheros básicos:
● las librerías del programa
● las librerías NASL (Nessus Attack Scriptitng Language)
● el núcleo de la aplicación
● los plugins (que simularan los ataques)
32
Bibliografía
● Seguridad de la información (Redes, informática y sistemas de información) 
Javier Areitio Ed. PARANINFO
● Aspectos avanzados de seguridad en redes. Jordi Herrera,  Joaquín García, 
Xavier Perramón. Ed. UOC (Formación de posgrado)
● Seguridad en Unix y Redes. Antonio Villalón Huerta. ́
● www.nessus.org
● http://www.wikilearning.com/tutorial/seguridad_en_unix_y_redes­nessus/ 
9777­126
● http://sectools.org/
● http://es.wikipedia.org/wiki/Retina
● http://www.virtualblueness.net/nasl.html
● http://en.wikipedia.org/wiki/GFI_Software
● http://euitio178.ccu.uniovi.es/wiki/index.php/Uso_de_Nikto_como_herramient
a_de_seguridad

Herramientas de detección de vulnerabilidades-NESSUS