Skip to content

Commit 6a50bd5

Browse files
chore(internal docs): update security policy structure and content (#25074)
* docs(security): update security policy structure and content * Re-add meta/review schedule * Add whitespace * Revert changes to User Privileges * Finish CI/CD paragraph
1 parent d906ba1 commit 6a50bd5

File tree

1 file changed

+43
-59
lines changed

1 file changed

+43
-59
lines changed

SECURITY.md

Lines changed: 43 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@ possible on our security efforts.
1919
- [Open Source](#open-source)
2020
- [Workflow](#workflow)
2121
- [Version Control](#version-control)
22-
- [Git](#git)
22+
- [Pull Requests](#pull-requests)
23+
- [Reviews & Approvals](#reviews--approvals)
2324
- [Signed Commits](#signed-commits)
2425
- [Protected Branches](#protected-branches)
26+
- [Merge Policies](#merge-policies)
2527
- [Personnel](#personnel)
2628
- [Education](#education)
2729
- [Policies](#policies)
@@ -34,26 +36,22 @@ possible on our security efforts.
3436
- [Unsafe Code](#unsafe-code)
3537
- [User Privileges](#user-privileges)
3638
- [Dependencies](#dependencies)
37-
- [Change Control](#change-control)
38-
- [Pull Requests](#pull-requests)
39-
- [Reviews & Approvals](#reviews--approvals)
40-
- [Merge Policies](#merge-policies)
4139
- [Automated Checks](#automated-checks)
4240
- [Vulnerability Scans & Security Advisories](#vulnerability-scans--security-advisories)
4341
- [Vulnerability Remediation](#vulnerability-remediation)
44-
- [Fuzz Testing](#fuzz-testing)
4542
- [Infrastructure](#infrastructure)
4643
- [CI/CD](#cicd)
47-
- [Runtime Isolation](#runtime-isolation)
4844
- [Network Security](#network-security)
49-
- [Penetration Testing](#penetration-testing)
5045
- [Protocols](#protocols)
5146
- [Release Artifacts & Channels](#release-artifacts--channels)
5247
- [Asset Audit Logging](#asset-audit-logging)
5348
- [Asset Signatures & Checksums](#asset-signatures--checksums)
49+
- [Vulnerability Reporting](#vulnerability-reporting)
5450
- [Meta](#meta)
5551
- [Review Schedule](#review-schedule)
5652
- [Vulnerability Reporting](#vulnerability-reporting)
53+
- [Vector CI](#vector-ci)
54+
- [Other reports](#other-reports)
5755

5856
## Project Structure
5957

@@ -84,10 +82,19 @@ are all publicly available.
8482

8583
Version control ensures that all code changes are audited and authentic.
8684

87-
#### Git
85+
Vector uses [Git][urls.git] to ensure that changes are auditable and traceable.
86+
87+
#### Pull Requests
88+
89+
All changes to Vector must go through a pull request review process.
90+
91+
#### Reviews & Approvals
92+
93+
All pull requests must be reviewed by at least one Vector team member. The
94+
review process takes into account many factors, all of which are detailed in
95+
our [Reviewing guide](REVIEWING.md). In exceptional circumstances, this
96+
approval can be retroactive.
8897

89-
Vector leverages the [Git][urls.git] version-control system. This ensures all
90-
changes are audited and traceable.
9198

9299
#### Signed Commits
93100

@@ -107,6 +114,12 @@ are [protected][urls.github_protected_branches]. The exact requirements are:
107114
- Signed commits are required.
108115
- Administrators are included in these checks.
109116

117+
#### Merge Policies
118+
119+
Vector requires pull requests to pass all [automated checks](#automated-checks).
120+
Once passed, the pull request must be squashed and merged. This creates a clean
121+
linear history with a Vector team member's co-sign.
122+
110123
## Personnel
111124

112125
### Education
@@ -116,7 +129,7 @@ the [contributing](CONTRIBUTING.md) and [reviewing](REVIEWING.md) documents.
116129

117130
### Policies
118131

119-
Vector maintains this security policy. Changed are communicated to all Vector
132+
Vector maintains this security policy. Changes are communicated to all Vector
120133
team members.
121134

122135
### Two-factor Authentication
@@ -150,8 +163,9 @@ catch many common sources of vulnerabilities at compile time.
150163

151164
#### Unsafe Code
152165

153-
Vector does not allow the use of unsafe code except in circumstances where it
154-
is required, such as dealing with CFFI.
166+
Vector uses unsafe code sparingly. Unsafe is sometimes required, such as dealing
167+
with CFFI. We may occasionally also use unsafe code for performance reasons but
168+
those changes are kept to a minimum.
155169

156170
#### User Privileges
157171

@@ -164,27 +178,6 @@ Vector aims to reduce the number of dependencies it relies on. If a dependency
164178
is added it goes through a comprehensive review process that is detailed in
165179
the [Reviewing guide](REVIEWING.md#dependencies).
166180

167-
### Change Control
168-
169-
As noted above Vector uses the Git version control system on GitHub.
170-
171-
#### Pull Requests
172-
173-
All changes to Vector must go through a pull request review process.
174-
175-
#### Reviews & Approvals
176-
177-
All pull requests must be reviewed by at least one Vector team member. The
178-
review process takes into account many factors, all of which are detailed in
179-
our [Reviewing guide](REVIEWING.md). In exceptional circumstances, this
180-
approval can be retroactive.
181-
182-
#### Merge Policies
183-
184-
Vector requires pull requests to pass all [automated checks](#automated-checks).
185-
Once passed, the pull request must be squashed and merged. This creates a clean
186-
linear history with a Vector team member's co-sign.
187-
188181
### Automated Checks
189182

190183
When possible, we'll create automated checks to enforce security policies.
@@ -195,25 +188,21 @@ When possible, we'll create automated checks to enforce security policies.
195188
is part of the [Rust Security advisory database][urls.rust_sec]. The configuration, and a
196189
list of currently accepted advisories, are maintained in the
197190
[Cargo Deny configuration][urls.cargo_deny_configuration]. The check is run
198-
[on every incoming PR][urls.cargo_deny_schedule] to the Vector project.
191+
on every PR to the Vector project.
199192
- Vector implements [Dependabot][urls.dependabot] which performs automated
200193
upgrades on dependencies and [alerts][urls.dependabot_alerts] about any
201194
dependency-related security vulnerabilities.
202195

203196
#### Vulnerability Remediation
204197

205-
If the advisory check fails then the PR will not be merged. We review each advisory to
206-
determine what action to take. If possible, we update the dependency to a version
207-
where the vulnerability has been addressed. If this isn't possible we either record
208-
the acceptance of the vulnerability or replace the dependency. If we accept the
209-
vulnerability we open a ticket to track its remediation, generally awaiting a fix
210-
upstream. If the risk is deemed unacceptable we revisit the code and dependency
211-
to find a more secure alternative.
212-
213-
#### Fuzz Testing
214-
215-
Vector implements automated fuzz testing to probe our code for other sources
216-
of potential vulnerabilities.
198+
If the advisory check fails due to changes made in the PR, it will not be
199+
merged. We review each advisory to determine what action to take. Whenever
200+
possible, we update the dependency to a version where the vulnerability has been
201+
addressed. If this isn't possible we either record the acceptance of the
202+
vulnerability or replace the dependency. If we accept the vulnerability we open
203+
a ticket to track its remediation, generally awaiting a fix upstream. If the
204+
risk is deemed unacceptable we revisit the code and dependency to find a more
205+
secure alternative.
217206

218207
## Infrastructure
219208

@@ -223,16 +212,12 @@ Vector's infrastructure and how we secure them.
223212

224213
### CI/CD
225214

226-
#### Runtime Isolation
227-
228-
All builds run in an isolated sandbox that is destroyed after each use.
215+
All builds run in GitHub Actions runners which are ephemeral and don't maintain
216+
state after the job is completed. We ensure we are following [OpenSSF best
217+
practices](https://bestpractices.dev/) to minimize CI risk and exposure.
229218

230219
### Network Security
231220

232-
#### Penetration Testing
233-
234-
Vector performs quarterly pen tests on vector.dev.
235-
236221
#### Protocols
237222

238223
All network traffic is secured via TLS and SSH. This includes checking out
@@ -260,7 +245,7 @@ Vector reviews this policy and all user access levels on a quarterly basis.
260245

261246
We deeply appreciate any effort to discover and disclose security vulnerabilities responsibly.
262247

263-
## Vector CI
248+
#### Vector CI
264249

265250
If you would like to report a Vector CI vulnerability or have any security concerns with other Datadog products,
266251
please e-mail security@datadoghq.com.
@@ -270,9 +255,9 @@ and verify the vulnerability before taking the necessary steps to fix it. After
270255
our initial reply to your disclosure, which should be directly after receiving
271256
it, we will periodically update you with the status of the fix.
272257

273-
## Other reports
258+
#### Other reports
274259

275-
Due to the nature of a open-source project, Vector deployments are fully managed by users. Thus vulnerabilities in Vector deployments could
260+
Due to the nature of an open-source project, Vector deployments are fully managed by users. Thus vulnerabilities in Vector deployments could
276261
potentially be exploited by malicious actors who already have access to the user’s infrastructure. We encourage responsible disclosure
277262
via opening an [open an issue][urls.new_security_report] so that risks can be properly assessed and mitigated.
278263

@@ -286,7 +271,6 @@ following when reporting:
286271

287272
[urls.cargo_deny]: https://github.com/EmbarkStudios/cargo-deny
288273
[urls.cargo_deny_configuration]: https://github.com/vectordotdev/vector/blob/master/deny.toml
289-
[urls.cargo_deny_schedule]: https://github.com/vectordotdev/vector/blob/master/.github/workflows/test.yml#L267
290274
[urls.dependabot]: https://github.com/marketplace/dependabot-preview
291275
[urls.dependabot_alerts]: https://github.com/vectordotdev/vector/network/alerts
292276
[urls.git]: https://git-scm.com/

0 commit comments

Comments
 (0)