TTechclick ⚡ XP 0% All lessons
F5 · BIG-IP ASM · OWASP & DataGuardInteractive · L1 / L2 / L3

F5 ASM OWASP & DataGuard — Stop the Leak on the Way Out

Your WAF blocks the SQL-injection on the way in — but a misconfigured app still prints 4,000 full credit-card numbers in an error page on the way out. Attack signatures guard the door; nobody guards the exit. BIG-IP Advanced WAF (formerly ASM) closes both: it maps your policy to the OWASP Top 10 so you can prove coverage, and DataGuard scans HTTP responses and masks card numbers, SSNs and your own custom formats before they reach the browser. This lesson shows you both halves of the defense line — and how to prove the mask actually applied.

📅 2026-06-02 · ⏱ 12 min · 3 live demos · 4 infographics · 🏷 10-Q assessment + AI Tutor inline

⚡ Quick Answer

Learn F5 BIG-IP Advanced WAF (formerly ASM) OWASP Top 10 coverage and DataGuard the AI-era way — how the policy maps to OWASP, how DataGuard masks card/SSN data leaking in responses, custom patterns and exceptions, and the request-vs-response defense line, with a real config and expected output. 303 exam aligned. 12 min.

🎯 By the end you will be able to

Read as:

Pick where you want to start

1

OWASP Coverage

How the policy maps to the OWASP Top 10 — and the compliance view that proves it.

2

Request vs Response

Signatures guard the door in; DataGuard guards the exit out. Two directions.

3

DataGuard Masking

Cards, SSNs, custom patterns — masked before the browser ever sees them.

4

Tune & Validate

Exceptions, response cloaking, and proving the mask actually applied.

🧠 Warm-up — 3 questions, no score

Just notice which ones make you pause. We answer all three inside the lesson.

1. Your WAF blocks every SQL-injection, yet card numbers still appear in an error page. Which ASM feature stops that?

Answered in Path 3 — DataGuard Masking. Signatures guard the door; DataGuard guards the exit.

2. Which direction does DataGuard primarily inspect?

Answered in Path 2 — Request vs Response.

3. DataGuard is on but cards aren't masked in production. The policy is in Transparent mode. Why does that matter?

Answered in Path 4 — Tune & Validate.

Most engineers think…

"My WAF blocks the OWASP attacks, so we're covered."

Wrong — and this blind spot leaks data in plain sight. A WAF policy has two directions. The request side (signatures, positive security, evasion normalization) stops the attack getting in. But the most expensive breaches often leak data on the way out: an app prints full card numbers in an error page, or a stack trace exposes your database schema. Attack signatures never look at that — they inspect requests. DataGuard is the other half: it scans responses and masks card numbers, SSNs and your own custom formats before they reach the browser. Real WAF coverage guards both the door and the exit.

① OWASP coverage — what the policy actually maps to

The OWASP Top 10 is the auditor's checklist of the most critical web-app risks. A WAF's job is to address as many as it can — and to prove it. BIG-IP Advanced WAF (formerly ASM) maps the controls in your policy to each OWASP category, so you can show coverage instead of claiming it.

Different policy controls cover different OWASP risks. Attack signatures and meta-character/parameter checks address Injection (A03) and parts of insecure design. Positive security (allow-listed URLs and parameters) constrains the attack surface. Evasion-technique handling stops attackers smuggling injections past signatures with odd encoding. And the response side — DataGuard plus response cloaking — addresses information leakage / sensitive-data exposure, the part most WAFs forget. ASM gives you an OWASP Compliance view that lists each Top 10 category and shows which policy controls cover it.

