Create rule S7144: Bitbucket keys should not be disclosed (APPSEC-1864) (#4476)
This commit is contained in:
parent
78497b8212
commit
c36fc7cc5f
2
rules/S7144/metadata.json
Normal file
2
rules/S7144/metadata.json
Normal file
@ -0,0 +1,2 @@
|
||||
{
|
||||
}
|
56
rules/S7144/secrets/metadata.json
Normal file
56
rules/S7144/secrets/metadata.json
Normal file
@ -0,0 +1,56 @@
|
||||
{
|
||||
"title": "BitBucket OAuth credentials should not be disclosed",
|
||||
"type": "VULNERABILITY",
|
||||
"code": {
|
||||
"impacts": {
|
||||
"SECURITY": "HIGH"
|
||||
},
|
||||
"attribute": "TRUSTWORTHY"
|
||||
},
|
||||
"status": "ready",
|
||||
"remediation": {
|
||||
"func": "Constant\/Issue",
|
||||
"constantCost": "30min"
|
||||
},
|
||||
"tags": [
|
||||
"cwe",
|
||||
"cert"
|
||||
],
|
||||
"defaultSeverity": "Blocker",
|
||||
"ruleSpecification": "RSPEC-7144",
|
||||
"sqKey": "S7144",
|
||||
"scope": "All",
|
||||
"securityStandards": {
|
||||
"CWE": [
|
||||
798,
|
||||
259
|
||||
],
|
||||
"OWASP": [
|
||||
"A3"
|
||||
],
|
||||
"CERT": [
|
||||
"MSC03-J."
|
||||
],
|
||||
"OWASP Top 10 2021": [
|
||||
"A7"
|
||||
],
|
||||
"PCI DSS 3.2": [
|
||||
"6.5.10"
|
||||
],
|
||||
"PCI DSS 4.0": [
|
||||
"6.2.4"
|
||||
],
|
||||
"ASVS 4.0": [
|
||||
"2.10.4",
|
||||
"3.5.2",
|
||||
"6.4.1"
|
||||
],
|
||||
"STIG ASD_V5R3": [
|
||||
"V-222642"
|
||||
]
|
||||
},
|
||||
"defaultQualityProfiles": [
|
||||
"Sonar way"
|
||||
],
|
||||
"quickfix": "unknown"
|
||||
}
|
62
rules/S7144/secrets/rule.adoc
Normal file
62
rules/S7144/secrets/rule.adoc
Normal file
@ -0,0 +1,62 @@
|
||||
|
||||
include::../../../shared_content/secrets/description.adoc[]
|
||||
|
||||
== Why is this an issue?
|
||||
|
||||
include::../../../shared_content/secrets/rationale.adoc[]
|
||||
|
||||
If attackers gain access to a BitBucket OAuth credentials, they will be able to interact with BitBucket API on behalf of the compromised account.
|
||||
|
||||
=== What is the potential impact?
|
||||
|
||||
Bitbucket keys allow external services to access resources on a user’s behalf with the OAuth 2.0 protocol.
|
||||
They are used to authenticate applications, services, or APIs using BitBucket for login and access-control.
|
||||
|
||||
Below are some real-world scenarios that illustrate some impacts of an attacker
|
||||
exploiting the secret.
|
||||
|
||||
include::../../../shared_content/secrets/impact/source_code_compromise.adoc[]
|
||||
|
||||
include::../../../shared_content/secrets/impact/supply_chain_attack.adoc[]
|
||||
|
||||
== 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
|
||||
|
||||
|
||||
==== Noncompliant code example
|
||||
|
||||
[source,java,diff-id=1,diff-type=noncompliant,subs="attributes"]
|
||||
----
|
||||
props.set("bitbucket.oauth-key", "MP76PZGLQmw63rxZYJ") // Noncompliant
|
||||
props.set("bitbucket.oauth-secret", "ASgzPac3EPbXHbTSw6DyUagJZ8ThnUFG") // Noncompliant
|
||||
----
|
||||
|
||||
==== Compliant solution
|
||||
|
||||
[source,java,diff-id=1,diff-type=compliant,subs="attributes"]
|
||||
----
|
||||
props.set("bitbucket.oauth-key", System.getenv("BITBUCKET_OAUTH_KEY")
|
||||
props.set("bitbucket.oauth-secret", System.getenv("BITBUCKET_OAUTH_SECRET")
|
||||
----
|
||||
|
||||
|
||||
//=== How does this work?
|
||||
|
||||
//=== Pitfalls
|
||||
|
||||
//=== Going the extra mile
|
||||
|
||||
== Resources
|
||||
|
||||
* Bitbucket Support - https://support.atlassian.com/bitbucket-cloud/docs/use-oauth-on-bitbucket-cloud/[Use OAuth on Bitbucket Cloud]
|
||||
|
||||
include::../../../shared_content/secrets/resources/standards.adoc[]
|
||||
|
||||
//=== Benchmarks
|
Loading…
x
Reference in New Issue
Block a user