Pular para o conteúdo principal

Wiz

info

Visualização

O Lakewatch está em Visualização privada. Para solicitar acesso, entre em contato com a equipe da sua conta da Databricks.

O Lakewatch fornece um conector de API para ingerir entradas de log de auditoria, problemas e descobertas de vulnerabilidade do Wiz. Este artigo aborda pré-requisitos, instruções de configuração, esquemas de conectores e observáveis do analisador Lakewatch.

Pré-requisitos​

O conector requer:

  1. Serverless Lakeflow Spark Declarative Pipelines ativado em seu workspace.
  2. Unity Catalog, com permissões para criar ou usar uma conexão Unity Catalog. Consulte Permissões de conexão.
  3. Um tenant Wiz com acesso de administrador para criar uma account de serviço.
  4. Permissão para conceder à conta de serviço account acesso de leitura aos Logs de auditoria, problemas e descobertas de vulnerabilidades que você deseja ingerir.

Limitações conhecidas​

  • O SCD tipo 2 não é suportado porque os dados de segurança do Wiz são ingeridos como um feed somente de adição.
  • O conector oferece suporte à autenticação OAuth machine-to-machine (M2M) com uma account de serviço do Wiz. Não há suporte para token de API nem para autenticação básica.
  • A evolução automática do esquema suporta colunas novas e eliminadas, mas não alterações no tipo de dados ou renomeação de colunas.
  • A retrospectiva histórica não pode exceder 180 dias. Consulte Escolher até que ponto ingerir dados.

Configurar o Wiz para ingestão​

Nesta etapa, você cria uma account de serviço no Wiz e anota as credenciais usadas para criar uma conexão no Databricks.

  1. Entre no seu tenant Wiz como administrador.

  2. Crie uma account de serviço para o conector:

    1. No portal do Wiz, acesse Configurações > Gerenciamento de Acesso > Contas de serviço e clique em Adicionar account de serviço .

    2. Insira um Nome descritivo para a account de serviço.

    3. Para Tipo , selecione Integração personalizada (API GraphQL) .

    4. Conceda à serviço account os escopos da API para os dados que você deseja ingerir:

      • read:resources (obrigatório para toda ingestão)
      • admin:audit para ingerir entradas de log de auditoria
      • read:issues para ingerir problemas
      • read:vulnerabilities para ingerir descobertas de vulnerabilidade
    5. Deixe Projetos em branco. A seleção de um ou mais projetos impede que a account de serviço consulte os Logs de auditoria, porque o escopo admin:audit está disponível apenas quando nenhum projeto é selecionado.

    6. Crie a account de serviço.

  3. Observe o ID do cliente e o Segredo do cliente da serviço account. Copie o segredo do cliente imediatamente, porque o Wiz não o exibirá novamente depois que você fechar o diálogo. Você insere esses valores ao criar uma conexão no Databricks.

  4. Obtenha os detalhes do seu tenant. Clique no ícone do seu perfil no canto superior direito do portal Wiz e, em seguida, clique em Informações do tenant . Observe os seguintes valores, que você insere ao criar uma conexão no Databricks:

    • Na Geral tab, o URL de Autenticação . Este é o endpoint de token que o conector usa para trocar as credenciais de cliente por um access token. Por exemplo, https://auth.app.wiz.io/oauth/token.
    • Na tab Data Center and Regions , seu data center. Este é o seu Tenant Data Center .
dica

Ao criar uma conexão por meio da IU do Lakewatch, insira o Centro de Dados do Tenant , o ID do Cliente , o Segredo do Cliente e o URL de Autenticação coletados acima.

Para obter mais informações, consulte Configurar autenticação para Wiz.

Os passos seguintes​

Após concluir a configuração acima, crie uma fonte de dados com o conector Wiz na interface do usuário do Lakewatch. Consulte conectores de API para obter instruções.


Esquemas de conector e Lakewatch​

O conector ingere as seguintes tabelas de origem do esquema de origem default:

Tabela de origem

Dados da Wiz

Analisador Lakewatch integrado

audit_log_entries

Ações do usuário, atividade da account de serviço e alterações de configuração

wiz_audit

issues

Riscos detectados na cloud, incluindo status e gravidade

wiz_issues

vulnerability_findings

Vulnerabilidades, ativos afetados, gravidade e orientação de remediação

wiz_vulnerability_finding

Tabela de origem

Dados da Wiz

Analisador Lakewatch integrado

audit_log_entries

Ações do usuário, atividade da account de serviço e alterações de configuração

wiz_audit

issues

Riscos detectados na cloud, incluindo status e gravidade

wiz_issues

vulnerability_findings

Vulnerabilidades, ativos afetados, gravidade e orientação de remediação

wiz_vulnerability_finding

O conector grava cada tabela de origem no destino bruto da fonte de dados. Cada analisador integrado grava uma tabela analisada separada com o nome do analisador, a menos que você defina um destino analisado ao configurar a fonte de dados.

Colunas gerenciadas pelo Lakewatch​

O conector adiciona as seguintes colunas a cada linha da fonte bruta:

  • lw_id: uma strings não nula que o Lakewatch usa como key primária. O conector deriva um ID estável e ordenável por tempo de time e do campo id do Wiz.
  • time: Um Timestamp usado para ingestão incremental. Para audit_log_entries, o conector deriva time de timestamp. Para issues, ele deriva time de createdAt. Para vulnerability_findings, ele deriva time de updatedAt.

O analisador wiz_issues define o campo time analisado a partir de updatedAt, de modo que a tabela analisada reflete o horário de atualização do problema mais recente.

