Strobesstrobes
Platform
Solutions
Resources
Customers
Company
Pricing
Book a Demo
Strobesstrobes

Strobes connects every exposure signal to autonomous action, so security teams fix what matters, prove what works, and stop chasing noise.

Book a DemoTalk to an expert
ISO 27001SOC 2CREST
  • Platform
  • Platform Overview
  • Agentic Exposure Management
  • AI Agents
  • Integrations
  • API & Developers
  • Workflows & Automation
  • Analytics & Reporting
  • Solutions
  • Exposure Assessment (EAP)
  • Attack Surface Management
  • Application Security Posture
  • Risk-Based Vulnerability Management
  • Adversarial Exposure Validation (AEV)
  • AI Pentesting
  • Pentesting as a Service
  • CTEM Framework
  • By Industry
  • Financial Institutions
  • Technology
  • Retail
  • Healthcare
  • Manufacturing
  • By Roles
  • CISOs
  • Security Directors
  • Cloud Security Leaders
  • App Sec Leaders
  • Resources
  • Quick Agentic Pentest
  • Blog
  • Customer Stories
  • eBooks
  • Whitepapers
  • Datasheets
  • Videos & Demos
  • Exposure Management Academy
  • Pentesting ROI Calculator
  • Pentest Health Check
  • Security Tool ROI Calculator
  • Company
  • About Strobes
  • Meet the Team
  • Trust & Security
  • Contact Us
  • Careers
  • Become a Partner
  • Technology Partner
  • Partner Deal Registration
  • Press Release

Weekly insight for security leaders

CTEM research, agentic AI trends, and what's actually moving the needle.

© 2026 Strobes Security Inc. All rights reserved.

Privacy PolicyTerms of ServiceCookie PolicyAccessibilitySitemap
Back to Blog
Cheaper, faster, accurate pentests - Strobes blog featured image
Penetration TestingOffensive SecurityAI Security

How to Achieve Cheaper, Faster and Accurate Pentests

Akhil ReniAugust 21, 202623 min read

Table of Contents

  • Where the time actually goes in an engagement
  • Why most AI pentesting tools have the same problem
  • Your organization already has the context
  • Ingesting from everything you already run
  • What an asset record contains
  • What a finding record contains
  • Code indexing
  • Correlating code to cloud
  • What happens when you launch an engagement
  • Why the cost drops
  • Why the turnaround gets shorter
  • Why the findings get more accurate
  • How Strobes agentic pentesting does it
  • Where to start
  • Closing

Authors

A
Akhil Reni

Share

Table of Contents

  • Where the time actually goes in an engagement
  • Why most AI pentesting tools have the same problem
  • Your organization already has the context
  • Ingesting from everything you already run
  • What an asset record contains
  • What a finding record contains
  • Code indexing
  • Correlating code to cloud
  • What happens when you launch an engagement
  • Why the cost drops
  • Why the turnaround gets shorter
  • Why the findings get more accurate
  • How Strobes agentic pentesting does it
  • Where to start
  • Closing

Authors

A
Akhil Reni

Share

Every security leader wants the same three things out of a penetration test. Lower cost, faster turnaround, findings that are actually real. And almost everyone has been told you can only get two of the three.

I have been on both sides of this. Years as a bug bounty hunter breaking into things, and the last several years building a platform that has to deliver pentests at scale for enterprise customers. The tradeoff is not real. It exists because of how pentests are structured today, not because of anything fundamental about security testing.

The reason a pentest is expensive, slow and noisy is almost always the same. The person or the tool doing the testing starts with no idea what your organization actually looks like. Everything else follows from that.

CONTEXT the graph Accurate Cheaper Faster
Fig 01 - Cost, speed and accuracy triangle with context at the center

Where the time actually goes in an engagement

Think about how a typical engagement runs.

You sign a statement of work. You send over a scope document, usually a list of URLs and maybe an IP range. Somebody schedules a kickoff call. The testers spend the first two or three days of a ten day engagement on reconnaissance. They run subdomain enumeration on assets your cloud team could have listed in thirty seconds. They fingerprint technology stacks that are already documented in your SBOM. They click through the application trying to work out where the authentication boundary sits, which your own developers could point at instantly.

Then a few days of actual testing. Then the last stretch writing the report.

