Top 25 der Programmierfehler revisited

Das Update der von MITRE und SANS vorgestellten Top 25 der gefährlichsten Programmierfehler orientiert sich an dem vergangenes Jahr ausgegebenen Ziel, Entwicklern das Wissen zu vermitteln, wie man fehlerfreien Code schreibt.

In Pocket speichern vorlesen Druckansicht 192 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Alexander Neumann

Wie im Vorjahr haben rund 30 international auftretende Sicherheitsunternehmen und -organisationen eine Liste der 25 gefährlichsten Programmierfehler veröffentlicht, die zu groben Sicherheitslücken führen und Cyber-Spionage und -Verbrechen ermöglichen. Unter den an der Auswahl Beteiligten befinden sich Firmen wie McAfee, Microsoft, Oracle und Symantec sowie Organisationen wie das Open Web Application Security Project (OWASP) und das Web Application Security Consortium (WASC). Die Ausführung lag bei den Instituten MITRE und SANS (SysAdmin, Audit, Network, Security).

Das Update orientiert sich an dem letztes Jahr ausgegebenen Ziel, Programmierern das Wissen zu vermitteln, wie man Code schreibt, der frei von den Top-25-Programmierfehlern ist. Die Ursachen für gefährliche Software-Schwachstellen sind unter Sicherheitsexperten hinreichend bekannt, vielen Softwareentwicklern ist jedoch bis heute nicht bewusst, welche Gefahren durch unsichere Programmierung drohen. Hauptziel der Veröffentlichung der Sammlung ist es daher, Softwareentwickler auf häufig gemachte Programmierfehler hinzuweisen und somit durch sichere Programmierung Schwachstellen gar nicht erst aufkommen zu lassen.

Dafür hat die Initiative die Fehler in drei Kategorien unterteilt: Die erste beschreibt häufige Fehler beim Datenaustausch zwischen Systemen wie Cross-Site-Scripting (Nr. 1) und SQL-Injection (Nr. 2), die zweite fasst Schwachstellen zusammen, die beim falschen Umgang mit wichtigen Ressourcen auftreten können. Nachlässigkeiten im Umgang mit dem Systemspeicher können beispielsweise Buffer-Overflow-Schwachstellen (Nr. 3) zur Folge haben. Die dritte Kategorie beschäftigt sich mit Fehlern, die bei der Implementierung von Sicherheitsmaßnahmen unterlaufen können. Beispiele hierfür sind unzureichende oder fehlerhafte Zugriffskontrollmechanismen, hart in den Quelltext kodierte Passwörter oder die Verwendung von veralteten und bereits gebrochenen kryptografischen Algorithmen. Zu den veröffentlichten Programmierfehler liefert die Initiative eine Beschreibung und Einschätzung beziehungsweise Szenarien, die Fehler zu umgehen. Eine kurze Auflistung der gefährlichsten Programmierfehler haben die Projektbeteiligten online bereitgestellt.

Substanzielle Veränderungen in der Neuauflage sind Umstrukturierungen der Liste, die dazu führen sollen, Schadensbegrenzungen und allgemeine Grundsätze sicherer Programmierung von konkreteren Schwachstellen zu unterscheiden. Die neue Version führt zusätzlich sogenannte "Focus Profiles" ein, die Entwicklern ermöglichen, die für sie wichtigsten Teile der Top 25 auszuwählen. Ebenfalls neu ist eine Zusammenstellung der effektivsten Schadensbegrenzungen ("Monster Mitigations"), die Entwicklern helfen soll, zu Themenkomplexen zusammengefasste Programmierfehler der Top 25 und viele der in MITREs Common Weakness Enumeration (CWE) dokumentierten 800 Schwachstellen zu verringern oder zu beseitigen. Schließlich wurden einige als schwerwiegend klassifizierte Schwächen aus der Liste des Vorjahres durch ihnen damals untergeordnete Fehler ersetzt, die die Initiative jetzt als gewichtiger einschätzt. (ane)