Fortinet FortiSIEM

Versão da integração: 5.0

Configurar a integração do Fortinet FortiSIEM no Google Security Operations

Para instruções detalhadas sobre como configurar uma integração no Google SecOps, consulte Configurar integrações.

Parâmetros de integração

Use os seguintes parâmetros para configurar a integração:

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Raiz da API String https://x.x.x.x:porta Sim Especifique a raiz da API para a instalação de destino do FortiSIEM.
Nome de usuário String N/A Sim Especifique o nome de usuário a ser usado para a instalação de destino do FortiSIEM.
Senha Senha N/A Sim Especifique a senha a ser usada na instalação de destino do FortiSIEM.
Verificar SSL Caixa de seleção Selecionado Não Se ativado, o servidor do Google SecOps verifica se o certificado está configurado para a raiz da API.

Casos de uso de produtos

  1. Ingira alertas do SIEM para o Google SecOps.
  2. Use dados do SIEM para enriquecer alertas do Google SecOps.
  3. Sincronizar os status de processamento com alertas do Google SecOps no lado do SIEM.

Ações

Ping

Descrição

Teste a conectividade com o FortiSIEM usando os parâmetros fornecidos na página de configuração da integração na guia "Marketplace" do Google Security Operations.

Parâmetros

N/A

Executar em

A ação não é executada em entidades nem tem parâmetros de entrada obrigatórios.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/Falso is_success=False
Resultado do JSON
N/A
Enriquecimento de entidades

N/A

Insights

N/A

Painel de casos
Tipo de resultado Valor/descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:

Se tudo der certo: "Conexão bem-sucedida com a instalação do FortiSIEM usando os parâmetros de conexão fornecidos!"

A ação precisa falhar e interromper a execução de um playbook:

>Se não der certo: "Falha na conexão com a instalação do FortiSIEM! Erro: {0}".format(exception.stacktrace)"

Geral

Enriquecer entidades

Descrição

Enriqueça entidades usando informações do FortiSIEM CMDB da Fortinet. Entidades compatíveis: nome do host, endereço IP.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Organização de destino String N/A Não Especifique o nome da organização de destino opcional para procurar informações de enriquecimento apenas nessa organização.

Executar em

