Skip to content
CyberSmithSECURE
Under Attack

VAPT

VAPT of Cloud Platforms

Cloud environments are rarely breached through a flaw in the provider. They are breached through an identity with more permission than anyone realised, a storage object made public during a migration, or a workload role that a compromised container can assume. The assessment therefore treats identity as the perimeter, because in cloud it is.

Methodology

  1. 01

    Inventory and exposure mapping

    Every account, subscription or project enumerated, with all internet-reachable resources identified — load balancers, storage, functions, databases and management endpoints.

  2. 02

    Identity and access review

    Every principal, role, policy and trust relationship collected. Effective permissions are computed rather than read, because a policy document rarely states what a principal can actually do.

  3. 03

    Privilege escalation path analysis

    Known escalation primitives tested against the environment's actual policy set: pass-role, policy-version, function creation, and their equivalents on each platform.

  4. 04

    Data exposure assessment

    Storage buckets, blobs, snapshots, images and backups checked for public access, over-broad grants and sensitive content in places nobody intended to publish.

  5. 05

    Workload and network assessment

    Compute, container and serverless configuration; security groups and network rules; metadata service version and reachability from workloads.

  6. 06

    Logging and detection review

    Whether CloudTrail, Azure Activity or Cloud Audit Logs are enabled everywhere, retained, protected from deletion, and actually monitored.

  7. 07

    Exploitation

    Confirmed escalation paths demonstrated within an agreed blast radius, so the finding is a proven path rather than a theoretical one.

  8. 08

    Reporting and retest

    Technical report and executive summary together, then a retest evidencing closure.

Approach to testing

  • Read-only assessment role by default, with exploitation of specific paths agreed separately in writing. A cloud environment is production and an unbounded test is an outage.
  • Effective permissions are computed, not read. Inherited policies, permission boundaries, SCPs and resource policies interact in ways that make the written policy a poor guide.
  • Multi-account and multi-subscription structures are assessed as one estate, because the escalation path usually crosses the boundary the org chart assumes is solid.
  • The assessment covers what the client configured, not the provider's own platform. Testing the provider is prohibited by their terms and finds nothing useful.
  • Infrastructure as code is reviewed where available, because fixing the console leaves the next deployment to reintroduce the finding.

Types of assessment

Configuration and identity review (default)

Read-only assessment across the estate. The highest yield per unit of effort and the safest for production.

Privilege escalation assessment

Starts from a low-privileged principal and attempts to reach administrative access, demonstrating real paths rather than listing risky permissions.

External attack surface test

From the internet with no credentials, against everything the estate exposes. Answers what an attacker sees before any access.

Breach simulation

Starts from a compromised workload — a container or instance — and tests what its role can reach. The most realistic model of a modern cloud incident.

Frameworks and standards

CIS Benchmarks for AWS / Azure / GCP
The configuration baseline the environment is scored against.
AWS Well-Architected Security Pillar
Design-level reference where the engagement covers architecture, not only configuration.
Microsoft Cloud Security Benchmark
Azure equivalent, mapped to CIS and NIST controls.
MITRE ATT&CK for Cloud
Technique mapping for the detection team.
NIST SP 800-53 / 800-171
Where the client has a compliance obligation requiring control mapping.
CWE / CVSS v3.1
Classification and severity for findings that are vulnerabilities rather than configuration.

Tools used

Tooling is where testing starts, not where it ends. Every automated result is reproduced by hand before it reaches a report.

ScoutSuite

Multi-cloud configuration assessment and baseline reporting.

Prowler

AWS CIS benchmark checks and compliance mapping.

Pacu

AWS exploitation framework for demonstrating confirmed escalation paths.

PMapper / Cloudsplaining

Computing effective IAM permissions and identifying escalation primitives.

ROADrecon / AzureHound

Entra ID and Azure resource enumeration and path analysis.

Trivy / Checkov

Container image and infrastructure-as-code scanning.

Cloud provider CLIs

Direct enumeration and verification, because tool output is always confirmed against the source.

Checklist approach

