The Top 25 Ways To Ruin A Program
The NSA (National Security Agency) has put together 25 of the world's most dangerous coding mistakes.
The list, which appears not to be understood by a number of programmers, highlights the errors which can lead to vulnerabilities in a computer code.
Just two of them, according to the SANS Institute [http://www.sans.org/], led to over 1.5m web site security breaches during 2008.
"This list is primarily for people who have first responsibility for designing a system. Veteran programmers have probably learnt the hard way whereas a brand new programmer will be making more basic errors.", said Patrick Lincoln, director of the Computer Science Laboratory at SRI International.
"The real dedicated serial attacker will probably find a way in even if all these errors were removed. But a high school hacker with malicious intent - ankle-biters if you will - would be deterred from breaking in," he said.
The list in full, (hands up if you know what half of these mean):
CWE-20:Improper Input Validation
CWE-116:Improper Encoding or Escaping of Output
CWE-89:Failure to Preserve SQL Query Structure
CWE-79:Failure to Preserve Web Page Structure
CWE-78:Failure to Preserve OS Command Structure
CWE-319:Cleartext Transmission of Sensitive Information
CWE-352:Cross-Site Request Forgery
CWE-362:Race Condition
CWE-209:Error Message Information Leak
CWE-119:Failure to Constrain Operations within the Bounds of a Memory Buffer
CWE-642:External Control of Critical State Data
CWE-73:External Control of File Name or Path
CWE-426:Untrusted Search Path
CWE-94:Failure to Control Generation of Code
CWE-494ownload of Code Without Integrity Check
CWE-404:Improper Resource Shutdown or Release
CWE-665:Improper Initialization
CWE-682:Incorrect Calculation
CWE-285:Improper Access Control
CWE-327:Use of a Broken or Risky Cryptographic Algorithm
CWE-259:Hard-Coded Password
CWE-732:Insecure Permission Assignment for Critical Resource
CWE-330:Use of Insufficiently Random Values
CWE-250:Execution with Unnecessary Privileges
CWE-602:Client-Side Enforcement of Server-Side Security
So, next time you want to have a pop at Steam, PSN or X-Box Live, have a thought about how many error numbers they've already had to sift through.
Source BBC [http://news.bbc.co.uk/1/hi/technology/7824939.stm]
(Image) [http://www.flickr.com/photos/jmarty/1804061993/]
Permalink
The NSA (National Security Agency) has put together 25 of the world's most dangerous coding mistakes.
The list, which appears not to be understood by a number of programmers, highlights the errors which can lead to vulnerabilities in a computer code.
Just two of them, according to the SANS Institute [http://www.sans.org/], led to over 1.5m web site security breaches during 2008.
"This list is primarily for people who have first responsibility for designing a system. Veteran programmers have probably learnt the hard way whereas a brand new programmer will be making more basic errors.", said Patrick Lincoln, director of the Computer Science Laboratory at SRI International.
"The real dedicated serial attacker will probably find a way in even if all these errors were removed. But a high school hacker with malicious intent - ankle-biters if you will - would be deterred from breaking in," he said.
The list in full, (hands up if you know what half of these mean):
CWE-20:Improper Input Validation
CWE-116:Improper Encoding or Escaping of Output
CWE-89:Failure to Preserve SQL Query Structure
CWE-79:Failure to Preserve Web Page Structure
CWE-78:Failure to Preserve OS Command Structure
CWE-319:Cleartext Transmission of Sensitive Information
CWE-352:Cross-Site Request Forgery
CWE-362:Race Condition
CWE-209:Error Message Information Leak
CWE-119:Failure to Constrain Operations within the Bounds of a Memory Buffer
CWE-642:External Control of Critical State Data
CWE-73:External Control of File Name or Path
CWE-426:Untrusted Search Path
CWE-94:Failure to Control Generation of Code
CWE-494ownload of Code Without Integrity Check
CWE-404:Improper Resource Shutdown or Release
CWE-665:Improper Initialization
CWE-682:Incorrect Calculation
CWE-285:Improper Access Control
CWE-327:Use of a Broken or Risky Cryptographic Algorithm
CWE-259:Hard-Coded Password
CWE-732:Insecure Permission Assignment for Critical Resource
CWE-330:Use of Insufficiently Random Values
CWE-250:Execution with Unnecessary Privileges
CWE-602:Client-Side Enforcement of Server-Side Security
So, next time you want to have a pop at Steam, PSN or X-Box Live, have a thought about how many error numbers they've already had to sift through.
Source BBC [http://news.bbc.co.uk/1/hi/technology/7824939.stm]
(Image) [http://www.flickr.com/photos/jmarty/1804061993/]
Permalink