Essa ação é executada nas seguintes entidades:

  • Nome do host
  • Endereço IP

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/Falso is_success=False
Resultado do JSON
[
  {
    "Entity": "centos-xxx",
    "EntityResult": {
      "device": {
        "organization": {
          "@id": "1xx",
          "@name": "Super"
        },
        "accessIp": "172.30.xxx.xxx",
        "approved": "true",
        "components": null,
        "creationMethod": "LOG",
        "deviceType": {
          "accessProtocols": "TELNET,SSH",
          "jobWeight": "10",
          "model": "Unix",
          "vendor": "Generic",
          "version": "ANY"
        },
        "discoverMethod": "LOG",
        "discoverTime": "1640008485000",
        "eventParserList": null,
        "interfaces": null,
        "ipToHostNames": null,
        "luns": null,
        "name": "centos-xxx",
        "naturalId": "centos%2dxxx",
        "processors": null,
        "properties": {
          "customproperty": [
            {
              "matched": "false",
              "propertyDef": {
                "displayInCMDB": "false",
                "displayName": "Importance",
                "groupKey": "false",
                "propertyName": "importance",
                "subValueType": "STRING",
                "valueType": "STRING"
              },
              "propertyName": "importance",
              "propertyValue": "Normal",
              "updated": "false"
            },
            {
              "matched": "false",
              "propertyDef": {
                "displayInCMDB": "false",
                "displayName": "Location Name",
                "groupKey": "false",
                "propertyName": "locationName",
                "subValueType": "STRING",
                "valueType": "STRING"
              },
              "propertyName": "locationName",
              "updated": "false"
            }
          ]
        },
        "raidGroups": null,
        "sanControllerPorts": null,
        "softwarePatches": null,
        "softwareServices": null,
        "status": "2",
        "storageGroups": null,
        "storages": null,
        "unmanaged": "false",
        "updateMethod": "LOG",
        "version": "ANY",
        "winMachineGuid": null
      }
    }
  },
  {
    "Entity": "172.30.xxx.xxx",
    "EntityResult": {
      "device": {
        "organization": {
          "@id": "1xx",
          "@name": "Super"
        },
        "accessIp": "172.30.xxx.xxx",
        "applications": null,
        "approved": "true",
        "components": null,
        "creationMethod": "LOG",
        "deviceType": {
          "accessProtocols": "TELNET,SSH",
          "jobWeight": "10",
          "model": "Unix",
          "vendor": "Generic",
          "version": "ANY"
        },
        "discoverMethod": "LOG",
        "discoverTime": "1640070721000",
        "eventParserList": {
          "eventparser": {
            "deviceType": {
              "category": "Appliance",
              "jobWeight": "10",
              "model": "Generic",
              "vendor": "Generic",
              "version": "ANY"
            },
            "enabled": "true",
            "name": "SyslogNGParser",
            "parserXml": "<patternDefinitions><pattern>..."
          }
        },
        "interfaces": null,
        "ipToHostNames": null,
        "luns": null,
        "name": "centos-xxx",
        "naturalId": "centos",
        "primaryContactUser": "0",
        "processors": null,
        "properties": {
          "customproperty": [
            {
              "matched": "false",
              "propertyDef": {
                "displayInCMDB": "false",
                "displayName": "Importance",
                "groupKey": "false",
                "propertyName": "importance",
                "subValueType": "STRING",
                "valueType": "STRING"
              },
              "propertyName": "importance",
              "propertyValue": "Mission Critical",
              "updated": "false"
            },
            {
              "matched": "false",
              "propertyDef": {
                "displayInCMDB": "false",
                "displayName": "Location Name",
                "groupKey": "false",
                "propertyName": "locationName",
                "subValueType": "STRING",
                "valueType": "STRING"
              },
              "propertyName": "locationName",
              "updated": "false"
            }
          ]
        },
        "raidGroups": null,
        "sanControllerPorts": null,
        "secondaryContactUser": "0",
        "softwarePatches": null,
        "softwareServices": null,
        "status": "2",
        "storageGroups": null,
        "storages": null,
        "unmanaged": "false",
        "updateMethod": "MANUAL",
        "version": "ANY",
        "winMachineGuid": null
      }
    }
  }
]
Enriquecimento de entidades
Nome do campo de enriquecimento Origem (chave JSON) Lógica: quando aplicar
accessIp accessIp Quando disponível em XML
nome nome Quando disponível em XML
aplicativos CSV de "applications/name" Quando disponível em XML
creationMethod creationMethod Quando disponível em XML
deviceType_model deviceType_model Quando disponível em XML

deviceType_accessProtocols

deviceType_vendor

deviceType_accessProtocols

deviceType_vendor

Quando disponível em XML
discoverMethod discoverMethod Quando disponível em XML
discoverTime discoverTime Quando disponível em XML
Insights

N/A

Painel de casos
Tipo de resultado Valor/descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:

Se os dados estiverem disponíveis para uma entidade (is_success=true): "Aprimoramos as seguintes entidades usando informações do FortiSIEM: {entity.identifier}."

Se os dados não estiverem disponíveis para uma entidade (is_success=true): "Não foi possível enriquecer as seguintes entidades usando informações do FortiSIEM: {entity.identifier}."

Se os dados não estiverem disponíveis para todas as entidades (is_success=false): "Nenhuma das entidades fornecidas foi enriquecida".

A ação precisa falhar e interromper a execução de um playbook:

Se um erro fatal, como credenciais incorretas, falta de conexão com o servidor ou outro, for informado: "Erro ao executar a ação "Enriquecer entidades". Motivo: {0}''.format(error.Stacktrace)

Geral
Tabela do painel de casos

Título da tabela: {entity.identifier}

Colunas da tabela:

  • Chave
  • Valor
Entidade

Executar consulta simples

Descrição

Executa uma consulta de eventos do FortiSIEM com base nos parâmetros fornecidos.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Tipos de evento CSV N/A Não

Especifique os tipos de eventos que a consulta deve buscar.

O parâmetro aceita vários valores como uma string separada por vírgulas.

Gravidade mínima para buscar Número inteiro N/A Não

Especifique a gravidade mínima do evento a ser buscada no Google SecOps em números.

Exemplo: 5 ou 7

