Anhang A 8.28 Sichere Kodierung

(nach ISO/IEC 27001:2022 und ISO/IEC 27002:2022)

Unsichere Programmierung ist eine der häufigsten Ursachen für Sicherheitslücken in Anwendungen und Systemen. Fehlerhafte Eingabevalidierung, unsaubere Fehlerbehandlung oder der unsichere Umgang mit Daten können von Angreifern ausgenutzt werden und zu Datenverlust, Systemkompromittierungen oder Betriebsunterbrechungen führen. Dieses Control stellt sicher, dass Software nach anerkannten Prinzipien sicherer Kodierung entwickelt wird.


Zweck des Controls

A 8.28 soll gewährleisten, dass Software und Skripte so entwickelt werden, dass typische Sicherheitslücken vermieden werden. Ziel ist es, Schwachstellen bereits während der Implementierung zu reduzieren und die Vertraulichkeit, Integrität und Verfügbarkeit von Informationen durch sichere Programmierung zu schützen.


Anforderungen und Maßnahmen

1. Festlegung von Richtlinien für sichere Kodierung

Organisationen müssen verbindliche Richtlinien für sichere Kodierung definieren, insbesondere:

  • grundlegende Prinzipien sicherer Programmierung
  • Anforderungen an Eingabevalidierung und Fehlerbehandlung
  • Vorgaben zum Umgang mit sensiblen Daten
  • Nutzung sicherer Bibliotheken und Frameworks

Die Richtlinien müssen dokumentiert und bekannt sein.


2. Anwendung anerkannter Kodierungsstandards

Bei der Entwicklung müssen anerkannte Standards berücksichtigt werden, zum Beispiel:

  • branchenübliche Secure-Coding-Guidelines
  • Best Practices für die jeweilige Programmiersprache
  • Vermeidung bekannter unsicherer Funktionen
  • Orientierung an bekannten Schwachstellenklassen

Dies reduziert typische Programmierfehler.


3. Schutz vor häufigen Angriffsmustern

Sichere Kodierung muss typische Angriffsmuster adressieren, insbesondere:

  • Injection-Angriffe
  • Cross-Site-Scripting
  • unsichere Deserialisierung
  • fehlerhafte Zugriffskontrollen

So werden bekannte Angriffsvektoren minimiert.


4. Sichere Behandlung von Fehlern und Ausnahmen

Fehler müssen sicher behandelt werden:

  • keine Offenlegung sensibler Informationen
  • kontrollierte Fehlermeldungen
  • saubere Ausnahmebehandlung
  • Protokollierung sicherheitsrelevanter Fehler

Dies verhindert Informationsabfluss.


5. Einsatz unterstützender Werkzeuge

Geeignete Werkzeuge sollen sichere Kodierung unterstützen:

  • statische Codeanalysen
  • automatisierte Sicherheitsprüfungen
  • Entwicklungsrichtlinien in Toolchains
  • Integration in CI/CD-Prozesse

Werkzeuge erhöhen die Konsistenz der Umsetzung.


6. Schulung und Sensibilisierung von Entwicklern

Entwickler müssen für sichere Kodierung qualifiziert sein:

  • regelmäßige Schulungen zu Secure Coding
  • Sensibilisierung für aktuelle Bedrohungen
  • Vermittlung sicherer Entwicklungspraktiken
  • Erfahrungsaustausch und Best Practices

Kompetente Entwickler reduzieren Risiken.


7. Überprüfung des Quellcodes

Quellcode muss regelmäßig überprüft werden:

  • Code-Reviews mit Sicherheitsfokus
  • Vier-Augen-Prinzip
  • Überprüfung sicherheitskritischer Komponenten
  • Dokumentation der Ergebnisse

Reviews helfen, Fehler frühzeitig zu erkennen.


8. Dokumentation und kontinuierliche Verbesserung

Maßnahmen zur sicheren Kodierung müssen dokumentiert und weiterentwickelt werden:

  • Richtlinien und Standards
  • Schulungs- und Prüfungsnachweise
  • Erkenntnisse aus Sicherheitsvorfällen
  • Anpassung an neue Bedrohungen

So bleibt sichere Kodierung wirksam.


Zusammenfassung

A 8.28 fordert, dass Organisationen sichere Kodierung systematisch umsetzen. Durch verbindliche Richtlinien, Anwendung anerkannter Standards, Schutz vor typischen Angriffsmustern, Schulung der Entwickler sowie regelmäßige Überprüfung des Quellcodes wird sichergestellt, dass Software nicht durch vermeidbare Programmierfehler zur Schwachstelle der Informationssicherheit wird. Das Control ist ein zentraler Bestandteil sicherer Softwareentwicklung im Informationssicherheitsmanagementsystem.