Skip to main content

Map the AWS blast radius of GitHub Actions workflows

Project description

ActionScope

Map the AWS blast radius of your GitHub Actions workflows.

PyPI License: MIT

ActionScope reads your .github/workflows/ files, Terraform IAM resources, and inline JSON IAM policies, then tells you โ€” in plain English โ€” what your CI/CD pipelines can actually do to your AWS environment.

It answers the question no other tool answers: "If this workflow is compromised, what can an attacker do in AWS?"

Install

pip install actionscope

Quick Start

actionscope scan .

Example Output

ActionScope โ€” Blast Radius Report
Path: /my-repo  |  Workflows: 2  |  Overall Risk: ๐Ÿ”ด CRITICAL

deploy.yml โ†’ deploy โ†’ Configure AWS credentials
  AWS Role: arn:aws:iam::123456789012:role/github-deploy-role
  Auth: OIDC โœ“

  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚ Action                      โ”‚ Access Level       โ”‚ Risk     โ”‚
  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
  โ”‚ iam:PassRole                โ”‚ Permissions mgmt   โ”‚ ๐Ÿ”ด CRIT  โ”‚
  โ”‚ ec2:TerminateInstances      โ”‚ Write              โ”‚ ๐ŸŸ  HIGH  โ”‚
  โ”‚ s3:GetObject                โ”‚ Read               โ”‚ ๐ŸŸข LOW   โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

  โš ๏ธ  iam:PassRole on * โ€” privilege escalation path exists

Use as a GitHub Action

- uses: r12habh/ActionScope@v0
  with:
    fail-on: high
    comment-pr: true

How It Works

ActionScope performs static analysis only โ€” it never sends your code to any external service.

  1. Finds all .github/workflows/*.yml files
  2. Extracts AWS role ARNs and GITHUB_TOKEN permission declarations
  3. Finds matching IAM policies in Terraform or JSON files in your repo
  4. Classifies each IAM action by risk using the policy-sentry database
  5. Outputs a plain-English blast radius report

What If My Policies Aren't in the Repo?

โ„น๏ธ  Policy not found in repo for role: arn:aws:iam::123456:role/ci-deploy
๐Ÿ’ก  Run with --aws-verify to fetch live policies from AWS (coming in v1.0)

In v1.0, --aws-verify will use read-only AWS API calls to fetch the real attached policies for any role ARN found in your workflows.

Public Research

ActionScope includes a reproducible public-data research scaffold for analyzing workflow-level AWS security patterns across public GitHub repositories. See research/ for the scanner, methodology, and anonymized findings template.

Built By

Rishabh Singh. GitHub

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

actionscope-0.1.1.tar.gz (40.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

actionscope-0.1.1-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

Details for the file actionscope-0.1.1.tar.gz.

File metadata

  • Download URL: actionscope-0.1.1.tar.gz
  • Upload date:
  • Size: 40.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for actionscope-0.1.1.tar.gz
Algorithm Hash digest
SHA256 169c5b16aa1f381141cdedc14d08c8b9be96137497821fad0cfc52a5aa736034
MD5 ff57f7b7e072d999bc1d664cdb0ed406
BLAKE2b-256 3aca2dcee4b3ce001d131efb2a1d4518664f00e13eae172443ac048647621e4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for actionscope-0.1.1.tar.gz:

Publisher: release.yml on r12habh/ActionScope

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file actionscope-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: actionscope-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 36.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for actionscope-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 503af9b8bfcdd9f9435f0685f53c388cc064133f29e656c116dd91f3b7d46bf6
MD5 6a48d6c59d46bedef8c823bd889bd986
BLAKE2b-256 7621b0b05d9e276b33c47bbe3ef5fe69e4c528bffc2c605a194f62913235874d

See more details on using hashes here.

Provenance

The following attestation bundles were made for actionscope-0.1.1-py3-none-any.whl:

Publisher: release.yml on r12habh/ActionScope

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page