Categoria do evento CSV N/A Não

Especifique a categoria de evento que a consulta precisa buscar.

O parâmetro aceita vários valores como uma string separada por vírgulas.

IDs de evento CSV N/A Não

Especifique opcionalmente os IDs de evento exatos que a consulta deve buscar.

O parâmetro aceita vários valores como uma string separada por vírgulas.

Campos a serem retornados CSV N/A Não

Especifique os campos que serão retornados.

Se nada for fornecido, a ação vai retornar todos os campos.

Campo de classificação String phRecvTime Não Especifique o parâmetro que será usado para a classificação.
Ordem de classificação DDL

DESC

Valores possíveis:

  • ASC
  • DESC
Não Especifique a ordem de classificação.
Período DDL

Última hora

Valores possíveis:

  • Última hora
  • Últimas 6 horas
  • Últimas 24 horas
  • Última semana
  • Mês anterior
  • Personalizado
Não

Especifique um período para os resultados.

Se "Personalizado" estiver selecionado, você também precisará informar o parâmetro "Horário de início".

Horário de início String N/A Não

Especifique o horário de início dos resultados.

Esse parâmetro é obrigatório se "Personalizado" for selecionado para o parâmetro "Período".

Formato: ISO 8601

Exemplo: 2021-04-23T12:38Z

Horário de término String N/A Não

Especifique o horário de término dos resultados.

Se nada for fornecido e "Personalizado" for selecionado para o parâmetro "Período", esse parâmetro usará a hora atual.

Formato: ISO 8601

Número máximo de resultados a serem retornados Número inteiro 50 Não Especifique o número de resultados a serem retornados.

Executar em

Essa ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/Falso is_success=False
Resultado do JSON
[
  {
    "custId": "1",
    "attributes": {
      "eventType": "Unknown_EventType",
      "eventSeverity": "3",
      "eventAction": "0 (Permit)",
      "phRecvTime": "Wed Dec 29 00:36:55 IST 2021",
      "relayDevIpAddr": "172.30.20xxx",
      "reptDevIpAddr": "172.30.20xxx",
      "destIpAddr": "172.30.20xxx",
      "destName": "HOST-172.30.20xxx",
      "reptDevName": "centos-xxx",
      "reptVendor": "Unknown",
      "customer": "Super",
      "reptModel": "Unknown",
      "rawEventMsg": "<27>Dec 29 00:36:47 centos-xxx aella_flow[5074]: 1902195|aos_afix_json|ERR|Failed to send message: Couldn't connect to server/7",
      "collectorId": "1",
      "eventId": "4242813061460978xxx",
      "phEventCategory": "0 (External)",
      "count": "1",
      "eventName": "Unknown event type",
      "eventParsedOk": "0",
      "parserName": "SyslogNGParser"
    },
    "dataStr": null,
    "eventType": "Unknown_EventType",
    "id": "4242813061460978xxx",
    "index": "0",
    "nid": "4242813061460978xxx",
    "receiveTime": "2021-12-29T00:36:55+02:00"
  }
]
Enriquecimento de entidades

N/A

Insights

N/A

Painel de casos
Tipo de resultado Valor/descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:

Se alguns dados forem encontrados (is_success=true): "Os resultados da consulta construída "{query}" foram recuperados no FortiSIEM.".

Se nenhum resultado for encontrado (is_success=false): "Nenhum resultado foi encontrado para a consulta criada "{Query}" no FortiSIEM."

A ação precisa falhar e interromper a execução de um playbook:

Se um erro fatal, como credenciais incorretas, falta de conexão com o servidor ou outro, for informado: "Erro ao executar a ação "Consulta simples". Motivo: {0}''.format(error.Stacktrace)

Se o parâmetro "Horário de início" estiver vazio e o parâmetro "Período" estiver definido como "Personalizado" (falha): "Erro ao executar a ação "". Motivo: "Horário de início" precisa ser informado quando "Personalizado" é selecionado no parâmetro "Período".

Se o valor de "Horário de início" for maior que o valor do parâmetro "Horário de término" (falha): "Erro ao executar a ação "". Motivo: "Horário de término" precisa ser posterior a "Horário de início".

Geral
Tabela

Nome da tabela:resultados de consultas simples

Colunas da tabela:todas as colunas da resposta

