“Conocimientos Programación>Lenguajes De Programación

Consecuencias de desbordamientos de memoria

2014/11/2
grabación de datos en buffers es una parte rutinaria del funcionamiento de cualquier programa, y también una fuente importante de problemas potenciales. Cuando un programa intenta poner más datos en un búfer que su programador diseñado para celebrar , el consiguiente desbordamiento de los datos puede alterar otros datos del programa. Esto puede llevar a errores de software o un posible medio para los hackers para secuestrar el programa y ejecutar código malicioso. Tampones y desbordamientos

Un buffer es una variable de matriz diseñada para almacenar datos para el programa para usar en un momento posterior en su ejecución. Esta información podría ser un usuario escribe en el programa , el contenido de un archivo que el programa lee en , o cualquier otra cosa el programa pueden necesitan para ejecutar . Los tampones se crean con un tamaño específico , que está reservado en la memoria de una computadora para almacenar los datos del búfer. Desbordamiento de búfer ocurren cuando un programa escribe una cantidad de datos a un búfer que es superior a su tamaño real , haciendo que el programa para escribir los datos del pasado de la ubicación del búfer en la memoria de la computadora y en la memoria reservada para otros tampones o variables .

bloquea

un programa se bloquea cuando se ve en la imposibilidad de ejecutar la tarea que se ha codificado para llevar a cabo en un punto determinado en el tiempo , y su creador no incluía un mecanismo para la recuperación de tales un fracaso. Los desbordamientos del búfer pueden hacer que los programas se bloquee cuando el desbordamiento corrompe datos de la variable que se almacena en una ranura de memoria cercana. Por ejemplo , si un desbordamiento de un búfer de texto puede escribir caracteres de texto a través de los números almacenados en la ranura de memoria de una variable de número entero . Cuando el programa de acceso a los datos de esta variable para realizar un cálculo , encuentra los caracteres de texto en lugar de los números. El programa no puede realizar cálculos matemáticos sobre los caracteres de texto , por lo que el programa iba a reaccionar por estrellarse.

Vulnerabilidades de seguridad

sobrecargas amortiguamiento advertentm puede hacer que los programas se bloquee , pero los piratas informáticos podrían forzar deliberadamente una sobrecarga del buffer de poner en peligro la función de un programa . Por ejemplo, la ranura de memoria del búfer podría estar cerca de la ranura de memoria que contiene un comando en particular el programa ejecuta . Un pirata puede descubrir el tamaño de la memoria intermedia , y la distancia a la ranura de la memoria del comando desde el final de la memoria intermedia . A continuación, podría forzar a un desbordamiento de búfer que podría sobrescribir los datos entre la memoria intermedia y ranura de memoria de la instrucción , a continuación, sobrescribir ranura de memoria del comando para reemplazar el comando con uno de su propio diseño . Cuando el programa llama a la ranura de memoria de ese comando y ejecuta su contenido , estaría ejecutando código del hacker en lugar de la intención del programador .
Prevenir desbordamientos de memoria

Programadores puede prevenir desbordamientos de buffer mediante el establecimiento de mecanismos de seguridad para garantizar que el programa no intenta escribir más datos en un búfer que él diseñó para celebrar . Estos pueden incluir la comprobación del tamaño de los usuarios de datos tratar de poner en él , a través escribiendo o seleccionando un archivo de entrada , para asegurarse de que no excede el tamaño de la memoria intermedia . Los programadores también deben tratar de minimizar las posibilidades de que los usuarios tienen que escribir los datos directamente en una memoria intermedia , ya que cada entrada que escribe directamente en una memoria intermedia es un vector potencial de un ataque de sobrecarga de buffer.

Lenguajes De Programación
Cómo desarrollar API ColdFusion
Cómo eliminar un archivo con SSIS
Cómo desarrollar un GridView personalizado
Cómo integrarse con ColdFusion
Cómo agregar valores a un ComboBox
¿Qué es una función XSLT Unknown
¿Cuáles son las direcciones URL
¿Qué es un objeto Web
Conocimientos Informáticos © http://www.ordenador.online