Out of ten days you are paying for, maybe four are real testing. The rest is the tester climbing a learning curve your organization already climbed years ago. You are paying senior offensive security talent to rediscover facts you already own.

It never shows up as a line item, but it is easily forty to sixty percent of the engagement, and it repeats on every single one. New quarter, new tester, same climb. The knowledge from the last pentest disappeared the moment the PDF was delivered.

That lost time does not just cost money. It costs accuracy. A tester who spends four days learning your app instead of six days attacking it will miss things. Not because they are bad, but because depth of understanding is what produces the interesting findings. Surface understanding produces surface findings. That is where your reflected XSS reports come from.

Why most AI pentesting tools have the same problem

The obvious answer over the last couple of years has been to throw agents at it. Autonomous pentesting, AI red teaming, pick the term. I build these systems, so I am not going to pretend they do not work. They do.

But most of them repeat the same mistake, faster and with a bigger bill.

You point an agent at a URL. The agent has no idea what that URL is. It does not know what codebase serves it. It does not know whether that endpoint sits behind an authentication middleware or in front of it. It does not know that the same service runs in three environments and only one is internet facing. So it does recon. It crawls, it fuzzes, it guesses, it burns tokens on discovery.

An agent doing blind reconnaissance is the most expensive form of reconnaissance there is. A human tester doing recon costs you their hourly rate. An agent doing recon costs you tokens on every page it fetches, every response it reasons over, every dead end it explores, and it will explore ten thousand dead ends without complaining. I have watched agentic loops accumulate context until the model is reasoning over a hundred thousand tokens of noise trying to remember what it was doing.

That context pollution is where hallucinations come from. When an agent has been wandering blind for forty turns, it starts reporting vulnerabilities in file paths that do not exist and quoting code snippets it invented. We hit this in our own pipeline and had to build grounding into the harness to stop it. An ungrounded agent does not just waste money. It generates convincing garbage, which is worse than generating nothing, because now a human has to spend time disproving it.

The answer is not to add AI to pentesting. The answer is to stop making anyone, human or machine, start from zero.

Your organization already has the context

Your organization already knows everything a pentester needs to know. It is scattered across fifteen systems that do not talk to each other.

Your cloud provider knows every workload you run, what its security groups look like, what IAM role it assumes and whether it is exposed to the internet. Your source control knows every repository, every service, every dependency and every recent change. Your SCA tool knows your dependency tree and which components have known issues. Your DAST tool knows which endpoints respond and what they return. Your CMDB knows ownership. Your ticketing system knows what got fixed and what got accepted as risk.

Every one of those facts is something a tester would otherwise spend hours rediscovering.

The problem is that none of these systems share a common language. Your cloud inventory calls something an instance ID. Your code scanner calls it a repository. Your DAST tool calls it a hostname. Your SBOM calls it a package. Nobody is stitching those together, so the intelligence stays fragmented and useless for offensive work.

That stitching is the actual product. Not the scanner, not the agent. The graph.

Fragmented
SCA - packages
SAST - repos
DAST - hostnames
Cloud - instance IDs
CMDB - owners
Tickets - risk
Secrets scanner
Containers
No shared language. Nothing correlates.
→
One graph
app repo cloud asset finding owner
Assets and findings, normalized and related.
Fig 02 - Fragmented tools on the left, unified asset and finding graph on the right

Ingesting from everything you already run

The first thing Strobes does is stop being precious about where data comes from.

You can connect anything. SCA, SAST, DAST, secret scanners, cloud posture tools, container scanners, API security tools, whatever you already bought and are already paying for. You connect GitHub or GitLab or Bitbucket. You connect AWS, Azure, GCP, wherever your workloads run. You connect ticketing and your CMDB.

None of that data gets thrown away or flattened into a summary. It gets normalized into two primitives everything else is built on: assets and findings.

That normalization step sounds boring. It is the most important engineering work in the platform. Once every tool speaks the same language you can start correlating, and correlation is where the intelligence comes from.

What an asset record contains

Most platforms treat an asset as a row with a hostname and a criticality rating. That is a label, not an asset.

An asset in Strobes carries the full picture of what the thing actually is.

Network and exposure. Open ports, listening services, protocol details, TLS configuration, whether it is reachable from the internet or only internally, what sits in front of it. A WAF, a load balancer, an API gateway.

