Tecnología

Inicio

Cómo prevenir los ataques de desbordamiento de búfer

Cómo prevenir los ataques de desbordamiento de búfer


ataques de desbordamiento de búfer son una forma común de ataque de un hacker para causar el caos en un sistema. Hay ataques basados ​​en desbordamiento del montón, que son raros, y los ataques basados ​​en la pila, que restablecen erróneamente el límite de memoria para una pila, haciendo que se desborde. Los datos de desbordamiento se mueve en otros tampones, corromper o sobrescribir los datos válidos existe, que puede causar una cascada de amortiguadores dañados, al igual que una cascada de desbordamiento copas de champán. Para evitar ataques de desbordamiento de búfer, que tendrá que tener un conocimiento experto de la programación de computadoras, el acceso al código en cuestión y el tiempo y la paciencia para peinar a través de páginas y páginas de código para implementar los cambios necesarios para proteger sus sistemas.

Instrucciones

1 Escribir código de seguridad para evitar ataques de desbordamiento. En C, hay un número de funciones vulnerables que los piratas informáticos pueden explotar llenar en exceso buffers. Minimizar el uso de strcpy (), strcat (), sprintf () y vsprintf (), que no lleve a cabo la comprobación de límites. Si es posible, evitar el uso de gets (), que no especifica cuántos caracteres se van a leer y por lo tanto deja su código vulnerable. Si utiliza scanf (), asegúrese de especificar un ancho de formato% s para evitar excesos.

2 Comprobar para ver si se puede usar camas elásticas para evitar desbordamiento de búfer. Desde desbordamiento de búfer se produce en las pilas de la memoria y no en el código, la solución más sencilla parece ser la prevención de sus pilas de ejecutar cualquier código mediante la inserción de un pequeño trozo de código para prohibir estas acciones. Esto es posible en Linux, pero es muy difícil. Sólo unos pocos compiladores utilizan los pequeños trozos de código llamado camas elásticas, que actúan como una barrera entre el código que llama a una función y la función en sí. Por lo tanto, si el código malicioso intenta anular un tampón, la cama elástica puede interceptar y anular los intentos de los hackers.

3 Implementar herramientas de compilación Para darle advertencias cuando se utiliza código que deja vulnerable a los ataques. Algunas de estas herramientas va a generar código que prohíbe que extraños accedan a direcciones no válida y se cerrará código que intenta dicha ejecución. Los productos tales como StackShield y StackGuard son una gran ayuda. StackSheild analizará la dirección de retorno de una función y terminan en caso de una irregularidad. StackGuard coloca una palabra canario en la dirección de retorno y comprueba si esa palabra ha sido alterado, terminando una función cuando se tiene.

4 Instalar herramientas como libsafe para comprobar la seguridad en un entorno dinámico, en tiempo de ejecución. Libsafe se ejecuta en Linux y comprueba la dirección de retorno más cercana de un marco de pila, a continuación, se asegura de que la dirección no se sobrescribe. Libsafe también reemplazará las funciones inseguras, como gets (), strcpy () y scanf ().