👉 So far: a policy maps many controls to many OWASP categories, and ASM proves it in the OWASP Compliance view. Next, see the two directions the policy defends — in and out.
Figure 1 — A request enters the door; a response leaves the exit — the policy guards both
An isometric trust-zone diagram with two flows. On the inbound flow, an untrusted client request passes through request-side controls — attack signatures, positive security and evasion normalization — which address OWASP injection and related categories before forwarding clean traffic to the trusted application pool. On the outbound flow, the application response passes back through DataGuard, which masks credit-card numbers and SSNs and applies response cloaking, addressing sensitive-data exposure, before the masked response reaches the client. A key-insight note states that signatures guard the inbound door while DataGuard guards the outbound exit. Inbound: stop the attack · Outbound: stop the leak Untrusted / attacker Trusted / inspected Inspection / decision Key insight Client 203.0.113.7 — untrusted request → BIG-IP Advanced WAF policy REQUEST side (door in) signatures · positive security evasion normalization → OWASP A03 RESPONSE side (exit out) DataGuard masks cards / SSNs + response cloaking → data exposure clean req → Trusted app pool may leak cards in a response… …DataGuard catches it on the way back ← response ← masked Client sees 4111-****-****-1111 KEY INSIGHT Signatures guard the inbound door (the attack). DataGuard guards the outbound exit (the leak). You need both to cover OWASP. OWASP view at: Security ▸ Application Security ▸ Security Policies ▸ OWASP Compliance DataGuard at: Security ▸ Application Security ▸ Data Guard
One policy, two directions. Most "WAF coverage" stops at the request. The leak you'll explain to a regulator happens in the response.

Sneha at Infosys faces this

An auditor asks Sneha to prove the app's WAF covers the OWASP Top 10. She's confident the signatures are on, but has no single place to show coverage per category.

Likely cause

She's looking at signature sets, not the coverage map. ASM has a dedicated OWASP view that maps each Top 10 category to the policy controls addressing it.

DiagnosisSecurity ▸ Application Security ▸ Security Policies ▸ OWASP Compliance
Fix

Open the OWASP Compliance dashboard, screenshot the covered/not-covered grid, and enable any control flagged as missing (e.g. DataGuard for the data-exposure row).

Verify

The dashboard now shows each OWASP category mapped to its controls — exactly the evidence the auditor wanted.

▶ Watch a request get blocked, then a response get masked

Rahul at TCS sends an injection; the app later leaks a card. Press Play for both halves of the policy, then Break it to see the response-side gap.

① REQUEST203.0.113.7 sends ?id=1 OR 1=1 — a SQL-injection attempt
② SIGNATURERequest side: an enforced SQL-injection signature blocks it (OWASP A03)
③ RESPONSEA later page response contains a full card number 4111111111111111
④ DATAGUARDResponse side: DataGuard masks it to 4111********1111 before the browser sees it
Press Play to step through both directions. Then press Break it.
Quick check · Q1 of 10

Which OWASP Top 10 category does enabling SQL-Injection and Command-Injection signature sets most directly address?

Correct: b. Injection (A03) is addressed by SQL/command-injection signatures and meta-character/parameter checks. ASM maps signature sets and positive-security checks to OWASP categories so you can show coverage in the OWASP Compliance view.

Pause & Predict

Your signatures block every injection on the way in. But a buggy app still renders full card numbers in an error page on the way out. Signatures only inspect requests — so what kind of control do you need to catch data leaving in a response? Type your guess.

Answer: A response-side control — DataGuard. It scans HTTP responses and masks sensitive data (card numbers, SSNs, custom patterns) before they reach the browser. Signatures guard the inbound door; DataGuard guards the outbound exit. That's Path 2 and Path 3.

② Request vs response — two directions, two jobs

This is the mental model that makes everything click: a WAF policy works in two directions, and most engineers only think about one.

The request side is the door coming in. Attack signatures, positive security, parameter and meta-character checks, and evasion normalization all inspect what the client sends — they stop the attack getting through. This is the half everyone configures.

The response side is the exit going out. DataGuard inspects what the server returns — it masks sensitive data and (with response cloaking) hides verbose errors and server headers. This is the half that prevents the breach you'd actually have to report.

Analogy: airport security checks people and bags coming in (request side). But customs also checks what leaves the country — you can't walk out with someone else's passport (response side). A WAF that only checks the entrance lets your data walk out the exit.

Pro tip — normalize before you trust a signature

