Página principal 
Introducción 

Seguridad Física 

Seguridad Local 

Seguridad del Sistema de Archivos 

Seguridad del Núcleo 

Seguridad de Red 

Seguridad del Root 

Preparación para la Seguridad 

¿Qué hacer en caso de Ruptura? 

Recursos 

Seguridad local

Desbordamiento de búfer (buffer overflow)

Introducción

Cuentas de usuario, grupos

Seguridad de las claves

El bit SUID/SGID

Seguridad del root

Habréis oido en muchas ocasiones hablar de agujeros de seguridad relacionados con los desbordamientos de búferes (buffer overflow). Es un término que se repite muy a menudo, ya que los desbordamientos de búfer constituyen una fuente frecuente de resquicios de seguridad, desde los muy graves, como el infame Gusano de Internet de 1988, hasta los que difícilmente pueden ser explotados provechosamente por ningún hacker.

Si bien para comprenderlos hace falta un conocimiento considerable de programación en ensamblador y en C y sobre la arquitectura de la máquina sobre la que ocurre, la idea del desbordamiento de búfer se puede expresar muy sencillamente de la siguiente forma:

Un búfer se desborda cuando intentamos meter en él más cosas de las que caben en el espacio que tenía reservado.

Veamos un caso real de programación en C en que se produce un desbordamiento tal:

void func(void)
{
   int i;
   char buffer[256];
   for (i=0;i<512;i++)
   buffer[i]='A';
}

Hemos reservado 256 caracteres, pero luego queremos escribir en ese espacio 512, produciéndose el desbordamiento. A partir de ahí se origina una situación de excepción, el programa probablemente se quedará colgado, y un hacker experto podría explotar esta inestabilidad para conseguir que el sistema ejecute su propio código.

De aquí en adelante, los detalles son excesivamente crípticos, pero podéis encontrar una descripción sobresaliente en el siguiente documento en inglés:

The Tao of Windows Buffer Overflow

escrito por DilDog. Advertimos que es droga dura, sólo apto para programadores empedernidos y de muy alto nivel.

Nota: La función de ejemplo está tomada de dicho documento.

 

Copyright © 1997-1999 Gonzalo Álvarez Marañón y Pedro Pablo Fábrega Martínez. Todos los derechos reservados.

Criptonomicón es un servicio ofrecido libremente desde el Instituto de Física Aplicada del CSIC. Para información sobre privacidad, por favor consulte la declaración de política sobre privacidad. Para sugerencias, comentarios o quejas, acuda al libro de visitas. Para contribuir al Criptonomicón, lea la página de contribuciones.