Serverless & Cloud Function Penetration Testing
Serverless penetration testing across Europe: we attack your Lambda and cloud functions, IAM roles and event triggers by hand. SOC 2 ready, fixed price.
Serverless penetration testing goes after the parts of a cloud-function application that the platform does not secure for you: the over-permissioned IAM role, the event trigger that trusts its input, the secret sitting in an environment variable. Serverless removes the servers you had to patch, but it moves the risk into identity and configuration, and that is where we test, in your account, against the roles and triggers you actually run.
What serverless penetration testing actually covers
A serverless application is not one process on a box. It is dozens of small functions wired together by events from queues, storage buckets, HTTP gateways and databases, each running with its own permissions. The attack surface is the wiring. A function that can be triggered by data an attacker controls, holding an IAM role broader than it needs, is the modern equivalent of a compromised server, and it will not show up in a network scan because there is no server to scan.
How we test a serverless application
Every engagement is manual, run by an engineer who works in cloud environments and reads IAM policies for fun. Serverless testing blends application security with cloud configuration review, because a flaw in the code and a flaw in the role behind it combine into the real impact. We usually run it grey-box, with read access to the configuration, since that mirrors what an attacker learns quickly and makes the test far more thorough.
Mapping the architecture
We start by mapping every function, its triggers, the resources it can reach, and the identity it runs as. Using the cloud provider’s APIs, Burp Suite against the HTTP entry points, and a review of your infrastructure-as-code, we build a picture of how data and permissions flow across the application. That map tells us which functions are reachable by an attacker and which ones hold dangerous power.
Attacking the entry points
We test every way into the application: API Gateway routes, Lambda function URLs, and functions triggered indirectly by uploads, queue messages or database changes. Event-injection testing is central here. When a function processes a file dropped in a bucket or a message on a queue, we control that input and probe for injection, deserialization and logic flaws, because those triggers are trusted far more than they should be.
Escalating through IAM
Once we can influence a function, the question is what its role lets us do next. We analyse the attached IAM policies for excess permissions and known escalation paths, such as a role that can rewrite its own policy, pass a more powerful role, or read secrets it never needed. Chaining a low-value entry point to an over-permissioned role is how a single serverless bug becomes account-wide compromise.
Exploitation and reporting
Where we find a real path, we prove it inside your account against test resources: reaching data the function should not, extracting a secret, or invoking a privileged action. You get the written report within days, with reproduction steps and the exact policy or code change to fix it, a live walkthrough, and a free retest.
Vulnerabilities we routinely find in serverless applications
The failure modes are different from a traditional server, and teams new to serverless tend to carry over the wrong assumptions.
Over-permissioned function roles
The most common and most damaging finding. Functions are frequently granted broad permissions for convenience during development and never tightened, so a bug in one function exposes storage, databases and other services across the whole account. Least privilege per function is the fix, and almost nobody does it fully without being shown the gap in their own environment first.
Event-data injection
Developers validate HTTP input but treat data arriving from an internal queue, a storage event or a database stream as trusted. An attacker who can place a crafted object in a watched bucket or a poisoned message on a queue reaches the function with input that was never sanitised, opening the door to injection and deserialization attacks.
Secrets in the wrong place
API keys, database passwords and third-party tokens end up in environment variables, in the deployment bundle, or logged to the platform’s log stream. Anyone who can read the function configuration or the logs then reads the secrets, and in serverless that surface is often broader than teams expect, since configuration and logs are readable by more identities than a traditional server ever exposed.
Vulnerable dependencies
Each function ships its own bundle of libraries, and those bundles rot. A known-vulnerable package in a function that handles attacker-influenced input is directly exploitable. We inventory dependencies across your functions and identify the ones that are both outdated and reachable.
SSRF into the cloud control plane
A server-side request forgery flaw in a function can be turned toward the cloud metadata service or internal endpoints to steal the function’s credentials and pivot deeper. We test outbound-request handling wherever a function fetches a URL on someone else’s behalf.
Broken authorization between functions
In a distributed function architecture, each function tends to assume that whatever invoked it already checked the caller. Often nothing did. We test whether an internal function can be reached directly, whether one user’s request can trigger an action on another’s data, and whether the authorization decision is enforced consistently rather than left to whichever function happened to run first.
Denial of wallet and missing limits
Serverless bills by invocation, so an attacker who can trigger a function in a loop can run up a large bill or exhaust concurrency and take the application down. We check for invocation limits, throttling and cost controls, an abuse class that only exists because of the pay-per-use model.
Want this tested on your own systems?
Free 20-minute scoping call, a fixed price with no hourly surprises, and a free retest once you fix what we find.
Compliance and standards we align with
Serverless does not remove your compliance obligations; it changes where the evidence comes from. We write the report to satisfy auditors and cloud-security reviews.
SOC 2, ISO 27001 and cloud baselines
SOC 2 and ISO 27001 both expect independent testing of the application and its environment, and ISO 27001 A.12.6 on vulnerability management maps to this work. We assess configuration against the CIS Benchmarks for AWS, Azure and GCP and against the provider’s own well-architected security guidance, so the findings sit in a framework your auditor already recognises.
Application and cloud security guidance
We reference the OWASP Serverless Top 10, which reframes familiar risks for the function model, alongside the OWASP API Security Top 10 for your HTTP entry points. These give your developers a shared, documented basis for each fix.
Data protection and resilience
Where the functions process personal data we test with GDPR in mind, and for regulated financial workloads the results support DORA operational-resilience and third-party testing expectations across the EU.
What you get from the engagement
A report your cloud engineers can act on the same day.
- An executive summary for leadership, auditors and cloud-security reviewers
- A technical report with each finding scored by CVSS, ranked by blast radius, and paired with exact reproduction steps
- Specific remediation: tightened IAM policies, input validation, secret-management and limit changes
- An attestation letter for SOC 2, ISO 27001 or a customer cloud-security review
- A live walkthrough with your engineering and platform teams
- A free retest once you have remediated, confirming the fixes hold
Everything is delivered under NDA, and any data or credentials we touch are handled securely and rotated or destroyed on request.
Why manual testing beats a scanner here
Cloud posture scanners are genuinely useful for serverless, and we run them to catch the obvious misconfigurations. What they cannot do is chain a mildly over-permissioned role, a function triggered by an attacker-controlled upload, and a vulnerable dependency into a working account takeover. That reasoning across code, identity and event flow is human work. A scanner tells you a role is broad; a tester shows you the exact upload that reaches the function, the escalation the role allows, and the data that comes out the other end, then hands you the two-line policy change that closes it. On a serverless estate where permissions are the perimeter, that is the test that matters, and it is one no automated posture check will ever complete on its own.
Pricing
Pricing depends on scope: how many functions and triggers, how complex the IAM model is, and whether it spans one cloud or several. Here is the shape of a typical European engagement.
| Engagement | What’s included | Timeline | Price |
|---|---|---|---|
| Essential | A single serverless application, its HTTP entry points, core functions and IAM roles, event-injection and secrets review, report and free retest | 5–7 working days | from €3,500 |
| Standard | Larger application across many functions and event sources, full IAM escalation analysis, dependency review and cloud-configuration testing | 8–12 working days | €5,500–€12,000 |
| Advanced | Complex or multi-account estate, several event-driven services, deep attack-chaining from entry point through IAM to data and control plane | 12–18 working days | €12,000–€25,000 |
| Compliance add-on | Mapping and attestation for SOC 2, ISO 27001, CIS Benchmarks or DORA | with any tier | from €800 |
| Custom / large estate | Multiple applications or a full multi-cloud environment, scoped after a free call | on scoping | custom |
Every engagement is fixed-price, quoted after a free 20-minute scoping call — no hourly surprises, and a retest is included. Get a fixed quote
FAQ
How much does serverless penetration testing cost?
How long does a serverless penetration test take?
Do you test AWS Lambda, Azure Functions and Google Cloud Functions?
Do you review IAM roles and permissions?
Do you need access to our cloud account?
Will this satisfy our SOC 2 or ISO 27001 audit?
Can testing run up our cloud bill or cause an outage?
Is everything kept confidential?
Related services
Teams running production applications on AWS Lambda, Azure Functions or Google Cloud Functions who need their function permissions, event triggers and secrets tested before a SOC 2 audit, a customer cloud-security review, or a major release.
Security you can prove
The same standard on every engagement, big or small.
Evidence, not opinions
Every finding ships with a reproduction and proof of concept — no vague "maybe vulnerable".
Humans over scanners
Certified engineers find the logic flaws and chained attacks automated tools walk straight past.
Fixed price, free retest
You know the cost up front, and verifying the fix is part of the deal — not a second invoice.
Ready to lock this down?
Free scoping call, fixed price, free retest. Tell us what you're running and we'll take it from there — usually within one business day.
Tell us what you're running
Scoping is free. We reply within one business day, and under 30 minutes for active incidents.