security bot-defense profileΒΆ

security bot-defense profile(1) 		  BIG-IP TMSH Manual		      security bot-defense profile(1)

NAME
       profile - Configures a Bot Defense profile.

MODULE
       security bot defense

SYNTAX
       Configure the profile component within the security bot defense module using the syntax shown in the following
       sections.

   CREATE/MODIFY
	create profile [name]
	modify profile [name]
	  options:
	    api-access-strict-mitigation [enabled | disabled]
	    anomaly-category-overrides [none | add | delete | modify | replace-all-with] {
	      [anomaly-category-name] ... {
		options:
		  action [alarm | block | captcha | none | tcp-reset | redirect-to-pool | honeypot-page]
		  app-service [[string] | none]
	      }
	    }
	    anomaly-overrides [none | add | delete | modify | replace-all-with] {
	      [anomaly-name]   {
		options:
		  action [alarm | block | captcha | none | tcp-reset | redirect-to-pool | honeypot-page]
	      }
	    }
	    app-service [[string] | none]
	    blocking-page {
	      body [string]
	      headers [string]
	      status-code [integer]
	      type [custom | default]
	    }
	    captcha-response {
	      failure {
		 body [string]
		 type [custom | default]
	      }
	      first {
		 body [string]
		 type [custom | default]
	      }
	    class-overrides [none | add | delete | modify | replace-all-with] {
	      [class-name]   {
		options:
		  mitigation {
		    action [alarm | block | captcha | none | rate-limit | tcp-reset | redirect-to-pool | honeypot-page]
		    rate-limit-tps [integer]
		  }
		  verification {
		    action [browser-challenge-free-verification | browser-verify-after-access-detection | mobile-verify-integrity browser-verify-after-access-blocking | browser-verify-before-access | none]
		 }
	     }
	   }
	   cross-domain-requests [allow-all | validate-bulk | validate-upon-request]
	   defaults-from [profile-name]
	   description [[string] | none]
	   deviceid-mode [generate-after-access | generate-before-access | none]
	   dos-attack-strict-mitigation [enabled | disabled]
	   enforcement-mode [blocking | transparent]
	   enforcement-readiness-period [integer]
	   external-domains [none | add | delete | modify | replace-all-with] { [string] ... }
	   grace-period [integer]
	   micro-services [none | add | delete | modify | replace-all-with] {
	    action [alarm | block | captcha | none | tcp-reset | redirect-to-pool | honeypot-page]
	    class-overrides [none | add | delete | modify | replace-all-with] {
	      [class-name]   {
		options:
		  mitigation {
		    action [alarm | block | captcha | none | tcp-reset | redirect-to-pool | honeypot-page]
		  }
		  verification {
		    action [browser-captcha | browser-challenge-free-verification | browser-verify-after-access-detection | mobile-verify-integrity browser-verify-after-access-blocking | browser-verify-before-access | none]
		 }
	       }
	     }
	     description [[string] | none]
	     detection-threshold [integer]
	     detection-time [integer]
	     enforcement-mode [blocking | profile-default | transparent]
	     hostname [string]
	     match-order [integer]
	     mitigation-time [integer]
	     type [micro-service-type]
	     urls [none | add | delete | modify | replace-all-with] {
	       match-order [integer]
	       url [string]
	     }
	   }
	   mobile-detection {
	     allow-android-rooted-device [enabled | disabled]
	     allow-any-android-package [enabled | disabled]
	     allow-any-ios-package [enabled | disabled]
	     allow-emulators [enabled | disabled]
	     allow-jailbroken-devices [enabled | disabled]
	     android-publishers [none | add | delete | modify | replace-all-with] { [string] ... }
	     block-debugger-enabled-device [enabled | disabled]
	     client-side-challenge-mode [cshui | pass]
	     ios-allowed-packages [none | add | delete | modify | replace-all-with] { [string] ... }
	     signatures [none | add | delete | modify | replace-all-with] { [signature-name] ... }
	   }
	   perform-challenge-in-transparent [enabled | disabled]
	   signature-category-overrides [none | add | delete | modify | replace-all-with] {
	     [signature-category] ... {
	       options:
		 action [alarm | block | captcha | none | tcp-reset | redirect-to-pool | honeypot-page]
	     }
	   }
	   signature-overrides [none | add | delete | modify | replace-all-with] {
	     [signature-name] ... {
	       options:
		 action [alarm | block | captcha | none | rate-limit | tcp-reset | redirect-to-pool | honeypot-page]
		 rate-limit-tps [integer]
	     }
	   }
	   signature-staging-upon-update [enabled | disabled]
	   single-page-application [enabled | disabled]
	   site-domains [none | add | delete | modify | replace-all-with] { [string] ... }
	   staged-signatures [none | add | delete | modify | replace-all-with] { [signature-name] ... }
	   template [balanced | relaxed | strict]
	   whitelist [none | add | delete | modify | replace-all-with] {
	     disable-mitigation [no | yes]
	     disable-verification [no | yes]
	     geolocation [country-name]
	     match-order [integer]
	     source-address [ip-address]
	     url [string]
	   }

	edit profile [ [ [name] | [glob] | [regex] ] ... ]
	  options:
	    all-properties
	    non-default-properties

   DISPLAY
	list profile
	list profile [ [ [name] | [glob] | [regex] ] ... ]
	show running-config profile
	show running-config profile [ [ [name] | [glob] | [regex] ] ... ]
	  options:
	    all-properties
	    non-default-properties
	    one-line
	    partition
	    recursive
	show profile [ [ [name] | [glob] | [regex] ] ... ]

   DELETE
	delete profile [name]

DESCRIPTION
       You can use the profile component to create, modify, display, or delete a Bot Defense profile for use with Bot
       Defense Protection functionality.

EXAMPLES
       create profile my_bot_profile

       Creates a custom Bot Defense profile named my_bot_profile with initial settings.

       list profile

       Displays the properties of all Bot Defense profiles.

OPTIONS
       api-access-strict-mitigation
	    Determines, when enabled, whether to apply the strict mitigation settings on API access requests.

       anomaly-category-overrides
	    List or define anomaly categories that have mitigation settings overriding the defaults determined by the
	    template.

	    action
		 The overriding mitigation action for the anomaly category.  The options are:

		 alarm
		      Mark the request log entry with the alarm flag. Request passes through.

		 block
		      Block the request and send the blocking page in response.

		 captcha
		      Send a CAPTCHA challenge in response. If the user solves the challenge successfully the
		      requests from this user are passed to the server for a limited period of time.

		 none The category will not be detected. This may affect the classification of the client and hence
		      the action based on that classification.

		 tcp-reset
		      Discard the request by resetting the TCP connection it was sent on.

		 redirect-to-pool
		      Send the request to the configured pool.

		 honeypot-page
		      Block the request and send the Honeypot response page in response.

       anomaly-overrides
	    List or define anomalies that have mitigation settings overriding the defaults determined by the
	    template.

	    action
		 The overriding mitigation action for the anomaly.  The options are:

		 alarm
		      Mark the request log entry with the alarm flag. Request passes through.

		 block
		      Block the request and send the blocking page in response.

		 captcha
		      Send a CAPTCHA challenge in response. If the user solves the challenge successfully the
		      requests from this user are passed to the server for a limited period of time.

		 none The anomaly will not be detected. This may affect the classification of the client and hence
		      the action based on that classification.

		 tcp-reset
		      Discard the request by resetting the TCP connection it was sent on.

		 redirect-to-pool
		      Send the request to the configured pool.

		 honeypot-page
		      Block the request and send the Honeypot response page in response.

       app-service
	    Specifies the name of the application service to which the profile belongs. The default value is none.
	    Note: If the strict-updates option is enabled on the application service that owns the object, you cannot
	    modify or delete the profile. Only the application service can modify or delete the profile.

       blocking-page
	    body Configures the body of the blocking page response.

	    headers
		 Configures the HTTP headers of the blocking page response.

	    status-code
		 Configures the HTTP status code of the blocking page response.

	    type Configures a type of the blocking page response.

       captcha-response
	    Specifies properties of the CAPTCHA response in Application Security. You can configure the following
	    options for CAPTCHA Response Settings:

	    failure
		 Specifies properties of a failed CAPTCHA response. You can configure the following options for a
		 failed CAPTCHA response:

		 body Configures a failed CAPTCHA response body.

		 type Configures a type of a failed CAPTCHA response body. You can configure the following options
		      for a failed CAPTCHA response type:

		      custom
			   Configures a custom failed CAPTCHA response type.

		      default
			   Configures a default failed CAPTCHA response type.

	    first
		 Specifies properties of the first CAPTCHA response. You can configure the following options for the
		 first CAPTCHA response:

		 body Configures the first CAPTCHA response body.

		 type Configures a type of the first CAPTCHA response body. You can configure the following options
		      for the first CAPTCHA response type:

		      custom
			   Configures a custom first CAPTCHA response type.

		      default
			   Configures a default first CAPTCHA response type.

       class-overrides
	    List or define classes that have settings overriding the defaults determined by the template.

	    mitigation
		 These set which type of mitigation to take for each type of bot.

		 action
		      The overriding mitigation action for the class.  The options are:

		      alarm
			   Mark the request log entry with the alarm flag. Request passes through.

		      block
			   Block the request and send the blocking page in response.

		      captcha
			   Send a CAPTCHA challenge in response. If the user solves the challenge successfully the
			   requests from this user are passed to the server for a limited period of time.

		      none The class will not be detected. This may affect the classification of the client and hence
			   the action based on that classification.

		      rate-limit
			   Traffic from this source will be limited to a given transaction rate. Relevant only to
			   classes and signature categories.

		      tcp-reset
			   Discard the request by resetting the TCP connection it was sent on.

		      redirect-to-pool
			   Send the request to the configured pool.

		      honeypot-page
			   Block the request and send the Honeypot response page in response.

		 rate-limit-tps
		      The TPS limit for the signature Relevant only if the action is rate limit.

	    verification
		 action
		      The overridden verification action for the class. Relevant only to Browser and Mobile
		      Application classes.  The options are:

		      browser-challenge-free-verification
			   Verify the browser authenticity by examining the request header without sending any
			   JavaScript challenge to the client.

		      browser-verify-after-access-detection
			   Verify the browser authenticity by examining the request header and by a JavaScript
			   challenge injected to the server response after letting the request to the server.  The
			   request is not mitigated even if the JavaScript challenge failed, rather, it is only
			   reported, classifying the client as a Bot.

		      browser-verify-after-access-blocking
			   Verify the browser authenticity by examining the request header and by a JavaScript
			   challenge injected to the server response after letting the request to the server.  Upon
			   challenge failure, the request is mitigated according to the respective mitigation
			   settings.

		      browser-verify-before-access
			   Verify the browser authenticity by examining the request header and by responding with a
			   JavaScript challenge before letting the request to the server.  Request is sent to the
			   server only upon successful completion of the challenge.

		      mobile-verify-integrity
			   Enable verification of mobile applications with Anti-Bot mobile SDK.

		      none No verification action taken. This may affect the classification of the client and hence
			   the action based on that classification.

       cross-domain-requests
	    Specifies a cross-domain requests handling mode. The options are:

	    allow-all
		 Allows all cross-domain requests. This is the default value.

	    validate-bulk
		 System validates domains in bulk: the cookies for the related domains are created together with the
		 cookie for the current domain, by generating challenges in iframes - one per each domain.

	    validate-upon-request
		 System validates domains upon request: the cookie for the related domain is generated when a request
		 arrives to an unqualified URL without a cookie.

       defaults-from
	    Specifies the profile that you want to use as the parent profile.

       description
	    User textual description of the profile.

       deviceid-mode
	    Specifies how the Device ID will be collected.

	    The options are:

	    generate-after-access
		 Device ID is collected by injecting a JavaScript in the response.  This is less intrusive and has
		 less of a latency impact. Use when sensitive to response time or time-to-first-byte.  Note that some
		 requests at the beginning of the session will have no Device ID until the handshake is complete and
		 the Device ID is generated.

	    generate-before-access
		 Device ID is collected by generating a JavaScript challenge before forwarding the HTTP request to
		 the application.  This guarantees that every request that reaches the application has a Device ID.
		 This has more of a latency impact that Generate After Access.	Bots that present as browsers and are
		 unable to execute JavaScript will be blocked.

	    none Device ID will not be collected.

       dos-attack-strict-mitigation
	    Determines, when enabled, whether to apply strict mitigation settings during DoS attacks.

       enforcement-mode
	    Specifies whether to execute the mitigation actions or just report the detection results.

	    blocking
		 The system will replace responses with client side JavaScript and if the client cannot run
		 JavaScript, it will not be able to receive the server responses.

	    transparent
		 The system logs all mitigation and verification actions but no action is taken on the traffic.

       enforcement-readiness-period
	    How many days, since the bot defense profile was last changed, that the profile remains in staging mode
	    before the system suggests you enforce. The system does not enforce profile entities and attack
	    signatures in staging. Staging allows you to test the bot defense profile entities and the attack
	    signatures for false positives without enforcing them. The default is 604800 seconds (7 days).

       external-domains
	    List of external domain names that may refer to resources on the application. Used for handling cross-
	    domain requests.

       grace-period
	    The period in seconds during which requests for resources are not required to have browser verification
	    cookies.

       micro-services
	    List of microservices for which there exists specialized detection and mitigation behavior.

	    action
		 The mitigation action for the anomaly of the microservice. The options are:

		 alarm
		      Mark the request log entry with the alarm flag. Request passes through.

		 block
		      Block the request and send the blocking page in response.

		 captcha
		      Send a CAPTCHA challenge in response. If the user solves the challenge successfully the
		      requests from this user are passed to the server for a limited period of time.

		 none Microservice anomaly will not be detected. This may affect the classification of the client and
		      its mitigation action.

		 tcp-reset
		      Discard the request by resetting the TCP connection it was sent on.

		 redirect-to-pool
		      Send the request to the configured pool.

		 honeypot-page
		      Block the request and send the Honeypot response page in response.

	    class-overrides
		 The list of classes for which the settings override the ones determined by the microservice type.

		 mitigation
		      These set which type of mitigation to take for each type of bot.

		      action
			   The name of the overriding mitigation action for the class in the scope of the
			   microservice. The options are:

			   alarm
				Mark the request log entry with the alarm flag. Request passes through.

			   block
				Block the request and send the blocking page in response.

			   captcha
				Send a CAPTCHA challenge in response. If the user solves the challenge successfully
				the requests from this user are passed to the server for a limited period of time.

			   none The class will not be detected. This may affect the classification of the client and
				hence the action based on that classification.

			   rate-limit
				Traffic from this source will be limited to a given transaction rate. Relevant only
				to classes and signature categories.

			   tcp-reset
				Discard the request by resetting the TCP connection it was sent on.

			   redirect-to-pool
				Send the request to the configured pool.

			   honeypot-page
				Block the request and send the Honeypot response page in response.

		 verification
		      action
			   The name of the overriding verification action for the class in the scope of the
			   microservice. Relevant only to Browser class. The options are:

			   browser-captcha
				Send a CAPTCHA challenge response on each request with Browser User-Agent. The
				request is passed to the server only if the CAPTCHA was successfully solved.

			   browser-challenge-free-verification
				Verify the browser authenticity by examining the request header without sending any
				JavaScript challenge to the client.

			   browser-verify-after-access-detection
				Verify the browser authenticity by examining the request header and by a JavaScript
				challenge injected to the server response after letting the request to the server.
				The request is not mitigated even if the JavaScript challenge failed, rather, it is
				only reported, classifying the client as a Bot.

			   browser-verify-after-access-blocking
				Verify the browser authenticity by examining the request header and by a JavaScript
				challenge injected to the server response after letting the request to the server.
				Upon challenge failure, the request is mitigated according to the respective
				mitigation settings.

			   browser-verify-before-access
				Verify the browser authenticity by examining the request header and by responding
				with a JavaScript challenge before letting the request to the server.  Request is
				sent to the server only upon successful completion of the challenge.

			   none No verification action taken. This may affect the classification of the client and
				hence the action based on that classification.

	    description
		 User textual description of the microservice.

	    detection-threshold
		 The number of times the microservice was accessed by a client after which the microservice anomaly
		 is declared.

	    detection-time
		 The period in seconds during which the microservice anomaly threshold is tested.

	    enforcement-mode
		 Determines the enforcement mode for the microservice, or use the default one from the profile
		 settings.

		 blocking
		      The system will replace responses with client side JavaScript and if the client cannot run
		      JavaScript, it will not be able to receive the server responses.

		 profile-default
		      The enforcement mode (transparent or blocking) for the microservice is determined by the
		      profile setting.

		 transparent
		      The system logs all mitigation and verification actions but no action is taken on the traffic.

	    hostname
		 The host domain name used to access the microservice. Wildcards are supported.

	    match-order
		 Ordinal number (1,2,3...) specifying the order that the microservice entries are checked for
		 matches.

	    mitigation-time
		 The time in seconds for the microservice anomaly mitigation duration.

	    type The type of the microservice.

	    urls
		 match-order
		      Ordinal number (1,2,3...) specifying the order that the URL entries in the microservice are
		      checked for matches.

		 url  The URL entry in the microservice. Wildcards are supported.

       mobile-detection
	    This feature detects mobile applications built with the Anti-Bot Mobile SDK and defines how requests from
	    these mobile application clients are handled.  This feature requires an Anti-Bot Mobile SK license to be
	    operational.

	    allow-android-rooted-device
		 Specifies, when enabled, whether to allow mobile applications from Android rooted devices.

	    allow-any-android-package
		 Specifies, when enabled, whether to allow any mobile applications from Android devices.

	    allow-any-ios-package
		 Specifies, when enabled, whether to allow any mobile applications from iOS devices.

	    allow-emulators
		 Specifies, when enabled, whether to allow mobile applications running on emulators.

	    allow-jailbroken-devices
		 Specifies, when enabled, whether to allow mobile applications from iOS jailbroken devices.

	    android-publishers
		 List of allowed publisher certificates for Android mobile applications.

	    block-debugger-enabled-device
		 Specifies, when enabled, whether to allow mobile applications from devices with debugger enabled.

	    client-side-challenge-mode
		 Determines the substitute action for CAPTCHA or client-side integrity check for mobile applications.
		 In those cases, the options for the mobile applications are:

		 cshui
		      The SDK checks for human interactions with the screen in the last few seconds. If none are
		      detected, the traffic is blocked.

		 pass The traffic is passed without incident.

	    ios-allowed-packages
		 List of fully qualified iOS mobile application package names that will be allowed.

	    signatures
		 List of signature names for detecting mobile applications without Anti-Bot Mobile SDK.

       perform-challenge-in-transparent
	    Determines, when enabled, whether browser challenges are still executed in transparent enforcement mode.

       signature-category-overrides
	    List of signature categories that have mitigation settings overriding the defaults determined by the
	    template.

	    action
		 The overriding mitigation action for the Bot signature category.  The options are:

		 alarm
		      Mark the request log entry with the alarm flag. Request passes through.

		 block
		      Block the request and send the blocking page in response.

		 captcha
		      Send a CAPTCHA challenge in response. If the user solves the challenge successfully the
		      requests from this user are passed to the server for a limited period of time.

		 none The category will not be detected. This may affect the classification of the client and hence
		      the action based on that classification.

		 tcp-reset
		      Discard the request by resetting the TCP connection it was sent on.

		 redirect-to-pool
		      Send the request to the configured pool.

		 honeypot-page
		      Block the request and send the Honeypot response page in response.

       signature-overrides
	    List of signatures that have mitigation settings overriding the defaults determined by the template.

	    action
		 The overriding mitigation action for the Bot signature. The options are:

		 alarm
		      Mark the request log entry with the alarm flag. Request passes through.

		 block
		      Block the request and send the blocking page in response.

		 captcha
		      Send a CAPTCHA challenge in response. If the user solves the challenge successfully the
		      requests from this user are passed to the server for a limited period of time.

		 none The signature will not be detected. This may affect the classification of the client and hence
		      the action based on that classification.

		 rate-limit
		      Traffic from this source will be limited to a given transaction rate. Relevant only to classes
		      and signature categories.

		 tcp-reset
		      Discard the request by resetting the TCP connection it was sent on.

		 redirect-to-pool
		      Send the request to the configured pool.

		 honeypot-page
		      Block the request and send the Honeypot response page in response.

	    rate-limit-tps
		 The TPS limit for the signature Relevant only if the action is rate limit.

       signature-staging-upon-update
	    In staging, the system does not block the request, but logs the request.  When not in staging, the system
	    enforces the mitigation action configured for the signature in Mitigation Settings.

       single-page-application
	    Enable if your website is a Single Page Application, meaning a web application that loads new content
	    without triggering a full page-reload.  The system will inject JavaScript code to every HTML response.
	    This will allow handling browser challenges and CAPTCHA without requiring page reloading. The default is
	    Disabled.

       site-domains
	    Configures a list of domains that are part of the website.

       staged-signatures
	    List of signatures that are put in staging.

       template
	    Specifies the template for the profile. The template determines default values for the mitigation
	    settings and some other settings.  The options are:

	    balanced
		 Allow limited access to non-malicious bots and verify browsers without affecting the user
		 experience.

	    relaxed
		 Allow full access to non-malicious bots and perform non-intrusive browser verification.

	    strict
		 Allow only fully verified browsers, mobile applications and trusted bots and block the rest. User
		 experience may be affected.

       whitelist
	    These are the whitelisted sources. A source can be an IP address or a geolocation.

	    disable-mitigation
		 Specifies whether to exempt the whitelist entry from mitigation actions.

	    disable-verification
		 Specifies whether to exempt the whitelist entry from browser verification actions.

	    geolocation
		 The name of the source geolocation that is whitelisted.

	    match-order
		 Ordinal number (1,2,3...) specifying the order that the whitelist entries are checked for matches.

	    source-address
		 The name of the source IP address that is whitelisted.

	    url  The name of the URL (wildcard supported) that is whitelisted.

       glob Displays the items that match the glob expression. See help glob for a description of glob expression
	    syntax.

       name Specifies a unique name for the component. This option is required for the commands create, delete, and
	    modify.

       partition
	    Displays the administrative partition within which the component resides.

       regex
	    Displays the items that match the regular expression. The regular expression must be preceded by an at
	    sign (@[regular expression]) to indicate that the identifier is a regular expression. See help regex for
	    a description of regular expression syntax.

SEE ALSO
       create, delete, edit, glob, list, ltm virtual, modify, regex, security, security bot-defense, show, tmsh

COPYRIGHT
       No part of this program may be reproduced or transmitted in any form or by any means, electronic or
       mechanical, including photocopying, recording, or information storage and retrieval systems, for any purpose
       other than the purchaser's personal use, without the express written permission of F5 Networks, Inc.

       F5 Networks and BIG-IP (c) Copyright 2009-2013, 2015, 2018. All rights reserved.

BIG-IP						      2019-02-10		      security bot-defense profile(1)