Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Better harness against secrets leakages.
Changes
Rather than scrubbing secrets every time we write a file (and exposing ourself to forget to call this when logging a new file), this PR instrument the python
open
method to scrub any written data, picking all the known environment variable names that store secrets.It will offer a secure-by-design solution for any write operations (including
logging
method)Though, it's not a silver bullet, here a non exhaustive list on how to continue leaking secrets, any idea to address those is welcome :
"
, it will be encoded, defeating thereplace
methodassert os.environ is False
-> will fail, and will print in stdout the value ofos.environ
print(os.environ)
in a failed test will also printos.environ
os.environ
(though,.env
file is supported)scrubber.py
, and this subprocess write a file with the leaked secret. For instance, read/write volumes mounted in the docker container ...Workflow
codeowners
file quickly.🚀 Once your PR is reviewed, you can merge it!
🛟 #apm-shared-testing 🛟
Reviewer checklist
[<language>]
, double-check that only<language>
is impacted by the changebuild-XXX-image
label is present