self-host icon indicating copy to clipboard operation
self-host copied to clipboard

Add ShareConfig Functionality for Secure Configuration Sharing to Bitwarden Self-Hosted (Bash)

Open fer opened this issue 11 months ago • 4 comments

Description

Introduces the shareconfig functionality to the Bitwarden self-hosted setup script, enabling administrators to securely share their Bitwarden configuration files. The shareconfig command sanitizes sensitive information by redacting values associated with passwords and secrets before compressing the configuration files into a tar.gz archive. This ensures that critical information remains secure when configuration files need to be shared for troubleshooting or auditing purposes.

Features

  • [x] Redacts sensitive information, including passwords and secret keys, in .conf, .env, .xml, and .yml files within the Bitwarden configuration directory.
  • [x] Maintains the original directory structure in the compressed archive.
  • [x] Generates a tar.gz archive of the sanitized configuration files, ready for secure sharing with support teams or for audit purposes.

Usage examples

To use this functionality, run the following command from the Bitwarden self-hosted script directory:

./bitwarden.sh shareconfig

This will generate a file named bitwarden-configs-redacted-<timestamp>.tar.gz in the current directory.

Testing

Please review this PR for inclusion in the next release of Bitwarden self-hosted. Your feedback and suggestions are welcome!

fer avatar Mar 11 '24 13:03 fer

Logo Checkmarx One – Scan Summary & Detailsfbd1c9d8-9789-48bc-b018-4e7878ecf47f

No New Or Fixed Issues Found

bitwarden-bot avatar Mar 11 '24 14:03 bitwarden-bot

How do we make sure that secrets added to new and existing environment files are redacted?

vgrassia avatar Mar 11 '24 14:03 vgrassia

How do we make sure that secrets added to new and existing environment files are redacted?

Thank you for bring this up. To ensure the dynamic redaction of secrets from .env files and others, we could enhance the shareconfig function with a more comprehensive and adaptable regex pattern matching system.

\b(?:PASSWORD|SECRET|KEY|TOKEN)\s*=\s*.+
\b(?:PASSWORD|SECRET|KEY|TOKEN)\s*:\s*.+

But still these patterns would be to catch common ways, they wouldn't cover still new situations. Open to new suggestions to investigate.

fer avatar Mar 13 '24 12:03 fer

As discussed, we should put a disclaimer on the script stating the files and values we have masked and that the user to verify there are no additional config files that container secrets. This ensures they are agreeing that there might be secrets that are still shared.

keithhubner avatar Mar 13 '24 13:03 keithhubner

CLA assistant check
All committers have signed the CLA.

CLAassistant avatar Sep 25 '24 13:09 CLAassistant