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ähr­lichsten Programmierfehler zusam­men­ge­stellt und veröf­fent­licht. 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 behe­benden Fehler zu vermeiden. Darüberhinaus soll der Text Softwareentwicklern ein Gefühl und Verständnis für die mitunter gravie­renden 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 wides­pread and critical programming errors that can lead to serious  software vulnera­bi­lities. 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 vulnera­bi­lities that plague the software industry, by  iden­ti­fying and avoiding all-too-common mistakes that occur before software is even shipped.

Die Auflistung darf sicher nicht als allum­fas­sendes 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 verwun­derlich, 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 webspe­zi­fische Probleme sehr stark in der Rangliste vertreten, die Liste selbst bunt durch­mischt mit konkreten Implementierungsproblemen in spezi­ellen Programmiersprachen (zum Beispiel PHP) und eher abstrakten Problemen wie »Buffer Overflows« oder »Race Conditions«.

Die Liste im Einzelnen sieht so aus:

  1. Failure to Preserve Web Page Structure (›Cross-site Scripting‹)
  2. Improper Sanitization of Special Elements used in an SQL Command (›SQL Injection‹)
  3. Buffer Copy without Checking Size of Input (›Classic Buffer Overflow‹)
  4. Cross-Site Request Forgery (CSRF)
  5. Improper Access Control (Authorization)
  6. Reliance on Untrusted Inputs in a Security Decision
  7. Improper Limitation of a Pathname to a Restricted Directory (›Path Traversal‹)
  8. Unrestricted Upload of File with Dangerous Type
  9. Improper Sanitization of Special Elements used in an OS Command (›OS Command Injection‹)
  10. Missing Encryption of Sensitive Data
  11. Use of Hard-coded Credentials
  12. Buffer Access with Incorrect Length Value
  13. Improper Control of Filename for Include/Require Statement in PHP Program (›PHP File Inclusion‹)
  14. Improper Validation of Array Index
  15. Improper Check for Unusual or Exceptional Conditions
  16. Information Exposure Through an Error Message
  17. Integer Overflow or Wraparound
  18. Incorrect Calculation of Buffer Size
  19. Missing Authentication for Critical Function
  20. Download of Code Without Integrity Check
  21. Incorrect Permission Assignment for Critical Resource
  22. Allocation of Resources Without Limits or Throttling
  23. URL Redirection to Untrusted Site (›Open Redirect‹)
  24. Use of a Broken or Risky Cryptographic Algorithm
  25. Race Condition

Alles in allem ist die Liste keine große Überra­schung, wenn man sich Sicherheitsprobleme in Software der letzten Monate ansieht. Die Zusammenstellung und die gelie­ferten knappen Hintergrundinformationen sind aber sicher hilfreich, eigene Projekte auf einige der genannten Punkte abzu­klopfen, zu prüfen und den eigenen Code einem kriti­schen 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.

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to Ping.fm Post to Reddit Post to StumbleUpon

Flattr this!

Tags: , , , , , , , , , , , , , , ,
Kommentar schreiben Trackback

Kommentar schreiben