Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VAULT-32206: verify audit log and systemd journal secret integrity #28932

Merged
merged 4 commits into from
Nov 22, 2024

Conversation

ryancragun
Copy link
Collaborator

Description

In our effort to ensure that no unhashed secret values are ever present in Vault unauthenticated output streams, we now utilize Vault Radars scanning capabilities to look for both known and unknown secret values in both the Vault audit log and it's service log, the systemd journal. We utilize Radar's kvv2 index scanning feature to scan for known kvv2 secret values in addition to things that look like sensitive credentials.

As part of out integration we also move away from using Github secrets in the enterprise context and instead utilize values in the hosted vault instances.

This has been tested against versions listed in VAULT-30557 and properly detects token values.

TODO: We'll need to remove those as possible initial version targets, or perhaps skip the verification step using a semver constaint.

TODO only if you're a HashiCorp employee

  • Backport Labels: If this fix needs to be backported, use the appropriate backport/ label that matches the desired release branch. Note that in the CE repo, the latest release branch will look like backport/x.x.x, but older release branches will be backport/ent/x.x.x+ent.
    • LTS: If this fixes a critical security vulnerability or severity 1 bug, it will also need to be backported to the current LTS versions of Vault. To ensure this, use all available enterprise labels.
  • ENT Breakage: If this PR either 1) removes a public function OR 2) changes the signature
    of a public function, even if that change is in a CE file, double check that
    applying the patch for this PR to the ENT repo and running tests doesn't
    break any tests. Sometimes ENT only tests rely on public functions in CE
    files.
  • Jira: If this change has an associated Jira, it's referenced either
    in the PR description, commit message, or branch name.
  • RFC: If this change has an associated RFC, please link it in the description.
  • ENT PR: If this change has an associated ENT PR, please link it in the
    description. Also, make sure the changelog is in this PR, not in your ENT PR.

@ryancragun ryancragun added pr/no-changelog pr/no-milestone backport/ent/1.16.x+ent Changes are backported to 1.16.x+ent backport/1.18.x backport/ent/1.17.x+ent Changes are backported to 1.17.x+ent labels Nov 15, 2024
@ryancragun ryancragun requested a review from a team as a code owner November 15, 2024 22:01
@github-actions github-actions bot added the hashicorp-contributed-pr If the PR is HashiCorp (i.e. not-community) contributed label Nov 15, 2024
Copy link

github-actions bot commented Nov 15, 2024

Build Results:
All builds succeeded! ✅

Copy link

CI Results:
All Go tests succeeded! ✅

@ryancragun
Copy link
Collaborator Author

Ent test of changes looks good: https://github.com/hashicorp/vault-enterprise/pull/7008

Integrate the newly created log scanning into the CI pipeline. As part
of adding our new secrets I also took the time to migrate our enterprise
secrets to use the hosted Vault instance.

Signed-off-by: Ryan Cragun <[email protected]>
@ryancragun ryancragun changed the title VAULT-32206: radar scan vault's audit log and systemd journal VAULT-32206: verify audit log and systemd journal secret integrity Nov 22, 2024
@ryancragun ryancragun merged commit 3b31b3e into main Nov 22, 2024
95 checks passed
@ryancragun ryancragun deleted the vault-32208 branch November 22, 2024 18:14
Monkeychip pushed a commit that referenced this pull request Nov 27, 2024
…28932)

Verify vault secret integrity in unauthenticated I/O streams (audit log, STDOUT/STDERR via the systemd journal) by scanning the text with Vault Radar. We search for both known and unknown secrets by using an index of KVV2 values and also by radar's built-in heuristics for credentials, secrets, and keys.

The verification has been added to many scenarios where a slight time increase is allowed, as we now have to install Vault Radar and scan the text. In practice this adds less than 10 seconds to the overall duration of a scenario.

In the in-place upgrade scenario we explicitly exclude this verification when upgrading from a version that we know will fail the check. We also make the verification opt-in so as to not require a Vault Radar license to run Enos scenarios, though it will always be enabled in CI.

As part of this we also update our enos workflow to utilize secret values from our self-hosted Vault when executing in the vault-enterprise repo context.

Signed-off-by: Ryan Cragun <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport/ent/1.16.x+ent Changes are backported to 1.16.x+ent backport/ent/1.17.x+ent Changes are backported to 1.17.x+ent backport/1.18.x hashicorp-contributed-pr If the PR is HashiCorp (i.e. not-community) contributed pr/no-changelog pr/no-milestone
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants