“Conocimientos Programación>Lenguajes De Programación

Los efectos de desbordamientos de búfer y Cadenas con formato en el flujo del programa

2015/7/21
Incluso los aspectos más modestas de un programa pueden presentar amenazas de seguridad. Entrada del usuario básico puede cortocircuitar código interno de un programa de varias maneras. La entrada puede utilizar el funcionamiento de las funciones de impresión para acceder flujo del programa de control de reemplazando los límites de la función . O bien, puede invadir los límites de amortiguamiento que le señaló el programador de afectar los datos fuera de su espacio programador designado . De cualquier manera , la entrada del usuario afecta a cómo se ejecuta el programa , potencialmente hacia fines maliciosos . Cadenas de formato

Formato de cadenas en C y C + + son parte de las funciones de entrada y salida . La cadena de formato contiene datos a los datos de salida a la pantalla . Las cadenas de formato tienen dos componentes principales . El primero es la cadena básica para imprimir , que contiene caracteres y signos de puntuación . El segundo componente incluye carácter especial marcado con signos de porcentaje que sirven como marcadores de posición para los datos variables . Existen estos símbolos en la cadena, y son reemplazadas durante la salida de los valores mantenidos en variables. El siguiente ejemplo muestra una sentencia printf básico con una cadena de formato :

caracteres x = " c " ; int y = 10 ;

printf ( "Impresión de caracteres% c y decimales % d" , , x, y);
cadena de formato Ataques

la inseguridad de las cadenas de formato está en cómo los símbolos incrustados en las cadenas de referencia de otras partes del programa. Por ejemplo , un atacante introducir datos en una variable que se utiliza en una cadena de formato puede inyectar símbolos que le permiten acceder a otros marcos de ejecución en el programa . De este modo , el atacante puede modificar los valores en las variables fuera del ámbito de aplicación de la función de impresión . Por otra parte , el atacante podría posiblemente acceder a los valores en la memoria que representan la ubicación de las funciones . El atacante podría cambiar ese valor para que apunte a una función diferente , cambiando así el flujo de ejecución y, esencialmente, el secuestro del programa.
Entrada Buffers

entrada tampones son espacios de almacenamiento de datos creados por el programador para almacenar los datos introducidos por el usuario . Muy a menudo, buffers de entrada manejar la entrada del usuario del registro de nombres y contraseñas. Específicamente para el lenguaje de programación C, que no incluye el manejo de cadenas nativo, existen buffers de entrada como arrays de caracteres con un tamaño fijo . En este caso, es responsabilidad del programador para asignar los datos de entrada del usuario .
Buffer Overflow

Un atacante podría aprovechar las limitaciones de estos búferes inundaciones con datos. En el ejemplo más simple , una serie de personajes destinado a mantener un registro de nombre podría haber 20 espacio asignado , pero el atacante le da más de veinte personajes para procesar . En este caso , los caracteres adicionales sobrescriben posiciones de memoria inmediatamente después de la matriz. Estas posiciones de memoria posiblemente contienen datos relevantes para la ejecución del programa , como las variables condicionales para las instrucciones de control de flujo o referencias a funciones de la pila . Al igual que el ataque de formato de cadena , esto esencialmente permite al atacante secuestrar el programa.

Lenguajes De Programación
Cómo cambiar de un JTable celular de color
Cómo transferir una cadena de un cuadro de texto a un DataGrid en C #
¿Cómo puedo simplemente crear un mapa del sitio
Cómo hacer un Web Bot
Esquema de programación Ayuda
My Windows Mobile no se abre ashx
Las especificaciones para una ATI Sapphire X1550
Cómo quitar Listboxes no seleccionable en Silverlight WPF
Conocimientos Informáticos © http://www.ordenador.online