1
Escriba código de seguridad para evitar ataques de desbordamiento . En C , hay una serie de funciones vulnerables que los piratas informáticos pueden explotar para tampones de sobrellenado . Minimizar el uso de strcpy (), strcat (), sprintf () y vsprintf (), que no realizan la comprobación de límites . Si es posible , evite utilizar gets ( ), que no especifica el número de caracteres se van a leer y por lo tanto deja su código vulnerable. Si utiliza scanf (), asegúrese de especificar un ancho de formato % s para evitar excesos .
2
Compruebe para ver si se puede usar trampolines para evitar desbordamiento de búfer. Desde desbordamiento de búfer se produce en las pilas de memoria y no en el código, la solución más sencilla parece ser la prevención de las pilas de la ejecución de cualquier código insertando un pequeño fragmento de código para prohibir estas acciones. Esto es posible en Linux, pero es muy difícil . Sólo unos pocos compiladores utilizan los pequeños trozos de código de llamadas camas elásticas , que actúan como una barrera entre el código de llamada una función y la función en sí . Por lo tanto, si el código malicioso intenta reemplazar un amortiguador, el trampolín puede interceptar y anular los intentos de los hackers .
3
Implementar herramientas de compilación para darle advertencias cuando se utiliza el código que te deja vulnerable a atacar . Algunas de estas herramientas va a generar código que prohíbe forasteros tengan acceso a direcciones no válidas y se apagará código que intenta dicho cumplimiento. Productos como StackShield y StackGuard son una gran ayuda. StackSheild analizará la dirección de retorno de una función y concluyan en caso de irregularidad. StackGuard lugares una palabra canario en el remite y comprueba si esa palabra se ha modificado , que termina una función cuando se ha hecho.
4
Instalar herramientas como libsafe para comprobar la seguridad de una manera dinámica , ejecute a tiempo medio. Libsafe se ejecuta en Linux y se comprueba la dirección del remitente cercano de un marco de pila , y luego se asegura de que la dirección no se sobrescribe. Libsafe también reemplazará las funciones no seguras , como gets ( ) , strcpy () y scanf ().