You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* 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
Copy file name to clipboardExpand all lines: handbook/security.md
+27-6Lines changed: 27 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -110,9 +110,10 @@ And Annex 1, Part 2:
110
110
111
111
> (5) put in place and enforce a policy on coordinated vulnerability disclosure;
112
112
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).
114
113
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)
116
117
117
118
### Report vulnerabilities
118
119
@@ -124,15 +125,15 @@ or by using GitHub dedicated security report tools:
124
125
125
126
Please, **do not report security vulnerabilities as GitHub issues**.
126
127
127
-
### Handling security vulnerabilities
128
+
####Handling security vulnerabilities
128
129
129
130
The security team will evaluate the report and will contact the reporter to discuss the issue.
130
131
If the issue is confirmed, the handling process depends on the type of software:
131
132
132
133
- software produced and maintained by Nethesis
133
134
- software not produced by Nethesis (upstream projects)
134
135
135
-
#### Case 1: Software produced and maintained by Nethesis
136
+
#####Case 1: Software produced and maintained by Nethesis
136
137
137
138
For software developed and maintained by Nethesis, the following process applies:
138
139
@@ -145,7 +146,7 @@ For software developed and maintained by Nethesis, the following process applies
145
146
146
147
The disclosure will be done by publishing the security advisory on GitHub and, if necessary, updating the community channels.
147
148
148
-
#### Case 2: Software not produced by Nethesis (upstream projects)
149
+
#####Case 2: Software not produced by Nethesis (upstream projects)
149
150
150
151
For software that is not developed by Nethesis but is part of an upstream project:
151
152
@@ -156,13 +157,33 @@ For software that is not developed by Nethesis but is part of an upstream projec
156
157
157
158
In both cases, the priority is to address vulnerabilities promptly and ensure the security of users.
158
159
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:
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
+
159
180
## Handling End-of-Life (EOL)
160
181
161
182
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:
162
183
163
184
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.
164
185
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.
166
187
167
188
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).
0 commit comments