Seguridad en Software Libre



Documentos relacionados
Cómo trabaja el Atacante? El atacante trabaja en 5 pasos, los cuales son: Ethical-Hacker.net. Reconocimiento. Borrado de Huellas.

RETO FORENSE EPISODIO III Resumen Ejecutivo

3-ANÁLISIS DE VULNERABILIDADES

ADJUDICACION NIVEL II N AGROBANCO ADQUISICION DE PLATAFORMA SUITE DE SEGURIDAD ACTA DE ABSOLUCIÓN DE CONSULTAS Y OBSERVACIONES

Programación de código seguro

Escalar de un Dominio a otro

CAPÍTULO I. FORMULACIÓN DEL PROBLEMA

Software Intel para administración de sistemas. Guía del usuario del Paquete de administración de servidores modulares Intel


TRANSFERENCIA DE FICHEROS FTP

Beneficios estratégicos para su organización. Beneficios. Características V

Tutorial: Primeros Pasos con Subversion

Adelantándose a los Hackers

Bughunting. Carlos Sarraute Ezequiel Gutesman Core Security Technologies 5 mayo Facultad de Informatica - UNLP

Guía Rápida de Inicio

Prácticas y Tecnologías de Seguridad Informática

Hacking ético y Seguridad en Red

Presentación. Porqué formarte con nosotros?

Práctica de Seguridad en Redes

Sophos Computer Security Scan Guía de inicio

Metasploit framework, al igual que nessus, su versión paga es mucho más informática que la gratuita.

Test de intrusión (Penetration Test) Introducción

Tabla de contenido. 1. Objetivo Asignación de responsabilidades Alcance Procedimientos relacionados...4

CONTPAQ i Protección de los sistemas CONTPAQ i

Guía de usuario CUBO TI

Análisis de aplicación: Virtual Machine Manager

SIEWEB. La intranet corporativa de SIE

Benicassim-wifi INSTRUCCIONES DE CONEXIÓN. Windows Vista.

Informe de Amenazas CCN-CERT IA-02/14. Riesgos de uso de Windows XP tras el fin de soporte

Formato para prácticas de laboratorio

Internet aula abierta

Configuración de Servicio WSUS

Internet aula abierta

Instalación y configuración de SharePoint (SPS) 2003

Intrusion Detection/Prevention Systems SNORT.

Recomendaciones previas Sistemas operativos: Hardware:

Instalación de Campeón Plus Smart PROCEDIMIENTO PARA LA INSTALACIÓN DE CAMPEÓN PLUS SMART 14/11/2012 MALDONADO SOFTWARE MSW

Capítulo 5. Cliente-Servidor.

Técnicas del Penetration Testing

Migrar una organización Microsoft Exchange 2003 a Microsoft Exchange 2007

INTRODUCCION. Ing. Camilo Zapata Universidad de Antioquia

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation.

Disertante : Sebastián García, Coordinador. sgarcia@cisiar.org

La importancia de las pruebas de penetración (Parte I)

CAPÍTULO VI. RESULTADOS, PRUEBAS Y CONCLUSIONES DE LA APLICACIÓN.

Hostaliawhitepapers. Las ventajas de los Servidores dedicados. Cardenal Gardoki, BILBAO (Vizcaya) Teléfono:

Seguridad Informática con Software Libre

Práctica 3. Escáner de detección de puertos y análisis de vulnerabilidades

Formato para prácticas de laboratorio

IS23 Mantenimiento de Instalaciones Informáticas Práctica 7. Análisis de redes

Auditorías de Seguridad: revisión como método de prevención. Vicente Aguilera Díaz Internet Security Auditors, S.L.

Practica A. Crear y Administrar Grupos

Sistema Operativo Windows

Introducción. Objetivo. Implementar un detector de malware con software libre empleando el protocolo Netflow.

Submodulo: Instala y Configura software de Acuerdo con las Especificaciones y Requerimientos de Usuario.

De los #exploits al más m s allá!

EXPERIENCIAS EN LA IMPLEMENTACIÓN DE SISTEMAS DE PLANIFICACIÓN DE RECURSOS EMPRESARIALES (ERP) Ernesto Rivera Pitti Consultor Independiente