Cada tabela analisada carrega lw_id e adiciona:

  • lw_meta: Metadados padrão de processamento do Lakewatch.
  • lw_observables: Valores extraídos de campos marcados como observáveis de segurança no analisador.

Para mais informações, consulte a referência do parser.

Esquemas brutos das tabelas do conector​

Os seguintes esquemas incluem os campos do Wiz e as colunas lw_id e time gerenciadas pelo Lakewatch. Para definições de campos, consulte a referência do conector Wiz.

audit_log_entries

Esquema

Coluna

Tipo de dados

lw_id

STRING

time

TIMESTAMP

id

STRING

action

STRING

requestId

STRING

status

STRING

timestamp

TIMESTAMP

actionParameters

STRING

userAgent

STRING

sourceIP

STRING

serviceAccount

STRUCT<id: STRING, name: STRING>

user

STRUCT<id: STRING, name: STRING>

Coluna

Tipo de dados

lw_id

STRING

time

TIMESTAMP

id

STRING

action

STRING

requestId

STRING

status

STRING

timestamp

TIMESTAMP

actionParameters

STRING

userAgent

STRING

sourceIP

STRING

serviceAccount

STRUCT<id: STRING, name: STRING>

user

STRUCT<id: STRING, name: STRING>

issues

Esquema

Coluna

Tipo de dados

lw_id

STRING

time

TIMESTAMP

id

STRING

sourceRule

STRING

createdAt

TIMESTAMP

updatedAt

TIMESTAMP

dueAt

TIMESTAMP

type

STRING

resolvedAt

TIMESTAMP

statusChangedAt

TIMESTAMP

projects

ARRAY<STRUCT<id: STRING, name: STRING, slug: STRING, businessUnit: STRING, riskProfile: STRING>>

status

STRING

severity

STRING

entitySnapshot

STRING

serviceTickets

STRING

notes

STRING

Coluna

Tipo de dados

lw_id

STRING

time

TIMESTAMP

id

STRING

sourceRule

STRING

createdAt

TIMESTAMP

updatedAt

TIMESTAMP

dueAt

TIMESTAMP

type

STRING

resolvedAt

TIMESTAMP

statusChangedAt

TIMESTAMP

projects

ARRAY<STRUCT<id: STRING, name: STRING, slug: STRING, businessUnit: STRING, riskProfile: STRING>>

status

STRING

severity

STRING

entitySnapshot

STRING

serviceTickets

STRING

notes

STRING

vulnerability_findings

Esquema

Coluna

Tipo de dados

lw_id

STRING

time

TIMESTAMP

id

STRING

portalUrl

STRING

name

STRING

CVEDescription

STRING

CVSSSeverity

STRING

score

DOUBLE

exploitabilityScore

DOUBLE

impactScore

DOUBLE

dataSourceName

STRING

hasExploit

BOOLEAN

hasCisaKevExploit

BOOLEAN

status

STRING

vendorSeverity

STRING

firstDetectedAt

TIMESTAMP

lastDetectedAt

TIMESTAMP

updatedAt

TIMESTAMP

resolvedAt

TIMESTAMP

description

STRING

remediation

STRING

detailedName

STRING

version

STRING

fixedVersion

STRING

detectionMethod

STRING

link

STRING

locationPath

STRING

resolutionReason

STRING

epssSeverity

STRING

epssPercentile

DOUBLE

epssProbability

DOUBLE

validatedInRuntime

STRING

layerMetadata

STRING

projects

ARRAY<STRUCT<id: STRING, name: STRING, slug: STRING, businessUnit: STRING>>

ignoreRules

ARRAY<STRUCT<id: STRING, name: STRING, enabled: BOOLEAN>>

vulnerableAsset

STRING

Coluna

Tipo de dados

lw_id

STRING

time

TIMESTAMP

id

STRING

portalUrl

STRING

name

STRING

CVEDescription

STRING

CVSSSeverity

STRING

score

DOUBLE

exploitabilityScore

DOUBLE

impactScore

DOUBLE

dataSourceName

STRING

hasExploit

BOOLEAN

hasCisaKevExploit

BOOLEAN

status

STRING

vendorSeverity

STRING

firstDetectedAt

TIMESTAMP

lastDetectedAt

TIMESTAMP

updatedAt

TIMESTAMP

resolvedAt

TIMESTAMP

description

STRING

remediation

STRING

detailedName

STRING

version

STRING

fixedVersion

STRING

detectionMethod

STRING

link

STRING

locationPath

STRING

resolutionReason

STRING

epssSeverity

STRING

epssPercentile

DOUBLE

epssProbability

DOUBLE

validatedInRuntime

STRING

layerMetadata

STRING

projects

ARRAY<STRUCT<id: STRING, name: STRING, slug: STRING, businessUnit: STRING>>

ignoreRules

ARRAY<STRUCT<id: STRING, name: STRING, enabled: BOOLEAN>>

vulnerableAsset

STRING

Observáveis do analisador​

Os parsers integrados escrevem objetos aninhados como VARIANT e extraem os seguintes campos para lw_observables.

wiz_audit

Observáveis

campo

Observável

sourceIP

ip

serviceAccount.id

actor_id

user.id

actor_id

user.name

username

campo

Observável

sourceIP

ip

serviceAccount.id

actor_id

user.id

actor_id

user.name

username

O analisador wiz_issues não define nenhum campo observável.

wiz_vulnerability_finding

Observáveis

campo

Observável

portalUrl

url

link

url

campo

Observável

portalUrl

url

link

url