Sunteți pe pagina 1din 33

ANÁLISIS DE VULNERABILIDADES

Ing. Francisco Alvarez Pineda

fraalvarez@Gmail.com
Análisis de vulnerabilidades
Contenido

- Conceptos generales
- Análisis de vulnerabilidades
- Tipos de vulnerabilidades
- Detección de vulnerabilidades
- Vulnerabilidades web

Página 2
Encontrar vulnerabilidad

Ingeniería social.

- Según Digital Guardian, el 97% de los ataques informáticos no


aprovechan una falla en el software, sino que usan técnicas de
ingeniería social para conseguir las credenciales necesarias para
vulnerar la seguridad informática.

Página 3
Encontrar vulnerabilidad

Ingeniería social.

- Trata de engañar y persuadir, con la pretensión de conseguir


información útil y significativa de su víctima, que puede ser desde un
pequeño usuario que lee un correo y al ejecutar el archivo adjuntado
tiene que revelar datos personales o contraseñas, hasta una empresa o
gran organización escogida con ánimo de causar el mal.

- También puede lograr que un individuo logre convencer a otro para


introducir sus datos en un determinado lugar que cree seguro y que
luego no es así, por ejemplo a través de llamadas telefónicas. Tiene por
tanto la intención de hacer que el individuo actúe como el delincuente
quiere que lo haga, bien haciendo clic en un enlace, o respondiendo un
correo fraudulento, etc.

- Intenta aprovecharse de los fallos que cometen las personas a la Hora


de divulgar la información, lo cual es muy peligroso tanto para un
individuo como para una organización.
Página 4
Encontrar vulnerabilidad

Ingeniería social.

- Lo más común es que la ingeniería social se lleve a cabo a través de


canales tecnológicos como por ejemplo Internet o el teléfono, aunque
también se produce cara a cara, siendo menos habitual, ya que implica
un mayor riesgo y osadía del individuo que comete el delito.

El contacto lo
A quien va dirigido:
realiza:
• Organizaciones • Conocido, amigo
escogidas al azar o pariente.
o como objetivo. • Prestador de
• Determinado servicios.
empleado o • Autoridad.
grupo de
empleados.
• Un usuario.

Página 5
Encontrar vulnerabilidad

Ingeniería social en la red.

- La ingeniería social se hace más importante ante la dificultad que tienen


los hackers para saltarse la seguridad de la red, protegida mediante
firewalls, control de accesos, etc; ya que facilita la intrusión a través de
la recolección de datos internos sobre procedimientos, códigos, datos
personales, etc.

Por ello es conveniente desconfiar de los correos, llamadas y demás


interacciones con desconocidos.

“El factor determinante de la seguridad de las empresas es la


capacidad de los usuarios de interpretar correctamente las
políticas de seguridad y hacerlas cumplir” – Kevin Mitnick,
consultor de seguridad informática, ingeniero social y ex–
hacker.

Página 6
Encontrar vulnerabilidad

Ingeniería social (técnicas).

- Acceso no
autorizado
- Usb tentadora

Página 7
Encontrar vulnerabilidad

Ingeniería social.

Casos.

- Intento de suplantación de identidad o “phishing” cuyo ejemplo más


claro suele ser la recepción por parte del usuario de un correo
electrónico de su banco, en el que nos envían un formulario donde
tenemos que introducir los datos personales o login, lo cual permitirá al
delincuente informático tener acceso a nuestra cuenta bancaria o
vender los datos obtenidos.
- La recepción por parte del usuario en su cuenta de correo de postales
con invitaciones o con felicitación de fiestas navideñas de algún amigo
y que te obligan a introducir nuevamente el login, enviando los datos
obtenidos a páginas web.

Página 8
Encontrar vulnerabilidad

Ingeniería social.

Medidas contra el engaño.


