Secure Programming Cookbook for C and C++
Secure Programming Cookbook for C and C++
Zusammenfassung:
Einleitung: Ein Klassiker der Sicherheit für C und C++
Das Buch „Secure Programming Cookbook for C and C++“ (Autoren: John Viega, Matt Messier, 2003, 784 Seiten) ist nicht nur eine Rezeptsammlung, sondern ein umfassendes Nachschlagewerk zum Schutz von Anwendungen, die in C und C++ geschrieben wurden. Trotz seines Alters sind viele der darin beschriebenen Prinzipien und Praktiken auch heute noch relevant, insbesondere für die Systemprogrammierung, eingebettete Systeme und die Entwicklung hochlastiger Server.
Das Buch erschien in einer Zeit, als Schwachstellen wie Pufferüberläufe eine echte Geißel waren, und die Autoren bieten einen systematischen Ansatz zu deren Beseitigung. Es ist ein unverzichtbares Buch für alle, die angriffssicheren Code schreiben möchten.
Worum geht es in diesem Buch?
Das Buch ist nach dem Prinzip „Problem – Lösung – Diskussion“ aufgebaut. Es deckt praktisch alle Aspekte der Sicherheit ab, mit denen ein C/C++-Entwickler konfrontiert wird:
- Speicherverwaltung und Zeichenketten: Vermeidung von Pufferüberläufen, Format-String-Angriffen, Verwendung sicherer Funktionen (strlcpy, snprintf).
- Kryptographie: Implementierung symmetrischer (AES, DES) und asymmetrischer (RSA, DSA) Verschlüsselung, Hashing (SHA, MD5), Arbeit mit X.509-Zertifikaten.
- Authentifizierung und Autorisierung: Passwortspeicherung, Einmalpasswörter (OTP), Kerberos, PAM.
- Netzwerksicherheit: Schutz von Sockets, SSL/TLS, Verhinderung von Man-in-the-Middle-Angriffen.
- Betriebssystemsicherheit: Arbeit mit Zugriffsrechten, Prozessisolierung (chroot, jail), sicheres Erstellen temporärer Dateien.
- Testen und Audit: Werkzeuge zur Schwachstellensuche (Fuzzing, statische Analyse).
Für wen ist dieses Buch?
Das Buch richtet sich an erfahrene Entwickler, die bereits mit der Syntax von C und C++ vertraut sind und tiefer in Sicherheitsfragen eintauchen möchten. Es ist nützlich für:
- Systemprogrammierer.
- Entwickler von Netzwerkanwendungen.
- Fachleute für Informationssicherheit (Pentester, Auditoren).
- Fortgeschrittene Studierende technischer Fachrichtungen.
Was lernt der Leser?
Nach der Durcharbeitung des Buches wird der Leser in der Lage sein:
- Code zu schreiben, der gegen klassische Angriffe resistent ist (Pufferüberlauf, Race Conditions).
- Kryptographie-Bibliotheken (OpenSSL, Crypto++) korrekt zu verwenden.
- Sichere Authentifizierungsprotokolle zu implementieren.
- Sichere Netzwerkkommunikation einzurichten.
- Ein grundlegendes Sicherheitsaudit des eigenen Codes durchzuführen.
Stärken des Buches
Praktische Ausrichtung: Jedes Rezept enthält fertigen Code, der an die eigenen Bedürfnisse angepasst werden kann. Breite der Abdeckung: Von der Low-Level-Speicherverwaltung bis zu High-Level-Kryptographieprotokollen. Tiefe der Erklärungen: Die Autoren geben nicht nur Code, sondern erklären auch, warum genau diese Lösung sicher ist und eine andere nicht. Aktualität der Grundlagen: Trotz des Jahres 2003 sind die grundlegenden Prinzipien (z. B. das Prinzip der geringsten Privilegien) nicht veraltet.
Wem wird es empfohlen?
Ich empfehle das Buch allen, die professionell in C/C++ entwickeln und das Sicherheitsniveau ihrer Projekte verbessern möchten. Es ist eine hervorragende Ergänzung zu klassischen Sprachlehrbüchern. Es ist jedoch zu beachten, dass einige Abschnitte (z. B. zu veralteten Algorithmen) einen Abgleich mit modernen Standards erfordern.
Auf der Website PythonLib finden Sie dieses Buch im Bereich „Sicherheit“ und können es zum Studium herunterladen.
Empfehlungen
Algorithmen und Datenstrukturen in C++
GraphQL in Go (Golang): Praktischer Leitfaden zur API-Erstellung
Java und Docker: Containerisierung von Anwendungen
Webentwicklung mit TypeScript: Von den Grundlagen bis zum Deployment
C++: Tipps und Best Practices. Schreiben Sie perfekten Code
Swift (iOS/macOS) Vorstellungsgespräch: 200 Fragen und Antworten