Top 25 der gefährlichsten Programmierfehler
Software-Experten aus über 30 Organisationen haben zusammen mit der Common Weakness Enumeration Initiative — kurz CWE™ — eine Liste der 25 gefährlichsten Programmierfehler zusammengestellt und veröffentlicht. Neben einer Beschreibung der am häufigsten gemachten Fehler gibt es auch Anleitungen, wie man solche in eigenen Projekten erkennen und vermeiden kann. Die Liste soll eine Art Werkzeug und Leitfaden für Programmierer sein, die mitunter einfach zu behebenden Fehler zu vermeiden. Darüberhinaus soll der Text Softwareentwicklern ein Gefühl und Verständnis für die mitunter gravierenden Sicherheitsprobleme vermitteln, die durch teilweise kleine Unachtsamkeiten beim Programmieren entstehen können.
The 2010 CWE/SANS Top 25 Most Dangerous Programming Errors is a list of the most widespread and critical programming errors that can lead to serious software vulnerabilities. They are often easy to find, and easy to exploit. They are dangerous because they will frequently allow attackers to completely take over the software, steal data, or prevent the software from working at all. The Top 25 list is a tool for education and awareness to help programmers to prevent the kinds of vulnerabilities that plague the software industry, by identifying and avoiding all-too-common mistakes that occur before software is even shipped.
Die Auflistung darf sicher nicht als allumfassendes Dokument über die Vermeidung und Behebung von Sicherheitsproblemen in Software verstanden werden. Sie ist vielmehr eine Momentaufnahme, wo zur Zeit die häufigsten Fehler gemacht werden. So ist es auch nicht weiter verwunderlich, dass auf den ersten zwei Plätzen mit »Cross-Site-Scripting« und »SQL-Injection« zwei Probleme gelistet werden, die man zum größten Teil in Webanwendungen findet. Der typische »Buffer Overflow« wurde dadurch auf den dritten Platz verdrängt. Allgemein sind webspezifische Probleme sehr stark in der Rangliste vertreten, die Liste selbst bunt durchmischt mit konkreten Implementierungsproblemen in speziellen Programmiersprachen (zum Beispiel PHP) und eher abstrakten Problemen wie »Buffer Overflows« oder »Race Conditions«.
Die Liste im Einzelnen sieht so aus:
- Failure to Preserve Web Page Structure (›Cross-site Scripting‹)
- Improper Sanitization of Special Elements used in an SQL Command (›SQL Injection‹)
- Buffer Copy without Checking Size of Input (›Classic Buffer Overflow‹)
- Cross-Site Request Forgery (CSRF)
- Improper Access Control (Authorization)
- Reliance on Untrusted Inputs in a Security Decision
- Improper Limitation of a Pathname to a Restricted Directory (›Path Traversal‹)
- Unrestricted Upload of File with Dangerous Type
- Improper Sanitization of Special Elements used in an OS Command (›OS Command Injection‹)
- Missing Encryption of Sensitive Data
- Use of Hard-coded Credentials
- Buffer Access with Incorrect Length Value
- Improper Control of Filename for Include/Require Statement in PHP Program (›PHP File Inclusion‹)
- Improper Validation of Array Index
- Improper Check for Unusual or Exceptional Conditions
- Information Exposure Through an Error Message
- Integer Overflow or Wraparound
- Incorrect Calculation of Buffer Size
- Missing Authentication for Critical Function
- Download of Code Without Integrity Check
- Incorrect Permission Assignment for Critical Resource
- Allocation of Resources Without Limits or Throttling
- URL Redirection to Untrusted Site (›Open Redirect‹)
- Use of a Broken or Risky Cryptographic Algorithm
- Race Condition
Alles in allem ist die Liste keine große Überraschung, wenn man sich Sicherheitsprobleme in Software der letzten Monate ansieht. Die Zusammenstellung und die gelieferten knappen Hintergrundinformationen sind aber sicher hilfreich, eigene Projekte auf einige der genannten Punkte abzuklopfen, zu prüfen und den eigenen Code einem kritischen Blick zu unterziehen.
Die Common Weakness Enumeration Initiative wird von der National Cyber Security Division gesponsort, einer Unterabteilung des U.S. Department of Homeland Security.
Ähnliche Artikel
Tags: Buffer Overflow, Bug, CWE, Development, Dokumentation, Fehler, PHP, Programmieren, Programmierfehler, Programmierung, Security, Sicherheit, Sicherheitsloch, Software, SQL Injection, Top
Kommentar schreiben Trackback