- Concienciar a todas las personas de la organización, especialmente
aquellas que vas a transmitir información como por ejemplo las
telefonistas, secretarias y ejecutivos. Esto se puede hacer mediante
charlas informativas sobre la posible extracción de datos por parte del
intruso o ingeniero social.
- También es muy importante tener muy bien organizada la
descentralización de la empresa, es decir, tener bien definidos los
segmentos a través de los cuales va a ser trasmitida la información hasta
llegar al ejecutivo.
- Tener un servidor de correo electrónico interno que pueda filtrar el spam
y no mezclar así correo personal con correo de trabajo.
- Se pueden hacer también pruebas de seguridad en los distintos medios
utilizados para la trasmisión de la información.

Página 9
Encontrar vulnerabilidad

Ingeniería social.
Clasificación Detalle
Clasificación: Pasivas - Observación
- Los diferentes No - Correo electrónico.
métodos de presenciales - Teléfono.
ingeniería social se
- Correo ordinario y fax.
pueden clasificar
en: Presenciales - Hablar con la gente.
no agresivas - Vigilancia.
- Seguimiento.
- Acreditaciones falsas.
- Desinformación.
Presenciales - Suplantación de identidad.
agresivas - Chantaje o extorsión.
- Despersonalización (alcohol,
drogas..).
- Presión psicológica.
Página 10
Encontrar vulnerabilidad

Ingeniería social.

Página 11
Encontrar vulnerabilidad

Ingeniería social.

Ejemplo:

- Lectura pagina 11.

Video:

- https://www.youtube.com/watch?v=nxfWA1PC_U0
- https://www.youtube.com/watch?v=5zRuiCMpBpc

Página 12
Encontrar vulnerabilidad

Footprinting.

- El proceso de Footprinting consiste en la búsqueda de toda la


información pública, bien porque haya sido publicada a propósito o
bien porque haya sido publicada por desconocimiento que pueda
haber sobre el sistema que se va a auditar, es decir, buscaremos todas
las huellas posibles, como:

Direcciones IP, servidores internos, cuentas de correo de los usuarios,


nombres de máquinas, información del registrador del dominio, tipos de
servidores, ficheros con cuentas y/o credenciales de usuarios,
impresoras, cámaras IP, metadatos, etc.

- Es decir, cualquier dato que nos pueda ser de utilidad para lanzar
distintos ataques en las fases posteriores de la auditoría.

Página 13
Encontrar vulnerabilidad

Footprinting.

- El primer paso es seleccionar un objetivo.


- Una vez elegido, debemos navegar por toda la página web de la
organización y sus aplicaciones, en busca de errores.
- Es habitual, sobretodo en sitios web muy grandes, que se dejen
olvidados enlaces a sitios que no deberían estar, o algún error en una
llamada a BBDD (algo más común de lo que se piensa).
- Debemos descargarnos el sitio web entero, con alguna herramienta
como Httrack (WinHTTrack ) y hacer búsquedas directamente sobre la
carpeta donde esté el sitio web descargado, para buscar comentarios
como por ejemplo:
<!—Comentario del Diseñador al Programador, el usuario para
conectarse a la BBDD es XXX y la clave XXX-->

Página 14
Encontrar vulnerabilidad

Footprinting.

Buscadores

- El segundo paso de cualquier proceso de Footprinting es preguntar a


Google, Bing, etc. por el dominio del que queremos obtener
información.
- Los buscadores son una fuente de clasificación, análisis y búsqueda de
información, confidencial o no, sobre un objetivo. Altavista fue el
buscador preferido en los años 90, Yahoo lo fue más cerca del año 2000
y hoy lo es el excelente Google.
- Los buscadores utilizan crawlers para indexar webs que en ocasiones
ciertas páginas que no deberían haberse publicado pero que han
estado cierto tiempo visibles desde Internet mientras se estaban
probando, y han quedado cacheadas en Google. Por tanto, podríamos
verlas mirando la caché o con algún servicio como “archive.org”.

Página 15
Encontrar vulnerabilidad

Footprinting.

Buscadores

- Recurriremos a los motores de búsqueda como Google o Bing utilizando


diferentes verbos para obtener mejores resultados en las búsquedas.
- Google Hacking: http://www.elhacker.net/trucos_google.html

- Bing Hacking: http://onlinehelp.microsoft.com/es-


