Multi-Cloud Security Assessment
Adversarial testing of your AWS, Azure, and GCP environments — IAM privilege escalation, container and Kubernetes security, CI/CD pipeline attacks, serverless abuse, and cloud-to-on-premises pivot paths. Delivered by a CREST-certified principal with 15 years of offensive security experience.
Overview
What a Cloud Security Assessment CoversModern enterprises do not run on a single cloud provider. They run on three — simultaneously — alongside on-premises infrastructure, hybrid connectivity, and a web of third-party integrations. Attackers know this. They probe every seam: the IAM policy that grants more than intended, the storage bucket left world-readable, the CI/CD pipeline that pushes directly to production without a secrets gate.
Our multi-cloud security assessment models that attacker perspective across your full cloud attack surface. Arturs Stay, principal consultant — CREST-certified, OSCP, OSEP — leads every engagement personally. No junior analysts running automated scanners. Every finding is a proven exploitation path, demonstrated with working evidence, mapped to business risk, and paired with a concrete remediation recommendation.
Engagements are scoped to your environment: greenfield AWS accounts, mature Azure enterprise tenants, GCP-first organisations, or hybrid architectures that span all three. We work within your authorised boundaries and deliver a prioritised report your cloud and security teams can act on immediately.
Cloud Platform Coverage
AWS · Azure · GCP — Platform-Specific Attack PathsEach cloud provider has a distinct identity model, storage paradigm, and compute architecture. Generic scanning tools miss the platform-specific privilege escalation chains and misconfiguration patterns that skilled attackers exploit first. We test each platform on its own terms.
- IAM policy analysis and privilege escalation via PassRole, sts:AssumeRole, and wildcard permissions
- S3 bucket public access, ACL misconfigurations, and cross-account policy abuse
- EC2 instance metadata service (IMDSv1) credential theft and SSRF-to-IMDS chains
- Lambda function environment variable leakage, event injection, and over-permissioned execution roles
- EKS cluster misconfigurations, anonymous access, and node IAM role abuse
- CloudTrail gaps, GuardDuty blind spots, and detection evasion techniques
- Cross-account trust relationship abuse and organisation-level privilege escalation
- Entra ID (Azure AD) role assignment escalation and PIM abuse
- Azure Blob Storage public container exposure and shared access signature (SAS) token abuse
- Azure IMDS credential harvesting and managed identity token theft
- Azure Functions over-permissioned managed identities and trigger injection
- AKS cluster RBAC misconfigurations, anonymous API server access, and node pool escape
- Key Vault access policy weaknesses and certificate theft
- Azure Resource Manager policy gaps and subscription-level escalation paths
- IAM primitive roles, predefined roles, and service account key theft
- GCS bucket IAM policy misconfigurations and allUsers / allAuthenticatedUsers exposure
- GCE metadata server credential extraction and service account impersonation
- Cloud Functions environment variable leakage and event-driven injection
- GKE cluster misconfiguration, Workload Identity bypass, and node metadata abuse
- Organisation policy constraint gaps and folder-level privilege escalation
- Cloud Build pipeline compromise and artifact registry poisoning
Identity and Access Management misconfigurations are the single most reliable initial foothold in cloud environments. We enumerate every role, policy, and trust relationship to identify escalation chains — from low-privilege service accounts to cloud administrator — using Pacu (AWS), AADInternals (Azure), and custom GCP tooling.
Public S3 buckets, Azure Blob containers with anonymous access, and GCS buckets with allUsers permissions remain among the most common critical findings we report. We enumerate every storage resource in scope, test access controls, cross-account policies, and object-level permissions, and verify whether sensitive data — credentials, backups, PII — is accessible without authentication.
Cloud instance metadata services expose temporary credentials, user data scripts, and configuration details to any process running on the host. IMDSv1 on EC2, Azure IMDS, and GCE metadata endpoints are all in scope. We test for SSRF-to-IMDS chains from web applications, container escapes that reach the host metadata service, and direct metadata abuse from compromised instances.
Organisations operating across multiple cloud providers often create implicit trust relationships between accounts and tenants — federation configurations, cross-cloud service integrations, shared identity providers. We map these relationships and test whether a compromise in one cloud environment can be leveraged to move laterally into another, or back into on-premises infrastructure through hybrid connectivity.
Container & Kubernetes Security
K8s, Docker, ECS / EKS / AKS / GKEKubernetes has become the default compute fabric for cloud-native workloads — and a highly complex attack surface. Misconfigured RBAC, exposed API servers, privileged containers, and insecure admission controllers can each hand an attacker cluster-admin access or a path to the underlying node. We test managed and self-hosted Kubernetes clusters with the same rigour we apply to any other production system.
We enumerate cluster roles and role bindings to identify over-permissioned service accounts, wildcard verb grants, and escalation paths through impersonation, token creation, and secret access. ClusterRoleBinding misconfigurations that grant cluster-admin to non-administrative principals are consistently among our highest-severity findings.
Privileged containers, hostPath volume mounts, hostPID and hostNetwork settings, and misconfigured security contexts can all enable container breakout to the underlying node. We test each attack path applicable to your configuration — including abuse of container runtime sockets, kernel capabilities, and cgroup escapes — and validate whether node-level access provides a path to cloud credentials or adjacent workloads.
Kubernetes API servers should never be reachable from the internet without strong authentication. We test for unauthenticated access, certificate-based authentication weaknesses, bearer token exposure in CI/CD pipelines, and API server access from within the cluster network — including from compromised pods that should not have API access at all.
Pod Security Admission, OPA Gatekeeper, Kyverno, and similar admission controllers are only as effective as their policy definitions. We test whether existing policies can be bypassed through namespace labels, policy exceptions, or controller-specific escape techniques, and whether the admission controller itself is reachable and modifiable by workloads running in the cluster.
Kubernetes Secrets are base64-encoded, not encrypted, by default. We assess whether etcd encryption at rest is enabled, test access to Secrets objects through RBAC, and identify environment variable injection patterns in workload specifications that expose sensitive values to any process in the container. We also test integration with external secrets managers — AWS Secrets Manager, Azure Key Vault, GCP Secret Manager — for misconfigured access policies.
Managed Kubernetes services introduce cloud-provider-specific attack surfaces. EKS node IAM roles, AKS managed identity configurations, GKE Workload Identity bindings, and ECS task execution role permissions each present distinct escalation opportunities. We test the integration layer between your container platform and the underlying cloud IAM model — where the most impactful privilege escalation paths typically reside.
CI/CD Pipeline Security
GitHub Actions · GitLab CI · Jenkins · Supply ChainA compromised CI/CD pipeline is a compromised deployment. Attackers who can inject code into your build process, steal secrets from your pipeline environment, or tamper with build artifacts can achieve a persistent foothold in your production systems without ever touching the application code directly. Supply chain attacks via compromised dependencies and malicious GitHub Actions are an increasingly common initial access vector in enterprise environments.
We review GitHub Actions workflow definitions for pull request trigger misconfigurations that allow untrusted code to access secrets, environment variable leakage through debug logging, and the use of third-party Actions without pinned commit SHAs. We also test for script injection vulnerabilities in workflow expressions and unauthorised use of workflow_dispatch triggers to exfiltrate repository secrets.
GitLab CI pipelines can expose protected variables to unprotected branches, allow merge request pipelines to access production secrets, and run jobs with Docker-in-Docker configurations that enable container escape. We assess your GitLab CI configuration for variable exposure, protected runner misconfiguration, and job token abuse that can pivot from one project's pipeline to another within the same GitLab instance.
Jenkins installations accumulate security debt over years of organic growth. We test for unauthenticated access to the Jenkins UI and script console, Groovy sandbox escapes that allow arbitrary code execution on the controller, agent-to-controller security model weaknesses, credential store access via the Jenkins API, and exposed build logs containing plaintext secrets. JNLP agent configurations and plugin vulnerabilities are also in scope.
Software supply chain attacks target the tools and dependencies your build pipeline trusts. We assess your dependency management practices — npm, pip, Maven, Go modules — for dependency confusion attack vectors, typosquatting exposure, and the use of packages with known compromised maintainer accounts. We also evaluate your container image supply chain: base image sources, image signing, and registry access controls that could allow an attacker to substitute a malicious image.
Hardcoded API keys, cloud credentials, and private certificates committed to source repositories remain a routine finding. We scan repository history — including deleted commits and branch history — and pipeline configuration files for exposed secrets, then trace each finding to its accessible blast radius: what cloud resources, third-party services, or internal systems does that credential reach?
Build artifacts — container images, packages, deployment bundles — must be verifiable from build to production. We test whether your artifact registry enforces signed image policies, whether unsigned or tampered images can be pushed and pulled by production systems, and whether registry access controls prevent lateral movement between development, staging, and production environments.
Serverless & Function Abuse
Lambda · Azure Functions · Cloud FunctionsServerless functions eliminate infrastructure management but introduce a distinct attack surface: event injection, over-permissioned execution roles, insecure environment variables, and function-to-function trust chains that can escalate a low-impact event trigger into full cloud account compromise. The ephemeral, auto-scaling nature of serverless compute makes detection harder and forensic investigation more complex after a compromise.
Lambda execution roles, Azure managed identities, and GCP service accounts attached to functions routinely accumulate permissions well beyond what the function requires. We enumerate each function's attached identity, map its effective permissions, and demonstrate whether those permissions enable privilege escalation — to S3 administration, Key Vault access, or cloud account-level control — from a function that an attacker can trigger through a public endpoint or injectable event source.
Database connection strings, API keys, and third-party service credentials are frequently passed to serverless functions as environment variables rather than retrieved from a secrets manager at runtime. We assess how function configuration is stored and accessed, test whether function environment variables are retrievable through logging services, error responses, or misconfigured function URLs, and verify that secrets at rest in function configuration are appropriately protected.
Serverless functions process events from S3 notifications, SQS queues, API Gateway requests, Pub/Sub messages, and dozens of other sources. When function code passes event data to downstream processes without validation — shell commands, database queries, template engines — event injection becomes viable. We test each trigger type in scope for injection vulnerabilities and assess whether attacker-controlled event sources can reach your function endpoints.
Lambda function URLs and Azure Function HTTP triggers exposed without authentication, API keys, or proper CORS configuration are directly exploitable. We test for unauthenticated function invocation, SSRF through function-proxied HTTP requests, and resource-based policy misconfigurations that allow cross-account or public invocation of functions intended for internal use only.
Hybrid & On-Premises Integration
Cloud-to-On-Prem Pivot PathsThe boundary between cloud and on-premises is not a wall — it is a set of managed connections, federated identity systems, and synchronised directories that attackers traverse in both directions. A compromised cloud account can reach your on-premises Active Directory through hybrid identity. A foothold in your office network can reach your AWS, Azure, or GCP environment through VPN tunnels, ExpressRoute, or Direct Connect. We test the full path.
Azure AD Connect synchronises on-premises Active Directory identities to Entra ID. Misconfigured synchronisation accounts, pass-through authentication agents with excessive local privileges, and ADFS federation trust relationships can provide a pivot from cloud to on-premises — or allow on-premises compromise to propagate directly into your Azure tenant. We test hybrid identity configurations for both directions of attack.
Site-to-site VPNs, AWS Direct Connect, Azure ExpressRoute, and GCP Cloud Interconnect are frequently configured with overly broad routing tables that allow cloud resources to reach on-premises segments they have no business accessing. We map reachable network paths through your hybrid connectivity fabric and test whether cloud-resident workloads can reach on-premises services — and vice versa — beyond the intended scope.
Organisations running Active Directory domain controllers on cloud-hosted virtual machines inherit on-premises AD attack paths in their cloud environment. DCSync attacks, Kerberoasting, NTLM relay through cloud-hosted Windows workloads, and SMB lateral movement between cloud VMs and on-premises systems are all testable from a cloud-side initial foothold. We validate whether your cloud-to-AD segmentation is effective in practice, not just in theory.
SAML federation between on-premises identity providers and cloud service providers introduces trust that, when abused, can allow an attacker with access to the on-premises signing certificate to forge authentication tokens for any federated cloud identity — the Golden SAML attack. We test SAML federation configurations across AWS SSO, Azure ADFS integrations, and GCP Workforce Identity Federation for token forgery exposure and signing certificate protection.
Standards & References
Frameworks That Underpin Our MethodologyOur cloud security assessments are grounded in industry-recognised security frameworks and benchmarks. Findings are mapped to the applicable standard controls to support your audit and compliance reporting requirements.
- CIS Benchmarks — Level 1 and Level 2 security configuration baselines for AWS, Azure, and GCP. Our findings reference specific CIS controls to support your compliance posture. Available at cisecurity.org.
- AWS Well-Architected Framework — Security Pillar — AWS guidance covering identity and access management, detection, infrastructure protection, data protection, and incident response. Our AWS assessment deliverables map findings to Well-Architected design principles. Available at aws.amazon.com/architecture/well-architected.
- Microsoft Cloud Security Benchmark (MCSB) — The Azure Security Benchmark provides prescriptive security guidance for Azure services including network security, identity management, privileged access, data protection, and logging. Our Azure findings are mapped to MCSB controls. Available at learn.microsoft.com/en-us/security/benchmark/azure.
- NIST SP 800-144 — Guidelines on Security and Privacy in Public Cloud Computing — NIST guidance on cloud governance, risk management, and security controls applicable to organisations deploying workloads in public cloud environments. Our reporting references NIST control families where applicable.
- MITRE ATT&CK for Cloud — Adversarial tactics and techniques specific to AWS, Azure, GCP, Office 365, and SaaS platforms. Our cloud assessment findings are mapped to ATT&CK techniques to support threat detection use case development and purple team exercises.