Tecnología

Inicio

Formas de prevenir desbordamiento del búfer

Formas de prevenir desbordamiento del búfer


La prevención de desbordamiento de memoria es fundamental para proteger la seguridad de su ordenador y el servidor conectado y son el resultado de una mala validación de entrada. Puede proteger el sistema frente a ataques de desbordamiento de búfer, siguiendo unos sencillos pasos y tomar la acción apropiada. Identificar y atender a las cuestiones de programación C de su sistema es el foco principal de la prevención de desbordamiento de búfer en el futuro.

El uso de un ejecutable para no Pila

Este método de prevención de desbordamiento incluye una pila que está configurado para no ocupar ningún código ejecutable. Obtener un parche de kernel para sistemas Linux y Solaris para configurar la pila no ejecutable. En Windows XP, puede establecer perímetros de prevención de ejecución de datos con el sistema operativo (OS) para proteger también la pila contra el desbordamiento del búfer. La página web de la palizada advierte, sin embargo, que los desbordamientos basados ​​en heap y desbordamientos de segmento de datos estáticos no pueden prevenirse mediante esta técnica.

Tiempo de ejecución dinámico

Prevenir desbordamiento del búfer mediante la implementación de un proceso de prevención de ejecución dinámica en el sistema. se detectan condiciones y riesgos de desbordamiento de búfer durante la ejecución del programa actual en este método, lo que impide un ataque de desbordamiento que se produzca. Diferentes procesos de tiempo de ejecución incluyen "canario" --- que añade la línea "canario" a la codificación de su programa --- y copiar la dirección del remitente del programa. El último método sirve como una copia de seguridad de la información como medio para regenerar la funcionalidad del programa una vez que un ataque de desbordamiento se ha resuelto.

Versiones seguras de Funciones

Los desbordamientos del búfer también se pueden prevenir mediante el uso de una versión "más seguro" o más estable de una función del programa. Por ejemplo, las funciones de strncpy y snprintf son más seguros y más estable que la anterior strcpy y Sprint idioma. A medida que continúe la creación de nuevas aplicaciones en su programa, garantizar que alternativo, funciones de código más seguras se utilizan en todo.

Otros ejemplos de funciones inestables

Evitar o funcionalidad inestable "inseguros" por completo también puede evitar desbordamiento de búfer. Cuando sea posible, evitar el uso de las siguientes funciones al escribir su programa: strcpy (), strcat (), sprintf (), scanf (), sscanf (), fscanf (), vfscanf (), vsprintf, vscanf (), vsscanf () , streadd (), strecpy () y strtrns ().