? Saturaciones del búfer y errores de cadena de formato son dos métodos que los usuarios pueden tomar el control de un programa. Por lo general se encuentran en idiomas de menor nivel como C o C + +, ambos se basan en la capacidad de un hacker para manipular la entrada del usuario para que realice un programa de manera distinta de lo que se pretendía . Saturaciones del búfer se basan en la falta de medidas de seguridad alrededor de la entrada del usuario , mientras que errores de cadena de formato se producen dentro de la funcionalidad de un lenguaje de programación de entrada /salida real . La comprensión de cómo funciona cada una requiere una comprensión de por qué ocurren en el código. Buffer Overrun
una saturación del búfer puede ocurrir durante la ejecución del programa cuando una estructura de datos tampón destinado a manejar la entrada del usuario se da demasiada información a manejar. Por ejemplo , un programador puede declarar una estructura de matriz que contiene los caracteres que tomen en usuario de inicio de sesión de datos. El programador puede optar por limitar el tamaño de la matriz de 25 caracteres . Si el programador no pone ninguna protección en su lugar, el usuario puede introducir una cantidad arbitraria de datos como nombre de inicio de sesión . Cuando el usuario hace esto, los caracteres adicionales más allá de 25 invadido el espacio de memoria de los datos de la matriz y corruptos en posiciones de memoria adyacentes. Esto se conoce como un desbordamiento de búfer .
Saturaciones del búfer y Seguridad
hackers pueden aprovechar los desbordamientos de búfer para modificar la ruta de ejecución del programa. Si un hacker sabe cómo funciona un programa, entonces ella también sabe qué tipo de datos se encuentran cerca de la matriz de caracteres . En la programación C, variables y referencias de las funciones se almacenan en la memoria. Si una variable o función de referencia reside cerca de la matriz , un hacker puede invadir la matriz de tal manera como para cambiar el valor de una variable , de modo que permitirá conectarse con credenciales falsas . El hacker también puede alterar la función para que se ejecute código malicioso , y permite que el hacker en el sistema.
Formato Cuerdas
Una " cadena de formato " representa un argumento concreto suministrado a las funciones de entrada y salida en C. Por ejemplo , la función " printf ()" toma como primer argumento una cadena de formato que detalla cómo el resultado debe ser para el usuario. Después de esto, la función printf () toma una lista variable de argumentos que representan los datos a la salida con el formato de la cadena de formato. Este siguiente ejemplo detalla cómo funciona una cadena de formato en su contexto, con una cadena de formato contiene un carácter de formato ("% d" ), que significa que un argumento entero reemplazará ese carácter en la salida :
printf ( " Esta es la cadena de formato , seguido de un número entero para imprimir % d ", 56 ) ;
cadenas de formato y Fotografía De Archivo
problemas de seguridad de formato de cadena de seguridad se producen cuando un usuario se las arregla para entrada de una cadena de caracteres de formato que contiene formato no pretende por el programador . Cuando se llama a) la función printf ( la cadena de formato y los argumentos siguientes que se ven empujados a la memoria y la función " camina " a través de la memoria, la sustitución de todos los caracteres de formato con valores en las posiciones de memoria correspondientes . Si un pirata informático inserta formatear caracteres en una cadena, que posiblemente puede leer los valores de los datos que se encuentran en cualquier lugar cerca de la pila - y si ella puede leer la pila, ella sabe cómo y dónde cambiar los datos y manipular la ejecución del programa
.