vista-tecnica

Échale un vistazo técnico a Windows Vista
La protección contra Desbordamientos de Buffer en Windows Vista (I de IV)

El problema de los desbordamientos de Buffer en las aplicaciones que corren sobre un sistema operativo ha sido un tema recurrente. Desde hace tiempo se intenta encontrar una forma eficiente de realizar comprobaciones en el código fuente que se programa para evitarlos. Muchos de los lenguajes de alto nivel que se utilizan hoy en día tienen este tipo de protecciones, pero cuando se desarrollan módulos en lenguajes de bajo nivel siguen apareciendo estas debilidades.

 

Desbordamiento de Buffer

-------------------------------------------------------------------------------------------

 

El objetivo de una explotación de desbordamiento de buffer es sobrepasar la longitud de memoria reservada para los parámetros de una llamada a un procedimiento con el fin de sobrescribir la dirección de retorno del contador de programa. Es decir, se buscan parámetros en procedimientos que no son correctamente comprobados antes de ser utilizados.

 

Imaginemos este entorno de memoria:

 

Imagen 1: Memoria

 

En esta sección de memoria vemos como se ha apilado una dirección de retorno para cuando se acabe de ejecutar el procedimiento que tiene actualmente el control del programa y encima se ha reservado espacio para que se apilen los parámetros locales de dicho procedimiento. A la hora de cargar los parámetros en ese espacio reservado, estos deberían ser comprobados, si no se produjera esta comprobación tendríamos un problema de buffer overflow.

 

Explotación de un Desbordamiento de Buffer

-------------------------------------------------------------------------------------------

 

El atacante introduce como parámetro el código que quiere que se ejecute y luego escribe información nula hasta que sobrepasa el espacio que tiene reservado. Una vez que ha llegado a la dirección de retorno escribe la dirección de memoria donde ha introducido su programa.

 

Imagen 2: Desbordamiento de Buffer

 

Con esto consigue haber introducido un programa que se va a ejecutar. Este es un ejemplo típico para los programas que devuelven una shell o crean un interfaz de comandos.

 

Tecnologías de protección

-------------------------------------------------------------------------------------------

 

Las tecnologías para evitar que se produzca una explotación de una vulnerabilidad de buffer overflow son varias, pero hay dos que son especialmente significativas: DEP (Data Execution Prevention) y ASLR (Address Space Layout Randomization). Ambas incluidas en Windows Vista y …¡lo vemos en el próximo post!.

 

Referencias

-------------------------------------------------------------------------------------------

 

- La protección contra Desbordamientos de Buffer en Windows Vista (II de IV)

- La protección contra Desbordamientos de Buffer en Windows Vista (III de IV)

- Buffer Overflow en Wikipedia.org

 

Publicado: 28/1/2007 18:16 por Chema Alonso con 13 comment(s)

Comparte este post:

Comentarios

# re: La protección contra Desbordamientos de Buffer en Windows Vista (I de IV) @Sunday, January 28, 2007 10:35 PM

¡Ouch! ¡Chema! Edita mi comentario,anda xD

Pedro Laguna

# re: La protección contra Desbordamientos de Buffer en Windows Vista (I de IV) @Monday, January 29, 2007 7:57 AM

Pongo bien el link ;)

http://www.gnucitizen.org/blog/xss-prelude

Chema Alonso

# La protección contra Desbordamientos de Buffer en Windows Vista (II de IV) @Monday, February 05, 2007 12:08 PM

¿Como podemos proteger Windows Vista contra los desbordamiento de buffers? Esto es algo que se lleva

vista-tecnica

# La protección contra Desbordamientos de Buffer en Windows Vista (III de IV) @Tuesday, February 06, 2007 11:50 AM

Tercera Protección: No ejecución de Datos ----------------------------------------------------------------

vista-tecnica

# La protección contra Desbordamientos de Buffer en Windows Vista (IV de IV) @Tuesday, February 13, 2007 7:33 PM

Cuarta Protección: Ocultación de Información Con las tecnologías vistas hasta el momento se ha pretendido,

vista-tecnica

# re: La protección contra Desbordamientos de Buffer en Windows Vista (I de IV) @Wednesday, February 14, 2007 2:47 PM

La verdad es que el articulo es muy podre tristemente se entiende

Oliver

# re: La protección contra Desbordamientos de Buffer en Windows Vista (I de IV) @Wednesday, February 14, 2007 2:47 PM

La verdad es que el articulo es muy pobre tristemente se entiende

Oliver

# Unos y Ceros por todas partes… Incluso habia un dos!! » Blog Archive » desbordamientos de memoria @Wednesday, February 14, 2007 4:04 PM

PingBack desde http://chemi.myvnc.com:81/blog/?p=71

Unos y Ceros por todas partes… Incluso habia un dos!! » Blog Archive » desbordamientos de memoria

# re: La protección contra Desbordamientos de Buffer en Windows Vista (I de IV) @Wednesday, February 14, 2007 7:31 PM

Siento que no te haya gustado Oliver, no pretende ser una explicación detallada de los desbordamientos de buffer, sino dar unas pinceladas para que la gente pueda entender las tecnologías que tiene Windows Vista. Puedes leer el Blog de Michael Howard o alguno de los libros de Ingeniería inversa. Si te interesa el tema te recomiendo el foro de WinASM.

Saludos.

Chema Alonso

# re: La protección contra Desbordamientos de Buffer en Windows Vista (I de IV) @Monday, August 11, 2008 11:43 PM

Que es lo que ocasina un desbordamiento de memoria y cuales son sus principales farctores que ayuda a que esto ocurra.

Saludos coordiales! DR. FABIO GERARD  

FABIO GERAD Y DOMINGUEZ

# re: La protección contra Desbordamientos de Buffer en Windows Vista (I de IV) @Thursday, August 21, 2008 3:46 PM

Pues la colocación de objetos en memoria sin comprobar el tamaño previo correctamente antes.

Chema Alonso