The checklist is the floor, not the ceiling. It guarantees coverage so nothing standard is missed; the findings that matter usually come from what a tester does after it is complete.

Identity and access

  • Root and global administrator account usage and MFA
  • Over-permissive policies, including wildcards on action or resource
  • Unused principals, keys and roles still enabled
  • Cross-account and cross-tenant trust relationships
  • Permission boundaries and service control policies
  • Federation and identity provider configuration

Privilege escalation

  • Pass-role and service-role assumption paths
  • Policy version and attachment rights
  • Function and workflow creation as an escalation primitive
  • Instance profile and managed identity reach
  • Secrets readable by principals that should not have them

Data exposure

  • Public storage buckets, blobs and containers
  • Snapshots and machine images shared publicly or cross-account
  • Database instances reachable from the internet
  • Encryption at rest and key management
  • Backup access controls and retention

Network and workload

  • Security group and NSG rules permitting broad ingress
  • Management ports exposed to the internet
  • Metadata service version and workload reachability
  • Container escape and privileged pod configuration
  • Serverless function permissions and environment secrets

Logging and detection

  • Audit logging enabled in every region and account
  • Log retention, immutability and deletion protection
  • Alerting on privileged actions and policy changes
  • Guard rails: config rules, policy enforcement, drift detection

How findings are scored

Every finding is scored on CVSS 3.1 and placed in one of five levels. The executive summary adds a sixth band — Compliant — so components that passed appear on the same chart as those that did not.

Critical
Immediate measures must be taken. These vulnerabilities can allow an attacker to take complete control of the application or server — stealing user data, tricking users into supplying sensitive information, or defacing the site.
High
Maximum risk associated with a specific vulnerability instance. May enable an attacker to compromise the application and its data, partially or completely, or to modify application behaviour beyond its intended purpose. To be handled with utmost priority.
Medium
Considerable risk. May enable an attacker to exploit the application to a particular level, gaining low-level information that can be used to craft more specific attacks.
Low
Lowest risk. May allow an attacker to gain some information about the application that was not intended to be known, without an exploitation technique currently available at that instance.
Informational
A functionality or component is missing best-practice implementation. Not a risk today, but may become one as the application changes or as exploitation techniques, policy or legal requirements evolve.

Scan types selected

  • Safe Checks
  • Standard / OWASP Top 10
  • Destructive
  • SANS Top 25
  • Business Logic Vulnerability Testing

Standard toolset by stage

OSINT
Datasploit, Google Dorks, Shodan
Enumeration & Scanning
Nmap, Wfuzz, Unicornscan
Domain Enumeration
Nikto, DnsRecon, Knock
Crawling & Fuzzing
Burp Suite, Acunetix, Netsparker
Vulnerability Analysis
OpenSSL, sqlmap, CVE-Details
Exploitation
Metasploit, Netcat, Exploit-DB

How CSS tests

A unified swarm of agents, for blind spot detection

AI agents drive several testing tracks against the same target at once, then cross-check each other. A single tester works one hypothesis at a time; parallel agents cover the space a sequential pass leaves behind.

  • Effective permission computation across thousands of principals and policies is combinatorial. A tester spot-checks the roles that look risky; agents compute the full effective set, and the dangerous role is usually one nobody flagged.

  • Multi-account estates hide escalation paths that cross account boundaries — each account looks fine in isolation and the path only exists in the join.

  • Public exposure drifts continuously. Enumerating every storage object and snapshot across every region is machine work that a manual assessment samples.

  • Escalation primitives have known preconditions; checking every principal against every primitive is enumeration rather than insight.

Every agent finding is validated by a human tester, and nothing is exploited without explicit written authorisation and an agreed blast radius. The swarm decides what to look at; it does not act on a production estate.

Why this differs

What CSS does that most vendors do not

Every one of these is checkable. Ask any vendor for the same and compare the answers.

Effective permissions, not policy documents

Most cloud reviews read policies and flag wildcards. CSS computes what each principal can actually do once inheritance, boundaries and resource policies are resolved, which is a different and much shorter list of real problems.

Exploited, not scanned

Escalation paths are demonstrated within an agreed blast radius, so the client sees a proven path rather than a tool's risk score.

