Top 25 Most Dangerous Programming Errors


In collaboration between the SANS Institute, MITRE and an industry panel of more than 30 leading cyber security organizations, including Symantec and Microsoft, a list has been released featuring the top 25 most significant programming errors that can lead to serious software vulnerabilities.

 

This list can be used as a tool to educate programmers on the “all-too-common” mistakes that take place in the software industry.  The Top 25 errors are classified below into three high-level categories:

 

Insecure Interaction Between Components

These weaknesses are related to insecure ways in which data is sent and received

between separate components, modules, programs, processes, threads, or systems.

 

>        Improper Input Validation

>        Improper Encoding or Escaping of Output

>        Failure to Preserve SQL Query Structure (aka 'SQL Injection')

>        Failure to Preserve Web Page Structure (aka 'Cross-site Scripting')

>        Failure to Preserve OS Command Structure (aka 'OS Command Injection')

>        Cleartext Transmission of Sensitive Information

>        Cross-Site Request Forgery (CSRF)

>        Race Condition

>        Error Message Information Leak

 

Risky Resource Management

The weaknesses in this category are related to ways in which software does not properly manage the creation, usage, transfer, or destruction of important system resources.

 

>        Failure to Constrain Operations within the Bounds of a Memory Buffer

>        External Control of Critical State Data

>        External Control of File Name or Path

>        Untrusted Search Path

>        Failure to Control Generation of Code (aka 'Code Injection')

>        Download of Code Without Integrity Check

>        Improper Resource Shutdown or Release

>        Improper Initialization

>        Incorrect Calculation

 

Porous Defenses

The weaknesses in this category are related to defensive techniques that are often

misused, abused, or just plain ignored.

 

>        Improper Access Control (Authorization)

>        Use of a Broken or Risky Cryptographic Algorithm

>        Hard-Coded Password

>        Insecure Permission Assignment for Critical Resource

>        Use of Insufficiently Random Values

>        Execution with Unnecessary Privileges

>        Client-Side Enforcement of Server-Side Security

 

Click here to read more about the 2009 CWE/SANS Top 25 Most Dangerous Programming Errors.

 


Share some of your programming stories and/or tell us what you think about CWE/SANS Top 25 Most Dangerous Programming Errors by leaving a comment below.

 

Share this Article: deliciousdiggStumble Upon

Comments

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response or trackback from your own site

There are no comments on this post.

Leave a Reply

Name
 
Email
Website
Comment
 
 
Security code
 
 

Recent Articles

 
 
 

Jobs

  • 17/05

    Business Objects Developer