es/bing/ff808421.aspx

- http://www.cqcounter.com/siteinfo/
- http://www.cuwhois.com/

- Cmd /nslookup / set type=ns/ dominio/ server nombre/ ls dominio

Página 16
Encontrar vulnerabilidad

Fingerprinting.

- “Tras dar una vuelta al edificio observando de lejos si hay alguna puerta
o ventana abierta, algún agujero en la pared… el footprinting. Vamos a
acercarnos e intentaremos dar golpes en las puertas, por si alguna se
abre, para ver si aparecen guardias… el fingerprinting.”

- El fingerprinting es el proceso de recolección de información en el que


se interactúa directamente con los sistemas para aprender más sobre su
configuración y comportamiento.

Página 17
Encontrar vulnerabilidad

Fingerprinting.

- Técnica utilizada para obtener información de lo que tienen las


máquinas de un objetivo.

- Recopilación de información sobre:


- Puertos abiertos
- Host en la red
- Sistema operativo utilizado
- Software detrás de los puertos
- Sistemas de protección que pueda haber delante de las máquinas

Página 18
Encontrar vulnerabilidad

Fingerprinting.

- Lo más típico para realizar esta tarea es el escaneo de puertos.


Buscaremos los puertos abiertos en los servidores de la entidad e
intentaremos identificar que hay detrás de esos puertos.

- Herramientas mas utilizadas:


- Nmap
- Zenmap

- Como saber cual es la ip


- Cmd
- Nslookup www.
- ping

Página 19
Encontrar vulnerabilidad

Fingerprinting.

- Hay dos principales problemas con la técnica del escaneo de puertos:

- Hace mucho ruido, ya que esta técnica consiste en ir enviando


paquetes a todos los puertos de los servidores. Si se hace todo de golpe
puede levantar sospechas por parte del administrador de seguridad

- Hay mecanismos para bloquear estos escaneos y sistemas para alertar


de ellos. Los firewall o cortafuegos pueden ser dispositivos hardware o
programas software que mitigan estos escaneos de puertos, filtrando los
paquetes de IP’s externas o filtrando el tipo de paquetes (sobre todo los
de tipo ICMP o ping).

Página 20
Análisis de vulnerabilidades
Contenido

- Conceptos generales
- Análisis de vulnerabilidades
- Tipos de vulnerabilidades
- Detección de vulnerabilidades
- Vulnerabilidades web

Página 21
Tipos de vulnerabilidades

Tipos:

- Hay diversos tipos de


vulnerabilidades, algunas más
peligrosas que otras. Unas pueden
llegar a causar denegación de
servicio y otras ejecución de
código remoto, pero que pueden
comprometer el sistema de una
forma u otra.

Página 22
Tipos de vulnerabilidades

Heap Overflow

- Este tipo de vulnerabilidades es causado por un mal uso de la memoria


dinámica de un programa y las funciones que operan sobre ella,
reservándola y liberándola, como malloc o free (C/C++).

- Ejemplo:
Ocurre cuando un programa continúa utilizando un puntero después de
que este haya sido liberado. Al liberar un puntero, lo único que se hace es
desasignar la memoria previamente asignada en un bloque, pero no
cambia la dirección a la que apunta.

Página 23
Tipos de vulnerabilidades

Off-By-One

● Este tipo de vulnerabilidades tienen su origen en el cálculo o en el uso


incorrecto de un valor que realmente es inferior o superior en 1 al valor
esperado. Normalmente, por una mala interpretación del programador
a la hora de contar o acceder a secuencias de datos, por ejemplo,
cuando no se considera el valor de posición 0 (cero) en un array o
cuando se itera en un bucle más allá del número esperado de veces.

● Generalmente, las consecuencias de este tipo de error acaban en un


crash de la aplicación, aunque pueden ser aprovechadas para
ejecutar código o eludir restricciones de seguridad en el equipo
vulnerable.

Página 24
Tipos de vulnerabilidades

