BUFFER OVERFLOW Y EXPLOITS

Slides:



Advertisements
Presentaciones similares
VI Unidad. Sistema Operativo
Advertisements

Supervisión del rendimiento de SQL Server
Introducción a servidores
Ing. Enrique Meneses. Son las instrucciones detalladas que controlan el funcionamiento de un sistema de computación. Funciones: 1. Administrar los recursos.
SOCKETS INTRODUCCIÓN DEFINICIÓN TIPOS DE SOCKETS USO DE SOCKETS.
Virus Informáticos Paula Lafuente 4ºA.
Introducción al software
Funcionamiento, programación
INSTALACIÓN Y MANTENIMIENTO DE SISTEMAS OPERATIVOS
Teoría de lenguajes y compiladores
SEGURIDAD INFORMÁTICA
Usuario Un usuario es la persona que utiliza o trabaja con algún objeto o que es destinataria de algún servicio público, privado, empresarial o profesional.
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
ARIS-G: Software de Monitoreo Geomecánico de Superficies
Funciones en lenguaje C
Semana 5 Subprogramas..
Auditoría de Sistemas y Software
Programación III Clase 07 Funciones.
Los Diez Riesgos Más Importantes en Aplicaciones WEB Top A1-Inyección Oscar William Monsalve Luis Alberto Suarez Jorge Eliecer Betancur Diana Marcela.
 LOPEZ MENDOZA CORINA AMALINALLI  GRUPO 304.  Una base de datos o banco de datos (en ocasiones abreviada BB.DD.) es un conjunto de datos pertenecientes.
