“Conocimientos Redes>Seguridad de Red

Linux Buffer Overflow Tutorial

2011/11/25
Desbordamiento de búfer son las brechas de seguridad comunes para los sistemas informáticos que requieren la entrada del usuario , como información de acceso. Un desbordamiento de búfer se produce cuando una variable en el código de la intención de mantener la información enviada por el usuario (por ejemplo, un nombre de usuario ) no es lo suficientemente grande. En este caso, los datos adicionales introducidos por el usuario se "desborda " la memoria disponible asignada. Este evento , llamado el " desbordamiento de búfer ", puede dar lugar a los datos adicionales sobrescribir o modificar los datos de otros programas en la memoria . Este ejemplo muestra cómo funciona un desbordamiento de búfer en el nivel de código. Cosas que necesitará editor de Texto Fotos C /C + + compilador o IDE como Microsoft Visual Studio
Mostrar más instrucciones
1

Crear el buffer. Siga este ejemplo :

# include

int main () {

caracteres login_name [ 20 ] ;

printf ( " entra login : ") ;

scanf ("% s " , login_name ) ;

printf ( " desbordamiento de búfer "); }


! Este código básico crea una matriz de caracteres ( una palabra, esencialmente ) llamado " nombre_de_usuario " que llevará a cabo la entrada del usuario . Tenga en cuenta que " login_name " está a sólo 20 caracteres de longitud . Entonces, el programa solicita la entrada del usuario, y almacena la información en " login_name . "
2

Porque el desbordamiento de búfer. Compile el programa y ejecutarlo. Cuando se le indique, introduzca un nombre de inicio de sesión que supera los 20 caracteres. Por ejemplo :

Entra login : . " . Escriba" ESTO ES UNA SENTENCIA DE LARGO QUE invadir el espacio disponible en el VARIABLE INGRESAR

Hit El mensaje de salida se imprimirá y el programa terminará. La variable ha invadido el espacio de búfer disponible en la variable " nombre_de_usuario " . La pregunta entonces es , ¿qué pasó ?
3

Entender cómo funciona la memoria de la computadora . Como la entrada del usuario se almacena en " login_name , " el exceso de información ( cualquier carácter más allá de 20 caracteres ) fue escrito en la memoria más allá de los límites de la variable . Esos datos deben ser almacenados en algún lugar . En este caso , se almacena en la memoria inmediatamente adyacente a donde se encuentra la variable " login_name " . Por pasarse de los límites de la variable de sesión , los datos adicionales ( intencionalmente o no) vuelve a escribir los datos inmediatamente al lado de la variable. Esto significa que el hacker podría básicamente reescribir el código , y cambiar cómo funciona el código, esencialmente, que posee el sistema.
4

Darse cuenta de las vulnerabilidades de Linux. Linux está codificado en C /C + +, y muchos de su funcionalidad del núcleo requiere la manipulación de cadenas de caracteres. Sin embargo , muchas distribuciones modernas de Linux protegen contra los casos de desbordamiento de búfer en los puntos donde se requiere la intervención del usuario , ya sea a través de la protección de pila o dinámicamente matrices de caracteres de cambio de tamaño . Aún existen vulnerabilidades : el exploit de desbordamiento de búfer USB descubierto en 2011 es un ejemplo. En el caso del USB, una larga ID USB ​​adicional puede desbordar una variable del sistema en Linux.

Seguridad de Red
Cómo actualizar las firmas Cisco De IDM
¿Qué es el MPPE 128
Cómo cambiar la contraseña de dominio a distancia
Cómo instalar Cisco PIX
Cómo hacer y vender cosméticos biológicos
Cómo solucionar problemas de protocolos de enrutamiento IP
Cómo comprobar la seguridad de una red inalámbrica
Las ventajas de iptables sobre ipchains Firewall en Linux
Conocimientos Informáticos © http://www.ordenador.online