Attackers hide injections behind odd encoding (double-URL-encoding, mixed case, null bytes) to slip past a signature. ASM normalizes/decodes the request first and raises evasion-technique violations on the tricks themselves. Keep evasion handling on — turning it off re-opens the gap where a signature "looks" clean because the payload is disguised. This is a request-side control that quietly makes every signature stronger.

👉 So far: request side stops the attack; response side (DataGuard) stops the leak; evasion normalization makes signatures honest. Next, a side-by-side of which control owns which direction.
Figure 2 — Which control guards which direction
Two columns compare request-side controls and response-side controls across what they inspect, the example control, the OWASP focus, and a typical save. The request side inspects the inbound request via attack signatures, positive security and evasion normalization, focused on injection and broken-access-control risks, stopping an attack getting in. The response side inspects the outbound response via DataGuard masking and response cloaking, focused on sensitive-data exposure and information leakage, stopping data leaking out. A footer states you need both directions for OWASP coverage. The defense line has two directions — own both Request inspection Response inspection Policy control Inspects Example control OWASP focus Typical save REQUEST side (door in) RESPONSE side (exit out) What the client sends What the server returns Signatures · positive security + evasion normalization DataGuard masking + response cloaking Injection (A03), surface control Sensitive-data exposure / leakage Stops the attack getting IN Stops the data leaking OUT blocked SQLi / XSS / cmd-inj "the breach that never happened" masked cards / SSNs in a leak "the regulator call you avoided" Rule of thumb: request controls = stop the attack · response controls = stop the leak · you need BOTH to claim OWASP coverage.
Signatures and DataGuard aren't competitors — they're the two ends of the same pipe. Cover one and you've covered half the OWASP risk.

Priya at Flipkart faces this

Priya's pen-test report says SQL injection is fully blocked, yet the same report flags "credit-card numbers exposed in an error response". She's confused — the WAF is on.

Likely cause

Only the request side is configured. Signatures blocked the injection, but nothing inspects the response, so the app's verbose error page leaked full cards untouched.

DiagnosisSecurity ▸ Application Security ▸ Data Guard → is DataGuard enabled for this policy?
Fix

Enable DataGuard with credit-card masking, add response cloaking to suppress the verbose error, and confirm the policy is in Blocking mode so the mask actually applies.

Verify

Re-run the pen test. The card now appears masked (4111********1111) and the verbose error is suppressed.

F5 ASM — Attack Signatures F5 ASM — Positive Security & Learning F5 Simulator Lab
Quick check · Q2 of 10

Attack signatures and DataGuard both run in a policy. Which direction does each primarily protect?

Correct: b. Attack signatures and positive-security checks primarily inspect the inbound request (stop the attack getting in); DataGuard primarily inspects the outbound response (stop sensitive data leaking out). They're the two halves of the defense line.

Pause & Predict

DataGuard ships with built-in masking for credit cards and SSNs. But your app leaks an internal employee-ID format like ECN-4827193 that no built-in pattern knows. How would you make DataGuard mask that too? Type your guess.

Answer: Add a custom DataGuard pattern — a regular expression like ECN-[0-9]{7}. DataGuard then masks that format in responses alongside the built-in credit-card and SSN options. Custom patterns are how you protect formats unique to your business. That's Path 3.

③ DataGuard masking — cards, SSNs, and your own patterns

DataGuard is response-side data masking. When the server returns content, DataGuard scans it for sensitive data and masks the matched characters (e.g. 4111********1111) so the browser — and any attacker — never sees the full value.

It covers three kinds of pattern:

You can also scope DataGuard to specific URLs (e.g. only the account pages), and pair it with response cloaking to hide verbose errors and server headers that help an attacker fingerprint the app.

Analogy: DataGuard is the bank teller who blacks out all but the last 4 digits on a printed statement. The full number exists in the system, but what leaves the counter is masked — even if someone grabs the paper.

Build it — the configuration

Map the policy's OWASP controls on the request side, then enable DataGuard on the response side with the built-ins plus your custom pattern.

