Secure everything you build and run, from the first line of code to the cloud it runs on.
The Context Engine connects your code, dependencies, infrastructure code, container images and cloud accounts to the services they power and the teams that own them. Every risk arrives with its context: where it runs, what it exposes and who fixes it. Heeler fixes it at the source, in code or in the cloud, and guards every change so it stays fixed.
- 01At a glance
- 02How it works
- 03Cloud posture and compliance
- 04IaC security
- 05Container security
- 06Risk prioritization
- 07Remediation at the source
- 08Guardrails and drift
Heeler cloud security capabilities by layer.
Rows are what Heeler does. Columns are the three places cloud risk lives.
cloud Cloud accounts | code Infrastructure code | deployed_code Container images | |
|---|---|---|---|
travel_explore Discover | Every account, project and subscription across AWS, Google Cloud and Azure, and every resource in them. | Terraform, OpenTofu, CloudFormation, Pulumi, Kubernetes manifests and Dockerfiles in every repository. | Every image in ECR, Artifact Registry and ACR, and every workload running it. |
rule Detect | Hundreds of built-in checks in 11 categories, plus checks you write. | 600+ rules across network, access, encryption, logging, workloads and secrets. | Vulnerable OS packages and runtimes, end-of-life software and secrets, layer by layer. |
priority_high Prioritize | One queue for cloud, IaC and image findings. Each is Urgent, Plan or Defer, based on internet exposure, service tier, known exploitation and EPSS. | ||
account_tree Trace and route | Every finding linked to its live resource, the IaC file and line, the repository, the service and the owning team. | ||
build Fix | A proposed cloud setting change, approved by the owner, with its impact shown and a rollback. | A pull request to the exact file and line, validated with a plan. | A Dockerfile pull request to the safest base image, with the CVEs it removes. |
shield Prevent | Drift flagged when a console change undoes what the code says. | PR guardrails stop new misconfigurations from merging. | Dockerfile rules in the pull request: pinned base tags, no root user. |
fact_check Report | FSBP, CIS AWS, CIS Google Cloud and your own frameworks, with exemptions and audit evidence. | A full history for every finding, from first seen to fixed. | SBOM export in CycloneDX and SPDX, with vendor VEX applied. |
Six functional areas and the outcome of each.
Each area has its own section in this deck. Select a card to jump to it.
- Inventory of every account and resource
- Hundreds of checks in 11 categories, plus your own
- Framework scores and heatmaps by account
- Exemptions with a second approver, audit evidence
- Every IaC format and Dockerfile, in every repository
- 600+ rules in 8 categories
- Findings tied to the exact file and line
- Guardrail comment with a fix on every pull request
- Registry scanning for ECR, Artifact Registry and ACR
- Which images are running, and where
- Base layer versus your layers, for every CVE
- End-of-life, secrets, SBOM and vendor VEX
- One queue for cloud, IaC and images
- Internet exposure and reachability
- Service tier and environment
- Known exploited and EPSS
- Trace from cloud finding to IaC line and owner
- IaC pull requests, validated with a plan
- Approved cloud changes where there is no code
- Base-image upgrade pull requests
- Every fix verified by the next scan
- Pull requests that reopen a problem are blocked
- Console drift detected and routed
- Full history for every resource
How Heeler works, from discovery to guardrails.
Heeler runs the whole job. People step in to approve a change and merge a pull request.
Heeler links each cloud resource to its code, service and owner.
Heeler links each resource to the IaC that defines it, the repo it lives in, the workload that uses it and the team that owns it. That link is what turns a finding into the right fix for the right team.
Cloud posture dashboard for AWS, Google Cloud and Azure.
Failing checks, what changed this week, every asset and every framework score, filterable by provider, account, team, service and severity.
| Severity | Check | Framework | Failing |
|---|---|---|---|
CRITICAL | Security groups should not allow unrestricted access to ports with high risk | FSBP EC2.19 | 14 |
CRITICAL | S3 general purpose buckets should block public read access | FSBP S3.2 | 5 |
HIGH | Cloud SQL instances should require SSL for all connections | CIS GCP 6.4 | 8 |
Sample data.
Hundreds of cloud checks in 11 categories.
Every check explains why it matters, how to fix it in the console or CLI, and which framework controls it satisfies.
- CRITICALHardware MFA should be enabled for the root user
- CRITICALIAM roles should not be assumable by anyone
- CRITICALIAM roles trusting an OIDC identity provider should restrict the token subject
- CRITICALKMS keys should not be publicly accessible
- CRITICALAWS KMS keys should not be deleted unintentionally
- CRITICALSecrets Manager secrets should not be publicly accessible
- CRITICALSecurity groups should not allow unrestricted access to ports with high risk
- HIGHAWS AppSync GraphQL APIs should not be authenticated with API keys
- HIGHCloudFront distributions should not point to non-existent S3 origins
- CRITICALSSM Documents Allow Anonymous Access
- HIGHAuto Scaling group launch configurations should configure EC2 instances to require Instance Metadata Service Version 2 (IMDSv2)
- HIGHAmazon EC2 instances launched using Auto Scaling group launch configurations should not have Public IP addresses
- HIGHECR repositories should not be publicly accessible
- HIGHECR private repositories should have image scanning configured
- HIGHECS services should not have public IP addresses assigned to them automatically
- CRITICALDatabase Migration Service replication instances should not be public
- CRITICALMSK clusters should have public access disabled
- CRITICALLambda function policies should prohibit public access
- CRITICALS3 general purpose buckets should block public read access
- CRITICALS3 general purpose buckets should block public write access
- CRITICALAmazon EBS snapshots should not be publicly restorable
- CRITICALDocumentDB Cluster Snapshots with Public Permissions
- CRITICALNeptune Cluster Snapshots with Public Permissions
- CRITICALOpenSearch Domains that are Internet facing
- CRITICALAWS Config should be enabled and use the service-linked role for resource recording
- HIGHGuardDuty should be enabled
- HIGHGuardDuty EKS Audit Log Monitoring should be enabled
- CRITICALCodeBuild Bitbucket source repository URLs should not contain sensitive credentials
- CRITICALCodeBuild project environment variables should not contain clear text credentials
- CRITICALEnsure That BigQuery Datasets Are Not Anonymously or Publicly Accessible
- HIGHEnsure That IAM Users Are Not Assigned the Service Account User or Service Account Token Creator Roles at Project Level
- HIGHEnsure That Cloud Audit Logging Is Configured Properly
- MEDIUMEnsure That RSASHA1 Is Not Used for the Key-Signing Key in Cloud DNS DNSSEC
- Clone any built-in pack and add or remove checks
- Map checks to your internal control IDs
Compliance reporting for FSBP, CIS and custom frameworks.
Group by account, AWS OU, GCP folder or environment. Sample data.
IaC scanning across every repository.
Heeler scans Terraform and OpenTofu, CloudFormation, Pulumi, Kubernetes manifests and Dockerfiles in every repository, against more than 600 rules, and ties each finding to the exact file and line.

