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:
In the upper-right corner of your Wiz console, click the user icon > User settings (or this direct link).
On the left side, click Tenant (or this direct link).
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
In the Wiz dashboard, navigate to Settings > Access Management > Service Accounts.
Click Add Service Account.
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.
Click Add Service Account.
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.
Copy the Client ID, and store it in a secure location, as you will need it in a following step.
In the left-hand navigation bar of your Panther Console, click Configure > Log Sources.
Click Create New.
Search for "Wiz," then click its tile.
In the upper-right corner of the slide-out panel, click Start Setup.
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:
Click Settings > Projects.
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.
Click Setup.
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.
Click Setup. You will be directed to a success screen:
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.
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.
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.
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.
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