Herramientas de detección de vulnerabilidades-NESSUS

8,705 views

Published on

Herramientas de detección de vulnerabilidades.NESSUS
Curso: Herramientas de seguridad en GNU/Linux

Published in: Technology
1 Comment
5 Likes
Statistics
Notes
No Downloads
Views
Total views
8,705
On SlideShare
0
From Embeds
0
Number of Embeds
113
Actions
Shares
0
Downloads
0
Comments
1
Likes
5
Embeds 0
No embeds

No notes for slide

Herramientas de detección de vulnerabilidades-NESSUS

  1. 1. 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. 2. 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. 3. 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. 4. 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. 5. 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. 6. 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. 7. 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. 8. 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. 9. 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. 10. 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. 11. 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. 12. 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. 13. 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. 14. 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. 15. 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. 16. 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. 17. 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. 18. 18 Análisis de vulnerabilidades basado en red ● Protocolo TCP/IP ● Protocolo ICMP
  19. 19. 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. 20. 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. 21. 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. 22. 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. 23. 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. 24. 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. 25. 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. 26. 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. 27. 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. 28. 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. 29. 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. 30. 30 Nessus
  31. 31. 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. 32. 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

×