Technology fingerprint. Web server, framework, runtime version, CMS, reverse proxy, auth provider. Not guessed from banner grabbing, but pulled from the systems that already know.

Software composition. The full SBOM. Direct dependencies, transitive dependencies, versions, licenses, provenance. When a new CVE drops on a package four levels deep in a dependency tree, you know exactly which running workloads are affected without asking anyone.

Cloud context. Account, region, VPC, subnet, security groups, IAM roles and policies attached, storage buckets it touches, secrets it can read. What a workload is allowed to do matters enormously for exploitability. Remote code execution on a container with a scoped read only role is a different problem than the same bug on a container with an over permissive role that can read your entire secrets store.

Ownership and business context. Which team owns it, which business unit, which environment, what the change velocity looks like.

Relationships. This asset serves that application. That application is built from this repository. This repository deploys to that cluster. That cluster sits in this account. This service calls that internal API. This database backs those three services.

The relationship graph is what turns an inventory into intelligence. An inventory tells you what you have. A graph tells you what happens when one thing breaks.

asset:// billing-api.prod
Network & exposure
443/tcp, 8080/tcp · TLS 1.3 · internet facing · ALB + WAF in front
Tech fingerprint
nginx 1.25 · Django 4.2 · Python 3.11 · OIDC auth provider
Software composition
Full SBOM · 41 direct, 388 transitive · versions, licenses, provenance
Cloud context
acct 4417 · eu-west-1 · vpc-0a3 · sg-114 · IAM role, attached policies, buckets, readable secrets
Ownership
Team Payments · Finance BU · production · high change velocity
Relationships
serves → app · built from → repo · deploys to → cluster · calls → internal API · backed by → db
Fig 03 - Exploded view of an asset record: ports, services, tech stack, SBOM, cloud metadata, relationships, ownership

What a finding record contains

Same discipline on the findings side.

A finding is not a title and a severity. Every finding that lands in Strobes carries where it is, what file and line if it came from code, what endpoint and parameter if it came from a scanner, what request and response proved it, the root cause, the exploitability conditions, the fixed version that resolves it, who owns the fix, and its history across previous scans and previous engagements.

Findings also get deduplicated and correlated across sources. Your SAST tool, your SCA tool and your DAST tool will all report versions of the same underlying weakness in completely different language. In most organizations those become three tickets that three people close independently. Correlated, they collapse into one finding with three pieces of corroborating evidence, which is a cleaner workflow and a much stronger signal about what is actually real.

That correlation history is also a calibration signal. Over time the platform learns which classes of findings on your stack turn out to be genuine and which get closed as false positives. You cannot buy that off the shelf. It is specific to your environment.

Code indexing

Integrations get you inventory. Code indexing is what makes the testing intelligent.

Strobes does not just store your repositories. It reads them and builds a structured, searchable representation of what the code does.

Route and endpoint extraction. Every route the application exposes, extracted from the framework definitions. Not crawled and guessed at from the outside, but read directly from where they are declared. That includes endpoints a crawler will never find because they are not linked from anywhere. Admin routes, internal APIs, debug handlers somebody left in, webhook receivers, legacy versioned endpoints nobody remembers.

That alone changes the picture. A crawler finds what is reachable by clicking. Code indexing finds what exists.

Authentication and authorization mapping. Where the auth middlewares are. Which routes sit behind them and which do not. Where the role checks, permission decorators and tenant scoping filters are. This is how you find broken access control properly, which is consistently the highest impact bug class in real applications and consistently the one automated scanners are worst at. A scanner cannot tell that an endpoint should have required an ownership check. Code indexing shows you which routes are missing the check that every sibling route has.

URL and sink extraction. Every place the application makes an outbound HTTP call, builds a URL from input, shells out, deserializes, renders a template, constructs a query or writes to a file. These are the sinks. This is where the bugs live.

Data flow and taint traces. Connecting sources of untrusted input to those sinks, with the transformations in between. This tells you whether a sink is actually reachable with attacker controlled data or safely fenced.

Chunking and indexing. All of it gets chunked, embedded and indexed so it is retrievable on demand. That matters more than it sounds. An agent working on a specific endpoint pulls exactly the twelve relevant chunks instead of trying to hold your entire monorepo in a context window. Precision retrieval instead of context stuffing.

