Various source say “data should be encrypted at rest”. Example from Atlassian:
If your app needs to store sensitive data or important configuration data, you should store that within your own infrastructure. Sensitive data should be encrypted at rest. App specific data that is used for security-specific cases should also be contained in your own app’s infrastructure.
I have trouble understanding what it means technologically. The shared secret in Connect apps are certainly highly sensitive:
- Even if you don’t store customer data yourself at all,
- Simply having the shared secret for an app that has “READ” permissions allows a hacker to read the contents of Confluence instances from all people who have installed your app: Jira issues, Pages (=trade secrets, confidential information), history, names associated with the history (=PII).
- Of course the app secret isn’t PII, but it allows access to PII if leaked.
I notice the Spring Boot starter from Atlassian doesn’t encrypt the app secrets by default in the AtlassianHost table. I am not aware that it is a frequent practice in engineering to encrypt a database column.
Does anyone encrypt their app secrets?