@@ -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
8583Version 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
120133team 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
164178is added it goes through a comprehensive review process that is detailed in
165179the [ 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
190183When 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
238223All 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
261246We deeply appreciate any effort to discover and disclose security vulnerabilities responsibly.
262247
263- ## Vector CI
248+ #### Vector CI
264249
265250If you would like to report a Vector CI vulnerability or have any security concerns with other Datadog products,
266251please e-mail security@datadoghq.com .
@@ -270,9 +255,9 @@ and verify the vulnerability before taking the necessary steps to fix it. After
270255our initial reply to your disclosure, which should be directly after receiving
271256it, 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
276261potentially be exploited by malicious actors who already have access to the user’s infrastructure. We encourage responsible disclosure
277262via 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