IaC rules in 8 categories.
From the network and identity around a workload to the pod spec and the Dockerfile inside it.
- Security group open to 0.0.0.0/0 on a database port
- Load balancer listening on plain HTTP
- Public IP assigned to instances by default
- IAM policy with wildcard actions or resources
- Kubernetes RBAC wildcard or secret read
- Cross-account trust with no conditions
- Storage, volumes and snapshots without encryption at rest
- Customer-managed key rotation turned off
- TLS not enforced on database connections
- VPC flow logs turned off
- Audit logging missing on buckets and clusters
- CloudTrail without log file validation
- Privilege escalation allowed
- Container can run as root
- Writable root filesystem, capabilities not dropped
- No USER directive, so the image runs as root
- Base image tag not pinned
- No HEALTHCHECK instruction
- Plaintext secret in a Kubernetes env var
- Credentials in CloudFormation parameters
- Hardcoded provider keys
- Deletion protection off on production data
- Backups and point-in-time recovery disabled
- Public access blocks not set
IaC checks on every pull request, with a suggested fix.
Sample data.
Container image inventory across registries and running workloads.
Heeler scans every image pushed to AWS ECR, Google Artifact Registry and Azure ACR, links it to the repo that built it and the workloads that run it, and rescans running images daily.

Image detail: vulnerabilities, layers, base image and SBOM.

One prioritized queue for cloud, IaC and container findings.
Cloud checks, IaC findings and image vulnerabilities land in one list. Each gets Urgent, Plan or Defer from how critical the service is, whether it is exposed, and whether the flaw is being exploited.
Sample data.
Toxic combinations: findings that are minor alone and critical together.
Many cloud findings look harmless on their own. Heeler looks at how misconfigurations, vulnerabilities and permissions connect, finds the chains an attacker could follow, and ranks the chain instead of each finding.
Sample data.
Each cloud finding traced to its IaC line and owning team.
Heeler matches the live resource to the Terraform, CloudFormation or Pulumi that defines it, and to the team that owns that module.
Sample data.
Three ways Heeler fixes a finding: in IaC, in the cloud or in the image.
A fix in the wrong place does not last. Heeler picks the right one for each finding.
IaC fix: a validated pull request to the exact line.
Sample data.
Cloud fix: a proposed setting change, approved by the owner.
Sample data.
Image fix: a Dockerfile pull request to a safer base image.
Heeler finds newer base tags, scans each one, and shows exactly which CVEs an upgrade removes and which it introduces.
| Candidate | Removes | Remaining | Introduces | |
|---|---|---|---|---|
amazoncorretto:17 | 113 | 5 | 30 | Open Dockerfile PR |
amazoncorretto:17-al2023 | 104 | 14 | 12 | Compare |
Verification, pull request guardrails and drift detection.
Sample data.