Data Guard — enable masking for cards, SSN + a custom employee-ID pattern
Security ▸ Application Security ▸ Data Guard  (policy: app_pol)
  Data Guard:               Enabled
  Credit Card Numbers:      Mask
  U.S. Social Security:     Mask
  Custom Patterns:          ECN-[0-9]{7}        # internal employee ID format
  Enforced URLs:            * (or scope to /account/*, /statement/*)
  Response Cloaking:        Enabled  (suppress server headers + verbose errors)
Apply Policy
Expected output
Policy "app_pol" applied. Data Guard active (response side).
  mask: credit-card ON · us-ssn ON · custom [ECN-[0-9]{7}] ON
  response-cloaking ON
# Reminder: masking only APPLIES when the policy is in Blocking (enforced) mode, not Transparent.
tmsh — confirm DataGuard is enabled and enforced for the policy
tmsh list asm policy app_pol data-guard
tmsh list asm policy app_pol enforcement-mode
Expected output
data-guard {
    enabled yes
    mask-credit-card-numbers yes
    mask-us-social-security-numbers yes
    custom-patterns { ECN-[0-9]{7} }
}
enforcement-mode blocking
# enforcement-mode transparent here = detects but does NOT mask. Switch to blocking.
👉 So far: DataGuard masks cards, SSNs and custom patterns in responses — but only when the policy is enforced (Blocking). Next, watch masking run, and see the real screen.
Figure 3 — How DataGuard inspects a response and masks the match
A left-to-right flow. The application server returns a response that contains a full credit-card number. DataGuard scans the response body against its enabled patterns — credit card, SSN and a custom employee-ID regex. A match on the credit-card pattern triggers masking, replacing the middle digits with asterisks. An exception check confirms the value isn't an allow-listed safe format such as a 16-digit order ID. The masked response is delivered to the client and the leak is recorded in the event log. An amber decision node marks the pattern match and the exception check. Server returns a leak → DataGuard masks it → client sees only the mask Leaked data Match / decision Masked / safe App response leaks a full card: 4111111111111111 DataGuard scan card · SSN · custom regex match on card pattern exception? Mask the digits not an allow-listed value 4111********1111 Client gets mask leak logged in event log full value never sent KEY INSIGHT DataGuard works on the response body. The exception check keeps safe look-alikes (e.g. a 16-digit order ID) from being masked.
Match → check exceptions → mask → deliver → log. The exception step is what keeps DataGuard from breaking a page full of safe look-alike numbers.
🖥️ This is the screen you'll use — Security ▸ Application Security ▸ Data Guard. (Recreated for clarity — your console matches this.) Pins ①–④ mark the fields this lesson sets.
https://10.10.20.4/tmui  ·  BIG-IP® Advanced WAF — Configuration utility
Local Traffic
Security ▸
Application Security ▸
Data Guard
Security Policies
OWASP Compliance
Reporting ▸
Application Security : Data Guard
Current edited security policy  app_pol  (Blocking)  — changes are staged until you click Apply Policy
Data GuardEnabled
Credit Card Numbers☑ Mask   4111********1111
U.S. Social Security Numbers☑ Mask
Custom PatternsECN-[0-9]{7}  (employee ID)
Response CloakingEnabled   suppress server headers + verbose errors

▶ Watch DataGuard mask a card — then watch it leak in Transparent mode

Karthik at Wipro's account page returns a full card. Play the enforced-masking path, then Break it to see the Transparent-mode trap.

① RESPONSEApp returns ...card: 4111111111111111... in the page body
② SCANDataGuard scans the response, matches the credit-card pattern
③ EXCEPTION?Not an allow-listed value → proceed to mask
④ MASKClient receives 4111********1111; the leak is logged
Press Play for enforced masking. Then press Break it.

The four response-side mechanics — tap each card

Each card front names the mechanic; the back gives you the "so what" — when to reach for it.

💳
Card / SSN Mask
tap to flip

Built-in masking for credit-card and SSN formats in responses. So what: one toggle stops the classic "cards in the error page" leak.

🧬
Custom Pattern
tap to flip

Your own regex (employee ID, account number, Aadhaar-style). So what: protect formats unique to your business that no built-in knows.

🚫
Exception
tap to flip

An allow-list so a safe look-alike (a 16-digit order ID) isn't masked. So what: keeps card masking ON without breaking a page full of safe numbers.

🕶️
Response Cloaking
tap to flip

Suppresses verbose errors, stack traces and server/version headers. So what: stops attackers fingerprinting the app from the response.

Quick check · Q3 of 10

You need DataGuard to mask an internal employee-ID format ECN-7-digits that no built-in pattern covers. What do you configure?

Correct: a. Add a custom DataGuard pattern (a regular expression for ECN-[0-9]{7}) so DataGuard masks that format in responses, alongside the built-in credit-card and SSN options.

Pause & Predict

DataGuard's card masking starts masking a legitimate 16-digit order ID that happens to look like a card number — breaking the orders page. You can't just turn card masking off (real cards must stay masked). What ASM mechanism lets you exempt the safe value? Type your guess.

Answer: An exception (allow-list). You exempt the specific safe value/format — or scope DataGuard to the URLs that actually carry cards — so the order ID isn't masked while real card masking stays on everywhere else. Disabling card masking globally would re-expose real cards. That's Path 4.

④ Tune & validate — exceptions, cloaking, and the proof

DataGuard's flexibility is also its noise source: a pattern that matches cards will also match anything shaped like a card. Two tuning levers fix that without weakening real protection.

And then the rule that ends every argument: validate. Never claim DataGuard works from the config screen. Request a page that genuinely contains a test card (in a lab), and look at the delivered response — is the value masked? Then open the event log and confirm a DataGuard/data-leakage violation was recorded. If the response shows the full card, the most common cause is that the policy is in Transparent mode (logs but doesn't enforce) — masking only applies in Blocking mode.

The trap behind a "working" DataGuard

Don't trust the toggle. The #1 DataGuard surprise is enabling it while the policy stays in Transparent mode — it detects the sensitive data and logs it, but never masks the delivered response, so production still leaks cards. The #2 surprise is masking a safe look-alike (an order ID) and breaking a page, then panicking and disabling card masking globally. Fix it the right way: switch the policy to Blocking for masking to apply, and add an exception for the safe value instead of turning protection off.

👉 So far: exceptions stop over-masking; cloaking hides app internals; Blocking mode is required for masking to apply. Next, prove the mask in the response and the log.

▶ Watch the validation — response body + event log

Aditya at HCL proves DataGuard works. Play the validation, then Break it to see the Transparent-mode false sense of safety.

① TESTRequest a lab page that returns a test card 4111111111111111
② INSPECT RESPONSERead the delivered body — is the value masked?
③ MASKEDBody shows 4111********1111 — the mask applied
④ EVENT LOGA data-leakage / DataGuard violation is recorded — proof, not a guess
Press Play for the validation. Then press Break it.

Aditya at HCL faces this

Aditya enabled DataGuard with card masking weeks ago. A new pen test still finds full cards in a response. He's sure DataGuard is on.

Likely cause

The policy is in Transparent mode. DataGuard detects and logs the card, but Transparent mode doesn't enforce — so the delivered response is never actually masked.

DiagnosisSecurity ▸ Application Security ▸ Policy ▸ Enforcement Mode → Transparent or Blocking? + check the event log for a logged-but-unmitigated DataGuard violation
Fix

Switch the policy to Blocking so masking actually applies, then re-test.

Verify

Re-run the test. The delivered response now shows 4111********1111 and the event log shows the violation as mitigated.

Verify it worked — the response that ends the argument

The only proof DataGuard works is the delivered response plus the event log. Curl or browse the page that returns the sensitive value (use lab/test data), and confirm the body shows the mask, not the full number. Then open Security ▸ Event Logs ▸ Application ▸ Requests, filter on the URL, and confirm a Data Guard / data-leakage violation was raised. Full value in the body = the policy is Transparent or DataGuard isn't scoped to that URL/content-type. Config screen "Enabled" proves nothing on its own.

Validate — request the page and inspect the delivered response
curl -ks https://10.10.20.5/account/statement -H "Cookie: $SESSION" | grep -i card
# look at what the CLIENT actually receives, not the config screen
Expected output
<div class="pan">Card on file: 4111********1111</div>
# Masked → DataGuard is enforcing.
# If you see 4111111111111111 → policy is Transparent, or DataGuard isn't scoped to this URL/content-type.
Quick check · Q4 of 10

DataGuard is masking a legitimate 16-digit order ID that looks like a card number, breaking a page. Best fix that keeps card masking on?

Correct: d. Add an exception so the specific safe value/format isn't masked, or scope DataGuard to the URLs that carry real cards — rather than disabling card masking globally (b), which would re-expose real cards.
Figure 4 — OWASP & DataGuard build cheat-sheet (screenshot this)
A grid of six cheat-sheet tiles covering the build order: configure request-side OWASP controls with signatures, positive security and evasion normalization; enable DataGuard card and SSN masking on the response side; add custom DataGuard patterns for business-specific formats; add exceptions or scoping so safe look-alikes are not masked; enable response cloaking to hide verbose errors and server headers; and ensure the policy is in blocking mode and validate in the response and event log. A golden-rule footer states: signatures guard the door, DataGuard guards the exit, masking only applies in blocking mode. Build order → the one decision that matters at each step ① Request-side OWASP signatures + positive security + evasion normalization stops the attack getting in ② DataGuard card/SSN response-side masking built-in card + SSN stops the leak going out ③ Custom patterns your own regex employee ID, account # e.g. ECN-[0-9]{7} ④ Exceptions / scope allow safe look-alikes scope to sensitive URLs don't disable masking ⑤ Response cloaking hide verbose errors strip server/version headers stop app fingerprinting ⑥ Blocking + validate masking needs Blocking mode check delivered response + event log proof GOLDEN RULE Signatures guard the door; DataGuard guards the exit. Masking only applies in Blocking mode. Prove it in the response + event log. Config: Security ▸ Application Security ▸ Data Guard | OWASP: ▸ OWASP Compliance | Proof: ▸ Event Logs ▸ Application ▸ Requests
Six steps, six decisions, one golden rule. Screenshot this — it's the card you'll glance at while building the policy.

🤖 Ask the AI Tutor

Tap any question — instant, scoped to this lesson. No login, no waiting.

Pre-curated from F5 BIG-IP Advanced WAF docs + community Q&A, scoped to OWASP coverage & DataGuard. For a live prod issue, paste your Event Logs export into chat.techclick.in.

📝 Wrap-up assessment — six more

You've answered 4 inline. Six left. 70% (7 of 10) marks the lesson complete on your profile. Tap Submit all answers at the end.

Q5 · Remember

Sneha needs to prove OWASP Top 10 coverage to an auditor. Where in ASM does she look?

Correct: a. The OWASP Compliance / OWASP Top 10 view maps the policy's signatures, positive-security and other checks to each OWASP category, showing covered vs not-covered — exactly what an auditor wants.
Q6 · Apply

DataGuard isn't masking card numbers in a response even though it's enabled. What's the most likely cause?

Correct: a. DataGuard inspects HTTP responses, so the policy must enforce response checking (Blocking) and the response content-type must be one DataGuard scans. If response-side enforcement is off, it detects nothing to mask.
Q7 · Apply

What does response cloaking (suppressing error details / server headers) defend against?

Correct: c. Response cloaking hides verbose error pages, stack traces and server/version headers that help an attacker fingerprint and target the app — reducing information leakage in responses, complementary to DataGuard's data masking.
Q8 · Analyze

An evasion technique (e.g. odd encoding) lets an injection slip past a signature. Which ASM mechanism is designed to normalize this first?

Correct: b. ASM normalizes/decodes requests and raises evasion-technique violations so an attacker can't hide an injection behind unusual encoding before the signatures run. Turning off normalization would re-open the evasion gap.
Q9 · Analyze

A team enables DataGuard but leaves the policy in Transparent mode, expecting cards to be masked in production. What happens?

Correct: c. In Transparent mode the policy logs violations but doesn't enforce, so DataGuard detects the sensitive data but doesn't mask it in the delivered response. Switch to Blocking for masking to apply.
Q10 · Evaluate

For a payments app, what's the most complete data-leak defense design at the WAF?

Correct: c. Enforce request-side OWASP coverage AND response-side DataGuard masking for cards/SSNs/custom patterns, plus response cloaking, with exceptions tuned and validated in the response + event log. Request-side alone (a) still leaks data in responses.
Lesson complete — saved to your profile.
Almost! You need 70% (7 of 10) — re-read the path that tripped you up and tap "Try again".

🧠 In your own words

Type one line: why can a WAF block every injection and still leak credit cards? Then compare to the expert version.

Expert version: Attack signatures and positive security inspect the request — they stop the attack getting in. They never look at the response. So if a buggy app prints full card numbers in an error page or a normal response, signatures don't catch it — the data leaks on the way out. DataGuard is the response-side control that scans responses and masks the cards/SSNs/custom patterns before the browser sees them. If your answer mentioned "signatures only inspect requests, not responses", you've got it.

🗣 Teach a friend

Best way to lock it in — explain it in one line to a teammate. Tap to generate a paste-ready summary.

📖 Glossary

OWASP Top 10
The industry list of the most critical web-app security risks (Injection, Broken Access Control, etc.). Auditors expect WAFs to address them.
OWASP Compliance view
The ASM dashboard that maps each OWASP Top 10 category to the policy controls covering it — covered vs not-covered. Your proof of coverage.
Request side
The inbound direction — attack signatures, positive security, parameter/meta-character checks, evasion normalization. Stops the attack getting in.
Response side
The outbound direction — DataGuard masking and response cloaking. Stops sensitive data leaking out.
DataGuard
The ASM feature that scans HTTP responses and masks/blocks sensitive data (credit cards, SSNs, custom patterns) before it reaches the client.
Custom pattern
Your own regex (e.g. ECN-[0-9]{7}) so DataGuard masks a business-specific format the built-ins don't know.
Exception
An allow-list entry so a safe look-alike value or URL isn't masked by DataGuard, while real sensitive data elsewhere still is.
Response cloaking
Suppressing verbose error pages, stack traces and server/version headers so an attacker can't fingerprint the app from the response.
Evasion technique
Unusual encoding an attacker uses to hide an injection from signatures. ASM normalizes/decodes first and raises evasion-technique violations.
Transparent vs Blocking
Enforcement modes. Transparent logs violations but doesn't enforce; Blocking enforces — DataGuard masking only applies in Blocking mode.

📚 Sources

  1. F5 — BIG-IP Advanced WAF / ASM: Configuring Data Guard · Masking Sensitive Data (credit card, U.S. SSN, custom patterns) · Data Guard exceptions and scoping. techdocs.f5.com / clouddocs.f5.com
  2. F5 — OWASP Top 10 Compliance Dashboard · Mapping a Security Policy to the OWASP Top 10 · Reviewing OWASP coverage. techdocs.f5.com
  3. F5 — Response cloaking / Information Leakage protection · Configuring Evasion Technique handling · Enforcement modes (Transparent vs Blocking). techdocs.f5.com
  4. F5 DevCentral community — "DataGuard not masking" / "DataGuard masks a non-card number" / "Transparent mode no masking" / "custom DataGuard pattern" threads (Transparent-mode trap, exceptions for look-alikes, content-type scoping). community.f5.com
  5. OWASP — OWASP Top 10 (2021) · Sensitive Data Exposure / Cryptographic Failures · Injection · Security Misconfiguration · Information Leakage guidance (why response-side masking + cloaking matter). owasp.org
  6. F5 Certified 303 — BIG-IP ASM Specialist blueprint: data masking, OWASP mapping, evasion handling, information-leakage protection (exam objectives). f5.com/education
  7. Practitioner reference — "F5 ASM DataGuard: masking PII in responses" walk-throughs + PCI-DSS pan-masking requirements (mask all but first6/last4). f5.com/labs and community write-ups

What's next?

You can now map a policy to the OWASP Top 10, mask cards, SSNs and custom formats leaking in responses, tune exceptions, and prove the mask applied. Next, see how ASM logs every one of these events and how iRules let you act on ASM events in real time.