Modify rule S6338: Use common text (#2832)

This commit is contained in:
hendrik-buchwald-sonarsource 2023-08-09 14:49:28 +02:00 committed by GitHub
parent 80315ac17f
commit a278258b88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 47 additions and 12 deletions

View File

@ -16,6 +16,11 @@
"cwe",
"cert"
],
"extra": {
"replacementRules": [
]
},
"defaultSeverity": "Blocker",
"ruleSpecification": "RSPEC-6338",
"sqKey": "S6338",

View File

@ -1,25 +1,55 @@
include::../../../shared_content/secrets/description.adoc[]
== Why is this an issue?
Azure Storage Account Keys are similar to the root password, allowing full access to Azure Storage Accounts.
include::../../../shared_content/secrets/rationale.adoc[]
If the application interacts with Azure Cloud Storage services, access keys should be secured and not be disclosed.
=== What is the potential impact?
Azure Storage Account Keys are used to authenticate and authorize access to
Azure Storage resources, such as blobs, queues, tables, and files. These keys
are used to authenticate requests made against the storage account.
== Recommended Secure Coding Practices
If an Azure Storage Account Key is leaked to an unintended audience, it can pose
a significant security risk to your Azure Storage account.
Only administrators should have access to storage account keys. To authorize an application to access an Azure Storage, it's recommended to create a service principal and assign it the required privileges only. https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad-msi?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json#authenticate-with-the-azure-identity-library[Azure Identity SDK] provides several options such as _DefaultAzureCredential_ that can be used to retrieve secrets from, for instance, environment variables.
An attacker with access to your storage account key can potentially access and
modify all the data stored in your storage account. They can also create new
resources, delete existing ones, and perform other actions that can compromise
the integrity and confidentiality of your data.
Storage account keys should not be stored with the application code or saved anywhere in plain text accessible to others. Consider using an https://azure.microsoft.com/en-us/services/key-vault/[Azure Key Vault] to store and manage keys.
In addition, an attacker with access to your storage account key can also incur
charges on your account by creating and using resources, which can result in
unexpected billing charges.
When credentials are disclosed in the application code, consider them as compromised and rotate them immediately.
== How to fix it
include::../../../shared_content/secrets/fix/revoke.adoc[]
include::../../../shared_content/secrets/fix/recent_use.adoc[]
include::../../../shared_content/secrets/fix/vault.adoc[]
=== Code examples
:example_secret: 4dVw+l0W8My+FwuZ08dWXn+gHxcmBtS7esLAQSrm6/Om3jeyUKKGMkfAh38kWZlItThQYsg31v23A0w/uVP4pg==
:example_name: storage_key
:example_env: STORAGE_KEY
include::../../../shared_content/secrets/examples.adoc[]
//=== How does this work?
//=== Pitfalls
//=== Going the extra mile
== Resources
* https://owasp.org/Top10/A07_2021-Identification_and_Authentication_Failures/[OWASP Top 10 2021 Category A7] - Identification and Authentication Failures
* https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal[docs.microsoft.com] - Manage storage account access keys
* https://www.owasp.org/www-project-top-ten/2017/A3_2017-Sensitive_Data_Exposure[OWASP Top 10 2017 Category A3] - Sensitive Data Exposure
* https://cwe.mitre.org/data/definitions/798[MITRE, CWE-798] - Use of Hard-coded Credentials
* https://cwe.mitre.org/data/definitions/259[MITRE, CWE-259] - Use of Hard-coded Password
* https://www.sans.org/top25-software-errors/#cat3[SANS Top 25] - Porous Defenses
include::../../../shared_content/secrets/resources/standards.adoc[]
=== Documentation
* Microsoft Documentation - https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal[Manage storage account access keys]
//=== Benchmarks