Race condition
- Los errores generados por una condición de carrera son producidos por
el cambio que experimenta el estado de un recurso (fichero, memoria,
registros…) desde que se comprueba su valor hasta que el recurso es
utilizado. Se convierten en una vulnerabilidad si el atacante puede influir
en este cambio de estado entre la comprobación y uso. Generalmente,
este tipo de problemas suelen darse bien por la interacción entre hilos
en un proceso multihilo o bien por la concurrencia de otros procesos
ajenos al proceso vulnerable.

Página 25
Tipos de vulnerabilidades

Integer Overflow

- Los desbordamientos de entero suceden cuando se intenta almacenar


un valor numérico demasiado grande en una variable en la que no
quepa (suelen ser int o unsigned int), generando valores negativos,
valores menores… El problema se da cuando este valor es resultado de
algún valor introducido por el usuario y se utiliza para tomar decisiones
de seguridad.
- Normalmente, genera denegación de servicio en las aplicaciones o
servicios que lleven esta vulnerabilidad.

Página 26
Tipos de vulnerabilidades

Format String

- En algunos lenguajes como C, es necesario para las funciones que


imprimen por pantalla que se indique el tipo de dato que se quiere
imprimir (mediante ‘%d’, ‘%c’…). Este tipo de vulnerabilidad se da
cuando el programador no define el formato de los datos que se van a
imprimir, permitiendo al atacante dar el formato a su antojo.

- Además con la secuencia ‘%n’ se puede sobrescribir cualquier posición


de memoria. Por ello este tipo de vulnerabilidad puede provocar tanto
fugas de información, como denegación de servicio, como ejecución
de código arbitrario.

Página 27
Tipos de vulnerabilidades

Buffer Overflow

- Este tipo de vulnerabilidad se produce cuando se copia cierta cantidad


de datos sobre un área que no es lo suficientemente grande para
contenerlos, sobrescribiendo de esta manera otras zonas de memoria.

Página 28
Análisis de vulnerabilidades
Contenido

- Conceptos generales
- Análisis de vulnerabilidades
- Tipos de vulnerabilidades
- Detección de vulnerabilidades
- Vulnerabilidades web

Página 29
Detección de vulnerabilidades

Metodología

- La metodología para la detección de vulnerabilidades en redes de


datos, consta de tres fases mediante las cuales se busca obtener las
vulnerabilidades en los equipos de red y servidores en las redes de datos
objeto de estudio.
Objetivo:
ampliar información Escaneo de puertos
sobre la red objetivo. y enumeración de
Fases: servicios Objetivo:
- Búsqueda de dominios Detectar las
a la inversa, a nivel vulnerabilidades
superior, mediante Objetivo: presentes en cada uno
fuerza bruta. La detección de los de los equipos objetivo
- Transferencias de puertos y servicios que se
zona. ejecutan en los equipos
- Descubrimiento de que pertenecen a un
topología de red. rango de red específico. Escaneo de
vulnerabilidades

Reconocimiento

Página 30
Análisis de vulnerabilidades
Contenido

- Conceptos generales
- Análisis de vulnerabilidades
- Tipos de vulnerabilidades
- Detección de vulnerabilidades
- Vulnerabilidades web

Página 31
Vulnerabilidades web

Deber:

- Inyección
- Secuencias de comandos en sitios cruzados
- Autenticación rota.
- Solicitudes falsificadas en sitios cruzados.
- Referencias directas e inseguras a objetos.
- Configuración errónea de seguridad.
- Almacenamiento inseguro:
- Fallas al restringir acceso URL.
- Insuficiente protección en la capa de transporte.
- Forwards y Redirects no validados.

Página 32
Análisis de vulnerabilidades

Bibliografía

Artículo:

- http://www.scielo.cl/scielo.php?script=sci_arttext&pid=S0718-
07642012000300014

- http://www.openvas.org/install-packages-
v5.html#openvas_windows_gb

- http://novacreations.net/diez-vulnerabilidades-aplicaciones-web/
- https://github.com/zaproxy/zaproxy/wiki/Downloads

- http://www.enter.co/guias/lleva-tu-negocio-a-internet/ingenieria-social/

Página 33

S-ar putea să vă placă și