01
Repository
GitHub / GitLab / Bitbucket
→
02
Route extraction
every declared endpoint
→
03
Auth mapping
middleware, roles, tenancy
04
Sink identification
queries, exec, templates, IO
→
05
Taint tracing
source → transform → sink
→
06
Chunk + embed
retrievable on demand
The index
12 relevant chunks, not the whole monorepo
Fig 04 - Code indexing pipeline: repository through route extraction, auth mapping, sink identification, taint tracing, chunking, into the index

Correlating code to cloud

Now stitch it together. This is where it stops being a data platform and becomes useful for offensive work.

Take a single endpoint. Something ordinary, like an invoice download route.

In a normal engagement that is a URL. In Strobes that URL resolves to the exact handler function in the exact file in the exact repository. The middleware chain that does or does not run in front of it. The database query it builds and whether that query is parameterized. The internal service it calls to fetch the file. The S3 bucket that service reads from, and that bucket policy. The IAM role of the container that runs the service. The ECS cluster it runs in. The account and region. The three other applications sharing the same bucket. The team that owns it. The commit that introduced the handler and the two open findings against its dependencies.

That is not a scope document. That is everything a tester would have spent two days assembling.

It works in both directions. Find something in code and trace it forward to the exact running workload where it is exploitable. Find something at runtime and trace it back to the line that caused it and the person who should fix it.

That bidirectional traceability has been missing from security testing forever. Code teams and cloud teams have been looking at the same problems through different windows without realizing it.

GET /invoices/:id/download
Source file
billing/views/invoices.py:214 · download_invoice()
Service
billing-api → calls doc-render internal service
Container
ECS task on cluster prod-eu-1
IAM role
doc-render-task-role · s3:GetObject, secretsmanager:GetSecretValue
Bucket
invoices-prod · shared with 3 other applications
Account
4417 · eu-west-1 · owned by Team Payments
code → cloud | cloud → code | bidirectional traceability
Fig 05 - A single endpoint traced from source file through service, container, IAM role, bucket, account

What happens when you launch an engagement

Start a pentest or a red team engagement on the platform. The agents do not start at zero. They start with the graph.

They already know every endpoint that exists, including the ones no crawler would find. They know which endpoints are behind authentication and which are not, and more importantly which ones look like they should be and are not. They know what technology is running, so no fingerprinting phase. They know the dependency tree, so they can go straight to proving whether a known issue is actually reachable and exploitable in your configuration. They know the cloud posture, so they can reason about what an initial foothold actually gets you.

The recon phase does not get faster. It disappears, because the answers were already in the graph.

The agents spend their time on exploitation, chaining and testing hypotheses instead. And the hypotheses are better because they are informed. An agent that can see the code does not fuzz an endpoint hoping something interesting comes back. It reads the handler, sees the object identifier going straight into a lookup with no ownership check while every comparable handler in the codebase has one, and goes to prove that specific thing. One targeted request instead of two thousand blind ones.

Same test, completely different economics.

Why the cost drops

Cost in a modern pentest, human or agentic, is a function of wasted work. Cut the waste and the cost follows.

Reconnaissance goes to near zero. The largest block of both human hours and agent tokens is gone because the data already exists.

Retrieval beats context stuffing. Pulling twelve relevant chunks costs a fraction of reasoning over an entire repository, and produces better output because the signal to noise ratio is higher.

Targeted testing beats brute force. A thousand blind requests to find one insecure direct object reference versus five informed ones. In agent tokens and in load on your own infrastructure, informed testing is an order of magnitude cheaper.

Caching works when context is stable. When your organizational context is a structured, persistent graph rather than a fresh crawl every time, large parts of the prompt context repeat across runs and across engagements. In our own pipeline, getting prompt caching right took cost down by roughly two thirds. That only works because the context is stable and reusable, which is only true when it comes from a graph rather than live discovery.

Model routing becomes viable. Not every step of an engagement needs a frontier reasoning model. Classification, extraction, normalization and routine validation run fine on smaller, cheaper models. Expensive reasoning gets reserved for the parts that need it. You can only route intelligently if the pipeline is structured into discrete steps, and it can only be structured if the context is structured.

