¿Cuáles son buenos libros sobre seguridad para desarrolladores de software?

No estoy realmente seguro de que los libros sean la mejor manera para que un desarrollador aprenda seguridad. Mi propia experiencia es que, a menos que lo hagas, nunca se hunde y va a tomar muchos intentos para mejorar. La mayoría de los libros también están desactualizados rápidamente incluso cuando se imprimen.

El SDL de Microsoft (http://www.microsoft.com/securit…) y la guía de desarrollo OWASP (http://www.owasp.org/index.php/C…) son excelentes recursos, especialmente si está trabajando en desarrollo web.

Las hojas de trucos como el marco de seguridad de la aplicación web también son excelentes referencias rápidas y listas de verificación. Excelente para imprimir y poner frente a su computadora: http://msdn.microsoft.com/en-us/…

Solo codifique y aplique los principios básicos cuando codifique:
[+] autenticación
[+] autorización
[+] validación de entrada (esta es grande y difícil de realizar correctamente, por ejemplo, en campos de texto de forma libre) Probar contra este http://ha.ckers.org/xss.html y http://ha.ckers.org/sqlinjection/ es un buen comienzo y le llevará a través del 60-75% de las vulnerabilidades y debilidades más comunes en son formas en que los desarrolladores intentan desarrollarse a su alrededor
[+] registro y alertas sobre eventos de seguridad
[+] cifrado de datos confidenciales
[+] gestión de sesión si corresponde
[+] configuración segura por defecto
[+] su código no debe abrirse ni revelar información no esencial en los mensajes de error

La lección más importante también es ser perezoso: no reinventes la rueda con seguridad. Reutilice los controles de seguridad y las bibliotecas en su idioma, por ejemplo, si Java Spring Framework tiene excelentes formas de evitar la inyección de SQL simplemente usando consultas paramaterizadas. O pruebe el OWASP EASPI: http://www.owasp.org/index.php/C…

Use otros desarrolladores experimentados y su equipo de seguridad de TI para revisar por pares su código. Si puede ejecutar herramientas de análisis de código fuente o probar la penetración de su aplicación. Aprende de lo que estas recogiendo y trata de no repetir los mismos errores. Hacer un modelado de amenazas (http://msdn.microsoft.com/en-us/…) por adelantado antes de codificar también puede ayudar a evitar errores de seguridad de codificación y ahorrar tiempo.

Si eres un desarrollador web, mira una web enredada. Desglosa los diferentes tipos de ataques y conecta muchos puntos en los niveles de los entornos de desarrollo web.