Electronicdesign 19611 Cwecqe Promo
Electronicdesign 19611 Cwecqe Promo
Electronicdesign 19611 Cwecqe Promo
Electronicdesign 19611 Cwecqe Promo
Electronicdesign 19611 Cwecqe Promo

What’s the Difference Between CWE and CQE?

Nov. 22, 2017
The Common Weakness Enumeration (CWE) and the Common Quality Enumeration (CQE) represent efforts for identifying and classifying software-security issues.

Given the increased interest in security and safety development, it’s surprising how few know about the Common Weakness Enumeration (CWE) and the Common Quality Enumeration (CQE). Both are industry projects hosted by MITRE.

CWE is a community-developed list of common software security weaknesses like buffer overflow. It’s designed to be a baseline for “weakness identification, mitigation, and prevention efforts.”

“The Common Quality Enumeration (CQE) project is developing a "lingua-franca" of software quality issues aimed at getting tool creators to adopt a common identification system—allowing them to define quality issues easily and ultimately create better software.”

The two are complementary and every programmer should be aware of their contents.

Common Weakness Enumeration (CWE)

All software developers should be take a look at CWE, as it serves as a common language for describing software security weaknesses in architecture, design, or code. It can also be used to measure software security tools from programming languages to static-analysis tools that target the weaknesses. It also addresses weaknesses in identification, mitigation, and prevention efforts.

Some common software weaknesses enumerated by CWE include buffer overflows, structure and validity problems, common special element manipulations, channel and path errors, handler errors, user interface errors, pathname traversal and equivalence errors, authentication errors, resource-management errors, insufficient verification of data, code evaluation and injection, and randomness and predictability.

CWE is based on work that MITRE began in 1999 called the Common Vulnerabilities and Exposures (CVE). The CVE list was a preliminary classification and categorization of vulnerabilities, attacks, faults, and other concepts to help define common software weaknesses.

The CWE entries like this buffer overflow includes standard sections like the description, relationship links to other entries, applicable platforms like C and C++, common consequences, examples and mitigations.

The CWE List is numbered and detailed. For example, CWE-121 is Stack-based Buffer Overflow (see figure). A variety of other buffer overflow entries are in the mix as well. Included are a description, relationship links to other entries, applicable platforms like C and C++, common consequences, examples, and mitigations.

Quite a few items are listed, so there are different views, or collections, that provide more targeted lists, such as the one for C applications. This is a list of 79 items, although others can be applicable to C applications. This list includes the primary ones, and has things like buffer overflows, conversion errors, and pointer issues.

Some languages like Ada, SPARK and Rust address many of the items in the list, while tools such as static- and dynamic-analysis tools can be used as well.

Common Quality Enumeration (CQE)

Programmers want to deliver quality code, but what does that really mean? Part of the challenge is coming up with a common set of descriptions and then enumerating and addressing details. CQE is a work in progress.

MITRE's John Marien notes, “The Common Weakness Enumeration (CWE) lists quality issues that can be exploited. One or more weaknesses can create a vulnerability. Yet beyond these security-relevant weaknesses, there's a large set of quality issues not covered by CWE.”

A large number of software tools and programming languages are designed to improve code quality. No one language or tool addresses all quality issues or application areas. Many overlapping tools make the discussion of quality difficult. Coming up with a common discussion language and then collecting information about quality issues and solutions could be used for a competitive advantage.

"MITRE is helming the CQE project because automated-tool creators trust us with proprietary data they would not share with each other," says Marien. "They know we won't use it for a competitive advantage."

Hopefully the CQE lingua-franca will be widely adopted. This could not come too soon. CWE is useful now, and CQE is on its way.

Sponsored Recommendations

Board-Mount DC/DC Converters in Medical Applications

March 27, 2024
AC/DC or board-mount DC/DC converters provide power for medical devices. This article explains why isolation might be needed and which safety standards apply.

Use Rugged Multiband Antennas to Solve the Mobile Connectivity Challenge

March 27, 2024
Selecting and using antennas for mobile applications requires attention to electrical, mechanical, and environmental characteristics: TE modules can help.

Out-of-the-box Cellular and Wi-Fi connectivity with AWS IoT ExpressLink

March 27, 2024
This demo shows how to enroll LTE-M and Wi-Fi evaluation boards with AWS IoT Core, set up a Connected Health Solution as well as AWS AT commands and AWS IoT ExpressLink security...

How to Quickly Leverage Bluetooth AoA and AoD for Indoor Logistics Tracking

March 27, 2024
Real-time asset tracking is an important aspect of Industry 4.0. Various technologies are available for deploying Real-Time Location.

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!