Geral

Executar consulta personalizada

Descrição

Execute uma consulta personalizada no FortiSIEM.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Consulta Campo de entrada de várias linhas de string (Atributo = Valor OU Valor) E (Valor do atributo OU Valor) Sim

Especifique uma consulta usada para recuperar informações sobre os eventos.

Exemplo: (relayDevIpAddr = 172.30.202.1 OR 172.30.202.2) AND (reptDevName = HOST1)

Campos a serem retornados CSV Não

Especifique os campos que serão retornados.

Se nada for fornecido, a ação vai retornar todos os campos.

Campo de classificação String phRecvTime Não Especifique o parâmetro que será usado para a classificação.
Ordem de classificação DDL

DESC

Valores possíveis:

  • ASC
  • DESC
Não Especifique a ordem de classificação.
Período DDL

Última hora

Valores possíveis:

  • Última hora
  • Últimas 6 horas
  • Últimas 24 horas
  • Última semana
  • Mês anterior
  • Personalizado
Não

Especifique um período para os resultados.

Se "Personalizado" estiver selecionado, você também precisará informar o parâmetro "Horário de início".

Horário de início String N/A Não

Especifique o horário de início dos resultados.

Esse parâmetro é obrigatório se "Personalizado" for selecionado para o parâmetro "Período".

Formato: ISO 8601

Exemplo: 2021-04-23T12:38Z

Horário de término String N/A Não

Especifique o horário de término dos resultados.

Se nada for fornecido e "Personalizado" for selecionado para o parâmetro "Período", esse parâmetro usará a hora atual.

Número máximo de resultados a serem retornados Número inteiro 50 Não Especifique o número de resultados a serem retornados.

Executar em

Essa ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/Falso is_success=False
Resultado do JSON
[
  {
    "custId": "1",
    "attributes": {
      "eventType": "Unknown_EventType",
      "eventSeverity": "3",
      "eventAction": "0 (Permit)",
      "phRecvTime": "Wed Dec 29 00:36:55 IST 2021",
      "relayDevIpAddr": "172.30.20xxx",
      "reptDevIpAddr": "172.30.20xxx",
      "destIpAddr": "172.30.20xxx",
      "destName": "HOST-172.30.20xxx",
      "reptDevName": "centos-xxx",
      "reptVendor": "Unknown",
      "customer": "Super",
      "reptModel": "Unknown",
      "rawEventMsg": "<27>Dec 29 00:36:47 centos-xxx aella_flow[5074]: 1902195|aos_afix_json|ERR|Failed to send message: Couldn't connect to server/7",
      "collectorId": "1",
      "eventId": "4242813061460978xxx",
      "phEventCategory": "0 (External)",
      "count": "1",
      "eventName": "Unknown event type",
      "eventParsedOk": "0",
      "parserName": "SyslogNGParser"
    },
    "dataStr": null,
    "eventType": "Unknown_EventType",
    "id": "4242813061460978xxx",
    "index": "0",
    "nid": "4242813061460978xxx",
    "receiveTime": "2021-12-29T00:36:55+02:00"
  }
]
Enriquecimento de entidades

N/A

Insights

N/A

Painel de casos
Tipo de resultado Valor/descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:

Se alguns dados forem encontrados (is_success=true): "Os resultados da consulta "{query}" no FortiSIEM foram recuperados."

Se nenhum resultado for encontrado (is_success=false): "Nenhum resultado foi encontrado para a consulta "{Query}" no FortiSIEM."

A ação precisa falhar e interromper a execução de um playbook:

Se um erro fatal, como credenciais incorretas, falta de conexão com o servidor ou outro, for informado: "Erro ao executar a ação "Consulta simples". Motivo: {0}''.format(error.Stacktrace)

Se o parâmetro "Horário de início" estiver vazio e o parâmetro "Período" estiver definido como "Personalizado" (falha): "Erro ao executar a ação "". Motivo: "Horário de início" precisa ser informado quando "Personalizado" é selecionado no parâmetro "Período".

Se o valor do "Horário de início" for maior que o valor do parâmetro "Horário de término" (falha): "Erro ao executar a ação "". Motivo: "Horário de término" precisa ser posterior a "Horário de início".

Geral
Tabela

