Skip to content

Commit 850bd96

Browse files
Add SECURITY.md and notes on PVR (#372)
## Summary Adds a `SECURITY.md` file to the repository and documents best practices for allowing others to report security problems. ## Changes ### Added `SECURITY.md` - Provides guidance on how to report security vulnerabilities - Uses GitHub's Private Vulnerability Reporting (PVR) as the primary reporting method - Includes a direct link to the vulnerability reporting form for ease of use - Retains contact details for general security enquiries ### Updated `practices/securing-repositories.md` Added a new section "Allowing others to report security problems" covering: - Adding a `SECURITY.md` file to repositories - Enabling Security advisories - Enabling Private vulnerability reporting for public repositories - Monitoring and acting on security advisories Also links to this repository's `SECURITY.md` as a working example. ## Why Public repositories should make it easy for security researchers and users to report vulnerabilities privately. GitHub's Private Vulnerability Reporting provides a low-friction, secure channel that doesn't require external reporters to manage email or tokens — they just need a GitHub account. ## Checklist - [x] `SECURITY.md` added to repository root - [x] Private vulnerability reporting enabled in repository settings - [x] Documentation updated with guidance for other teams --------- Co-authored-by: Alex Young <alex.young12@nhs.net>
1 parent 0916f36 commit 850bd96

2 files changed

Lines changed: 34 additions & 0 deletions

File tree

SECURITY.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Security
2+
3+
We take security and the protection of private data extremely seriously. If you believe you have found a vulnerability or other issue which has compromised or could compromise the security of any of our systems or private data managed by our systems, please do not hesitate to contact us using the method outlined below.
4+
5+
## Table of Contents
6+
7+
- [Security](#security)
8+
- [Table of Contents](#table-of-contents)
9+
- [Reporting a vulnerability](#reporting-a-vulnerability)
10+
- [General Security Enquiries](#general-security-enquiries)
11+
12+
## Reporting a vulnerability
13+
14+
If you believe you have found a security issue in this repository, please report it using GitHub's private vulnerability reporting:
15+
16+
1. [Report a vulnerability](https://github.com/NHSDigital/software-engineering-quality-framework/security/advisories/new)
17+
2. Provide details of the issue and steps to reproduce
18+
19+
This creates a private channel for discussion and allows us to coordinate a fix before any public disclosure.
20+
21+
## General Security Enquiries
22+
23+
If you have general enquiries regarding our cybersecurity, please reach out to us at [cybersecurity@nhs.net](cybersecurity@nhs.net)

practices/securing-repositories.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
- [Teams setup](#teams-setup)
1010
- [Code security](#code-security)
1111
- [Branch protection](#branch-protection)
12+
- [Allowing others to report security problems](#allowing-others-to-report-security-problems)
1213

1314
This guide lays out security best practice for GitHub repositories. This set of practices is a minimum (nothing stops you from doing more), and they should be implemented alongside other relevant ones that contribute to [security](security.md) as a whole. These are discussed in more detail as part of the [Quality checks](../quality-checks.md).
1415

@@ -64,3 +65,13 @@ Depending on your use case, you may want to create additional teams (e.g. teams
6465
- Require <!-- markdown-link-check-disable -->[signed commits](https://docs.github.com/en/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-signed-commits)<!-- markdown-link-check-enable -->, and, accordingly, check that commits are verified before merging. Git treats authentication and identity separately - any authenticated user can impersonate another developer when committing code. This means that even if a junior account is compromised it could have significant consequences, for example impersonating the lead developer in the hope of an easy merge. Only by requiring signing can identity truly be verified. [Setup Guides](guides/commit-signing.md) for macOS, Windows, GitHub Actions, and AWS CodePipeline.
6566
- Invalidate existing reviews when new commits are pushed (`Dismiss stale pull request approvals when new commits are pushed` option).
6667
- Require adequate automated status checks prior to merging. This should always include checking that branches are up to date.
68+
69+
## Allowing others to report security problems
70+
71+
- Provide a SECURITY.md file describing how other people should report any security issues they discover in your repository.
72+
- Enable Security advisories in your repository as the preferred means of other people reporting security issues.
73+
- If your repository is public, also enable [Private vulnerability reporting](https://docs.github.com/en/code-security/how-tos/report-and-fix-vulnerabilities/privately-reporting-a-security-vulnerability) so that external users can report issues privately.
74+
- Note: the "Enable vulnerability reporting" button in the "Security and Quality" tab doesn't actually enable this setting: it just takes you to the "Settings" tab where the real "Enable" button is.
75+
- Ensure that you monitor Security advisories and act on them promptly.
76+
77+
For an example, please see this repository's [SECURITY.md](../SECURITY.md).

0 commit comments

Comments
 (0)