Métodos vulnerabilidad activos

Preview:

DESCRIPTION

 

Citation preview

TÉCNICAS PARA DETECTAR LAS VULNERABILIDADES  DE ACTIVOS

Seguridad en Computación e Informática

Universidad Nacional Federico VillarrealFacultad de Ingeniería Industrial y de Sistemas Escuela de Ingeniería de Sistemas

Integrantes

CASACHAHUA MEDINA, JOSÉ

RODOLFO ALBERTO

FLORIAN ARTEAGA, EDUARDO MIGUEL

GONZALES BERNAL, JAIR

ANTONIO

GARCÍA MORAUSKY,

CESAR RICARDO

BENITEZ PEREYRA, PAUL FRANCISCO E.

INTRODUCCIÓN

En la actualidad todas las empresas en sus distintos rubros cuentan con una gran gama de activos de información, entre ellos podemos mencionar: aplicativos, servidores ya sean web, de correo o de aplicaciones, páginas web, etc. Todos ellos enlazados con la información o data de la organización y que constituye el principal activo de toda organización, ya que en ella se encuentra todo el know how que marca la diferencia en el mercado de vanguardia.Entonces las organizaciones deben tomar en cuenta medidas o técnicas representadas en programas, métodos que nos sirven para detectar estas vulnerabilidades o debilidades y no caer en un futuro cercano en una pérdida lamentable o robo inescrupuloso de nuestros activos de información.

1 CASO:

Toda empresa posee activos de TI ya sea servidores, aplicaciones o elementos de red de una infraestructura de TI, lo cual se tiene que identificar las vulnerabilidades que poseen estas como también saber gestionarlas para así evitar conflictos de riesgos que afecten mis procesos de negocio.

¿Qué técnica debo de implementar para detectar las vulnerabilidades?

Existe una herramienta de SW que me permite escanear, detectar, evaluar y remediar cualquier vulnerabilidad, la cual es:

GFI LANguard N.S.S (Network Security Scanner)

Es una solución empresarial para salvaguardar los sistemas y redes de ataques hacker y brechas de seguridad mediante:

Análisis de vulnerabilidad Administración de parches. Auditoria de red y software.

Proceso de escaneo de elementos de red

Vistas del desempeño del GFI LANguard N.S.S.

Beneficios del GFI LANguard N.S.S.

Previene caídas de TI que puedan afectar los procesos de negocio, debido a la exposición por vulnerabilidad.

Ayuda a los administradores de TI a asegurar sus redes más rápido y más eficientemente.

  Proporciona informes adaptables de escaneos realizados a

través de toda la red incluyendo aplicaciones y recursos.

2 CASO:¿Qué es el Google Hacking?

El Google Hacking consiste en explotar la gran capacidad de almacenamiento de información de Google, buscando información específica que ha sido añadida a las bases de datos del buscador.

Búsquedas las orientamos a ciertas palabras clave

Nos ayuden a encontrar información sensible.

Puntos de entrada sensibles a posibles ataques.

Cualquier tipo de información que tuviera carácter de sensibilidad, estaremos ejecutando un Google hack.

Ver cámaras privadas desde Google

Metadatos

METADATOS

FIIS – WEB METADATOS

METADATOS

3 CASO:

Detección de Vulnerabilidades en una Red

Infiltrator

INFILTRATOR

Infiltrator es una herramienta que permite escanear redes para poder auditar la red en buscar de vulnerabilidades.

Tiene la capacidad de revelar y catalogar un gran número de información de las computadoras que ha escaneado como: Software instalado, usuarios, discos, información sobre SNMP, puertos abiertos entre otros.

INFILTRATOR

Búsqueda de información y escaneo:Obtiene información como: Registros, políticas de contraseñas,

usuarios y grupos, trabajos y sesiones, puertos TCP y UDP que se encuentre abiertos, datos sobre Servidores web, y muchos otros.