Knowledge compounds instead of disappearing. This is the one that changes the multi year math. Every engagement enriches the graph. The next one starts further ahead than the last. Traditional pentesting has zero knowledge retention between engagements, so every quarter you pay full price to rebuild understanding that existed three months ago.

Why the turnaround gets shorter

No discovery phase. Days one through three collapse into minutes.

Parallel by default. When you know the full endpoint inventory upfront you can fan out across the entire surface simultaneously rather than working through it sequentially as you discover it. Discovery is inherently serial. Testing a known list is not.

Fewer dead ends. Most of a tester's time goes into paths that turn out to be nothing. Code visibility kills most of those before any request is sent. If the taint trace shows the input never reaches the sink, you do not spend an hour proving it.

Reporting is a rendering step. The evidence, location, root cause, ownership and remediation guidance are already structured in the platform. The report is generated from data that already exists rather than written from scratch over a week.

Continuous instead of episodic. Once context is maintained continuously, testing does not have to be a scheduled event. A new service deploys, the graph updates, the relevant tests run against it. You find the problem in the sprint that introduced it rather than in next quarter's engagement.

Why the findings get more accurate

This is the part I care about most, because accuracy is where credibility lives. A report full of noise trains your engineering team to ignore security, and that damage outlasts the engagement.

Grounding prevents hallucination. When the agent has to reference real indexed code with real file paths, it cannot invent a vulnerable function that does not exist. The harness enforces that every claim resolves to something real. Every reference is a handle into actual indexed content, not a string the model generated. That is the difference between an agent reporting what it found and an agent reporting what sounds plausible.

Reachability filters out the noise. A known vulnerability in a dependency is only interesting if the vulnerable code path is reachable in your application and exposed in your deployment. With the code index and cloud context together you can answer that, instead of shipping a CVE list and calling it a finding. Most of what SCA tools report is theoretically true and practically irrelevant. Correlation separates the two.

Evidence is kept separate from reasoning. In our pipeline, agents record what they observed separately from what they concluded from it. Observation is evidence. Conclusion is testimony. A finding only gets promoted when the evidence supports it independently of the narrative the agent built around it. That single architectural decision cut false positives more than any prompt engineering did.

Severity becomes contextual. The same technical bug on an internet facing production service with a broad IAM role and on an internal staging box with a scoped role are not the same risk. Without context you either inflate everything or flatten everything. With context you can rate actual risk, and engineering starts trusting your severities again.

Cross validation across sources. When code analysis, runtime testing and cloud posture independently point at the same weakness, confidence is high. When only one does, it gets flagged for validation rather than shipped as fact.

Chains become findable. The serious findings are almost never single bugs. They are chains. A low severity information disclosure gives you an internal hostname, that host runs an unauthenticated internal API, that API's container holds a role that reads a secrets bucket, those secrets unlock production. No individual step is above medium severity. The chain is critical. You cannot find chains without a relationship graph, which is why traditional scanning never finds them and why chained findings are where the real value in an engagement sits.

LOW
Info disclosure leaks internal hostname
code
LOW
Internal API reachable without auth
app
MEDIUM
Container role broader than needed
cloud
MEDIUM
Secrets bucket readable by role
cloud
LOW
Stored credentials not rotated
cloud
CRITICAL
Chained path to production secrets
code → app → cloud
Fig 06 - Five low and medium findings connecting into one critical path across code, application and cloud layers

How Strobes agentic pentesting does it

All of this runs as one product. Autonomous agents execute real, end to end penetration tests across web, API, network, cloud and code, and every finding ships with a working proof of concept attached.

An engagement is orchestrated, not improvised. A coordinator scopes the target, allocates phases and sequences the agents. Discovery, session management, attack and internal network agents each work the part of the surface they are built for. Attack and validation tools do the execution: headless browsers, exploit validators, a credential engine, an out of band collaborator service. A man in the middle proxy records every request and response, so evidence and replay are captured rather than reconstructed. Memory persists across phases, runs, assets and engagements, which is the same compounding-context argument, implemented.

Coordinator
plan of work · understanding of target
↓
AI agents
Discovery · session management · attack · internal network
Attack + validation tools
Headless browser · exploit validators · credential engine · collaborator
Proxy
Every request and response recorded for evidence and replay
Memory & knowledge
Skills library · workspace · findings store, persisted across runs
↓
Confirmed exploit
PoC · replay script · CVSS
Fig 07 - An autonomous engagement: coordinator, agents, tools, proxy and persistent memory

The harness is what makes it safe to point at production. Every agent runs in an isolated, disposable sandbox. Scope rules, rate limits and destructive action policies are enforced at the harness level, and high impact steps pause for a human approval gate. Every command, decision and result is logged for replay, and secrets live in an encrypted vault the agents can use but never read in the clear. For internal work a lightweight on premise agent runs inside VPCs, Kubernetes clusters and Active Directory domains, so no data leaves the perimeter.

One engine covers the range of engagements a security programme actually needs: web, API and mobile application testing, LLM and agentic app testing, external and internal network, Active Directory, cloud review, code review with reachability verification, red team, supply chain and threat modelling. A human stays in the loop throughout, approving sensitive actions and taking handoff mid engagement.

The results are measured rather than asserted. Strobes ran a fully autonomous pentest against a live target, the open source Fider app, and Doyensec independently assessed the same application to give every number a shared third party reference.

45
validated findings, deduplicated
37
confirmed exploitable live
0
false positives
Validated findings, same target
Strobes AI
45
XBOW
26
Aikido
17
6 scanners
13
Source: live target Fider v0.33.0. Doyensec independently assessed the same application and published the validated Aikido and XBOW figures. Six scanner field deduplicated for like for like comparison.
Fig 08 - Benchmark against the field on one shared target

And it does not stop when the report lands. Every patch triggers an exploit replay, so a closed ticket is confirmed by a blocked exploit rather than by someone's word. See how agentic pentesting works.

Where to start

The order matters. Do not try to connect everything on day one.

Source control first. Code indexing is the highest leverage single integration. It gives you the endpoint inventory, the auth map and the sink map, which is most of what makes testing intelligent.

Cloud accounts next. This gives you exposure reality and blast radius, which is what turns findings into risk.

Then your existing scanners. SCA, SAST, DAST, secrets, containers. You already own these. The value is not the individual findings, it is what happens when they get correlated against each other and against the graph.

Then ownership. Half the delay in remediation is not technical, it is working out who is supposed to fix it. Get ownership into the graph.

Then run the engagement. With that foundation the first engagement is meaningfully better, and every one after it compounds.

Closing

Cheaper, faster and accurate was never a real tradeoff. It was a consequence of running every pentest as if your organization were a stranger.

Reconnaissance is not testing. It is the cost of not knowing your own environment. Remove that and you remove the cost and the delay, and accuracy improves as a side effect, because informed testing is simply better testing than blind testing.

The organizations getting this right are not the ones with the best scanners or the biggest budgets. They are the ones who stopped leaving their security intelligence fragmented across fifteen disconnected tools and started treating it as one connected graph that every engagement reads from and writes back to.

Traditional - 10 days
4 days of real testing
Recon · 3d
Testing · 4d
Report · 3d
Context driven
recon disappears, report renders
Testing · parallel across the known surface
recon → minutes report → rendering step knowledge → retained
Fig 09 - Ten day traditional engagement timeline versus a context driven one
Tags
agentic pentestingAI pentestingpentest costoffensive securitycode indexing

Stop chasing vulnerabilities Start reducing exposure

See how Strobes AI agents validate and fix your most critical exposures automatically.

Book a Demo
Continue Reading

Related Posts

Agentic pentesting POC playbook: ten working days, four test blocks, and a 19-criterion scorecard
Penetration TestingOffensive Security

How to run an agentic pentesting POC

A 10-day testing playbook to evaluate agentic pentesting vendors: what to test each day, the red flags to watch for, and a scorecard that works with any vendor.

Aug 11, 202634 min
Tooling as Code and Structured Scratchpads
engineeringOffensive Security

Tooling as Code and Structured Scratchpads

The two changes that moved our AI security agents furthest this year had nothing to do with the model. Here is how tooling as code and structured scratchpads reshaped how the agents act, and how they prove a finding is real.

Aug 3, 202615 min
Top data breaches July 2026
Data BreachesAI Security

Top 8 Data Breaches and Exposures of July 2026

The 8 confirmed data breaches of July 2026, from a 78-million-account Suno leak to rogue AI agents breaching Hugging Face and Anthropic. What happened and how to defend.

Aug 1, 202620 min