JUser: :_load: Unable to load user with ID: 3286
Wednesday, 14 January 2009 03:06

Are you a dangerous programmer?

Dangerous is probably not a description you would apply to the average programmer, let alone yourself. However, the Microsoft, Symantec and even the US Department of Homeland Security are worried that you could unwittingly be just that and intend to prove it.

The people who set up cloned websites for online scams are undoubtedly annoying and criminal, but you could hardly call them dangerous.

Likewise, spam botnet coders are evil scumbags, but not exactly up there with Osama Bin Laden on the danger front.

However, according to MITRE and the SANS Institute, there are some 25 programming errors which can lead to serious software vulnerabilities. These are frequent in occurrence and are both easy to find and exploit.

It is these programming errors which make you a dangerous coder. Dangerous because they can allow attackers to completely control software, to steal data or just prevent the software from working in some way.

The 2009 CWE/SANS Top 25 Most Dangerous Programming Errors list comes after collaboration between both MITRE and SANS along with numerous software experts from the likes of Microsoft and Symantec in Europe and the US.

SANS has contributed via the Top 20 Attack Vectors development process, while MITRE kicks in with it's Common Weakness Enumeration project and the US Department of Homeland Security's National Cyber Security Division helps out with web hosting.

The aim of the list is to help you become a better coder by understanding your weaknesses, educating programmers how to spot and remove common mistakes before software is released.

So just what are the Top 25 Most Dangerous Programming Errors according to the CWE/SANS list? More on page 2.


For the full breakdown and detailed descriptions you need to head over to the CWE/SANS site itself, which is broken down into three main categories: Insecure Interaction Between Components, Risky Resource Management and Porous Defenses.

Within these categories you will find multiple entries that combine to make up that top 25 list. Here is just a very brief overview.

The Insecure Interaction Between Components section covers weaknesses related to the way data is sent and received, including:

Improper Input Validation, Improper Encoding or Escaping of Output, Failure to Preserve SQL Query Structure, Failure to Preserve Web Page Structure, Failure to Preserve OS Command Structure, Cleartext Transmission of Sensitive Information, Cross-Site Request Forgery, Race Condition and Error Message Information Leaks.

Risky Resource Management, meanwhile, covers errors relating to software not managing system resource creation, usage, transfer or destruction properly, including:

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, Download of Code Without Integrity Check, Improper Resource Shutdown or Release, Improper Initialization and Incorrect Calculation.

Finally, Porous Defenses deals with the misuse and abuse of defensive techniques such as:

Improper Access Control, 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.


Did you know: 1 in 10 mobile services in Australia use an MVNO, as more consumers are turning away from the big 3 providers?

The Australian mobile landscape is changing, and you can take advantage of it.

Any business can grow its brand (and revenue) by adding mobile services to their product range.

From telcos to supermarkets, see who’s found success and learn how they did it in the free report ‘Rise of the MVNOs’.

This free report shows you how to become a successful MVNO:

· Track recent MVNO market trends
· See who’s found success with mobile
· Find out the secret to how they did it
· Learn how to launch your own MVNO service




Recent Comments