For the complete documentation index, see llms.txt. This page is also available as Markdown.

API protection

WAAS can enforce API security based on specifications provided in the form of Swagger or OpenAPI files. Alternatively, you can manually define your API (e.g., paths, allowed HTTP methods, parameter names, input types, value ranges, and so on). Once defined, you can configure the actions WAAS applies to requests that do not comply with the API’s expected behavior.

Users should be careful when enabling Prisma Session Cookies along with API protection. Prisma Session Cookies mandates client’s support of cookies and javascript in order for them to reach the protected application. As APIs are often accessed by "primitive" automation clients, avoid enabling Prisma Session Cookies unless you are certain all clients accessing the protected API support BOTH cookies AND Javascript.

Import API definition from Swagger or OpenAPI files

  1. Click the App definition tab.

    waas app definition
  2. Click Import.

    waas import api
  3. Select a file to load.

  4. Click the API protection tab.

    waas api protection tab
  5. Review path and parameter definitions listed under API Resources.

  6. Click the Endpoint setup tab.

    waas endpoint setup tab
  7. Review protected endpoints listed under Protected Endpoints and verify configured base paths all end with a trailing *.

    Base path in the endpoint definition should always end with a * e.g. "/*", "/api/v2/*". If not configured that way, API protection will not apply to sub-paths defined in the API protection tab.

  8. Go back to the API protection tab.

    waas api protection config actions
  9. Configure an API protection action for the resources defined under API resources, and an action for all other resources.

    waas api protection action

Define an API manually

  1. Click the App definition tab.

    waas app definition
  2. Click the Endpoint setup tab.

    waas endpoint setup tab
  3. Add protected endpoints under Protected endpoints and verify configured base paths all end with a trailing *.

    Base path in the endpoint definition should always end with a * e.g. "/*", "/api/v2/*". If not configured that way, API protection will not apply to sub-paths defined in the API protection tab.

  4. Click the API protection tab.

    waas api protection tab empty
  5. Click Add path

  6. Enter Resource path (e.g. /product - resource paths should not end with a trailing "/").

    waas api protection path methods

    Paths entered in this section are additional subpaths to the base path defined in the previous endpoint section. For example, if in the endpoint definition hostname was set to "www.example.com", base path set to "/api/v2/*" and in the API Protection tab resource path set to "/product" - full protected resource would be www.example.com/api/v2/product.

  7. Select allowed methods.

    waas select methods
  8. For each allowed HTTP method, define parameters by selecting the method from Parameters for drop-down list.

    cnaf api protection select method
    1. Select an HTTP method from drop-down list.

    2. Click Add parameter.

    3. Enter parameter definition.

      cnaf api add parameter
  9. Configure an API protection action for the resources defined under API resources, and an action for all other resources.

    waas api protection action
    • Parameter violation — Action to be taken when a request sent to one of the specified paths in the API resource list does not comply with the parameter provided definitions.

    • Unspecified path(s)/method(s) — Action to be taken in one of the following cases:

      • Request sent to a resource path that is not specified in the API resources list.

      • Request sent using an unsupported HTTP method for a resource path in the API list.

API Actions

HTTP requests that trigger API protections are subject to one of the following actions:

  • Alert - Request is passed to the protected application and an audit is generated for visibility.

  • Prevent - Request is denied from reaching the protected application, an audit is generated, and WAAS responds with an HTML banner indicating the request was blocked.

  • Ban - Can be applied on either IP addresses or Prisma Session IDs. All requests originating from the same IP/Prisma Session to the protected application are denied for the configured time period (default is 5 minutes) following the last detected attack.

    To enable ban by Prisma Session ID, you must enable Prisma Session Cookies. For more information on enabling Prisma Sessions and configuring ban definitions, see Advanced Settings.

  • When the X-Forwarded-For HTTP header is included in the request headers, ban will apply based on the first IP listed in the header value (true client IP).

  • WAAS implements state, which is required for banning user sessions by IP address. Because Defenders do not share state, any application that is replicated across multiple nodes must enable IP address stickiness on the load balancer.

Last updated

Was this helpful?