FortiAnalyzer
Versão da integração: 5.0
Antes de começar
Antes de configurar a integração do FortiAnalyzer no Google SecOps, crie um perfil de administrador dedicado com as seguintes permissões:
| Categoria | Nivel de permissão |
|---|---|
| Configurações do sistema | Nenhum |
| Domínio administrativo | Nenhum |
| Gerenciador de dispositivos | Somente leitura |
| Adicionar/excluir/editar dispositivos/grupos | Somente leitura |
| Visualização de registros/FortiView | Somente leitura |
| Incidentes e eventos | Leitura/gravação |
| Criar e atualizar incidentes | Leitura/gravação |
| Evento de triagem | Nenhum |
| Executar playbook | Nenhum |
| Relatórios | Nenhum |
| Gerar relatório | Nenhum |
| Visualização do Fabric | Nenhum |
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://{ip address} | Sim | Raiz da API da instância do FortiAnalyzer. |
| Nome de usuário | String | N/A | Sim | Nome de usuário da conta do FortiAnalyzer. Verifique se as credenciais fornecidas pertencem a uma conta de usuário atribuída ao perfil definido em Antes de começar. |
| Senha | Senha | N/A | Sim | Senha da conta do FortiAnalyzer. Verifique se as credenciais fornecidas pertencem a uma conta de usuário atribuída ao perfil definido em Antes de começar. |
| Verificar SSL | Caixa de seleção | Marcado | Sim | Se ativada, verifica se o certificado SSL da conexão com o FortiAnalyzer é válido. |
Para instruções sobre como configurar uma integração no Google SecOps, consulte Configurar integrações.
Você pode fazer mudanças mais tarde, se necessário. Depois de configurar uma instância de integração, você pode usá-la em playbooks. Para mais informações sobre como configurar e oferecer suporte a várias instâncias, consulte Suporte a várias instâncias.
Ações
Adicionar comentário ao alerta
Descrição
Adicione um comentário ao alerta no FortiAnalyzer.
Parâmetros
| Nome de exibição do parâmetro | Tipo | Valor padrão | É obrigatório | Descrição |
|---|---|---|---|---|
| Código de alerta | String | N/A | Sim | Especifique o ID do alerta que precisa ser atualizado. |
| Comentário | String | N/A | Sim | Especifique o comentário para o alerta. |
Data de execução
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
{
"jsonrpc": "2.0",
"id": "string",
"result": {
"status": "done"
}
}
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 as informações retornadas forem (is_success=true): "Um comentário foi adicionado ao alerta com ID {id} no FortiAnalyzer." A ação precisa falhar e interromper a execução de um playbook: Se um erro fatal for informado, como credenciais incorretas, sem conexão com o servidor ou outro: "Erro ao executar a ação "Adicionar comentário ao alerta". Motivo: {0}''.format(error.Stacktrace)" Se o alerta não for encontrado: "Erro ao executar a ação "Adicionar comentário ao alerta". Motivo: o alerta com o ID {alert id} não foi encontrado no FortiAnalyzer. Verifique a ortografia." |
Geral |
Enriquecer entidades
Descrição
Aprimore entidades usando informações do FortiAnalyzer. Entidades aceitas: nome de host e endereço IP.
Parâmetros
N/A
Data de execução
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
{
"adm_pass": [
"ENC",
"FLP+Dq8f3t2/S+GQ6DfPL2iRhtmk1CEZzEeH8+nVkRkFd72IUbBZM6uDyw0fQ1j1i28H1wtfqf6HlGEK2ubxs0rXE4L+Uqj433si+AmEF9gEB5gLw/4P5YYRkw/aOYF74k8/8bincoa31jBe0u0HWRNdWYQSyG7IWgvZGsPK4at0gwZI"
],
"adm_usr": "admin",
"app_ver": "",
"av_ver": "",
"beta": -1,
"branch_pt": 1255,
"build": 1255,
"checksum": "",
"conf_status": 0,
"conn_mode": 0,
"conn_status": 0,
"db_status": 0,
"desc": "",
"dev_status": 0,
"eip": "",
"fap_cnt": 0,
"faz.full_act": 0,
"faz.perm": 15,
"faz.quota": 0,
"faz.used": 0,
"fex_cnt": 0,
"first_tunnel_up": 0,
"flags": 2097152,
"foslic_cpu": 0,
"foslic_dr_site": 0,
"foslic_inst_time": 0,
"foslic_last_sync": 0,
"foslic_ram": 0,
"foslic_type": 0,
"foslic_utm": 0,
"fsw_cnt": 0,
"ha_group_id": 0,
"ha_group_name": "",
"ha_mode": 0,
"ha_slave": null,
"hdisk_size": 0,
"hostname": "",
"hw_rev_major": 0,
"hw_rev_minor": 0,
"hyperscale": 0,
"ip": "172.30.203.248",
"ips_ext": 0,
"ips_ver": "",
"last_checked": 1665664693,
"last_resync": 0,
"latitude": "0.0",
"lic_flags": 0,
"lic_region": "",
"location_from": "",
"logdisk_size": 0,
"longitude": "0.0",
"maxvdom": 10,
"mgmt.__data[0]": 0,
"mgmt.__data[1]": 0,
"mgmt.__data[2]": 0,
"mgmt.__data[3]": 0,
"mgmt.__data[4]": 0,
"mgmt.__data[5]": 0,
"mgmt.__data[6]": 0,
"mgmt.__data[7]": 0,
"mgmt_if": "",
"mgmt_mode": 2,
"mgmt_uuid": "1841991674",
"mgt_vdom": "",
"module_sn": "",
"mr": 2,
"name": "FGVMEV2YKQ61YQD5",
"node_flags": 0,
"nsxt_service_name": "",
"oid": 181,
"onboard_rule": null,
"opts": 0,
"os_type": 0,
"os_ver": 7,
"patch": 2,
"platform_str": "FortiGate-VM64",
"prefer_img_ver": "",
"prio": 0,
"private_key": "",
"private_key_status": 0,
"psk": "",
"role": 0,
"sn": "FGVMEV2YKQ61YQD5",
"source": 2,
"tab_status": "",
"tunnel_cookie": "",
"tunnel_ip": "",
"vdom": [
{
"comments": null,
"devid": "FGVMEV2YKQ61YQD5",
"ext_flags": 0,
"flags": 0,
"name": "root",
"node_flags": 0,
"oid": 3,
"opmode": 1,
"rtm_prof_id": 0,
"status": null,
"tab_status": null,
"vdom_type": 1,
"vpn_id": 0
}
],
"version": 700,
"vm_cpu": 0,
"vm_cpu_limit": 0,
"vm_lic_expire": 0,
"vm_mem": 0,
"vm_mem_limit": 0,
"vm_status": 0
}
Aprimoramento de entidade: prefixo FortiAn_
| Nome do campo de enriquecimento | Origem (chave JSON) | Lógica: quando aplicar |
|---|---|---|
| adm_usr | adm_usr | Quando disponível em JSON |
| build | build | Quando disponível em JSON |
| ip | ip | Quando disponível em JSON |
| last_checked | last_checked | Quando disponível em JSON |
| last_resync | last_resync | Quando disponível em JSON |
| nome | nome | Quando disponível em JSON |
| sn | sn | Quando disponível em JSON |
| os_type | os_type | Quando disponível em JSON |
| os_ver | os_ver | Quando disponível em JSON |
| patch | patch | Quando disponível em JSON |
| platform\_str | platform\_str | Quando disponível em JSON |
| version | version | Quando disponível em JSON |
| desc | desc | Quando disponível em JSON |
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): "Enriquecimento das seguintes entidades usando informações do FortiAnalyzer: {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 FortiAnalyzer: {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: {entity.identifier} Columns: Valor da chave |
Entidade |
Ping
Descrição
Teste a conectividade com o FortiAnalyzer 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
Data de execução
Essa 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
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 o servidor do BitSight usando os parâmetros fornecidos!" A ação precisa falhar e interromper a execução de um playbook: Se não for possível: "Não foi possível se conectar ao servidor do BitSight! Erro: {0}".format(exception.stacktrace) |
Geral |
Logs de pesquisa
Descrição
Pesquise registros no FortiAnalyzer.
Parâmetros
| Nome de exibição do parâmetro | Tipo | Valor padrão | É obrigatório | Descrição |
|---|---|---|---|---|
| Tipo de registro | DDL | Tráfego Valores possíveis:
|
Não | Especifique o tipo de registro que precisa ser pesquisado. |
| Filtro sensível a maiúsculas e minúsculas | Caixa de seleção | Desmarcado | Não | Se ativado, o filtro diferencia maiúsculas de minúsculas. |
| Filtro de consulta | String | N/A | Não | Especifique o filtro de consulta para a pesquisa. |
| ID do dispositivo | String | All\_Fortigate | Não | Especifique o ID do dispositivo que precisa ser pesquisado. Se nada for fornecido, a ação vai pesquisar em All_Fortigate. Exemplos de valores: All_FortiGate, All_FortiMail, All_FortiWeb, All_FortiManager, All_Syslog, All_FortiClient, All_FortiCache, All_FortiProxy, All_FortiAnalyzer, All_FortiSandbox, All_FortiAuthenticator, All_FortiDDoS |
| Período | DDL | Mês anterior Valores possíveis:
|
Não | Especifique um período para os resultados. Se "Personalizado" estiver selecionado, você também precisará fornecer 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 |
| Horário de término | String | N/A | Não | Especifique o horário de término dos resultados. Formato: ISO 8601. Se nada for fornecido e "Personalizado" for selecionado para o parâmetro "Período", esse parâmetro usará a hora atual. |
| Ordem cronológica | DDL | DESC Valores possíveis:
|
Não | Especifique a ordem cronológica na pesquisa. |
| Número máximo de registros a serem retornados | Número inteiro | 20 | Não | Especifique o número de registros que você quer retornar. Padrão: 20. Máximo: 1.000. |
Data de execução
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
{
"sessionid": "29658",
"srcip": "172.30.201.188",
"dstip": "173.243.138.210",
"srcport": "17453",
"dstport": "443",
"trandisp": "noop",
"duration": "1",
"proto": "6",
"sentbyte": "216",
"rcvdbyte": "112",
"sentpkt": "4",
"rcvdpkt": "2",
"logid": "0001000014",
"service": "HTTPS",
"app": "HTTPS",
"appcat": "unscanned",
"srcintfrole": "undefined",
"dstintfrole": "undefined",
"eventtime": "1665752066921638736",
"srccountry": "Reserved",
"dstcountry": "Canada",
"srcintf": "root",
"dstintf": "port1",
"dstowner": "540",
"tz": "-0700",
"devid": "FGVMEV2YKQ61YQD5",
"vd": "root",
"csf": "FortiNetFabric",
"dtime": "2022-10-14 05:54:27",
"itime_t": "1665752069",
"devname": "FGVMEV2YKQ61YQD5"
}{
"date": "2022-10-14",
"time": "05:54:27",
"id": "7154350659607724033",
"itime": "2022-10-14 05:54:29",
"euid": "102",
"epid": "102",
"dsteuid": "102",
"dstepid": "102",
"logver": "702021255",
"type": "traffic",
"subtype": "local",
"level": "notice",
"action": "close",
"policyid": "0"
}
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 as informações retornadas forem (is_success=true): "Os registros dos critérios fornecidos foram recuperados com sucesso no FortiAnalyzer". Se nenhuma informação for retornada (is_success=true): "Nenhum registro foi encontrado para os critérios fornecidos no FortiAnalyzer". A ação precisa falhar e interromper a execução de um playbook: Se um erro fatal for informado, como credenciais incorretas, sem conexão com o servidor ou outro: "Erro ao executar a ação "Pesquisar registros". Motivo: {0}''.format(error.Stacktrace)" Se um erro for informado na resposta: "Erro ao executar a ação "Pesquisar registros". Motivo: {0}''.format(error/message)" |
Geral |
Atualizar alerta
Descrição
Atualize um alerta no FortiAnalyzer.
Parâmetros
| Nome de exibição do parâmetro | Tipo | Valor padrão | É obrigatório | Descrição |
|---|---|---|---|---|
| Código de alerta | String | N/A | Sim | Especifique o ID do alerta que precisa ser atualizado. |
| Status de confirmação | DDL | Selecione uma opção Valores possíveis:
|
Não | Especifica o status de confirmação do alerta. |
| Marcar como lida | Caixa de seleção | Desmarcado | Não | Se ativada, a ação marca o alerta como lido. |
| Atribuir a | String | N/A | Não | Especifique a quem o alerta precisa ser atribuído. |
Data de execução
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
{
"alerttime": "1665653864",
"logcount": "17",
"alertid": "202210131000040003",
"adom": "root",
"epid": "1",
"epname": "not implemented dev type",
"subject": "desc:Trim local db",
"euid": "1",
"euname": "N/A",
"devname": "fortianalyzer",
"logtype": "event",
"devtype": "FortiAnalyzer",
"devid": "FAZ-VMTM22013516",
"vdom": "_self_locallog_",
"groupby1": "desc:Trim local db",
"triggername": "Local Device Event",
"tag": "Default,System,Local",
"eventtype": "event",
"severity": "medium",
"extrainfo": "{ \"msg\": \"Requested to trim database tables older than 60 days to enforce the retention policy of Adom FortiAuthenticator.\" }",
"ackflag": "no",
"readflag": "yes",
"filterkey": "3377053565526629289",
"firstlogtime": "1665653864",
"multiflag": "",
"lastlogtime": "1665653887",
"updatetime": "1665747977",
"filtercksum": "2072153473",
"filterid": "1",
"assignto": "api_user",
"ackby": "admin",
"acktime": "1665747892"
}
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 as informações retornadas forem (is_success=true): "O alerta com ID {alert id} foi atualizado no FortiAnalyzer." 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 "Atualizar alerta". Motivo: {0}''.format(error.Stacktrace) Se o alerta não for encontrado: "Erro ao executar a ação "Atualizar alerta". Motivo: o alerta com o ID {alert id} não foi encontrado no FortiAnalyzer. Verifique a ortografia." Se o parâmetro "Status de confirmação" estiver definido como "Selecionar um", o parâmetro "Marcar como lida" estiver definido como "Falso" e nada for fornecido no parâmetro "Atribuir a": "Erro ao executar a ação "Atualizar alerta". Motivo: pelo menos um dos parâmetros "Status de confirmação", "Marcar como lida" ou "Atribuir a" precisa ter um valor ." |
Geral |
Conectores
FortiAnalyzer: conector de alertas
Descrição
Extrai informações sobre alertas do FortiAnalyzer.
Configurar o conector de alertas do FortiAnalyzer no Google SecOps
Para instruções detalhadas sobre como configurar um conector no Google SecOps, consulte Configurar o conector.
Parâmetros do conector
Use os seguintes parâmetros para configurar o conector:
| Nome de exibição do parâmetro | Tipo | Valor padrão | É obrigatório | Descrição |
|---|---|---|---|---|
| Nome do campo do produto | String | siemplify_type | Sim | Insira o nome do campo de origem para recuperar o nome do campo do produto. |
| Nome do campo de evento | String | event_type | 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. |
| Tempo limite do script (segundos) | Número inteiro | 180 | Sim | Limite de tempo limite para o processo Python que executa o script atual. |
| Raiz da API | String | https://{ip address} | Sim | Raiz da API da instância do FortiAnalyzer. |
| Nome de usuário | String | N/A | Sim | Nome de usuário da conta do FortiAnalyzer. |
| Senha | Senha | N/A | Sim | Senha da conta do FortiAnalyzer. |
| Menor gravidade a ser buscada | String | Médio | Não | A gravidade mínima que precisa ser usada para buscar alertas. Valores possíveis: baixo, médio, alto, crítico. Se nada for especificado, o conector vai ingerir alertas de todas as gravidades. |
| Máximo de horas para trás | Número inteiro | 1 | Não | Número de horas de onde buscar alertas. |
| Máximo de alertas a serem buscados | Número inteiro | 20 | Não | Número de alertas por tipo a serem processados por uma iteração do conector. |
| Usar lista dinâmica como lista de proibições | Caixa de seleção | Desmarcado | Sim | Se ativada, a lista dinâmica será usada como uma lista de bloqueio. |
| Verificar SSL | Caixa de seleção | Marcado | Sim | Se ativado, o conector verifica se o certificado SSL da conexão com o servidor FortiAnalyzer é válido. |
| Endereço do servidor proxy | String | N/A | Não | O endereço do servidor proxy a ser usado. |
| Nome de usuário proxy | String | N/A | Não | O nome de usuário do proxy para autenticação. |
| Senha proxy | Senha | N/A | Não | A senha do proxy para autenticação. |
Regras do conector
Suporte a proxy
O conector é compatível com proxy.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.