Security

Sicher programmieren - aber wie?

5. Mai 2014, 15:38 Uhr | Von Mark Pitchfo
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Erstellen von sicherem Code mit Hilfe statischer Analyse

Die wichtigste Ursache für Software-Schwachstellen sind Software-Defekte, von denen viele auf gängige Sicherheitslücken in Programmen zurückzuführen sind. Eine wachsende Zahl von Verzeichnissen, Normen und Regeln widmet sich diesen verbreiteten Sicherheitslücken, damit diese besser vermieden werden können.

Im November 2013 veröffentlichte die ISO/IEC ihre neuesten Regeln für das Erstellen von sicherem Code in der Programmiersprache C. Das Dokument mit dem Titel „C Secure Coding Rules“ (ISO/IEC 17961:2013 oder secureC) ist der neueste einer immer umfangreicher werdenden Palette von Standards für die sichere Programmierung, die die Grundlage für sichere Software-Entwicklungsprozesse bilden können. Standards wie etwa secureC, das CWE-Lexikon (Common Weakness Enumeration-Lexikon) der Mitre Corporation und der CERT-C Secure Coding Standard des Software Engineering Institute der Carnegie-Mellon-Universität helfen den Software-Entwicklungs-Teams dabei, neue Software von Beginn an sicher zu machen.

passend zum Thema

Dieser Screenshot von LDRA TBvision zeigt, wie die Verwendung eines ungeeigneten Datentyps zu einem Pufferüberlauf führt und damit einen potenziellen Angriffspunkt schafft
Bild 1. Dieser Screenshot von LDRA TBvision zeigt, wie die Verwendung eines ungeeigneten Datentyps zu einem Pufferüberlauf führt und damit einen potenziellen Angriffspunkt schafft.
© LDRA

Durchsetzen lassen sich diese sicheren Codierungsstandards durch den Einsatz statischer Analyse-Tools. Auf diese Weise können auch Entwickler, die noch wenig Erfahrung im Entwickeln sicherer Software besitzen, von der Erfahrung und dem Wissen profitieren, das in diesen Standards enthalten ist. Die Anwendung von Codierungsstandards mit dem Ziel, Mehrdeutigkeiten und Schwachstellen in dem zu entwickelnden Code zu eliminieren, hat sich bei der Entwicklung hochzuverlässiger Software als äußerst erfolgreich erwiesen, ähnlich wie es die Richtlinien der MISRA (Motor Industry Software Reliability Association) für die Anwendung der C-Sprache in sicherheitskritischen Systeme waren. Die gleiche Vorgehensweise kann mit ähnlicher Wirkung auch beim Entwickeln sicherer Software genutzt werden.

Zum Beispiel spiegelt secureC viele der allgemein ausnutzbaren Software-Schwachstellen wider, die sich im CVE-Lexikon, im CWE-Verzeichnis und in den CERT-C Secure Coding Standards finden. Es geht darum, undefinierte Verhaltensweisen in der Programmiersprache C sowie die Verwendung zweifelhafter Daten zu vermeiden. Statische Analyse-Tools helfen bei der Eliminierung sowohl bekannter als auch unbekannter Schwachstellen und beseitigen außerdem latente Fehler im Code. Der Screenshot in Bild 1 zeigt als Beispiel die Aufdeckung einer Sicherheitslücke infolge eines Pufferüberlaufs, der durch ungeeignete Datentypen verursacht wurde.


  1. Sicher programmieren - aber wie?
  2. Erstellen von sicherem Code mit Hilfe statischer Analyse
  3. Metriken decken Risken auf

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu LDRA Inc.

Weitere Artikel zu Cyber-Security

Weitere Artikel zu Industrie-Computer / Embedded PC