Sicherheit mit Go
Sicherheit mit Go
Zusammenfassung:
Einleitung
Das Buch „Security with Go“ (Autor: John Daniel Leon, 2018, 340 Seiten) ist ein praktischer Leitfaden, der eine wichtige Lücke in der Literatur zur Programmiersprache Go schließt. Während sich die meisten Lehrbücher auf die Grundlagen der Syntax oder die Webentwicklung konzentrieren, widmet sich dieses Werk ausschließlich Sicherheitsthemen: von kryptografischen Grundbausteinen bis zum Schutz von Netzwerkverbindungen und Webanwendungen. Das Buch richtet sich an Entwickler, die bereits mit Go vertraut sind und zuverlässigen, sicheren Code schreiben möchten, sowie an IT-Sicherheitsexperten, die diese Sprache erlernen.
Worum es in dem Buch geht
Das Buch besteht aus 12 Kapiteln, die sich jeweils einem bestimmten Aspekt der Sicherheit widmen. Der Autor führt den Leser konsequent von den Grundlagen der Kryptographie zu komplexen Themen wie Authentifizierung, Autorisierung, Sicherheit von Webanwendungen und Netzwerkprotokollen. Besonderes Augenmerk liegt auf praktischen Codebeispielen in Go, die sofort in realen Projekten eingesetzt werden können. Behandelt werden sowohl die integrierten Go-Pakete (crypto, net, tls) als auch beliebte Drittanbieter-Bibliotheken.
Für wen ist dieses Buch geeignet
- Go-Entwickler – von mittlerem bis fortgeschrittenem Niveau, die die Sicherheit ihrer Anwendungen verbessern möchten.
- IT-Sicherheitsexperten, die Go erlernen möchten, um Sicherheitstools (Scanner, Analysatoren, Dienstprogramme) zu schreiben.
- DevOps-Ingenieure, die mit Microservices in Go arbeiten und Kommunikationskanäle sowie Daten schützen müssen.
- Studenten und Dozenten von Kursen zu Sicherheit und Entwicklung mit Go.
Was der Leser lernen wird
- Kryptographie mit Go: Hashing (SHA, MD5), symmetrische und asymmetrische Verschlüsselung (AES, RSA), Arbeiten mit X.509-Zertifikaten.
- Sicherheit von Netzwerkverbindungen: Konfiguration von TLS/SSL, Erstellung sicherer TCP/UDP-Server und -Clients, Arbeiten mit SSH.
- Authentifizierung und Autorisierung: Implementierung von OAuth2, JWT, Basisauthentifizierung, Sitzungsverwaltung.
- Schutz von Webanwendungen: Verhinderung von SQL-Injection, XSS, CSRF, sicherer Umgang mit Formularen und Cookies.
- Sichere Datenspeicherung: Passwortverschlüsselung (bcrypt, scrypt), Umgang mit Geheimnissen, sicherer Umgang mit Datenbanken.
- Erstellung von Sicherheitstools: Portscanner, Paket-Sniffer, Log-Analysatoren in Go.
- Sicherheitstests: Schreiben von Unit-Tests zur Überprüfung von Schwachstellen, Fuzzing.
Stärken des Buches
Praktische Ausrichtung. Jedes Kapitel enthält zahlreiche Codebeispiele, die kopiert und ausgeführt werden können. Der Autor verliert sich nicht in übermäßiger Theorie, sondern zeigt sofort, wie man eine bestimmte Sicherheitsmaßnahme in Go implementiert.
Aktualität. Trotz des Erscheinungsjahres 2018 bleiben die grundlegenden Konzepte und Go-Pakete relevant. Das Buch deckt die Standardbibliothek ab, die sich selten grundlegend ändert.
Breite Abdeckung. Von Kryptographie über Netzwerksicherheit bis hin zu Websicherheit – das Buch deckt 90 % der Aufgaben ab, mit denen ein Entwickler konfrontiert wird.
Verständlicher Stil. John Daniel Leon schreibt klar, ohne überflüssige Ausschweifungen, mit Fokus auf das „Wie mache ich es“.
Empfehlung
Das Buch ist für alle nützlich, die in Go programmieren und typische Sicherheitsfehler vermeiden möchten. Besonders empfehle ich es Entwicklern von Microservices, APIs und Webanwendungen sowie denen, die Tools für Pentests oder Audits erstellen. Go-Anfänger sollten sich zunächst die Grundlagen der Sprache aneignen, da das Buch sichere Kenntnisse der Syntax und grundlegender Konzepte voraussetzt.
Abschließende Bewertung: 9/10. Dies ist eines der besten Bücher zur Sicherheit mit Go, das im Regal jedes ernsthaften Entwicklers stehen sollte.
Empfehlungen
Architektur von C++-Anwendungen: Vom Projekt bis zur Produktion
Algorithmen und Datenstrukturen in C++
Webentwicklung mit C# (.NET): Von den Grundlagen bis zum Deployment
Optimizing Java: Praktischer Leitfaden zur Optimierung der Leistung von Java-Anwendungen
Leistungsstarke Konsolenanwendungen mit Go
Rustonomicon