Top 25 gevaarlijkste programmeerfouten
17-02-2010,15:17 doorRedactie
Programmeerfouten zijn een voorname reden waardoor hackers websites en applicaties kunnen kraken, reden voor MITRE en SANS een lijst van de 25 meest gemaakte fouten samen te stellen. Door programmeurs te onderwijzen hoopt men het aantal beveiligingslekken voor dat software uitkomt te verminderen. "De lijst is een tool voor onderwijs en bewustzijn en zal programmeurs helpen om het soort lekken te voorkomen die de softwareindustrie plagen", aldus not-for-profit organisatie MITRE.

Consumenten kunnen de lijst gebruiken om naar veiligere software te vragen, terwijl het overzicht voor managers en CIOs als een graadmeter van de eigen voorgang om software te beveiligen kan dienen. In totaal hebben meer dan twintig verschillende organisaties en tal van beveiligingsexperts aan de lijst meegewerkt.

Cross-site scripting
De gevaarlijkste fout op de lijst is cross-site scripting, gevolgd door SQL Injection, buffer overflows, Cross-Site Request Forgery en onvoldoende autorisatie. Per beveiligingsprobleem wordt ook gekeken wat de consequenties zijn, hoe eenvoudig het te detecteren en verhelpen is, hoe vaak misbruik voorkomt en in hoeverre aanvallers met het probleem bekend zijn. In het kort geeft de lijst vervolgens tips om het probleem op te lossen.

  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