Skip to main content

CASM

Continuous Attack Surface Monitoring

CASM logo

Evidence-first attack surface monitoring with safe, scope-bound verification and run-over-run change tracking.

CASM helps security teams continuously monitor external exposure in authorized environments. It discovers assets, verifies HTTP/TLS posture, and compares each run against a baseline to show exactly what changed.

Quick Start

# Install
pip install g2cv-casm

# Create a minimal scope and targets file
cat > scope.yaml <<'YAML'
engagement_id: quickstart
allowed_domains: [example.com]
allowed_ips: []
allowed_ports: [443]
allowed_protocols: [https]
seed_targets: [example.com]
max_rate: 5
max_concurrency: 2
active_allowed: false
auth_allowed: false
YAML

cat > targets.json <<'JSON'
{
  "targets": [
    {"url": "https://example.com", "method": "HEAD"}
  ]
}
JSON

# Run a unified scan
casm run unified --config scope.yaml --targets-file targets.json --dry-run false

# Compare with a previous run
casm diff --old runs/baseline/results.sarif --new runs/current/results.sarif

By default, CASM auto-resolves tool binaries in this order: bundled wheel tools, local hands/bin (source tree), cache, then optional download configured with CASM_TOOL_DOWNLOAD_URL_TEMPLATE and CASM_TOOL_MANIFEST_URL.

In a source checkout, if hands/bin/<tool> is missing and Go is installed, CASM auto-builds the tool on first use.

What CASM Does

  • Discover exposed assets across HTTP, DNS, and TLS contexts.
  • Verify web hardening signals and transport/security headers.
  • Track change between scans with baseline-aware diffs.
  • Report in SARIF, Markdown, PDF, and JSONL evidence streams.

Safety by Default

  • Authorization-first scope controls (domains, IPs, ports, protocols).
  • Dry-run support, deterministic blocking reasons, and rate/concurrency guardrails.

Screenshots

Executive Summary (PDF) Executive Summary

Changes Since Last Scan (PDF) Changes Since Last Scan

Documentation

  • Full docs: docs/ (or run mkdocs serve)
  • Tutorials: docs/tutorials/
  • CLI reference: docs/reference/cli.md
  • Configuration reference: docs/reference/configuration.md
  • GitHub Auto-Diff Bot guide: docs/how-to/github-auto-diff.md
  • Release guide: docs/how-to/release-python-package.md
  • Security model: docs/explanation/security-model.md

Project Notes

  • Package name on PyPI: g2cv-casm
  • CLI commands: casm and g2cv-casm
  • Versioning is tag-driven (vMAJOR.MINOR.PATCH)

Contributing and Security

  • Contribution guide: CONTRIBUTING.md
  • Security policy: SECURITY.md
  • Code of conduct: CODE_OF_CONDUCT.md

Support

If CASM is useful for your team, consider starring the repository. It helps others discover the project and supports ongoing development.

License

AGPL-3.0. See LICENSE.

Questions or partnerships: contact@g2cv.com

Release files for g2cv-casm 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for g2cv-casm 0.3.2
File Size Uploaded
g2cv_casm-0.3.2.tar.gz 12.3 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for g2cv-casm 0.3.2
File Interpreter ABI Platform
g2cv_casm-0.3.2-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
g2cv_casm-0.3.2-py3-none-manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details

Total release size: 61.5 MB

Release files / g2cv_casm-0.3.2.tar.gz

Download URL g2cv_casm-0.3.2.tar.gz
Size 12.3 MB
Tags Source
SHA-256 checksum
How to use checksums
26512276c4e9da768e911dd45e91daa12ff13428dc283283f5c15b7bff7d3cd2
BLAKE2b-256 checksum
How to use checksums
5915c75edb0cc059f0487483ffabbcfb25487d1617a238fc8ab11b3dc2c0673b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / g2cv_casm-0.3.2-py3-none-win_amd64.whl

Download URL g2cv_casm-0.3.2-py3-none-win_amd64.whl
Size 24.5 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
a5eff5de39e76e45c4b1f233174ae848252cb9d7932979cde5cef8e245707c8f
BLAKE2b-256 checksum
How to use checksums
a2ed95d56c6c7fe5bd9957011f7fd3afdbe8505e83d7605296ac0cfd2858ad14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / g2cv_casm-0.3.2-py3-none-manylinux2014_x86_64.whl

Download URL g2cv_casm-0.3.2-py3-none-manylinux2014_x86_64.whl
Size 24.6 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
f35a6ab5a2f3cd42b1fb4021c69e14690267b41b18337882ab67340f4311ef12
BLAKE2b-256 checksum
How to use checksums
5a63bb270240962673582436ff9b8a37cecb0e2aa0c1d7b228df0756919a098c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page