Prácticas seguras de encoding C

Estoy buscando un registro completo de prácticas de encoding seguras en C. Ya que no he encontrado una lista de estas características aquí, podríamos convertir esto en una wiki de la comunidad, para una referencia adicional. Estoy buscando soluciones a problemas de seguridad como desbordamientos y subdesbordamientos de búferes basados ​​en la stack y en el montón, desbordamientos y subdesbordamientos de enteros, ataques de cadena de formato, eliminación del puntero nulo, ataques de inspección de memoria / almacenamiento dynamic, etc.

NB: Además de las prácticas de encoding, vale la pena mencionar las bibliotecas seguras que defienden este tipo de ataques.

LE: Como se ve en esta pregunta Prácticas de encoding de Secure C ++ pero solo para C

El estándar “de facto” del CERT C es bastante conocido y aborda estos problemas en cierta medida:

Estándar de encoding SEI CERT C

Debería haber varios analizadores estáticos en el mercado que sean compatibles con CERT C.

La misma respuesta Libro de cocina de progtwigción segura para C y C ++: recetas para criptografía, autenticación, validación de entrada y más

De la descripción:

Los lectores aprenderán:

  • Cómo evitar errores de progtwigción comunes, como desbordamientos de búfer, condiciones de carrera y problemas de cadena de formato

  • Cómo habilitar adecuadamente las aplicaciones SSL

  • Cómo crear canales seguros para la comunicación cliente-servidor sin SSL

  • Cómo integrar la Infraestructura de clave pública (PKI) en las aplicaciones Mejores prácticas para usar la criptografía de manera adecuada Técnicas y estrategias para validar correctamente la entrada a los progtwigs

  • Cómo lanzar progtwigs de forma segura.

  • Cómo utilizar correctamente los mecanismos de acceso a archivos.

  • Técnicas para proteger aplicaciones de ingeniería inversa.