MANUAL BÁSICO PARA CLIENTES

Guía de seguridad informática Buenas prácticas para el Nuevo Año

PRACTICA 9 SERVIDOR WEB APACHE SERVIDOR WEB APACHE. JEAN CARLOS FAMILIA Página 1

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa Configuración Internet Explorer para ActiveX...

D.T.Informática S.L. [Sistema hada] hilo Administrador Desarrollo Activo

Qué son y cómo combatirlas

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

Capítulo IV. Manejo de Problemas

POR QUE VERYSTOCK NET:

Tec Local 4.0 Requisitos (Software) TecLocal 4.0 Requisitos previos (Software)

DETECCION DE INTRUSOS.

Características del software

FUENTES SECUNDARIAS INTERNAS

INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE

INDICE. Página 2 de 23

Guía de uso del Cloud Datacenter de acens

Elementos Monitoreados

INSTALACIÓN A3ERP INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

GATEWAYS COMO FIREWALLS

Asignar permisos a usuarios de Active Directory en una carpeta compartida.

Fuzzing y seguridad. José Miguel Esparza Muñoz Security Researcher S21sec labs. 10 de agosto de 2007

Manual de Instalación. Sistema FECU S.A.

Proyecto MONO. Juantomás García. 1. Introducción. GNOME Hispano

Roles y Características

MEDICION DEL TRABAJO

Sistema de Nómina de Operadores (SISNOP)

Microsoft Lync 2010: Introducción al nuevo software de mensajería instantánea y conferencias

- 1 - ÍNDICE. PASO 3: Primero le hará falta elegir su lengua en esta pantalla:

PROYECTO FINAL. Se deberán configurar y administrar cada uno de los servicios mencionados anteriormente bajo los siguientes lineamientos.

PROVIAS NACIONAL INFORME TÉCNICO DE EVALUACIÓN DE SOFTWARE Nº MTC/ NOMBRE DEL ÁREA: Unidad de Informática

SISTEMAS IDEALES SISTIDE, S.A. SISTEMA GESTION DE USUARIOS

GUÍA TÉCNICA PARA EL FORMADOR PIAD MICROSOFT

Escuela de Ingeniería Electrónica CAPITULO 11. Administración avanzada de los NOS

Introducción a Moodle


Modelamiento de Amenazas en el Desarrollo de Software

Investigación y Descubrimiento de Vulnerabilidades. Lic. Julio C. Ardita jardita@cybsec.com

Manual de configuración de Adobe Reader para la validación de la firma de un documento.


UNIVERSIDAD AUTÓNOMA DE SINALOA FACULTAD DE INGENIERÍA MOCHIS LIC. EN INGENIERÍA DE SOFTWARE MATERIA: REDES Y COMUNICACIÓN DE DATOS GRUPO: 401

ing Solution La forma más efectiva de llegar a sus clientes.

MANUAL DE NAVEGACIÓN DEL SIIA-WEB versión PRONAD

Transcripción:

Seguridad en Software Libre Carlos Sarraute Ariel Futoransky 7 junio 2005 USUARIA 2005

Motivación Hay alguna diferencia estratégica perceptible entre la seguridad de soluciones de código abierto vs. código cerrado?

Plan de la charla Que son las vulnerabilidades? Como se descubren? El proceso de reporte Tres ejemplos de la vida real Análisis

Vulnerabilidades y seguridad Aspectos del software con influencia en seguridad: Herramientas de seguridad disponibles Vulnerabilidades & exploits

Qué es una vulnerabilidad? Informalmente: No es un error, es un feature escondido opción de menú escondida Exploits: método o programa para sacar provecho de uno de estos features Ejemplo paradigmático: el buffer overflow

memory Buffer overflow en el stack (la pila) Programa DLLs Espacio para Password Espacio para Usuario ValidarUsuario()

memory Buffer overflow en el stack (la pila) Programa DLLs pepe Espacio para Password pepe Espacio para Usuario ValidarUsuario()

memory Buffer overflow en el stack (la pila) Programa DLLs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... aaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaa NuevaFuncion() ValidarUsuario() Espacio para Password Espacio para Usuario

