
Secure Programming Cookbook for C and C++
John Viega, Matt Messier
- Editorial
- O'Reilly
- Año
- 2003
- Páginas
- ~792
- Nivel
- Intermedio
De qué trata
Obra de referencia clásica estructurada como recetario de soluciones para mitigar fallos y vulnerabilidades de seguridad al desarrollar en C y C++ sobre sistemas Unix, Linux y Windows. Está destinada a programadores de sistemas y aplicaciones de nivel intermedio que conocen bien la gestión de memoria manual, los punteros y las APIs estándar del sistema operativo, pero necesitan directrices precisas para escribir código resistente a la explotación maliciosa.
El libro reúne más de doscientas recetas autocontenidas organizadas en el formato de problema, solución y discusión técnica. Enseña a prevenir desbordamientos de búfer (buffer overflows), cadenas de formato no controladas y condiciones de carrera (race conditions), apoyándose intensamente en OpenSSL para la criptografía en entornos POSIX y en la CryptoAPI para Windows. Cubre la validación exhaustiva de datos de entrada, la gestión segura de privilegios y procesos (mediante directivas setuid, capacidades POSIX y listas de control de acceso ACLs de Win32), el manejo de secretos en memoria, el despliegue de infraestructura de clave pública (PKI), la validación de certificados X.509 y el diseño de técnicas anti-manipulación (anti-tampering) para dificultar la ingeniería inversa de los binarios.
Al ser un recetario práctico puro, no plantea un proyecto monolítico unificado ni contiene ejercicios académicos de autoevaluación, sino patrones de código modulares directamente aplicables a problemas cotidianos de seguridad en software de bajo nivel. Su punto fuerte radica en contrastar metódicamente las APIs de Unix con las de Windows; no obstante, debido a su fecha de publicación, las versiones de los estándares de cifrado y ciertas funciones de red deben complementarse y contextualizarse con las versiones modernas de OpenSSL y los compiladores actuales.
- C
- C++
- Programación defensiva
- Buffer Overflows
- OpenSSL
- CryptoAPI de Windows
- Validación de entradas
- Control de acceso y ACLs
- PKI y certificados
- Condiciones de carrera
- Anti-tampering
¿Cómo enseña?
Con ejercicios
- ✗ Sin ejercicios
- ✗ Sin proyectos

