Búsqueda de desbordamientos de buffer es una parte importante de asegurar que su programa está a salvo de los ataques y bloqueos accidentales. Un desbordamiento de memoria se produce cuando se insertan datos en una cadena o matriz sin comprobación de los límites , y la longitud de entrada es mayor que la memoria intermedia se está intentando copiar en . Encontrar lugares donde pueden producirse desbordamientos de búfer se realiza mediante la búsqueda de funciones no seguras como "recibe ", analizando las comprobación de límites en las funciones como " strncpy " y probar a fondo su programa con diferentes tipos de entrada. Instrucciones
1
Buscar el código de su programa para las funciones peligrosas como "recibe ", " scanf ", " strcpy ", " strcat ", " sprintf " y " strlen ". Estas funciones no tienen ninguna comprobación de límites incorporados y sólo son adecuados cuando el 100 por ciento de los usuarios del programa son de confianza y los accidentes ocasionales se puede tolerar . Proporcionar comprobación de límites a sí mismo mediante la verificación de que la longitud de entrada no es mayor que la longitud del búfer disponible.
2
investigar cualquier llamada de comprobación de límites funciones como " strncpy ", " strncat " y " snprintf " . Asegúrese de que el final de la matriz de entrada recibe un byte nulo . Límites comprobación incorrecta puede dar lugar a que faltan bytes nulos o uno colocado después del final de la matriz . Al combinar cadenas , asegúrese de que el cheque sale utiliza la longitud de la cadena total menos el contenido pre - existente de la cadena , en lugar de utilizar toda la longitud de la cadena como comprobar los límites.
3
prueba su programa mediante la introducción de insumos excepcionalmente grandes y ver si se bloquea , se corrompe o muestra una actividad inusual . Tenga en cuenta la dirección de todos los accidentes para ver si se corresponde con el lugar donde el programa procesa los datos de entrada . Programas como herramienta de auditoria Rough de Seguridad , también conocida como "ratas ", pueden escanear el código y la ubicación del pabellón que posiblemente son vulnerables a desbordamientos de búfer .