Como se descubren vulnerabilidades? El atacante / investigador / consultor descubre vulnerabilidades: Buscando patrones comunes vulnerables por azar: un blue screen es un accidente feliz... Transpolando una nueva vulnerabilidad desde otra aplicación Nuevos técnicas, nuevas ideas (inspiración) Manipulando las posibles entradas del programa examinado

Diferentes técnicas para buscar vulnerabilidades Con acceso al código fuente auditoria de código buscar patrones de vulns conocidas hacer una búsqueda exhaustiva del código por patrones sospechosos Sin acceso al código fuente dar input al azar ó con forma sospechosa usar un fuzzer ingeniería inversa para entender como funciona (si esta disponible el binario)» herramientas: desensambladores, debuggers,

Proceso de reporte de vulnerabilidades actores del proceso Investigadores que descubren la vulnerabilidad Los autores del software vulnerable Centro de coordinación como el CERT Usuarios Descubrimiento Investigación y Documentación Notificación Desarrollo de la solución Lanzamiento

Características del proceso Respuesta del fabricante antes era más lenta y aleatoria ahora los vendedores importantes tienen un departamento que se ocupa de responder a los reportes de vulns fabrica un patch (remedio a la vulnerabilidad) independiente ó integrado a una nueva versión Respuesta del usuario Antes no había procesos automáticos de actualización El impacto y alcance del problema influye en la urgencia definida entre el fabricante y el investigador, y asumida por los usuarios Descubrimiento Investigación y Documentación Notificación Desarrollo del patch Lanzamiento

Ejemplos de la vida real En nuestro laboratorio venimos haciendo investigacion en seguridad desde 1996 45+ advisories publicados por Core Tres casos de vulnerabilidades que descubrimos: ejemplo 1: Active Directory ejemplo 2: Snort ejemplo 3: MSN Messenger

Ejemplo 1: vulnerabilidad en Active Directory Active Directory es un componente esencial de Windows 2000 Server y siguientes permite a las organizaciones administrar y compartir recursos en una red, actuando como autoridad central de la seguridad de la red El problema descubierto: pedido con mas de 1000 operaciones AND causa un Stack Overflow en el servicio Y provoca un crash del servidor (denial of service)

Active Directory: cronograma de comunicaciones 2003-05-16 CORE notifica a Microsoft 2003-05-19 Microsoft notifica CORE de que el problema está resuelto en SP4 2003-06-26 lanzamiento de Windows 2000 Service Pack 4 2003-07-02 se publica nuestro advisory probamos el exploit desarrollado en nuestro laboratorio (para win2000 sp3) con el service pack 4 resultado: es vulnerable!!

Active Directory: cronograma 2 2003-08-11 CORE notifica Microsoft de que la vulnerabilidad no está arreglada 2004-04-13 Microsoft publica Microsoft Security Bulletin MS04-011 La vulnerabilidad arreglada en SP4 era para pedidos de tipo: AND (cond1) (cond2) (cond3)... La vulnerabilidad que habíamos encontrado era para pedidos del tipo: AND (AND (AND (cond1) (cond2)) (cond3)) (cond4)...

Active Directory: conclusión al no tener acceso al código fuente, los investigadores no pueden determinar exactamente donde está el problema descubren síntomas, no necesariamente la causa los ingenieros del fabricante arreglan los síntomas que les reportaron Los investigadores no tuvieron acceso a la solución antes de la publicación El valor de un exploit: nos dimos cuenta del problema porque teníamos forma de explotar realmente la vulnerabilidad

Ejemplo 2: vulnerabilidad en Snort Snort es un IDS (intrusion detection system) muy popular, open source detecta cientos de ataques analizando los paquetes que recibe y aplicando un conjunto de reglas de pattern matching encontramos un heap overflow mandando trafico malicioso en una red donde está Snort corriendo se puede explotar y ejecutar comandos arbitrarios en la máquina que corre Snort

Snort: la vulnerabilidad if( (spd->seq_num + spd->payload_size) <= s->last_ack ) offset = spd->seq_num - s->base_seq (offset = 0xffdc) memcpy(buf + offset, spd->payload, spd->payload_size) detección precisa de donde ocurre la vulnerabilidad y bajo que condiciones 2003-03-21 Core notifica a los autores de Snort 2003-04-15 Publicación del patch y del advisory