Nome da tabela:resultados da consulta personalizada

Colunas da tabela:todas as colunas da resposta

Geral

Conectores

Conector de incidentes do FortiSIEM

Descrição do conector

O conector pode ser usado para buscar incidentes do FortiSIEM. A lista de permissões do conector pode ser usada para ingerir apenas tipos específicos de incidentes com base no valor do atributo "eventType" do incidente. O SourceGroupIdentifier do conector pode ser usado para agrupar alertas do Google SecOps com base no ID do incidente. O conector exige o FortiSIEM versão 6.3 ou mais recente.

Parâmetros do conector

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Nome do campo do produto String deviceProduct Sim Insira o nome do campo de origem para recuperar o nome do campo do produto.
Nome do campo do evento String eventType Sim Insira o nome do campo de origem para recuperar o nome do campo de evento.
Nome do campo de ambiente String Não

Descreve o nome do campo em que o nome do ambiente é armazenado.

Se o campo de ambiente não for encontrado, o ambiente será o padrão.

Padrão de regex do ambiente String .* Não

Um padrão de regex a ser executado no valor encontrado no campo "Nome do campo de ambiente".

O padrão é ".*" para capturar tudo e retornar o valor sem alterações.

Usado para permitir que o usuário manipule o campo de ambiente usando a lógica de regex.

Se o padrão de regex for nulo ou vazio, ou se o valor do ambiente for nulo, o resultado final será o ambiente padrão.

Script de tempo limite Número inteiro 300 Sim Especifique o tempo limite para a execução do conector.
Raiz da API String https:/x.x.x.x:port Sim Especifique a raiz da API para a instalação de destino do FortiSIEM.
Nome de usuário String N/A Sim Especifique o nome de usuário a ser usado para a instalação de destino do FortiSIEM.
Senha Senha N/A Sim Especifique a senha a ser usada na instalação de destino do FortiSIEM.
Verificar SSL Caixa de seleção Selecionado Não Se ativado, o servidor do Google SecOps verifica o certificado configurado para a raiz da API.
Organização de destino CSV N/A Não

Especifique as organizações para as quais o conector precisa buscar incidentes.

Os parâmetros aceitam vários valores como uma string separada por vírgulas.

Máximo de horas para trás Número inteiro 24 Sim Especifique o período para buscar incidentes de X horas atrás.
Número máximo de incidentes por ciclo Número inteiro 10 Sim Especifique o número de incidentes que devem ser processados durante uma execução do conector.
Número máximo de eventos por incidente Número inteiro 100 Sim

Especifique o número máximo de eventos que o conector deve rastrear para o incidente.

Quando o limite é atingido, novos eventos não são adicionados ao Google SecOps.

Status de incidentes a serem buscados CSV 0 Não

Especifique os status do incidente a serem buscados no Google SecOps.

O parâmetro aceita vários valores como uma string separada por vírgulas.

0 significa incidentes com status "aberto".

Gravidade mínima para buscar Número inteiro N/A Não Especifique a gravidade mínima do evento do incidente a ser buscada no Google SecOps em números, por exemplo, 5 ou 7.
Usar a lista de permissões como uma lista de proibições Caixa de seleção Desmarcado Sim Se ativada, a lista de permissões será usada como uma lista de bloqueios.
Acompanhar novos eventos adicionados a incidentes já ingeridos Caixa de seleção Selecionado Sim Se ativado, e se novos eventos forem adicionados a um incidente do FortiSIEM já ingerido, um novo alerta será criado no Google SecOps com esses novos eventos.
Acompanhar limite de novos eventos (horas) Número inteiro 24 Sim

Se a caixa de seleção "Acompanhar novos eventos adicionados a incidentes já ingeridos" estiver marcada, especifique o número máximo de horas que o conector deve acompanhar incidentes já ingeridos para novos eventos.

Quando o limite é atingido, novos eventos não são adicionados ao Google SecOps.

Endereço do servidor proxy String N/A Não Especifique o endereço do servidor proxy a ser usado.
Nome de usuário do proxy String N/A Não Especifique o nome de usuário do proxy para autenticação.
Senha do proxy Senha N/A Não Especifique a senha do proxy para autenticação.

Regras de conector

Suporte a proxy

O conector oferece suporte a proxy.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.