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

Create rule S7161: Tableau secrets should not be disclosed #4497

Merged
merged 4 commits into from
Nov 15, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions rules/S6762/secrets/rule.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,11 @@ If an attacker gains access to a Grafana personal access token or Granafa Cloud

Depending on the permissions given to the secret, the impact might range from the compromise of the data of some dashboards to a full takeover of the Grafana environment.

include::../../../shared_content/secrets/impact/data_compromise.adoc[]

==== Application takeover
:service_name: Grafana

With control over the Grafana application, the attacker can modify dashboards, alter data sources, or inject malicious code. This can result in the manipulation of displayed data, misleading visualizations, or even the introduction of backdoors for further exploitation.
include::../../../shared_content/secrets/impact/data_compromise.adoc[]

The attacker may even attempt to escalate their privileges within the Grafana environment. By gaining administrative access or higher-level permissions, they can perform more significant actions, such as modifying access controls, adding or deleting users, or changing system configurations.
include::../../../shared_content/secrets/impact/dataviz_takeover.adoc[]

== How to fix it

Expand Down
2 changes: 2 additions & 0 deletions rules/S7161/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
56 changes: 56 additions & 0 deletions rules/S7161/secrets/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"title": "Tableau secrets 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-7161",
"sqKey": "S7161",
"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"
}
46 changes: 46 additions & 0 deletions rules/S7161/secrets/rule.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@

include::../../../shared_content/secrets/description.adoc[]

== Why is this an issue?

include::../../../shared_content/secrets/rationale.adoc[]

=== What is the potential impact?

Tableau secrets scopes depend on the type of secret. From the most impactful to
the least:

1. Account passwords
2. Personal access tokens (PAT)
3. "Credentials token", received after a SignIn request

Their scopes vary in terms of lifetime, access, and impact.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It feels like the word "impact" appears very frequently here, especially given that it's also in the section title. However, it doesn't negatively affect the meaning of the text so it's not something that needs to be changed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will make it a little more specific

loris-s-sonarsource marked this conversation as resolved.
Show resolved Hide resolved

Below are some real-world scenarios that illustrate some impacts of an attacker
exploiting the secret.

:secret_type: secret
:service_name: Tableau

include::../../../shared_content/secrets/impact/data_compromise.adoc[]

include::../../../shared_content/secrets/impact/dataviz_takeover.adoc[]

== How to fix it

include::../../../shared_content/secrets/fix/revoke.adoc[]

include::../../../shared_content/secrets/fix/vault.adoc[]

=== Code examples

:example_secret: FMWBZfscS96flnAPXVY06w|QQsOzThG6hqNvZcd6OPIpZs88lgcYTcb|77bfee95-c689-4fd1-a7e0-2cf050adbbb2
:example_name: tableau-auth
:example_env: TABLEAU_AUTH

include::../../../shared_content/secrets/examples.adoc[]

== Resources

include::../../../shared_content/secrets/resources/standards.adoc[]

12 changes: 12 additions & 0 deletions shared_content/secrets/impact/dataviz_takeover.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
==== Dataviz Corruption and Takeover
loris-s-sonarsource marked this conversation as resolved.
Show resolved Hide resolved

With control over the {service_name} application, the attacker can modify
dashboards, alter data sources, or inject malicious code. This can result in the
manipulation of displayed data, misleading visualizations, or even the
introduction of backdoors for further exploitation.

The attacker may even attempt to escalate their privileges within the
{service_name} environment. By gaining administrative access or higher-level
permissions, they can perform more significant actions, such as modifying access
controls, adding or deleting users, or changing system configurations.

Loading