SQL SERVER Reporting Services
WEB VULNERABLE DVWA Universidad de Almería
Elementos vulnerables en el sistema informático: hardware, software y datos. Gabriel Montañés León.
Capítulo 6 Seguridad. Introducción Por definición no existe ningún medio de comunicación completamente seguro. El problema de la seguridad no es ajeno.
OWASP - A6 Open Web Application Security Project Riesgo por: Configuración Defectuosa de Seguridad Guillermo David Vélez Álvarez C.C. 71' 763,346.
EXPLOITEXPLOIT Equipo 3Equipo 3. Exploit: Es un programa o código que "explota" una vulnerabilidad del sistema o de parte de él para aprovechar esta deficiencia.
S i C o D Sistema de Colección de Datos. Especificaciones técnicas Lenguaje de programación: Lenguaje de programación: ® Microsoft Visual Basic 6.0. Manejador.
Introducción al modelo Cliente-Servidor Carlos Rojas Kramer Universidad Cristóbal Colón.
Material de apoyo Unidad 4 Estructura de datos
Vamos a poner una especial atención al SO. Puesto que es el programa por excelencia dentro del software. En el se basan el resto de programas de un soft.
Ing. Elkin José Carrillo Arias
SEGURIDAD EN LA INFORMACIÓN.
ATAQUES POR INYECCION DE CODIGO SQL
Dos años para un golpe El Ordenador del director general Revisando el servidor web secundario, encontró el nombre de usuario y número de IP del director.
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
Historia de troyano En informática, se denomina troyano o caballo de Troya (traducción literal del inglés Trojan horse) a un software malicioso que se.
Cecilia Menéndez González Erick Giovanni Sánchez Madero Miguel Ángel González Alarcón.
UD 1: “Adopción de pautas de seguridad informática” Análisis de las principales vulnerabilidades de un sistema informático. Luis Alfonso Sánchez Brazales.
T.P. de informática: Los virus informáticos.
› Un virus informático es un malware que tiene por objeto alterar el normal funcionamiento de la computadora, sin el permiso o el conocimiento del usuario.
HERRAMIENTAS DE SEGURIDAD
SOFTWARE MALWARE “MALICIOSO”.
Servicio de Notas Autores: Fco. Javier López Peñalver Javier Rayado Escamilla.
LOGO e-Learning Desktop Integración de RIA’s a objetos de Aprendizaje Alvaro Rodríguez, Darvin Orozco, Rocael Hernández Universidad Galileo {alvrodriguez,
 La seguridad es la característica de un sistema que está libre de todo peligro. Al se difícil de conseguir hablamos de sistemas fiables en vez de sistemas.
S EGURIDAD Y A LTA D ISPONIBILIDAD Nombre: Adrián de la Torre López 24/09/ Adrián de la Torre López.
PUNTO 3.
S EGURIDAD INFORMÁTICA Alejandro García yus. Entendemos por seguridad informática el conjunto de acciones, herramientas y dispositivos cuyo objetivo es.
La seguridad de la Información
PUNTO 2.
Johnny Alexander Salazar Jhon Fredy Giraldo Giraldo Sebastián Cardona.
Análisis de las principales vulnerabilidades de un sistema informático. Gabriel Montañés León.
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
Una parte esencial del trabajo informático es mantener protegida, resguardada y respaldada la información con la cual se trabaja, pues de todo ello depende.
FIREWALLS, Los cortafuegos
APLICACIONES EN LINEA.
A NÁLISIS DE LAS PRINCIPALES VULNERABILIDADES DE UN SISTEMA INFORMÁTICO Luis Villalta Márquez.
COMPUTER DATA SYSTEMS malwares.
¿Qué es un virus informático? Un virus informático es un malware que tiene por objeto alterar el normal funcionamiento de la computadora, sin el permiso.
MEMORIA DINÁMICA.
Análisis de las principales vulnerabilidades de un sistema informático. Javier Rodríguez Granados.
GUARI, MARIELA ESTEFANIA L.U.:  ‘DEFINICION’ ‘Los Antivirus Cloud? (antivirus en la nube) son antivirus que aplican a los antivirus el concepto.
FUNDAMENTOS DE REDES “ Troyanizar comandos ” Alumno: MARIA ALEJANDRA ZAMUDIO AGUILASOCHO Maestro: FELIPE CABADA CD. OBREGON, SONORA. OCTUBRE 2013 INSTITUTO.
Administración de Base de Datos Recuperación Prof Mercy Ospina Torres
SEGURIDAD TELEMÁTICA. VISIÓN ACTUAL Y DE FUTURO.
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
GENERALIDADES DEL NIVEL ISA DE LA MAQUINA VIRTUAL JAVA (JVM) Generalidades del nivel ISA.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Desbordamiento de buffer remoto Conceptos básicos (CPU Intel x86)
Transcripción de la presentación:

BUFFER OVERFLOW Y EXPLOITS Bernardo Coutinho @bernardocout

TEMARIO Introducción Buffer Overflow Stack Overflow Un poco de historia Definición Tipos Stack Overflow Funcionamiento de la pila Exploits y Shellcodes EOF

INTRODUCCION Vulnerabilidad: es un punto débil del sistema, un error o una deficiencia. Ej: un fallo de programación. Es conocido en jerga informática como «bug». Ataque: es comprometer la seguridad del sistema aprovechándose de alguna vulnerabilidad del mismo. Contramedida: acciones a llevar a cabo para evitar tener vulnerabilidades en el sistema.

INTRODUCCION Las vulnerabilidades más comunes se dan por el uso de software con fallas de programación. Algunos ejemplos comunes: Falla en la validación de la entrada de datos. Falla en el sistema de validación de acceso. Error de configuración.

BUFFER OVERFLOW: ALGO DE HISTORIA Robert T. Morris desarrolló en 1988 el primer gusano que se autopropagó por Internet utilizando un fallo de Buffer Overflow en los UNIX de esa época. Miles de ordenadores fueron infectados.

BUFFER OVERFLOW: ALGO DE HISTORIA (2) En el 2001, el gusano Code Red se aprovecho de un Buffer Overflow en el servidor web IIS de Microsoft que permitía obtener un acceso como administrador del sistema. En 2003 apareció SQLSlammer que permitía la ejecución de código arbitrario en servidores SQL Server 2000.

BUFFER OVERFLOW: DEFINICION El Buffer Overflow o Desbordamiento de Buffer es una falla de software que se da por una incorrecta validación de los datos de entrada, permitiendo así copiar en una porción de memoria más datos de los que puede almacenar.

BUFFER OVERFLOW: TIPOS Stack Overflow Heap Overflow Format String Overflow Integer Overflow Return into libc o pilas no ejecutables

STACK OVERFLOW En Español Desbordamiento de la Pila, es el tipo de Buffer Overflow más común. La pila es una estructura de datos en la cual el último elemento que entró es el primero que sale. La pila se usa generalmente para almacenar: Direcciones de retorno de funciones Variables locales Parámetros de funciones

FUNCIONAMIENTO DE LA PILA Hay dos registros del procesador que permiten el manejo de la pila: EBP: contiene la dirección de la base de la pila. ESP: contiene la dirección de la cima de la pila.

FUNCIONAMIENTO DE LA PILA

FUNCIONAMIENTO DE LA PILA Si para una variable local se le reservan 10 bytes, y luego se copian más de 10 bytes, puede suceder que pisemos la dirección de retorno. Modificando esa dirección de retorno de manera inteligente podemos ir a cualquier punto determinado del programa o incluso ejecutar un programa puesto por nosotros en memoria.

EXPLOIT Un exploit es un programa que permite automatizar la tarea de explotar una falla. Podemos desarrollar un exploit para aprovechar un buffer overflow y ejecutar código arbitrario, escalar privilegios, realizar una denegación de servicio, etc.

SHELLCODES Una shellcode es un conjunto de instrucciones especialmente diseñadas para ser inyectadas por un exploit. Lo más común es construir shellcodes para: - Obtener una consola - Abrir una puerta trasera. - Generar una conexión reversa. - Obtener una cuenta de administrador.

SHELLCODES No pueden contener instrucciones cuyo OP CODE sea cero, ya que ese valor se interpreta como fin de cadena y no se podrá inyectar con el exploit. Lo más común es que se desarrollen en ASM, ya que tenemos un mayor control de las instrucciones. Es difícil obtener shellcodes genéricas, que son aquellas que funcionan en varios sistemas.

¡GRACIAS POR SU ATENCION! Bernardo Coutinho @bernardocout bernardocou@hotmail.com