Wiz Logs

Panther supports pulling logs directly from Wiz

Overview

The Wiz integration is in open beta starting with Panther version 1.110, and is available to all customers. Please share any bug reports and feature requests with your Panther support team.

Panther can fetch Wiz audit, issue, and vulnerability logs by querying the Wiz API.

How to onboard Wiz logs to Panther

Prerequisite

  • The user setting up this integration must have access to a Wiz tenant and have a Wiz role with permissions to create service accounts (such as a Global Admin).

Step 1: Retrieve your Wiz API endpoint URL

The Wiz GraphQL API has a single endpoint (https://api.<TENANT_DATA_CENTER>.app.wiz.io/graphql), where <TENANT_DATA_CENTER> is the Wiz regional data center in which your tenant resides, e.g., us1, us2, eu1 or eu2. The endpoint is the same regardless of which operation you're performing.

To retrieve your GraphQL endpoint:

  1. In the upper-right corner of your Wiz console, click the user icon > User settings (or this direct link).

  2. On the left side, click Tenant (or this direct link).

  3. Copy your API Endpoint URL and store it in a secure location, as you will need it in a following step.

Step 2: Create a service account in Wiz

  1. In the Wiz dashboard, navigate to Settings > Access Management > Service Accounts.

  2. Click Add Service Account.

  3. In the New Service Account form, fill in the fields:

    • Name: Provide a descriptive name for the service account, e.g., Panther Integration.

    • Type: Select Custom Integration (GraphQL API).

    • Projects (Optional): Select one or more projects this service account will have access to.

      • Note that selecting one or more projects disallows you from querying Audit logs.

    • API Scopes:

      • Select read:resources.

      • Select the scope(s) listed in the Required API scopes for service account table below for the Wiz log type(s) you plan to ingest into Panther.

  4. Click Add Service Account.

  5. Copy the Client Secret, and store it in a secure location, as you will need it in a following step. You will not be able to view this value after this step.

  6. Copy the Client ID, and store it in a secure location, as you will need it in a following step.

Required API scopes for service account

Log type
Scope required for querying
Notes

admin:audit

This permission is only visible if you have not chosen one or more Projects for the service account

read:issues

read:vulnerabilities

Step 3: Create a new Wiz log source in Panther

  1. In the left-hand navigation bar of your Panther Console, click Configure > Log Sources.

  2. Click Create New.

  3. Search for "Wiz," then click its tile.

  4. In the upper-right corner of the slide-out panel, click Start Setup.

  5. On the Configure screen, fill in the form:

    • Name: Enter a descriptive name for the source e.g. My Wiz logs.

    • Project Ids (Optional): Enter the IDs of the projects you'd like to pull logs for. If this field is left blank, Panther will pull logs for all projects. To find the ID for a given project in the Wiz console:

      1. Click Settings > Projects.

      2. On the right-hand side of the row of the project, click the three dots icon > Project Id. The ID will be copied to your clipboard.

    • Select the log types you want to monitor: All Wiz log types will be pre-populated.

  6. Click Setup.

  7. On the Set Credentials page, fill in the form:

    • Token URL: Enter your Wiz API Token URL. This value depends on your Wiz account's identity provider:

      • Amazon Cognito: Enter https://auth.app.wiz.io/oauth/token.

      • Auth0: Enter https://auth.wiz.io/oauth/token.

        • Note that Wiz ended support for Auth0 as an identity provider in December 2022.

    • API Endpoint: Enter the API Endpoint URL you retrieved from Wiz.

    • Client ID: Enter the Client ID you generated in Wiz.

    • Client Secret: Enter the Client Secret you generated in Wiz.

  8. Click Setup. You will be directed to a success screen:

    • You can optionally enable one or more Detection Packs.

    • The Trigger an alert when no events are processed setting defaults to YES. We recommend leaving this enabled, as you will be alerted if data stops flowing from the log source after a certain period. The timeframe is configurable, with a default of 24 hours.

Panther-managed detections

See Panther-managed rules for Wiz in the panther-analysis GitHub repository.

Supported log types

Wiz.Audit

The Audit log records key events in Wiz, such as log ins, log outs, and user updates. The Audit log is primarily used to investigate potentially suspicious activity or diagnose and troubleshoot errors.

Reference: https://win.wiz.io/reference/audit-log

schema: Wiz.Audit
description: The Audit Log records key events in Wiz, such as login, logout, and user update. The Audit Log is primarily used to investigate potentially suspicious activity or diagnose and troubleshoot errors.
referenceURL: https://win.wiz.io/reference/audit-log
fields:
    - name: id
      required: true
      description: Unique identifier of the audit log entry.
      type: string
    - name: action
      required: true
      description: The action performed.
      type: string
    - name: requestId
      description: Unique identifier of the request.
      type: string
    - name: status
      description: Status of the audit log event.
      type: string
    - name: timestamp
      required: true
      description: Timestamp of the event.
      type: timestamp
      timeFormats:
        - rfc3339
      isEventTime: true
    - name: actionParameters
      description: Parameters related to the action.
      type: json
    - name: userAgent
      description: User agent string.
      type: string
    - name: sourceIP
      description: Source IP address.
      type: string
      indicators:
        - ip
    - name: serviceAccount
      description: Service account associated with the action.
      type: object
      fields:
        - name: id
          required: true
          description: ID of the service account.
          type: string
          indicators:
            - actor_id
        - name: name
          description: Name of the service account.
          type: string
    - name: user
      description: User associated with the action, if applicable.
      type: object
      fields:
        - name: id
          required: true
          description: ID of the user.
          type: string
          indicators:
            - actor_id
        - name: name
          description: Name of the user.
          type: string
          indicators:
            - username

Wiz.Issues

The Issues log records key events in Wiz related to issues, such as vulnerability findings and security incidents. It is used to track, manage, and remediate security vulnerabilities and incidents.

Reference: https://win.wiz.io/reference/issues-query

schema: Wiz.Issues
description: The Issues Log records key events in Wiz related to issues, such as vulnerability findings and security incidents. It is used to track, manage, and remediate security vulnerabilities and incidents.
referenceURL: https://win.wiz.io/reference/issues-query
fields:
    - name: id
      required: true
      description: The unique identifier of the issue.
      type: string
    - name: sourceRule
      description: The source rule of the issue.
      type: json
    - name: createdAt
      required: true
      description: The creation timestamp of the issue.
      type: timestamp
    - name: updatedAt
      description: The last update timestamp of the issue.
      type: timestamp
    - name: dueAt
      description: The due timestamp of the issue.
      type: timestamp
    - name: type
      description: The type of the issue.
      type: string
    - name: resolvedAt
      description: The resolution timestamp of the issue.
      type: timestamp
    - name: statusChangedAt
      description: The timestamp when the status of the issue changed.
      type: timestamp
    - name: projects
      description: The projects associated with the issue.
      type: array
      element:
        type: object
        fields:
            - name: id
              description: The unique identifier of the project.
              type: string
            - name: name
              description: The name of the project.
              type: string
            - name: slug
              description: The slug of the project.
              type: string
            - name: businessUnit
              description: The business unit of the project.
              type: string
            - name: riskProfile
              description: The risk profile of the project.
              type: json
    - name: status
      description: The status of the issue.
      type: string
    - name: severity
      description: The severity of the issue.
      type: string
    - name: entitySnapshot
      description: The snapshot of the entity related to the issue.
      type: object
      fields:
        - name: id
          description: The unique identifier of the entity snapshot.
          type: string
        - name: type
          description: The type of the entity snapshot.
          type: string
        - name: nativeType
          description: The native type of the entity snapshot.
          type: string
        - name: name
          description: The name of the entity snapshot.
          type: string
        - name: status
          description: The status of the entity snapshot.
          type: string
        - name: cloudPlatform
          description: The cloud platform of the entity snapshot.
          type: string
        - name: cloudProviderURL
          description: The cloud provider URL of the entity snapshot.
          type: string
        - name: providerId
          description: The provider ID of the entity snapshot.
          type: string
        - name: region
          description: The region of the entity snapshot.
          type: string
        - name: resourceGroupExternalId
          description: The external ID of the resource group.
          type: string
        - name: subscriptionExternalId
          description: The external ID of the subscription.
          type: string
        - name: subscriptionName
          description: The name of the subscription.
          type: string
        - name: subscriptionTags
          description: The tags of the subscription.
          type: json
        - name: tags
          description: The tags of the entity snapshot.
          type: json
        - name: externalId
          description: The external ID of the entity snapshot.
          type: string
    - name: serviceTickets
      description: The service tickets associated with the issue.
      type: json
    - name: notes
      description: Any additional notes related to the issue.
      type: json

Wiz.VulnerabilityFinding

The Vulnerability Finding log records information about security vulnerabilities detected in Wiz, including details about the vulnerabilities, affected assets, and remediation steps.

Reference: https://win.wiz.io/reference/vulnerability-finding

schema: Wiz.VulnerabilityFinding
description: The Vulnerability Finding Log records information about security vulnerabilities detected in Wiz, including details about the vulnerabilities, affected assets, and remediation steps.
referenceURL: https://win.wiz.io/reference/vulnerability-finding
fields:
    - name: id
      required: true
      description: The unique identifier of the vulnerability finding.
      type: string
    - name: portalUrl
      description: The portal URL of the vulnerability finding.
      type: string
      indicators:
        - url
    - name: name
      description: The name of the vulnerability.
      type: string
    - name: CVEDescription
      description: The CVE description of the vulnerability.
      type: string
    - name: CVSSSeverity
      description: The CVSS severity of the vulnerability.
      type: string
    - name: score
      description: The score of the vulnerability.
      type: float
    - name: exploitabilityScore
      description: The exploitability score of the vulnerability.
      type: float
    - name: impactScore
      description: The impact score of the vulnerability.
      type: float
    - name: dataSourceName
      description: The data source name of the vulnerability finding.
      type: string
    - name: hasExploit
      description: Indicates whether the vulnerability has an exploit.
      type: boolean
    - name: hasCisaKevExploit
      description: Indicates whether the vulnerability has a CISA/KEV exploit.
      type: boolean
    - name: status
      description: The status of the vulnerability finding.
      type: string
    - name: vendorSeverity
      description: The vendor severity of the vulnerability.
      type: string
    - name: firstDetectedAt
      description: The timestamp when the vulnerability was first detected.
      type: timestamp
      timeFormats:
        - rfc3339
    - name: lastDetectedAt
      description: The timestamp when the vulnerability was last detected.
      type: timestamp
      timeFormats:
        - rfc3339
    - name: resolvedAt
      description: The timestamp when the vulnerability was resolved.
      type: timestamp
    - name: description
      description: The description of the vulnerability.
      type: string
    - name: remediation
      description: The remediation steps for the vulnerability.
      type: string
    - name: detailedName
      description: The detailed name of the vulnerability.
      type: string
    - name: version
      description: The version affected by the vulnerability.
      type: string
    - name: fixedVersion
      description: The fixed version of the vulnerability.
      type: string
    - name: detectionMethod
      description: The method used for detecting the vulnerability.
      type: string
    - name: link
      description: The link related to the vulnerability.
      type: string
      indicators:
        - url
    - name: locationPath
      description: The location path of the vulnerability.
      type: string
    - name: resolutionReason
      description: The reason for resolving the vulnerability.
      type: string
    - name: epssSeverity
      description: The EPSS severity of the vulnerability.
      type: string
    - name: epssPercentile
      description: The EPSS percentile of the vulnerability.
      type: float
    - name: epssProbability
      description: The EPSS probability of the vulnerability.
      type: float
    - name: validatedInRuntime
      description: Indicates whether the vulnerability was validated in runtime.
      type: string
    - name: layerMetadata
      description: The layer metadata of the vulnerability.
      type: json
    - name: projects
      description: The projects associated with the vulnerability finding.
      type: array
      element:
        type: object
        fields:
            - name: id
              description: The unique identifier of the project.
              type: string
            - name: name
              description: The name of the project.
              type: string
            - name: slug
              description: The slug of the project.
              type: string
            - name: businessUnit
              description: The business unit of the project.
              type: string
            - name: riskProfile
              description: The risk profile of the project.
              type: json
    - name: ignoreRules
      description: The ignore rules for the vulnerability.
      type: json
    - name: vulnerableAsset
      description: The vulnerable asset associated with the vulnerability finding.
      type: object
      fields:
        - name: id
          description: The unique identifier of the vulnerable asset.
          type: string
        - name: type
          description: The type of the vulnerable asset.
          type: string
        - name: name
          description: The name of the vulnerable asset.
          type: string
        - name: region
          description: The region of the vulnerable asset.
          type: string
        - name: providerUniqueId
          description: The unique identifier of the provider.
          type: string
        - name: cloudProviderURL
          description: The cloud provider URL of the vulnerable asset.
          type: string
          indicators:
            - url
        - name: cloudPlatform
          description: The cloud platform of the vulnerable asset.
          type: string
        - name: status
          description: The status of the vulnerable asset.
          type: string
        - name: subscriptionName
          description: The name of the subscription.
          type: string
        - name: subscriptionExternalId
          description: The external ID of the subscription.
          type: string
        - name: subscriptionId
          description: The ID of the subscription.
          type: string
        - name: tags
          description: The tags of the vulnerable asset.
          type: json
        - name: hasLimitedInternetExposure
          description: Indicates whether the vulnerable asset has limited internet exposure.
          type: boolean
        - name: hasWideInternetExposure
          description: Indicates whether the vulnerable asset has wide internet exposure.
          type: boolean
        - name: isAccessibleFromVPN
          description: Indicates whether the vulnerable asset is accessible from VPN.
          type: boolean
        - name: isAccessibleFromOtherVnets
          description: Indicates whether the vulnerable asset is accessible from other VNets.
          type: boolean
        - name: isAccessibleFromOtherSubscriptions
          description: Indicates whether the vulnerable asset is accessible from other subscriptions.
          type: boolean
        - name: operatingSystem
          description: The operating system of the vulnerable asset.
          type: string
        - name: ipAddresses
          description: The IP addresses of the vulnerable asset.
          type: array
          element:
            type: string
            indicators:
                - ip

Last updated