ARCHER
ARCHER is the infrastructure misconfiguration scanner component of the MEDUSA security platform. It discovers cloud and infrastructure resources, builds a resource dependency graph, and evaluates hundreds of security rules to surface misconfigurations before they become incidents.
Fit within MEDUSA
| Component | Focus |
|---|---|
| Remy | Static Application Security Testing |
| Stryx | Dynamic Application Security Testing |
| ARCHER | Infrastructure Misconfiguration Scanning |
Installation
pip install archer-scan
Note: The PyPI distribution is
archer-scan. The CLI command isarcher.
Quickstart
Auto-detect provider and scan the current directory:
archer scan
Scan a specific provider and path:
archer scan --provider terraform --path ./infra
Scan AWS and output JSON to a file:
archer scan --provider aws --output report.json --format json
Module Table
| Module | Purpose |
|---|---|
archer/providers/ |
Provider adapters (AWS, Azure, GCP, ...) |
archer/rules/ |
YAML rule definitions |
archer/engine/ |
Rule evaluation engine |
archer/graph/ |
Resource graph model |
archer/cli/ |
Command-line interface |
archer/report/ |
Report generation (JSON, Markdown) |
archer/auth/ |
Credential resolution and provider auth |
archer/config/ |
Configuration file parsing |
CLI Reference
archer scan [OPTIONS]
Options:
--provider TEXT Provider to scan (aws, azure, gcp, terraform, kubernetes)
--path TEXT Path to infrastructure files (local providers only)
--profile TEXT AWS / Azure / GCP profile name
--region TEXT Cloud provider region
--output TEXT Output file path
--format TEXT Output format (json, markdown)
--config TEXT Path to config file
--verbose / --quiet
--help Show this message and exit.
Configuration File
# archer.yaml
provider: aws
region: us-east-1
profile: production
output:
format: json
path: ./reports/scan.json
rules:
include:
- "s3-*"
- "iam-*"
exclude:
- "iam-policy-wildcard-action"
Sample Report Output
Findings: 3 critical, 5 high, 2 medium, 1 low
CRITICAL
S3 Bucket Public Access Block Disabled
Resource: my-app-bucket (aws_s3_bucket)
Rule: s3-public-access-block-disabled
Remediation: Enable block public access on the bucket.
IAM Policy With Wildcard Action
Resource: MyRolePolicy (iam_policy)
Rule: iam-policy-wildcard-action
Remediation: Scope IAM actions to specific API operations.
Security Group Allows All Inbound Traffic
Resource: sg-0123456789abcdef0 (aws_security_group)
Rule: ec2-security-group-open-ingress
Remediation: Restrict inbound rules to specific ports and CIDRs.
Roadmap
v0.1.0 (Current)
- Core rule engine and CLI
- AWS, Terraform providers
- 50+ built-in rules
- JSON and Markdown reporting
v0.5.0
- Azure and GCP providers
- Custom rule authoring
- HTML report format with visualizations
- SARIF output for GitHub Advanced Security integration
v1.0.0
- Kubernetes provider
- Continuous scanning mode
- CI/CD integration (GitHub Action, GitLab CI)
- Remediation automation (planned, optional opt-in)
- Plugin SDK for community providers
Contributing
See CONTRIBUTING.md for development setup, code style guidelines, and instructions for adding rules and providers.
Security
See SECURITY.md for the security policy and IAM permission requirements.
Author: Abhay Gupta
Organization: Medusa Security
Repository: https://github.com/Medusa-Security/archer
Metadata
Release files for archer-scan 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| archer_scan-0.1.0.tar.gz | 38.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| archer_scan-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 78.7 kB
Release files / archer_scan-0.1.0.tar.gz
| Download URL | archer_scan-0.1.0.tar.gz |
|---|---|
| Size | 38.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a28f138eb3e334bfbdc7e98651992d8420ed35acae2ab8ecf283f3d84506823e
|
|
BLAKE2b-256 checksum How to use checksums |
a1b6ed7ab38eec51e30c8daa3a7c022803da7b37cd24430383839ebe67c9d0b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / archer_scan-0.1.0-py3-none-any.whl
| Download URL | archer_scan-0.1.0-py3-none-any.whl |
|---|---|
| Size | 40.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
50b6be6aa05d2c492957d89623ccc056bf22effad6f257816c46ee2ed31cf7b1
|
|
BLAKE2b-256 checksum How to use checksums |
a3889e39bb3faf6f90aa09a781f6826e78aaffdd133c1098449c3a4e93548f66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Security for archer-scan 0.1.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.