<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Peakhour.IO - BIG-IP Advanced WAF</title><link href="https://www.peakhour.io/" rel="alternate"></link><link href="https://www.peakhour.io/feeds/tag/big-ip-advanced-waf.atom.xml" rel="self"></link><id>https://www.peakhour.io/</id><updated>2026-07-29T10:15:00+10:00</updated><entry><title>How to Tune F5 BIG-IP Advanced WAF</title><link href="https://www.peakhour.io/blog/how-to-tune-f5-big-ip-advanced-waf/" rel="alternate"></link><published>2026-07-29T10:15:00+10:00</published><updated>2026-07-29T10:15:00+10:00</updated><author><name>AC</name></author><id>tag:www.peakhour.io,2026-07-29:/blog/how-to-tune-f5-big-ip-advanced-waf/</id><summary type="html">&lt;p&gt;Run F5 BIG-IP Advanced WAF in Transparent mode, review staged matches and learning suggestions, and limit each exception to the URL, parameter, cookie or content profile that needs it.&lt;/p&gt;</summary><content type="html">&lt;p&gt;An F5 policy has three separate controls between a signature match and a blocked request.&lt;/p&gt;
&lt;p&gt;The policy has an enforcement mode. Each violation has Learn, Alarm and Block settings. Each signature or policy entity can also be in staging.&lt;/p&gt;
&lt;p&gt;Record all three before changing the policy.&lt;/p&gt;
&lt;h2&gt;Start a new policy in Transparent mode&lt;/h2&gt;
&lt;p&gt;Set a new policy, a major policy revision or a newly protected application to &lt;strong&gt;Transparent&lt;/strong&gt; under &lt;strong&gt;Security &amp;gt; Application Security &amp;gt; Policy Building &amp;gt; Learning and Blocking Settings&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Transparent mode allows requests through while the policy records violations. F5 normally generates a learning suggestion when the violation has Learn enabled. Save the change and select &lt;strong&gt;Apply Policy&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Blocking mode behaves differently. A request is blocked only when the policy is in Blocking mode, the violation has Block enabled and the matching entity or signature has left staging. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/configuring-security-policy-blocking.html"&gt;F5 documents the interaction between enforcement mode, violation actions and staging&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;F5 calls the staging window the &lt;strong&gt;Enforcement Readiness Period&lt;/strong&gt;. The default is seven days. During that period, the policy does not enforce staged signatures or entities. Configure learning and logging to capture their matches. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/changing-security-policy-settings.html"&gt;The policy settings guide explains Transparent mode and enforcement readiness&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Seven quiet days prove only that the traffic seen during those days was quiet. Include month-end jobs, imports, account recovery, administration, checkout, API writes and other flows that ordinary browsing misses.&lt;/p&gt;
&lt;p&gt;For an established blocking policy, stage the signatures or entities affected by a change. The rest of the policy can remain in force while those changes collect traffic.&lt;/p&gt;
&lt;h2&gt;Log staged signature matches&lt;/h2&gt;
&lt;p&gt;The default logging profile records illegal requests. A staged attack-signature match can be allowed and therefore needs an explicit logging choice.&lt;/p&gt;
&lt;p&gt;Create or edit an application-security logging profile under &lt;strong&gt;Security &amp;gt; Event Logs &amp;gt; Logging Profiles&lt;/strong&gt;. Set the request filter to &lt;strong&gt;Illegal requests, and requests that include staged attack signatures&lt;/strong&gt;. Associate the profile with the virtual server that runs the security policy.&lt;/p&gt;
&lt;p&gt;F5 supports local and remote logging profiles. Local logging competes for resources on the BIG-IP system; remote logging can send CSV, key-value or CEF records to a reporting system. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/logging-application-security-events.html"&gt;F5 documents the logging destinations, staged-signature filter and virtual-server association&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Keep these fields for each investigation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;security policy and virtual server;&lt;/li&gt;
&lt;li&gt;support ID and event time;&lt;/li&gt;
&lt;li&gt;hostname, URL and method;&lt;/li&gt;
&lt;li&gt;violation name;&lt;/li&gt;
&lt;li&gt;attack-signature ID and attack type;&lt;/li&gt;
&lt;li&gt;parameter, cookie, header or request area that matched;&lt;/li&gt;
&lt;li&gt;matched data;&lt;/li&gt;
&lt;li&gt;violation rating;&lt;/li&gt;
&lt;li&gt;enforcement mode and staging state;&lt;/li&gt;
&lt;li&gt;application response.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The support ID ties a user-facing block page to the stored request. The violation rating runs from 1 to 5. F5 describes 1 as most likely a false positive and 5 as most likely an attack. Use the rating to order the work, then read the request and ask the application owner what the input means. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/working-with-violations.html"&gt;F5 lists the request details and explains violation ratings&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Group events by policy, violation, signature ID, URL, method and named request field. A signature firing in &lt;code&gt;comment&lt;/code&gt; on &lt;code&gt;POST /api/tickets&lt;/code&gt; needs a different review from the same signature firing in an authentication parameter.&lt;/p&gt;
&lt;p&gt;Request logs may contain credentials, personal information and customer text. Mark account numbers, tokens and other secrets as sensitive parameters so F5 masks their stored values. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/adding-entities-to-a-security-policy.html"&gt;F5 documents the sensitive-parameter setting and log masking&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Read the request behind each learning suggestion&lt;/h2&gt;
&lt;p&gt;Traffic Learning turns observed violations and new entities into proposed policy changes. Open &lt;strong&gt;Security &amp;gt; Application Security &amp;gt; Policy Building &amp;gt; Traffic Learning&lt;/strong&gt;, select the policy and inspect the requests attached to each suggestion.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Accept Suggestion&lt;/strong&gt; changes the policy. Treat it like any other configuration change.&lt;/p&gt;
&lt;p&gt;Manual learning waits for an operator to accept a suggestion. Automatic learning can apply most suggestions after F5 has seen enough traffic, sessions, time and source addresses. Manual learning keeps each relaxation visible while a new or sensitive application is being tuned. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/changing-how-a-security-policy-is-built.html"&gt;F5 describes Manual, Automatic and Disabled learning modes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A busy suggestion can still describe a busy attack. Confirm that the requests reached the expected application path, parsed successfully and produced the expected business result.&lt;/p&gt;
&lt;p&gt;Ask the developer who owns the endpoint:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;what values the field accepts;&lt;/li&gt;
&lt;li&gt;how the application parses them;&lt;/li&gt;
&lt;li&gt;whether the value is stored, rendered or executed;&lt;/li&gt;
&lt;li&gt;which server-side validation protects it;&lt;/li&gt;
&lt;li&gt;whether the field has the same meaning on every URL;&lt;/li&gt;
&lt;li&gt;which test request reproduces the legitimate match.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Accept a suggestion only after its scope matches the application behaviour. Ignore removes a suggestion from the normal Traffic Learning view; it does not repair a false positive. F5 lets operators accept, delete or ignore suggestions and inspect the requests behind them. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/refining-security-policies-with-learning.html"&gt;The Traffic Learning guide documents those actions&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Check how F5 parsed the body&lt;/h2&gt;
&lt;p&gt;A JSON request treated as unparsed content produces different signature targets from a JSON request split into named parameters.&lt;/p&gt;
&lt;p&gt;Check the allowed URL and its &lt;strong&gt;Request Body Handling&lt;/strong&gt; setting. F5 can parse form data, JSON or XML, or scan an unparsed payload with content and value signatures. A JSON or XML setting also names the content profile used for validation. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/adding-entities-to-a-security-policy.html"&gt;F5 lists the request-body handling modes in its allowed-URL documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Match the profile to the content type the application accepts. Associate the profile with the correct URL or parameter. Reproduce malformed bodies with the same bytes because the application and F5 may recover from parser errors differently.&lt;/p&gt;
&lt;p&gt;Use explicit parameters for fields that need their own policy. F5 supports global, URL and flow parameters, and applies the most specific definition first: flow, then URL, then global. A free-text &lt;code&gt;comment&lt;/code&gt; field on one endpoint usually belongs at URL level.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Ignore value&lt;/strong&gt; parameter type removes parameter-based signature checks from that value while leaving other relevant signature checks active. A one-signature override removes less inspection. Reserve &lt;strong&gt;Ignore value&lt;/strong&gt; for data the application genuinely does not interpret.&lt;/p&gt;
&lt;h2&gt;Put the exception on the field or URL that needs it&lt;/h2&gt;
&lt;p&gt;F5 exposes several scopes for an attack-signature override:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;one signature on one URL parameter;&lt;/li&gt;
&lt;li&gt;one signature on one named cookie;&lt;/li&gt;
&lt;li&gt;one signature in a content profile;&lt;/li&gt;
&lt;li&gt;one signature on an allowed URL;&lt;/li&gt;
&lt;li&gt;one signature across the security policy.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Choose the scope that matches the application.&lt;/p&gt;
&lt;p&gt;For a false positive in &lt;code&gt;comment&lt;/code&gt; on &lt;code&gt;/api/tickets&lt;/code&gt;, define &lt;code&gt;comment&lt;/code&gt; as a URL parameter and disable the signature for that parameter. The same signature continues to inspect other parameters and other URLs.&lt;/p&gt;
&lt;p&gt;F5 also allows a signature override on an allowed cookie. Use that control when a named analytics or session-related cookie carries the legitimate value. Cookie names and values have their own configuration, so record which part produced the match.&lt;/p&gt;
&lt;p&gt;A content-profile override applies wherever that JSON, XML or plain-text profile is associated. Check every URL and parameter using the profile before changing it. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/adding-json-support-to-an-existing-security-policy.html"&gt;F5 documents signature overrides and associations for JSON profiles&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;An allowed-URL override disables the selected signature for the whole URL. Every request field on that URL receives the exception. F5 describes URL-level signature overrides as a common operation and marks overridden signatures in the policy list. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/adding-entities-to-a-security-policy.html"&gt;The allowed-URL and cookie procedures describe their attack-signature overrides&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Disabling a signature at policy level removes it from the whole application-security policy. Use that scope only when the signature is irrelevant to every request covered by the policy.&lt;/p&gt;
&lt;p&gt;Record the signature ID, signature revision, URL, parameter or cookie, matched examples, application owner and protections that remain.&lt;/p&gt;
&lt;h2&gt;Apply, synchronise and test the policy&lt;/h2&gt;
&lt;p&gt;Saving an edit does not put it into the active policy. Select &lt;strong&gt;Apply Policy&lt;/strong&gt;, wait for the operation to finish and confirm that the virtual server still has the intended application-security and logging profiles.&lt;/p&gt;
&lt;p&gt;Synchronise the change to the peer device when the BIG-IP pair uses manual ConfigSync. F5 can display a sync reminder after policy changes in a high-availability configuration. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/configuring-general-asm-system-options.html"&gt;The Advanced WAF preferences guide describes Apply Policy confirmation, change logging and the ConfigSync reminder&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Replay:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;the original legitimate request;&lt;/li&gt;
&lt;li&gt;the same value in another parameter;&lt;/li&gt;
&lt;li&gt;the same value on another URL;&lt;/li&gt;
&lt;li&gt;a safe signature test in the excluded field;&lt;/li&gt;
&lt;li&gt;the safe test in a neighbouring field;&lt;/li&gt;
&lt;li&gt;malformed and oversized versions of the request;&lt;/li&gt;
&lt;li&gt;normal application traffic.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The legitimate request should complete without the false-positive event. The safe test in the excluded scope shows the inspection removed by the exception. Neighbouring fields and URLs should still produce the expected signature event.&lt;/p&gt;
&lt;p&gt;Check the support ID, signature ID, staging state and application response after every replay.&lt;/p&gt;
&lt;h2&gt;Compare and export the policy&lt;/h2&gt;
&lt;p&gt;Use &lt;strong&gt;Security &amp;gt; Application Security &amp;gt; Security Policies &amp;gt; Policy Diff&lt;/strong&gt; to compare the tuned policy with the earlier policy or a staging copy. F5 can compare active, inactive and exported policies.&lt;/p&gt;
&lt;p&gt;Export the policy before a large tuning session, signature update or BIG-IP upgrade. A readable XML export supports review and version control; a binary policy archive preserves a restorable copy.&lt;/p&gt;
&lt;p&gt;Compact XML omits attack-signature staging state and omits some settings that remain at their defaults. Use the full XML format when the review needs to show staging. Export user-defined attack signatures separately because a policy export contains their sets without the signatures themselves. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/maintaining-security-policies.html"&gt;F5 documents Policy Diff and the export-format limits&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Stage signature updates and application releases&lt;/h2&gt;
&lt;p&gt;F5 Live Update places newly added attack signatures in staging. Updated signatures follow the policy's &lt;strong&gt;Updated Signature Enforcement&lt;/strong&gt; setting. Review that setting before installing an attack-signature update. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/updating-security-components.html"&gt;F5 documents the post-update staging behaviour&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Keep signature staging enabled during the observation period. Review each high-volume match, then enforce the signatures that have clean traffic and tested application flows.&lt;/p&gt;
&lt;p&gt;Run the same process after an application release that changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;public URLs or methods;&lt;/li&gt;
&lt;li&gt;parameter names or value types;&lt;/li&gt;
&lt;li&gt;JSON, XML, GraphQL or multipart bodies;&lt;/li&gt;
&lt;li&gt;cookies and headers;&lt;/li&gt;
&lt;li&gt;uploads;&lt;/li&gt;
&lt;li&gt;authentication and account flows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tell the application team which policy changes are waiting in staging. The application team knows whether a new field belongs in the release.&lt;/p&gt;
&lt;h2&gt;Keep rate limiting in the DoS profile&lt;/h2&gt;
&lt;p&gt;F5 application-security policies inspect individual requests. BIG-IP Layer 7 DoS protection measures transaction rates and server latency through a separate DoS profile attached to the virtual server.&lt;/p&gt;
&lt;p&gt;Configure rate limiting under the DoS profile when repeated traffic is the problem. F5 can rate limit suspicious source addresses, countries, URLs or a site under attack. Transparent and Blocking modes for the DoS profile control whether those conditions are reported or mitigated. &lt;a href="https://techdocs.f5.com/en-us/bigip-17-5-0/big-ip-asm-implementations/preventing-dos-attacks-on-applications.html"&gt;F5 documents TPS-based detection, stress-based detection and request rate limiting&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Track WAF signature blocks and DoS rate limits as separate outcomes. A false-positive signature needs a policy exception. The application owner must set an acceptable rate and response for excessive legitimate traffic.&lt;/p&gt;
&lt;h2&gt;Move the policy to Blocking&lt;/h2&gt;
&lt;p&gt;Switch the policy from Transparent to Blocking after:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;normal and infrequent application flows have run;&lt;/li&gt;
&lt;li&gt;every repeated legitimate match has been classified;&lt;/li&gt;
&lt;li&gt;each exception has the smallest supported scope;&lt;/li&gt;
&lt;li&gt;staged entities and signatures have been reviewed;&lt;/li&gt;
&lt;li&gt;Learn, Alarm and Block settings match the intended response;&lt;/li&gt;
&lt;li&gt;the replay tests pass;&lt;/li&gt;
&lt;li&gt;the active and standby devices have the same applied policy.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Move a small application or virtual server first when the deployment supports it. Watch blocked requests, application errors and business transactions together.&lt;/p&gt;
&lt;p&gt;The blocking response includes a support ID. Keep the event long enough for support staff to find the exact request without storing customer content in the exception record.&lt;/p&gt;
&lt;p&gt;Review the policy after each application release and signature update. Remove an override when the field, parser or application behaviour that required it has gone.&lt;/p&gt;</content><category term="Application Security"></category><category term="F5"></category><category term="BIG-IP Advanced WAF"></category><category term="WAF"></category><category term="Application Security"></category><category term="False Positives"></category><category term="WAF Tuning"></category></entry></feed>