Skip to content

Commit f2b7e4f

Browse files
authored
Vulnerability management process (#7591)
* feat(handbook): add best practices and EOL mngmt New info about the process for EU law compliance: - how to choose an Open Source software - how to create a secure container - how to manage software EOL * feat(handbook): extend vulnerability management process
1 parent 093f46b commit f2b7e4f

File tree

2 files changed

+28
-7
lines changed

2 files changed

+28
-7
lines changed

handbook/best_practices.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,4 +150,4 @@ Access ``Settings`` -> ``Advanced Security`` then select the following options:
150150
- ``Dependabot version updates``: disabled
151151
- ``Dependabot on Actions runners``: enabled
152152
- ``Code scanning``: disabled, feel free to enable it if you want to use it
153-
- ``Secret protection``: disabled, feel free to enable it if you want to use it
153+
- ``Secret protection``: disabled, feel free to enable it if you want to use it

handbook/security.md

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,10 @@ And Annex 1, Part 2:
110110

111111
> (5) put in place and enforce a policy on coordinated vulnerability disclosure;
112112
113-
When creating new containers, it's important to minimize the attack surface by following the [container best practices](best_practices.md#creating-secure-containers).
114113

115-
The following guidelines are recommended for managing vulnerabilities on all products.
114+
Vulnerabilities can usually come from different sources, such as:
115+
- a vulnerability reported by a user or third-party, see [Report vulnerabilities](#report-vulnerabilities)
116+
- a vulnerability reported by automated tools part of the regular security scans, see [Vulnerability process](#vulnerability-process)
116117

117118
### Report vulnerabilities
118119

@@ -124,15 +125,15 @@ or by using GitHub dedicated security report tools:
124125

125126
Please, **do not report security vulnerabilities as GitHub issues**.
126127

127-
### Handling security vulnerabilities
128+
#### Handling security vulnerabilities
128129

129130
The security team will evaluate the report and will contact the reporter to discuss the issue.
130131
If the issue is confirmed, the handling process depends on the type of software:
131132

132133
- software produced and maintained by Nethesis
133134
- software not produced by Nethesis (upstream projects)
134135

135-
#### Case 1: Software produced and maintained by Nethesis
136+
##### Case 1: Software produced and maintained by Nethesis
136137

137138
For software developed and maintained by Nethesis, the following process applies:
138139

@@ -145,7 +146,7 @@ For software developed and maintained by Nethesis, the following process applies
145146

146147
The disclosure will be done by publishing the security advisory on GitHub and, if necessary, updating the community channels.
147148

148-
#### Case 2: Software not produced by Nethesis (upstream projects)
149+
##### Case 2: Software not produced by Nethesis (upstream projects)
149150

150151
For software that is not developed by Nethesis but is part of an upstream project:
151152

@@ -156,13 +157,33 @@ For software that is not developed by Nethesis but is part of an upstream projec
156157

157158
In both cases, the priority is to address vulnerabilities promptly and ensure the security of users.
158159

160+
## Vulnerability management workflow
161+
162+
The vulnerability management workflow is a structured approach to managing security vulnerabilities in software. It involves several key steps:
163+
164+
1. **Focus on released products**: Since builds occur in a protected environment, the primary focus is on vulnerabilities in released products.
165+
166+
2. **Automated identification**: The identification process is automated. Every night, the [SBOM Uploader](https://github.com/NethServer/nh-sbom/actions/workflows/sbom-uploader.yml) GitHub Action scans a list of configured repositories, retrieve the SBOMs, and uploads them to [Dependency Track](https://dependencytrack.org/). Nethesis maintains its own instance of Dependency Track at [https://dependecytrack.nethesis.it](https://dependecytrack.nethesis.it). Access to this platform is restricted to Nethesis employees; any employee can request an account for access.
167+
168+
3. **Vulnerability analysis**: Each project manager must allocate a minimum amount of time within the development process to analyze discovered vulnerabilities, focusing on critical and high-priority issues. It is recommended to allocate enough time every month for this task, including time for handling [EOL](#handling-end-of-life-eol).
169+
170+
4. **Monthly review meetings**: A monthly meeting is held where the project manager, along with developers, reviews the most critical vulnerabilities. Developers are responsible for determining whether these vulnerabilities are exploitable. If exploitable, the following steps are taken:
171+
- Attempt to update or fix the vulnerability.
172+
- If updating is not possible, document mitigation procedures thoroughly.
173+
174+
5. **Public disclosure**: It is the responsibility of the project manager to make this information public to inform users. Preferred channels for disclosure include:
175+
- [community.nethserver.org](https://community.nethserver.org)
176+
- [partner.nethesis.it](https://partner.nethesis.it)
177+
178+
6. **Critical vulnerabilities during development**: If critical vulnerabilities emerge during development, such as through GitHub advisories, the [Report vulnerabilities](#report-vulnerabilities) process is applied immediately.
179+
159180
## Handling End-of-Life (EOL)
160181

161182
Managing End-of-Life (EOL) for software, whether containerized or not, is a critical aspect of maintaining security and functionality. Below are some best practices to handle EOL effectively:
162183

163184
1. **Understand EOL does not imply vulnerabilities**: Software reaching EOL does not automatically mean it has vulnerabilities. However, it does mean that updates and support from the original developers will cease, increasing the risk over time.
164185

165-
2. **Best effort principle**: During the life of the software, developers attempt to update EOL versions when feasible. However, this is not always possible, especially for software relying on outdated libraries that can cause compatibility issues if updated.
186+
2. **Best effort principle**: During the maintenance phase, developers attempt to update EOL versions when feasible. However, this is not always possible, especially for software relying on outdated libraries that can cause compatibility issues if updated.
166187

167188
3. **Commitment to critical vulnerabilities**: Developers commit to addressing critical and exploitable vulnerabilities, regardless of EOL status. If updates are not possible, mitigations must be documented (see below).
168189

0 commit comments

Comments
 (0)