INFILTRATORAuditoria de seguridad Infiltrator tiene la capacidad de alertar sobre eventos peligrosos, gracias a la

BD de auditoria con la que viene integrada.

Técnica para la detección estática de Vulnerabilidades

Pattern Matching

Pattern Matching

Técnica para detección de vulnerabilidades de Software

Funciona comparando una secuencia de códigos, que contengan cierto token, con un patrón.

Los patrones que generalmente intenta comparar son String.

Es muy útil para encontrar y remover algunos problemas potenciales de seguridad antes que el programa sea lanzado al público

Pattern Matching

Herramientas: FlawfinderTrabaja usando una BD con funciones de C/C++ conocidas por

presentar diversos problemas tales como: Sobrecarga de Buffer, problemas de formateo de String, uso de metacaracteres entre otros.

Luego se toma el codigo fuente y se compara con los códigos existentes en la BD, ignorando los comentarios y los strings.

Flawfinder genera una lista de Hits (fallas de seguridad en potencia) y las ordena por nivel de riesgo, siendo las mas riesgosas mostradas primero

Pattern Matching

4 CASO: DETECCIÓN DE VULNERABILIDADES EN

SERVICIOS DE RED MEDIANTE FUZZING

 

•Consiste en probar, de forma más o menos inteligente, el comportamiento de una aplicación frente a unos datos generados específicamente para hacer que un programa falle, ya sea generando datos en una codificación diferente, enviando cadenas largas o probando a desbordar valores numéricos.

•Una de las partes más importantes del fuzzing es la automatización y la instrumentalización.

•Suelen incorporar monitores para detectar la caída de la aplicación que se esté probando. Además, permiten grabar la sesión y datos relativos a la caída, como volcado de memoria, captura de red o desensamblado de la función afectada.

•Existe una herramienta llamada Sulley que posibilita generar un fuzzer específico para cada aplicación. Está programada en python por el creador de Paimei y es mantenida con regularidad.

• Un ejemplo sencillo para fuzzear un servidor web:

View sourceprint

01.from sulley import *02. 03.# Inicializamos el bloque de datos04.s_initialize("HTTP Simple Request Fuzz")05. 06.# Definición  "GET[espacio]/petición[espacio]HTTP/1.0[nueva línea][nueva línea]"07.s_static("GET")08.s_delim(" ")09.s_delim("/")10.s_string("peticion")11.s_static(" HTTP/1.0")12.s_static("\r\n\r\n")13. 14.sess = sessions.session()15.target = sessions.target("127.0.0.1",80)16.sess.add_target(target)17.sess.connect(s_get("HTTP Simple Request Fuzz"))18.sess.fuzz()

• El primer paso es definir el nombre del bloque con s_initialize:

View sourceprint

 s_initialize("HTTP Simple Request Fuzz")

Desde aquí y hasta la siguiente llamada a s_initialize, definirá modelos de datos. Luego, dependiendo del tipo de dato, elegirá la forma más lógica de fuzzearlo. Acto seguido, se define la petición que Sulley enviará al servidor. En este caso, sólo nos interesa fuzzear los delimitadores y la petición:1.s_static("GET")2.s_delim(" ")3.s_delim("/")4.s_string("peticion")5.s_static(" HTTP/1.0")6.s_static("\r\n\r\n")

Sulley nos provee de un conjunto de primitivas suficientes para definir un protocolo tanto textual como binario. La lista de primitivas es la siguiente:

s_binary: Acepta valores binario en varios formatos (0xc0 0xff ee ea \x00 fe 00 01 02 0xc50xc2 f0 0d).s_static: Valor que no cambia.s_dunno, s_raw and s_unknown: alias de s_static.s_byte, s_char: 1 byte.s_word, s_short: 2 bytes.

Con el protocolo definido, pasemos a la sesión. Cada sesión puede ser guardada en un fichero serializado para tener la posibilidad de pausar el proceso y retomarlo. También creamos el objeto que albergará la información del objetivo:

1.sess = sessions.session()2.target = sessions.target("127.0.0.1",80)3.sess.add_target(target)4.sess.connect(s_get("HTTP Simple Request Fuzz"))5.sess.fuzz()

Dentro de target, se indicará el host y el puerto al que deberá conectar Sulley para las pruebas. Aquí también deberíamos definir las opciones de los monitores, aunque no se aplique a este caso. El objetivo se añade a la sesión (sess.add_target(target)) y creamos el árbol de pruebas. Internamente, Sulley mantiene un grafo con cada una de las fases por las que tiene que pasar:

View sourceprint 

1.sess.connect(s_get("sess.connect(s_get("HTTP Simple Request Fuzz"))"))

• Con esto ya estamos preparados para lanzar el proceso. Esta última línea, crea un nuevo nodo en el árbol (previamente definimos “HTTP Simple Request Fuzz” con la llamada a s_initialize). Para terminar, la llamada sess.fuzz() comienza el proceso:

5 CASO: VULNERABILIDAD EN WINDOWS – VIRUS EN BATCH

¿Batch… que és?

Es un archivo de procesamiento por lotes

Se trata de archivos de texto sin formato, guardados con la extensión BAT 

Contienen un conjunto de comandos MS-DOS.

Variables del Sistema

VARIABLES DEL SISTEMA• %COMPUTERNAME% = Nombre de host. • %SYSTEMROOT% = Carpeta de administración Normalmente

c:\windows • %TEMP% = directorio donde se encuentran los archivos

temporales • %WINDIR% = directorio de windows. • %USERNAME% = usuario con el que se inicio sesión

%USERPROFILE% = directorio donde se encuentran los archivos del usuario que inicio sesión %PROGRAMFILE% = directorio donde se encuentran los archivos de programas

• %OS% = muestra el sistema operativo que estamos ejecutando %LOGONSERVER% = nombre de nuestro server (\\mihost)

Implementación Práctica

CODIFICACION

PRUEBA

ENCRIPTACION

EMPAQUETADO

INGENIERIA SOCIAL - 

DISTRIBUCION

CONCLUSIONES

• Las vulnerabilidades de activos de información siempre existirán en todas las organizaciones amenazando la integridad, la consistencia y la confidencialidad de los datos, ocasionando grandes pérdidas de información en muchos casos irreparables.

1º Conclusión

• La detección de vulnerabilidades es un trabajo arduo, al que debe prestarse mucha atención para reforzar las debilidades y reducir al máximo las posibilidades de intrusión de terceros.

2º Conclusión

• Las vulnerabilidades se descubren muy seguido en grandes sistemas, y el hecho de que se publiquen rápidamente por todo internet (mucho antes de que exista una solución al problema), es motivo de debate. Mientras más conocida se haga una vulnerabilidad, más probabilidades de que existan piratas informáticos que quieren aprovecharse de ellas.

3º Conclusión

• Tan importante es tener presencia Web, como conocer sus peligros potenciales.

4º Conclusión

RECOMENDACIONES

Toda organización debe estar lista con un plan de prevención antes las vulnerabilidades presentes en cada activo informático, aplicando los métodos y técnicas acertadas que aseguren la solidez, disponibilidad y privacidad de la información.

Para cada proyecto, es importante identificar los activos afectados en situaciones de riesgo, para así determinar qué tipo de estimación (Cualitativa o cuantitativa) es pertinente de realizar para entender el impacto que los desastres tienen sobre estos.

Hacer un seguimiento de los documentos indexados por los robots de los buscadores con el fin de tener un panorama de lo que está disponible para el público y lo que no debería de estarlo.

A pesar de ser prácticamente imposible detectar todas las posibles vulnerabilidades que puede presentar una red o un software, se recomienda usar diversas herramientas, de distintos fabricantes, para poder aumentar el rango de detección de los puntos vulnerables.

MUCHAS GRACIAS

Recommended