Both reports, always

Technical report and executive summary together, written for two audiences.

Fixed in code, not in the console

Remediation is worked into the infrastructure-as-code that produced the environment. A console fix is undone by the next deployment.

Reporting

Two documents, two audiences

Both are produced for every engagement. They are not the same document at two lengths — they answer different questions and are written separately. The structure below is the one CSS actually issues.

Technical assessment report

For the engineers who will fix it

  • Disclaimer, and Limitations on Disclosure and Use
  • Risk Level & Description — the five levels above, scored on CVSS 3.1
  • Scan Type — which of the five assessment types were selected
  • Assessment Scope — the control areas covered
  • Assessment Date — the exact testing window
  • Objective of the Assessment — objectives listed against completion status
  • Tools Utilization — manual and automated tooling by stage
  • Summary of the Assessment
  • Overall Recommendations, split into Must Have and Should Have
  • Vulnerability Overall Classifications as per Organization
  • Security Issues Highlighted
  • The Key Findings — each with evidence and detailed recommendation
  • Summary of Findings & Conclusion

For this assessment specifically

  • Scope: accounts, subscriptions, projects, regions and the assessment role used
  • Every finding with CIS benchmark reference and CVSS where applicable
  • Demonstrated escalation paths with the exact API calls involved
  • Evidence: CLI output, policy excerpts, screenshots
  • Effective permission analysis for privileged and anomalous principals
  • MITRE ATT&CK for Cloud technique mapping
  • Infrastructure-as-code remediation examples, not console instructions
  • Retest results appended against each original finding

Executive summary

For the people who will fund the fix

  • Objectives, each against a completion status
  • Overall Finding of the Assessment — total threats identified, broken down by component and severity
  • Summary of the Assessment
  • Artefacts of the Assessment — the key findings as a numbered register with severity
  • Observation of the Assessment — the major attacks the organisation should be prepared for, given what was found
  • Overall Recommendation, including a Business Enabling Recommendation sequence
  • Must Have and Should Have actions

For this assessment specifically

  • What is exposed to the internet, and what an attacker with one compromised principal could reach
  • Severity distribution and movement since the previous assessment
  • The three changes that most reduce blast radius
  • Compliance position against the applicable benchmark, as a percentage with the gaps named
  • Remediation timeline and retest date
  • One page

Case studies

What this finds in practice

Representative engagement patterns. Sector and scale only — no client is named, and no detail is included that could identify one.

A fintech running roughly 40 AWS accounts under an organisation.

Finding
A CI/CD role in the shared services account could assume a deployment role in every other account, including production. The CI system itself authenticated with a long-lived access key stored in a repository variable, so anyone with repository write access effectively held production administrator.
Recommendation
Replace the static key with OIDC federation, scope the deployment role per account and per environment, and add a permission boundary preventing the CI role from modifying IAM.
Outcome
OIDC federation implemented across all accounts within a month. The permission boundary subsequently blocked a misconfigured pipeline from granting itself additional rights.

A media company migrating from on-premises to Azure.

Finding
Storage containers created during migration were set to allow anonymous blob access to simplify the transfer and never changed. Around 90,000 files, including contracts and unreleased content, were readable by anyone with the URL pattern.
Recommendation
Disable anonymous access at the storage account level so it cannot be re-enabled per container, and add an Azure Policy denying public containers estate-wide.
Outcome
Access disabled within hours. The policy is now applied at management group level, which prevents recurrence in any new subscription.

A SaaS provider running workloads on Google Kubernetes Engine.

Finding
Pods ran with a node service account that held broad project-level permissions. A container escape or an application vulnerability in any pod would have granted access to every storage bucket and secret in the project.
Recommendation
Move to Workload Identity with per-workload service accounts scoped to only what each needs, and remove project-level grants from the node account.
Outcome
Workload Identity rolled out over two sprints. The breach simulation was re-run and the compromised pod reached only its own bucket.

Next

Scope this assessment

Most scopes are settled in one call. Tell us what the application does and who uses it, and we will tell you what testing it properly involves.