Snort: conclusión Validamos el patch previo a su publicación (código fuente) las nuevas vulnerabilidades en aplicaciones open source son cada vez más dificiles de encontrar y explotar posteriormente, los autores de Snort nos pidieron una auditoría del código fuente de Snort

Ejemplo 3: vulnerabilidad en MSN Messenger popular programa de mensajería instantánea usado por 130 millones de personas vulnerabilidad en el parseo de imágenes PNG permite a un ataque ejecutar código arbitrario en la máquina donde corre el Messenger

Messenger: cronograma 2004-08-04: Publicación del advisory y del patch para la librería open source libpng 2004 agosto: los distribuidores SuSE, Mandrake, Gentoo, RedHat, Conectiva sacan patches para esta vulnerabilidad Experimentamos con un patron de ataque similar en Messenger y resulto vulnerable la vulnerabilidad se debe a un problema en la libpng (que es open source!) 2004-08-23: Notificación de Core al vendedor 2005-02-08: Publicación de los patches y advisories

Messenger: meses de testing... Varios programas vulnerable, que necesitaron rondas de testing en múltiples plataformas y configuraciones: MSN Messenger 6.1 MSN Messenger 6.2 Windows Messenger 4.7.2009 Windows Messenger 4.7.3000 Windows Messenger 5.0 Windows Media Player 9 series (CVE CAN-2004-1244) Vulnerabilidad muy crítica, que requirió hacer obligatorio la actualización a la nueva versión de Messenger

Messenger: el worm potencial Messenger usa imágenes con formato PNG para mostrar: la imagen del usuario íconos que muestra en el texto (caritas) thumbnail de las imágenes que se transmiten Con un PNG malicioso, un atacante puede explotar un buffer overflow y ejecutar código arbitrario en la máquina de la víctima No genera actividad ni tráfico sospechoso Worm se podría diseminar sin ser detectado por la red de usuarios de Messenger

Análisis

Estadísticas de vulnerabilidades reportadas (fuente CVE) Vulnerabilidades por sistema operativo 200 180 160 140 120 100 80 60 40 20 0 1999 2000 2001 2002 2003 2004 2005 Windows Linux

De la vulnerabilidad al ataque Severidad de la vulnerabilidad Complejidad de construcción del exploit en Linux, los exploits son cada vez mas complejos Precisión lograda Disponibilidad del ataque Acceso a los exploits Acceso a maquinas vulnerables Ventana de exposición

Ventajas de tener acceso al código fuente calidad del reporte de alguien que tiene acceso al código La catedral y el bazar ensayo de Eric Raymond la catedral es el software de código cerrado, elaborado en una empresa con estructura jerárquica el bazar es el software open source, desarrollado por múltitud de hackers y programadores

De la dificultad de reportar y corregir bugs un mismo error puede tener múltiples síntomas, dependiendo de los detalles del entorno y forma de operar del usuario es difícil para el programador reproducir las sutilezas del entorno en el cual el tester encontró el bug en el caso open source, el tester y el desarrollador pueden compartir su modelo mental del programa el tester encuentra la fuente del bug en el código, se puede eliminar de un golpe decenas de síntomas relacionados

Conclusiones Código fuente disponible implica: El investigador puede proponer una solución Puede validar el patch antes de su publicación Resultado: se reducen los tiempos y mejora la calidad La diferencia entre las distribuciones de vulnerabilidades descubiertas es significativa Las herramientas de ingeniería inversa están reduciendo la brecha entre buscar vulnerabilidades sin código y con código Aunque cabe esperar innovaciones tecnológicas importantes para auditoria de código fuente

Unos enlaces www.coresecurity.com/corelabs www.coresecurity.com/corelabs/advisories Active Directory Stack Overflow Snort TCP Stream Reassembly Integer Overflow Vulnerability MSN Messenger PNG Image Parsing Vulnerability www.securityfocus.com Bugtraq

C O R E S E C U R I T Y T E C H N O L O G I E S GRACIAS! Carlos Sarraute carlos@coresecurity.com Ariel Futoransky ariel.futoransky@coresecurity.com