[Editor’s note: Kenneth van Wyk is credited by the SANS Institute as one of the people who made substantive contributions to compiling the Top Error list.]
Last week the SANS Institute and MITRE together published their CWE/SANS Top-25 Most Dangerous Programming Errors list.
Ta dah! Wow, that “ta dah” didn’t have the public impact I expected. So then, what’s the big deal about the world producing yet another top-N list? I’ll tell you why this one is different.
I can certainly understand if you weren’t bowled over by the announcement, though. It’s a natural (non)reaction. After all, the world already has the SANS Top-20 Vulnerabilities list and the OWASP Top-10. Do we really need another list that points out our problems? Let’s consider a few things here.
The SANS list is well established and respected, and it’s definitely cited by many in the information security field. On the other hand, it is quite a general document that addresses network and OS-level problems, along with such issues as so-called zero day (“0day”) attacks. That’s all well and good, but where are the root causes (no pun intended) being considered? Well, they’re really not.
So then let’s consider the OWASP Top-10 list. They get closer to the root causes by addressing software application problems like cross-site scripting and SQL injection. And, to be fair, their documentation does a superb job at describing these weaknesses and pointing to effective remediation steps that can be taken, right down to code examples. Excellent stuff, but it too falls short of truly pointing a finger directly at the underlying problems themselves.
I should also point out MITRE’s own CVE and CWE efforts. The Common Vulnerabilities and Exposures (CVE) project documents (and makes searchable) a collection of software vulnerabilities, patches, etc. Its counterpart, the Common Weakness Enumeration (CWE) project is a dictionary of underlying software weakness types. Both of these are excellent resources to information security as well as software development staff.
Now do you see what’s missing here? Or perhaps you think you could probably gleam the vast majority of the information in the CWE/SANS Top-25 list by poring through the CWE information? That’s true, but only to a point.
From where I sit, I see two things missing. For one, the SANS Top-20 list is hugely advertised and well known. Of course it’s not a comprehensive list of all the security problems on the Net, but it is arguably the most well known list of problems, and that fact by itself is not a bad thing. (It can become a bad thing if we only address these flaws, but more on that later.)
The second thing missing is that — until now — we didn’t have a list of the biggest, baddest, nastiest programming security defects. We didn’t have a counterpart, if you will, to the OWASP list that speaks specifically to the programming mistakes and not just the vulnerabilities. After all, an XSS vulnerability can look a lot different in different contexts.
Until we draw attention to the programmatic problems that lead to XSS vulnerabilities, we’re only talking about the symptoms and not the problems. That’s the real big deal here.
And just like the other Top-N lists, this one isn’t comprehensive. There are many other programming mistakes that can be made, of course. We all understand that, right? Right?
Well, there’s a danger there as well. We’ve seen the SANS list being adopted by many a security auditor as a mere checklist of things to look for. If the CWE/SANS list gets similarly adopted, we’re guilty of a very bad thing indeed: negative validation.
Negative validation happens when we evaluate something against a set of known bad things and assume it to be safe if we don’t find them. Positive validation, on the other hand, evaluates something against a set of accepted good attributes and presumes it to be dangerous if it doesn’t conform. (Remember me mentioning that in my column here just a few short months back?)
The danger of negative validation here is that we must not focus solely on these 25 bad things. That said, raising awareness to these bad things is positive and valuable. This list has already been widely cited in just about every trade publication I’m aware of. That’s great news for us all.
OK, so this list is different. How should we work with it in our day-to-day work? For starters, every software developer should be exposed to the CWE/SANS Top-25 list. They should all understand the issues and how to avoid them. But don’t stop there.
We all need to also ensure that software developers understand the underlying sound engineering principles that are implicitly referenced in the list. Things like the principle of least privilege, compartmentalization, and so on—think Salzer and Schroeder circa 1975. You know, the things that instantly and irrevocably cure insomnia among software developers. Well, you can use the Top-25 list as a way of drawing attention to those principles in an interesting and engaging way.
So yes, there is real value to the CWE/SANS Top-25 list. Use it to raise people’s attention. Use it to make change. Just don’t get so hung up on the list that you miss the underlying messages. Sound engineering principles are the foundation that we need to build a strong and reliable infrastructure, and we mustn’t ever lose sight of that.
Huawei’s AI Update: Things Are Moving Faster Than We Think
FEATURE | By Rob Enderle,
December 04, 2020
Keeping Machine Learning Algorithms Honest in the ‘Ethics-First’ Era
ARTIFICIAL INTELLIGENCE | By Guest Author,
November 18, 2020
Key Trends in Chatbots and RPA
FEATURE | By Guest Author,
November 10, 2020
FEATURE | By Samuel Greengard,
November 05, 2020
ARTIFICIAL INTELLIGENCE | By Guest Author,
November 02, 2020
How Intel’s Work With Autonomous Cars Could Redefine General Purpose AI
ARTIFICIAL INTELLIGENCE | By Rob Enderle,
October 29, 2020
Dell Technologies World: Weaving Together Human And Machine Interaction For AI And Robotics
ARTIFICIAL INTELLIGENCE | By Rob Enderle,
October 23, 2020
The Super Moderator, or How IBM Project Debater Could Save Social Media
FEATURE | By Rob Enderle,
October 16, 2020
FEATURE | By Cynthia Harvey,
October 07, 2020
ARTIFICIAL INTELLIGENCE | By Guest Author,
October 05, 2020
CIOs Discuss the Promise of AI and Data Science
FEATURE | By Guest Author,
September 25, 2020
Microsoft Is Building An AI Product That Could Predict The Future
FEATURE | By Rob Enderle,
September 25, 2020
Top 10 Machine Learning Companies 2020
FEATURE | By Cynthia Harvey,
September 22, 2020
NVIDIA and ARM: Massively Changing The AI Landscape
ARTIFICIAL INTELLIGENCE | By Rob Enderle,
September 18, 2020
Continuous Intelligence: Expert Discussion [Video and Podcast]
ARTIFICIAL INTELLIGENCE | By James Maguire,
September 14, 2020
Artificial Intelligence: Governance and Ethics [Video]
ARTIFICIAL INTELLIGENCE | By James Maguire,
September 13, 2020
IBM Watson At The US Open: Showcasing The Power Of A Mature Enterprise-Class AI
FEATURE | By Rob Enderle,
September 11, 2020
Artificial Intelligence: Perception vs. Reality
FEATURE | By James Maguire,
September 09, 2020
Anticipating The Coming Wave Of AI Enhanced PCs
FEATURE | By Rob Enderle,
September 05, 2020
The Critical Nature Of IBM’s NLP (Natural Language Processing) Effort
ARTIFICIAL INTELLIGENCE | By Rob Enderle,
August 14, 2020
Datamation is the leading industry resource for B2B data professionals and technology buyers. Datamation's focus is on providing insight into the latest trends and innovation in AI, data security, big data, and more, along with in-depth product recommendations and comparisons. More than 1.7M users gain insight and guidance from Datamation every year.
Advertise with TechnologyAdvice on Datamation and our other data and technology-focused platforms.
Advertise with Us
Property of TechnologyAdvice.
© 2025 TechnologyAdvice. All Rights Reserved
Advertiser Disclosure: Some of the products that appear on this
site are from companies from which TechnologyAdvice receives
compensation. This compensation may impact how and where products
appear on this site including, for example, the order in which
they appear. TechnologyAdvice does not include all companies
or all types of products available in the marketplace.