-
Notifications
You must be signed in to change notification settings - Fork 6.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make Coverity Static Analysis report a Requirement for Project Release #64591
Comments
Recommend a clear line item in the release checklist to affirm static analysis run has been run. Whether we do it on a periodic (weekly) basis or pre final release doesn't matter as much as long as the release team has a checkbox to affirm it was done as part of the release collateral. |
AIs @nashif - it would be helpful to extract the types of issues we scan for and to also give tips on how to fix issues. We should also provide guidelines for marking false positives, or code that intentionally violates static analysis scans. @ceolin - last release had many buffer overflows that were caught by coverity, but not monitored. |
Moving to on-hold until @ceolin has created documentation to review. |
Sets static analysis an indispensable requirement for our project releases. Static analysis is not merely a tool but a proactive strategy to unearth and address potential issues in the early stages of development, long before they mature into critical vulnerabilities. By scrutinizing code at rest, static analysis unveils latent defects and potential security risks, thus bolstering the resilience of our software against future threats. Fixes: zephyrproject-rtos#64591 Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Sets static analysis an indispensable requirement for our project releases. Static analysis is not merely a tool but a proactive strategy to unearth and address potential issues in the early stages of development, long before they mature into critical vulnerabilities. By scrutinizing code at rest, static analysis unveils latent defects and potential security risks, thus bolstering the resilience of our software against future threats. Fixes: zephyrproject-rtos#64591 Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
@keith-zephyr I have created the pr, I tried to organize the information here around different sections in our documentation. Some of the items proposed here were already part of the documentation and didn't need to be added. |
Process 2023-11-15 |
Sets static analysis an indispensable requirement for our project releases. Static analysis is not merely a tool but a proactive strategy to unearth and address potential issues in the early stages of development, long before they mature into critical vulnerabilities. By scrutinizing code at rest, static analysis unveils latent defects and potential security risks, thus bolstering the resilience of our software against future threats. Fixes: zephyrproject-rtos#64591 Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Sets static analysis an indispensable requirement for our project releases. Static analysis is not merely a tool but a proactive strategy to unearth and address potential issues in the early stages of development, long before they mature into critical vulnerabilities. By scrutinizing code at rest, static analysis unveils latent defects and potential security risks, thus bolstering the resilience of our software against future threats. Fixes: zephyrproject-rtos#64591 Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Sets static analysis an indispensable requirement for our project releases. Static analysis is not merely a tool but a proactive strategy to unearth and address potential issues in the early stages of development, long before they mature into critical vulnerabilities. By scrutinizing code at rest, static analysis unveils latent defects and potential security risks, thus bolstering the resilience of our software against future threats. Fixes: zephyrproject-rtos#64591 Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Sets static analysis an indispensable requirement for our project releases. Static analysis is not merely a tool but a proactive strategy to unearth and address potential issues in the early stages of development, long before they mature into critical vulnerabilities. By scrutinizing code at rest, static analysis unveils latent defects and potential security risks, thus bolstering the resilience of our software against future threats. Fixes: zephyrproject-rtos#64591 Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Sets static analysis an indispensable requirement for our project releases. Static analysis is not merely a tool but a proactive strategy to unearth and address potential issues in the early stages of development, long before they mature into critical vulnerabilities. By scrutinizing code at rest, static analysis unveils latent defects and potential security risks, thus bolstering the resilience of our software against future threats. Fixes: zephyrproject-rtos#64591 Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Sets static analysis an indispensable requirement for our project releases. Static analysis is not merely a tool but a proactive strategy to unearth and address potential issues in the early stages of development, long before they mature into critical vulnerabilities. By scrutinizing code at rest, static analysis unveils latent defects and potential security risks, thus bolstering the resilience of our software against future threats. Fixes: zephyrproject-rtos#64591 Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Sets static analysis an indispensable requirement for our project releases. Static analysis is not merely a tool but a proactive strategy to unearth and address potential issues in the early stages of development, long before they mature into critical vulnerabilities. By scrutinizing code at rest, static analysis unveils latent defects and potential security risks, thus bolstering the resilience of our software against future threats. Fixes: zephyrproject-rtos#64591 Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Sets static analysis an indispensable requirement for our project releases. Static analysis is not merely a tool but a proactive strategy to unearth and address potential issues in the early stages of development, long before they mature into critical vulnerabilities. By scrutinizing code at rest, static analysis unveils latent defects and potential security risks, thus bolstering the resilience of our software against future threats. Fixes: #64591 Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Sets static analysis an indispensable requirement for our project releases. Static analysis is not merely a tool but a proactive strategy to unearth and address potential issues in the early stages of development, long before they mature into critical vulnerabilities. By scrutinizing code at rest, static analysis unveils latent defects and potential security risks, thus bolstering the resilience of our software against future threats. Fixes: zephyrproject-rtos#64591 Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Introduction
This proposal advocates for the integration of Coverity static
analysis as an indispensable requirement for our project
releases. Static analysis is not merely a tool but a proactive
strategy to unearth and address potential issues in the early stages
of development, long before they mature into critical
vulnerabilities. By scrutinizing code at rest, static analysis unveils
latent defects and potential security risks, thus bolstering the
resilience of our software against future threats.
Objective
The primary objective of this proposal is to make static analysis
results a fundamental requirement for project releases, with the
following key goals:
Zero High Critical Issues: Ensure that project releases do not
contain any high-criticality issues that could potentially
compromise the functionality, security, or reliability of our
software. High-criticality issues represent vulnerabilities that,
if left unresolved, could have severe consequences.
Mandate the inclusion of a static analysis report as
part of the release artifacts. This report will provide
a transparent and detailed overview of the codebase's health,
highlighting any identified issues, their severity, and the
corresponding corrective actions taken, or planned, to address
them.
Benefits
Enhanced Code Quality: Discuss how static analysis can help identify
and rectify coding issues, leading to higher code quality and reduced
defects.
By providing a static analysis report as a collateral artifact of our
project releases, we empower downstream users who may need to perform
their own static analysis when integrating our software into their
products. This report serves as a valuable resource for downstream
teams, allowing them to gain insights into the code quality, security,
and potential issues within our codebase. It simplifies the process of
identifying and addressing vulnerabilities, thus expediting their
product development cycles.
The static analysis report acts as a reference point, enabling
downstream users to build on the triage data and further enhance the
security and reliability of their own projects. This collaborative
approach not only strengthens the overall software ecosystem but also
fosters goodwill and trust among our user community, reaffirming our
commitment to delivering quality software.
Implementation Plan
Run Coverity Bi-Weekly
We will establish a regular schedule for running Coverity static
analysis bi-weekly. This consistent, recurring process will allow us
to continuously monitor the codebase, ensuring that issues are
identified and addressed proactively.
Generate GitHub Issues for Coverity Issues
Automatically generate GitHub issues for any issues detected by
Coverity. These issues will have the same (or equivalent)
priority initially defined by Coverity.
To ensure accountability and efficient issue resolution, we will
automatically assign each GitHub issue to the respective code owner
who is responsible for the code in question.
Code Owners (Developers) will be responsible for either
fixing or triaging the assigned issues. When an issue is assigned, the
code owner is expected to take ownership of the issue and determine
whether it requires a fix or is a false positive.
If the issue is a false positive, is the code owner responsability
triage it in Coverity. They have to:
Establishing a Coverity Audit Group
As part of our implementation plan, we will create a dedicated team
comprising members with expertise in static analysis, code quality,
and software security. The primary goal of this group is to ensure the
effectiveness of the static analysis process and verify that
identified issues are properly triaged and resolved in a timely
manner.
Risks and Mitigation:
One potential risk associated with implementing the static analysis
requirement is the possibility that some issues may be ignored or fail
to promptly be addressed. This could result from various factors,
including high workloads, competing priorities, or a lack of awareness
regarding the significance of the issues.
To mitigate the risk of ignored issues, we can implement a
policy for addressing code with unresolved static analysis issues. In
cases where code owners consistently neglect assigned issues and fail
to take corrective actions within defined timeframes, and if these
issues are deemed critical to the project's integrity and security,
the following mitigation strategy will be applied:
Code Removal Evaluation
The project management and technical leads
will conduct an evaluation of the affected code to determine its
criticality and importance to the project. This assessment will
consider factors such as the severity of the unresolved issues, the
code's role in the software, and the availability of maintainers or
other team members with expertise in that area.
Lack of Maintainership
If it is found that the code lacks a dedicated maintainer or responsible team member,
and it is deemed infeasible to reassign ownership or address the issues within a reasonable
timeframe, the project management will make the decision to remove the
code or module from the project.
Benefits of Code Removal Due to Lack of Maintainership
This mitigation strategy not only addresses the risk of ignored issues
but also promotes accountability and proactive issue resolution within
the development team. It ensures that code with unresolved critical
issues does not compromise the security and stability of the
project. By documenting and evaluating the code's removal, the team
can minimize potential disruptions and maintain project integrity
while mitigating the risks associated with unaddressed
vulnerabilities.
Timeline
Make this requirement part of the next release.
Resource Allocation
The number of builds we are planning to execute using Coverity is
covered by the license (or agreement) for open source projects.
Therefore, there are no additional costs associated with
the usage of Coverity for static analysis in this context.
The text was updated successfully, but these errors were encountered: