Ein Sammler und Ableitungs-Engine. Es kartiert Ihre Umgebung, bewertet effektive Berechtigungen und Vertrauen und schreibt einen vollständigen Angriffsgraphen als einzelne .rage.ndjson-Datei. Die Eingabe für alles andere.
Sie haben nicht 4.000 Findings. Sie haben sechs Pfade zu Ihren Kronjuwelen.

Ein CSPM liefert Ihnen eine flache, deduplizierte, nach Schweregrad sortierte Liste von Fehlkonfigurationen und überlässt es Ihnen zu raten, welche davon relevant sind. Thunderstorm argumentiert über Erreichbarkeit: Es sammelt Ihre Cloud read-only, modelliert sie als Graph von Sicherheitsfähigkeiten und sagt Ihnen, dass ein GitHub-Actions-OIDC-Trust in vier Hops zu Ihrem Produktions-Data-Lake führt.
Keiner der obigen Hops ist für sich genommen ein Finding. Ein öffentlicher Bucket, ein Schlüssel in einer State-Datei, eine annehmbare Rolle, eine zu weit gefasste IAM-Aktion. Der Pfad ist das Finding, und der Pfad ist das, was fast nichts anderes berechnet.
Tiefgehend auf der Plattform, auf die Sie es richten. Führen Sie es gegen ein AWS-Konto, ein Azure-Abonnement oder ein GCP-Projekt aus, und es kartiert diese eine Umgebung in den eigenen Begriffen des Providers: STS Assume-Role und IAM-Privilegien- eskalation in AWS, RBAC- und Managed-Identity-Ketten in Azure, Service-Account- Impersonation in GCP. Eine Umgebung, ein Graph, modelliert so, wie diese Cloud tatsächlich funktioniert.
Viele Tools zählen mehr auf. Die Behauptung hier ist, dass Thunderstorm über das, was es aufzählt, mit echter Tiefe argumentiert: 219 Ressourcentypen, 80 Edge-Typen, 2.400+ Ableitungsregeln und 1.049 kartierte Credential-Leak-Stellen, alle bezogen aus RAGE.
RAGE ist das Format, Thunderstorm erzeugt es, Blaze erkundet es.
Sie sind das, was Thunderstorm aus einem einzigen scan erzeugt.
Ein fehlkonfigurierter S3-Bucket. Thunderstorm verfolgt ihn über sechs Hops zur Produktions-Kundendatenbank und einen zweiten Weg direkt zum Master-Secret der Datenbank.
Internet ──public s3:GetObject──▶ acme-terraform-state (public bucket)
──ExposesCredential────▶ AKIA… (access key leaked in tfstate)
──CredentialsFor───────▶ ec2-app-role
──CanAssume────────────▶ terraform-exec (sts:AssumeRole)
──CanEscalateTo────────▶ OrganizationAdmin (iam:AttachRolePolicy)
──CanReadData──────────▶ acme-prod-customers (PII)
Jeder Hop trägt die Berechtigung, die ihn gewährt, den Nachweis, der ihn belegt, und eine Erzählung in klarer Sprache. Die geleakten Werte kommen mit heraus:

Ein öffentlich lesbares Blob leakt ein Service-Principal-Secret. Ein Contributor mit einer zusätzlichen Berechtigung befördert sich selbst zum Subscription-Owner. Kein App-Exploit; nur Cloud-Fehlkonfiguration und IAM.

Internet ──anonymous blob read──▶ acmedeploy (public Storage account)
──ExposesCredential────▶ automation-sp secret (in a deploy config blob)
──CredentialsFor───────▶ automation-sp (Contributor)
──CanEscalateTo────────▶ Owner (Microsoft.Authorization/roleAssignments/write)
──CanReadData──────────▶ acmedatalake
Service-Account-Impersonation ist für die meisten Tools unsichtbar. Thunderstorm behandelt
iam.serviceAccounts.getAccessToken als das Lateral-Movement-Edge, das es ist.

Internet ──public allUsers───▶ acme-public-exports (GCS)
──ExposesCredential─▶ sa-deploy-key
──CredentialsFor────▶ sa-deploy
──CanImpersonate────▶ sa-data-pipeline
──CanImpersonate────▶ sa-org-admin
──CanReadData───────▶ acme_customers_pii (BigQuery)
view öffnet ihn in Ihrem Browser; nichts wird hochgeladen.collectors/, engine/).Thunderstorm führt keine eigene Taxonomie, Mappings oder Regeln mit sich. Es konsumiert den RAGE-Standard Ende-zu-Ende:
| Belang | Lebt in RAGE |
|---|---|
| Node-/Edge-Taxonomie, Bedingungen | vocab/{node-types,edge-types,conditions}.json |
| Native→generische Mappings + Collection-Rezepte | providers/{aws,gcp,azure}.json |
| Ableitungsregel-Korpus | rules/ |
| Credential-Exposure-Katalog | exposure-db/{aws,gcp,azure}.json + vocabulary.json |
Versionsbindung: RAGEs spec_version ist die einzelne Zahl, die Thunderstorm an ein
RAGE-Release bindet. Der Collector liest sie live aus dem RAGE, gegen das er gebaut wurde
(thunderstorm version gibt RAGE <v> aus) und stempelt sie in jeden Graphen, den er
ausgibt; Blaze Lite liest diesen Stempel und warnt, wenn ein Graph gegen eine Version
gebaut wurde, die es nicht unterstützt.
Wie RAGE aufgelöst wird (erster Treffer gewinnt):
$RAGE_ROOT: ein Live-RAGE-Checkout, falls Sie es setzen (Dev-Override; Änderungen gelten ohne Rebuild).collectors/rage/, eingebettet in die Binary.Aktualisieren Sie den Snapshot mit make RAGE_ROOT=/path/to/rage (oder go generate ./... in
collectors/). RAGE lebt unter github.com/trustedsec/rage.
Thunderstorm scannt read-only mit Ihren vorhandenen Cloud-Credentials; es verwaltet
niemals Secrets und schreibt niemals auf das Ziel. Melden Sie sich mit dem normalen Tooling
des Providers an und richten Sie dann scan auf das Konto / Projekt / Abonnement.