Acerca de desbordamientos de búfer


  Share  
|

Desbordamiento de búfer son tal vez los ataques más notoria y amplia difusión. Estos son los ataques complejos que explotan el hardware fundamentales y las capacidades del software de un sistema.

Para aquellos que no son desarrolladores de software, algunos conceptos necesitan explicación. En primer lugar, es útil para entender lo que es un buffer. El sistema informático tiene un grupo de memoria de acceso aleatorio (RAM), organizadas en pequeños pedazos por el sistema operativo que ejecuta las aplicaciones. Con el fin de compartir esta memoria entre procesos, el sistema operativo y las aplicaciones, un administrador de memoria especial que coordina el grupo de trozos de memoria RAM están en uso y que están disponibles para ejecutar una aplicación. Cuando una aplicación se ejecuta por primera vez, se asigna memoria para la aplicación y todas sus funciones y variables.

Como se ejecuta la aplicación, más memoria se pueden asignar a las nuevas variables y desasigna cuando ya no esté en uso. Un búfer es un bloque (o varios trozos) de memoria utilizada para almacenar una variable. buffers diferentes pueden ya menudo existen lado a lado en la memoria. Un tampón que contiene una variable puede existir al lado de un pedazo de memoria que tiene una función u otra aplicación. Por ejemplo, al introducir su nombre de usuario en un mensaje o una ventana, el programa ha declarado un tampón, en los que los caracteres del nombre se almacenan.

Un desbordamiento de búfer se produce cuando un búfer es demasiado pequeño para dar cabida a la cantidad de datos proporcionados. Los datos que no caben en el buffer se sobreponen a los trozos próxima memoria. Aquí reside el peligro de desbordamientos de búfer. La memoria que se sobrescribe con los datos adicionales pueden ser otra variable en la aplicación en ejecución, una variable para otra aplicación, o la aplicación de la pila. La pila contiene información específica de la aplicación, tales como la ubicación física de las funciones de la aplicación y las variables.

Esto altera la ruta de acceso que la aplicación normalmente se siguen, haciendo que el uso de datos erróneos, accidente, o ejecutar nuevas funciones. La ejecución de la nueva funcionalidad es por lo general el objetivo de explotar un desbordamiento de búfer, ya sea para facilitar el acceso al sistema o modificar sus configuraciones.

Cuando su dueño tiene acceso a la memoria sobrescribe siguiente, los nuevos datos podría no ser válido, y la aplicación puede fallar o no funcionen correctamente. Desbordamiento de búfer son explotados por la elaboración de datos de desbordamiento en algo útil que la máquina pueda entender. Esto podría significar la ejecución de otro programa, causando daño al sistema o robar información.

Para demostrar mejor este concepto, considere la máquina que escanea las cartas postales de su ciudad de destino. Suponga sobre A se destina a Nueva York, NY, y el sobre B se destina a Boston, MA. El código postal del sobre B se ha mojado tinta especial que se "desborda", sobrescribir el código postal de Nueva York en el sobre A con la de Boston cuando los sobres se apilan automáticamente en las instalaciones postales. La máquina escanea correo un sobre y lee el código postal sobrescribe. La carta se encamina a Boston.

Desbordamiento de búfer a menudo son más maliciosos que simples accidentes, así que vamos a suponer que una suma importante de dinero en efectivo está destinado a un apartado postal en Nueva York. El ladrón, o el atacante, conoce la ubicación exacta de la carta y crea un sobre con tinta líquida que sobrescribe el código postal en el sobre con el código postal de Boston cuando se apilan. El atacante alquila el cuadro de Boston postal, con el mismo número que el destino original en Nueva York y procede a robar el dinero.

Una máquina de correos sólo es capaz de reconocer los códigos postales, no importa de dónde vienen. Una computadora es capaz de ejecutar instrucciones, no importa de dónde vienen. Por lo tanto, un ataque de desbordamiento de búfer que sobrescribe las instrucciones originales de una aplicación con las nuevas instrucciones puede provocar que el equipo para ejecutar todo lo que un atacante desea.

presentado por Tamas Querolin


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions