Home
VAPT Web Application PentestAPI PentestMobile App PentestInfrastructure PentestAI & LLM PentestOT / ICS PentestIoT PentestPenetration TestingAll VAPT services
Red Team Red Team EngagementAdversary SimulationAssumed BreachPurple TeamingSocial Engineering
Sectors Banking & Financial ServicesGovernment & Public SectorHealthcareOil, Gas & EnergyAviation & LogisticsRetail & E-commerceManufacturing & IndustryTelecommunicationsTechnology & SaaS
CompanyResourcesBlogFree Consultation

OWASP A01, A03, A05 and A09: the SIEM signals a web app pentest produces

Four OWASP risk classes produce distinct log signals during a web app pentest. Know which entries to expect and which thresholds trigger a SIEM alert.

Joel Aviad OssiJoel Aviad OssiRed Team Lead, RedTeam Security
7 min read
An isometric diagram showing a web application server in the centre, log streams flowing right to a SIEM console displaying four active alert panels

Key takeaways

  • IDOR produces a recognisable access-log pattern: one session cycling through many resource IDs in rapid succession. A SIEM threshold rule above ten sequential GETs in five minutes will catch it.
  • SQL injection and reflected XSS both appear in the WAF log before they reach the database. WAF monitor mode during a pentest creates the evidence record your SIEM needs for both.
  • A09 Insufficient Logging and Monitoring is the only OWASP class that describes a detection failure. If the tester's actions do not appear in your audit log, A09 is itself a finding.
  • Security misconfiguration alerts fire on clusters of 5xx responses. More than five server errors from a single IP in two minutes during a pentest window is a signal worth investigating.
  • After the pentest, convert the SIEM queries that fired during the engagement window into permanent rules. Those queries are the direct detection output of the engagement.

What the detection side of a web app pentest must prove

A web application pentest is not complete when the last finding is written. The report must be matched against what your security controls actually saw. If a tester replayed a SQL injection payload thirty times and your WAF has no corresponding entries, the control is not working, and the pentest has uncovered a detection gap as significant as the injection itself.

OWASP publishes ten risk categories in its Top 10. Four of them, A01, A03, A05 and A09, are directly observable in logs: they produce specific entries, fire specific SIEM rules and generate alerts when thresholds are set correctly. This article names those signals and shows the log patterns your detection team should expect. For the broader question of which controls fire across all phases, see what your monitoring should catch during a web app pentest. The focus here is the four classes that produce the most useful detection signals.

Every OWASP class that produces a log signal passes through these three layers before it reaches a SIEM alert.

A01: access control failures and IDOR in the access log

Broken Access Control is OWASP's highest-ranked risk category. The class includes insecure direct object references, known as IDOR, where an application uses a predictable identifier to serve protected resources and does not check whether the requesting user is entitled to them. A tester probing for IDOR changes one field in a request, an account ID, an order number or an invoice reference, then measures whether the server returns another user's data with a 200 status code.

The access log pattern is distinct. A single authenticated session cycles through a sequence of numeric IDs without any other page navigation between them. That is not normal user behaviour. A SIEM rule that fires when one session generates more than ten 200-response GETs against a parameterised endpoint within five minutes, without any matching page load in between, will catch the pattern and distinguish it from a user browsing their own records. The article on testing authorisation role by role explains how to construct those test cases; the SIEM threshold rule below is the detection counterpart to that work.

Define the threshold against your application's legitimate access pattern, not against a generic baseline. An API that serves account records to a service account may legitimately request fifty objects in rapid succession; a browser-based application almost never does. A threshold calibrated to the application reduces false positives and means the alert is worth acting on when it fires.

SIEM correlation rule: IDOR probe pattern
RULE idor_probe
  source: web_access_log
  filter: http_status = 200
         AND path ~ /api/(accounts|orders|invoices)/[0-9]+
  group_by: session_id
  condition: count > 10 within 5m
            AND distinct(resource_id) > 5
  alert: "IDOR probe: {session_id} accessed {distinct_count} distinct resource IDs"
OWASP risk classes, their primary log source and the SIEM signal they produce during a web application pentest.
OWASP ClassLog SourceSIEM SignalAlert Threshold
A01 Broken Access ControlApp access logRapid sequential GETs on parameterised endpoint, single sessionMore than 10 in 5 minutes
A03 InjectionWAF logSQL keywords or script tags in request parameterAny single match
A05 Security MisconfigurationApp error logCluster of 5xx responses to one source IPMore than 5 in 2 minutes
A09 Logging and MonitoringSIEM absence queryNo audit entry for privileged or admin actionZero matches on admin events

A03: SQL injection and XSS in WAF and web server logs

SQL injection appears in web server logs and WAF logs before it reaches the database. The raw HTTP request carries the payload in a query parameter, a form field, or a path segment, and the web server records it. A WAF set to monitor mode captures and labels the payload without blocking it; that is the standard configuration during a pentest, so the tester can probe while the detection stack records the full attempt.

XSS payloads leave a different entry. A stored XSS payload submitted through a form is logged at write time, and the script tag or encoded equivalent appears in the access log at the POST request. A reflected XSS attempt appears as an unusual parameter value in a GET request, often URL-encoded. Both are distinguishable from ordinary traffic if the WAF rule set flags script injection patterns, not only known-bad signatures. Reviewing both injection types as a pair tells you whether WAF coverage extends past SQL to the browser-side classes as well.

Access log: SQL injection attempt
192.168.1.42 - alice [10/Nov/2026:09:14:22 +0000] "GET /search?q=1'+OR+'1'='1 HTTP/1.1" 200 1452
WAF log: reflected XSS attempt
[10/Nov/2026 09:15:03] RULE_ID=941100 SEVERITY=CRITICAL
  URI=/comments?reply=%3Cscript%3Ealert(1)%3C%2Fscript%3E
  CLIENT=192.168.1.42 HTTP_METHOD=GET RESPONSE=400
  MSG="XSS Attack Detected via libinjection"

A05: security misconfiguration and what logs record

Security misconfiguration covers missing security headers, default credentials left active, unnecessary services exposed, and verbose error messages that disclose stack traces. A pentest finds these in the application response, but detection tools find them differently: they appear as error codes that a correctly configured application would not return, and as the absence of headers a well-configured one always sets.

A SIEM cannot read a response header the way a browser does, but it can read application logs that record response codes. An endpoint that returns 200 but never sets a Content-Security-Policy header is not visible from the SIEM; that check belongs in a vulnerability scanner or an API pentest where headers are read actively. What a SIEM sees from A05 is the 500-level responses that verbose error handling returns: a stack trace on a production endpoint is a configuration failure, and a cluster of server errors from a single IP during a pentest window is a signal worth alerting on. If those 500s do not appear in the SIEM, the application is not forwarding error events, which is itself an A09 finding discussed in the next section.

Set the alert threshold below the noise floor of your legitimate error rate. An application that rarely errors should alert on three consecutive 500s from one IP within two minutes. The threshold is not universal: it is derived from the application's observed behaviour during normal operation and reviewed before each engagement.

Plotting the four classes by detection coverage and attack impact shows which gaps are most dangerous and which are easiest to close first.

A09: when the logging failure is itself the finding

A09 Insufficient Logging and Monitoring is the only OWASP category that is itself a detection failure. The others describe vulnerabilities in the application; A09 describes a gap in your ability to see those vulnerabilities being exploited. OWASP defines the class as the failure to detect, escalate or respond to active breaches, and names the absence of audit trails for login failures, high-value transactions and access control exceptions as the primary indicators. The OWASP Web Security Testing Guide section on logging and monitoring provides the test cases your detection team should run alongside the pentest.

During a web application pentest, A09 findings surface when the tester's actions do not appear in logs. A series of failed authentication attempts that generates no SIEM alert, an administrative function call with no audit record, or a privilege escalation with no corresponding log entry are all A09 findings, not just application configuration items. The OWASP A09 guidance lists the minimum events every application should log: authentication events, access control failures, server-side validation failures and high-value transactions. If the application misses any of these, the SIEM cannot compensate because there is no event to ingest.

The check is simple in practice: run the pentest, then query your SIEM for the specific actions the tester executed. A finding logged as unauthenticated access to an administrative endpoint should appear in the application audit log within minutes. If it does not, the application is not generating the event the SIEM needs. The fix sits with the application developer, not with the SIEM rule writer. Business logic attacks have a parallel problem: the article on testing business logic flaws covers the test cases, and each one that does not produce an audit entry is an A09 finding alongside the business logic flaw itself.

Converting pentest findings into permanent detection rules

The gap list from the pentest feeds directly into detection engineering work. For each finding that your SIEM did not log, the first step is to determine whether the application generates an event at all. If the application logs the action but the SIEM has no correlation rule, write a rule against the existing field and set a threshold calibrated to the application's normal traffic. If the application does not log the action, raise a development task to add the event before the next engagement. Distinguish the two: a missing rule is a one-day fix; a missing application event requires a code change, testing and a release cycle.

Two exercises follow the detection gap review. A purple team engagement replays each finding as an adversary technique, with your detection team watching in real time, so the SIEM rule is not just written but confirmed to fire before the engagement closes. An assumed-breach exercise starts from an already-compromised account and tests whether lateral movement through the application generates observable signals at every hop. Both are a natural follow-on once a web app pentest surfaces detection gaps across the four OWASP classes covered here.

Export the SIEM queries that fired during the pentest window and convert them to permanent rules before the engagement closes. Those queries describe exactly the patterns the tester used, they are already calibrated to your application, and they give your security operations team the evidence to monitor for the same attack patterns in production traffic. A pentest that improves your detection estate is worth more than one that produces only a vulnerability list.

Web application pentest detection requirements in the UAE

In the UAE, the requirement to maintain audit logs and monitor application access is stated across all four active security frameworks. CBUAE technology risk guidelines require licensed banks to maintain logs of access to protected financial data and to generate alerts on anomalous access patterns. Those requirements name the same log classes that A01 and A09 describe: access records, authentication events and privilege use. A bank in Abu Dhabi or Dubai that undergoes a web application pentest under those guidelines must demonstrate not only that the application was tested, but that its monitoring stack detected the pentest activity. Evidence of detection is as much part of the submission as the finding list. The CBUAE technology risk guidance does not name OWASP by label, but its log and alert requirements map directly to the four classes this article covers.

DESC security standards require Dubai government entities and their approved suppliers to maintain security event logs and to test monitoring controls as part of annual security assessments. NESA and the UAE Information Assurance Standard set equivalent requirements for entities in federal scope. ADHICS, which governs Abu Dhabi healthcare organisations, adds patient data access logging as a specific obligation. For a Dubai Silicon Oasis entity serving government clients, both DESC and NESA apply simultaneously. A web application pentest that surfaces A09 findings in any of these organisations is not an abstract technical issue: it is a gap in a mandated control, and the regulator can ask for evidence that the gap has been closed, not just identified.

Frequently asked questions

What is OWASP A09 Insufficient Logging and Monitoring?

A09 is OWASP's category for applications that do not generate, retain or forward the events a security operations team needs to detect active attacks. It covers missing authentication logs, absent access control audit trails and the failure to alert on anomalous behaviour. It stands apart in the Top 10 because the vulnerability is in the detection stack, not in the application logic itself.

Can a SIEM detect IDOR during a web application pentest?

A SIEM can detect the access pattern that IDOR produces: a single session cycling through many different resource identifiers in rapid succession with a consistent 200-response code. It cannot detect the logical flaw directly. To catch the scan, set a correlation rule that fires when one session generates more than ten sequential successful GETs against a parameterised endpoint within five minutes.

Can a SIEM detect business logic flaws during a web app pentest?

A SIEM cannot detect business logic flaws directly because those flaws produce valid HTTP responses that do not look anomalous at the request level. What a SIEM can detect is the access pattern that testing business logic produces: unusual sequences of requests that do not follow the normal application workflow. Each test case that does not generate a corresponding audit entry is also an A09 finding, independent of the business logic issue itself.

What access log entry does a SQL injection attempt produce?

A SQL injection attempt appears in the web server or WAF access log as a GET or POST request carrying a payload in a parameter. The payload contains SQL syntax: a single quote, an OR clause, a UNION SELECT string or a comment sequence. Web application firewalls log the rule identifier alongside the URI, the client IP and the response code, giving a complete record for correlation in a SIEM.

What is the difference between WAF logging and SIEM detection during a pentest?

A WAF logs individual requests and applies per-request rules, flagging payloads that match injection signatures. A SIEM correlates events across time, so it detects patterns that no single request reveals, such as an IDOR scan that sends individually legitimate requests to a sequence of resource IDs. The two layers are complementary: WAF catches known-bad payloads, SIEM catches anomalous behaviour that spans multiple requests.

How does A05 security misconfiguration appear in SIEM logs?

Security misconfiguration shows in SIEM logs primarily as clusters of 500-level error responses from a single source. An application returning stack traces generates those codes; the SIEM alerts when they exceed the threshold for normal error rates. Missing security headers are not visible in server logs and require an active scan. A05 misconfigurations that return error codes are the ones most reliably caught by a SIEM during a pentest.

How many failed authentication attempts should trigger a SIEM alert?

The threshold depends on the application. A public-facing login page may see many legitimate failures per hour from password managers and browser autofill; five failures is not meaningful. A back-office administration console that handles fewer than ten logins per day should alert on three consecutive failures. Set the threshold against the application's normal failure rate, not against a generic figure.

What should monitoring cover during a web application pentest?

Monitoring during a web application pentest should cover the WAF log stream, the application access log, the authentication event log and the application audit log. SIEM rules should be active, not in monitor-only mode, so the team can confirm that alerts fire when the tester exercises a vulnerability. That confirmation is evidence the detection control works, not just that the vulnerability exists.

How do you distinguish pentest traffic from real attack traffic in logs?

Pentest traffic is distinguished by the declared source IP range agreed before the engagement starts. The tester's requests carry that IP, and SIEM rules can be tagged with a pentest scope filter for review. After the engagement, the detection team reviews whether alerts fired for the declared scope. Any alert that fired outside the scope during the pentest window should be treated as a real incident, not a test artefact.

The engagements this applies to

Joel Aviad Ossi, Red Team Lead at RedTeam Security
Joel Aviad OssiRed Team Lead, RedTeam Security

Joel Aviad Ossi is Red Team Lead at RedTeam Security, the Dubai-licensed trading brand of WebSec FZCO. He scopes and runs objective-based engagements across the UAE.

Let's talk about your security

Tell us the objective you want tested. We will come back with a scope, a timeline and a quote, under NDA from the first conversation.

Email [email protected]
IFZA Business Park, Building A2
Nadd Hessa, Dubai Silicon Oasis
Dubai, United Arab Emirates