Buffer overflow

Download Report

Transcript Buffer overflow

Cecilia Menéndez González
Erick Giovanni Sánchez Madero
Miguel Ángel González Alarcón

Una de las mayores vulnerabilidades
de seguridad que tienen los actuales
sistemas operativos y programas es
ser sensibles a un desbordamiento de
buffer, o como mejor se les conoce:
Buffer Overflows.

En resumen buffer overflow o
desbordamiento de buffer es un error
de sistema causado por un defecto de
programación, de tal forma que el
programa que lo sufre pretende
escribir mas información en el buffer
(unidad de memoria) de la que este
puede alojar.

En Noviembre de 1988 se produce el
primer ataque mediante esta técnica
usando
un
gusano
que
se
aprovechaba de un desbordamiento
de buffer en el servicio finger de un
servidor Unix, solo fue el principio...

Durante los últimos años miles de
vulnerabilidades basadas en Buffer
Overflow han permitido que un
atacante
pueda
ejecutar
código
malicioso en nuestras maquinas, es
más, los seis primeros avisos de
seguridad del CERT Coordination
Center describen fallos de este tipo en
numerosos programas.

Este desbordamiento es posible
porque el autor del programa no
incluyó el código necesario para
comprobar el tamaño y capacidad del
buffer en relación con el volumen de
datos que tiene que alojar.

Normalmente este fallo se da cuando
el programador no tiene en cuenta el
tamaño de algún buffer dentro de su
programa y si este se llena de datos
que no tienen salida, afecta a otras
partes de la memoria en las cuales hay
otros datos o partes de otro programa
viéndose afectados y pudiendo causar
un bloqueo tanto del programa
afectado y del propio software que lo
produce.

El problema de seguridad de los buffer
overflow consiste en que si el programa hace
llamadas a subrutinas con comandos que
modifiquen esas subrutinas y estas caen en un
desbordamiento de buffer, es decir, las
subrutinas llamadas con esos modificadores se
salen del buffer mediante un exploit, el
proceso padre queda perdido y es cuando un
atacante mediante dicho exploit puede
incorporar rutinas a medida para que hagan lo
que él, y no el programa afectado, quiera.

El buffer overflow es un problema de
código defectuoso, por lo tanto como
usuarios nada podemos hacer para
evitarlo (salvo que además de usuarios
seamos expertos programadores, y
dispongamos del código fuente de la
aplicación que sufre el desbordamiento).
En realidad el único remedio es estar
informado de los programas que sufren
estos problemas, y tener el software
actualizado.