Tenable Security Center

Versão da integração: 15.0

Integrar o Tenable Security Center ao Google Security Operations

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

Entradas de integração

Para configurar a integração, use os seguintes parâmetros:

Parâmetros
Server Address Obrigatório

O endereço do servidor do Tenable Security Center a ser usado na integração.

Username Obrigatório

Nome de usuário para fazer login no servidor do Tenable Security Center.

Password Obrigatório

Senha para fazer login no servidor do Tenable Security Center.

Verify SSL Opcional

Se selecionada, verifica se o certificado SSL para a conexão com o servidor da Tenable é válido.

Essa configuração é selecionada por padrão.

Ações

Adicionar IP ao recurso de lista de IPs

Adicione um IP a um recurso de lista de IPs no Tenable Security Center.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Nome do recurso String N/A Sim Especifique o nome do recurso de lista de IPs a que você quer adicionar novos IPs.

Data de execução

Essa ação é executada na entidade "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 JSON
{
    "type": "regular",
    "response": {
        "id": "41",
        "name": "api_test_5",
        "type": "static",
        "description": "",
        "tags": "qweqwe",
        "context": "",
        "status": "0",
        "createdTime": "1606129689",
        "modifiedTime": "1606129689",
        "ioSyncStatus": "Not Synced",
        "ioFirstSyncTime": "-1",
        "ioLastSyncSuccess": "-1",
        "ioLastSyncFailure": "-1",
        "ioSyncErrorDetails": null,
        "typeFields": {
            "definedIPs": "203.0.113.1,203.0.113.10"
        },
        "repositories": [
            {
                "ipCount": "-1",
                "repository": {
                    "id": "1",
                    "name": "Example-Repository",
                    "description": ""
                }
            }
        ],
        "ipCount": -1,
        "groups": [],
        "assetDataFields": [],
        "canUse": "true",
        "canManage": "true",
        "creator": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "owner": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "ownerGroup": {
            "id": "0",
            "name": "Full Access",
            "description": "Full Access group"
        },
        "targetGroup": {
            "id": -1,
            "name": "",
            "description": ""
        },
        "template": {
            "id": -1,
            "name": "",
            "description": ""
        }
    },
    "error_code": 0,
    "error_msg": "",
    "warnings": [],
    "timestamp": 1606129688
}
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 o código estático 200(is_success = true): print "Successfully added the following IPs to the IP List Asset {0} in Tenable Security Center:\n{1}".format(name, entity.identifier)

Se não houver entidades de IP: nenhum endereço IP foi adicionado ao recurso de lista de IPs {0}.format(name)

A ação vai falhar e interromper a execução de um playbook
se houver um erro fatal, como credenciais incorretas, sem conexão com o servidor, outros: imprima "Erro ao executar a ação "Adicionar IP ao recurso de lista de IPs". Motivo: {0}''.format(error.Stacktrace)


Se o recurso não for encontrado:imprima "Erro ao executar a ação "Adicionar IP ao recurso de lista de IPs". Motivo: o recurso {0} não foi encontrado no Tenable Security Center. ''.format(error.Stacktrace)

Se não for o código estático 200 (is_success = false): imprima "Erro ao executar a ação "Adicionar IP ao ativo da lista de IPs". Motivo: {0}''.format(error_msg)

Geral

Criar recurso de lista de IPs

Crie um recurso de lista de IPs no Tenable Security Center. Exige pelo menos uma entidade de IP para uma execução bem-sucedida.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Nome String N/A Sim Especifique o nome do recurso de lista de IPs.
Descrição String N/A Não Especifique a descrição do recurso de lista de IPs.
Tag String N/A Não Especifique a tag do recurso de lista de IPs.

Data de execução

Essa ação é executada na entidade "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 JSON
{
    "type": "regular",
    "response": {
        "id": "41",
        "name": "api_test_5",
        "type": "static",
        "description": "",
        "tags": "qweqwe",
        "context": "",
        "status": "0",
        "createdTime": "1606129689",
        "modifiedTime": "1606129689",
        "ioSyncStatus": "Not Synced",
        "ioFirstSyncTime": "-1",
        "ioLastSyncSuccess": "-1",
        "ioLastSyncFailure": "-1",
        "ioSyncErrorDetails": null,
        "typeFields": {
            "definedIPs": "203.0.113.1,203.0.113.10"
        },
        "repositories": [
            {
                "ipCount": "-1",
                "repository": {
                    "id": "1",
                    "name": "Example-Repository",
                    "description": ""
                }
            }
        ],
        "ipCount": -1,
        "groups": [],
        "assetDataFields": [],
        "canUse": "true",
        "canManage": "true",
        "creator": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "owner": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "ownerGroup": {
            "id": "0",
            "name": "Full Access",
            "description": "Full Access group"
        },
        "targetGroup": {
            "id": -1,
            "name": "",
            "description": ""
        },
        "template": {
            "id": -1,
            "name": "",
            "description": ""
        }
    },
    "error_code": 0,
    "error_msg": "",
    "warnings": [],
    "timestamp": 1606129688
}
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:
If static code 200(is_success = true): print "Successfully created new IP List Asset {0} with the following IPs in Tenable Security Center:\n{1}".format(name, entity.identifier)

Se não houver entidades de IP:imprima "Pelo menos uma entidade de IP precisa estar disponível para criar um recurso de lista de IPs".


A ação vai falhar e interromper a execução de um playbook:
se houver um erro fatal, como credenciais incorretas, sem conexão com o servidor, outro: imprima "Erro ao executar a ação "Criar recurso de lista de IPs". Motivo: {0}''.format(error.Stacktrace)

Se não for o código estático 200 (is_success = false): imprima "Erro ao executar a ação "Criar recurso de lista de IPs". Motivo: {0}''.format(error_msg)

Geral

Enriquecer IP

Receba e enriqueça informações sobre endereços IP.

Parâmetros

Parâmetro Tipo Valor padrão Descrição
Nome do repositório String N/A O nome do repositório.

Data de execução

Essa ação é executada na entidade "Endereço IP".

Resultados da ação

Enriquecimento de entidade
Nome do campo de enriquecimento Lógica: quando aplicar
macAddress Retorna se ele existe no resultado JSON
severityLow Retorna se ele existe no resultado JSON
links Retorna se ele existe no resultado JSON
ip Retorna se ele existe no resultado JSON
última verificação Retorna se ele existe no resultado JSON
severityCritical Retorna se ele existe no resultado JSON
total Retorna se ele existe no resultado JSON
severityAll Retorna se ele existe no resultado JSON
mcafeeGUID Retorna se ele existe no resultado JSON
policyName Retorna se ele existe no resultado JSON
uuid Retorna se ele existe no resultado JSON
lastAuthRun Retorna se ele existe no resultado JSON
severityInfo Retorna se ele existe no resultado JSON
osCPE Retorna se ele existe no resultado JSON
exclusividade Retorna se ele existe no resultado JSON
dnsName Retorna se ele existe no resultado JSON
repositório Retorna se ele existe no resultado JSON
ip Retorna se ele existe no resultado JSON
descrição Retorna se ele existe no resultado JSON
nome Retorna se ele existe no resultado JSON
lastUnauthRun Retorna se ele existe no resultado JSON
biosGUID Retorna se ele existe no resultado JSON
tpmID Retorna se ele existe no resultado JSON
score Retorna se ele existe no resultado JSON
hasPassive Retorna se ele existe no resultado JSON
pluginSet Retorna se ele existe no resultado JSON
hasCompliance Retorna se ele existe no resultado JSON
severityHigh Retorna se ele existe no resultado JSON
netbiosName Retorna se ele existe no resultado JSON
severityMedium Retorna se ele existe no resultado JSON
os Retorna se ele existe no resultado JSON
Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/Falso is_success:False
Resultado JSON
[
{
"EntityResult":
{
"macAddress": "",
"severityLow": "0",
"links": [],
"ip": "203.0.113.1",
"lastScan": "1549425224",
"severityCritical": "0",
"total": "2",
"severityAll": "0,0,0,0,2",
"mcafeeGUID": "",
"policyName": "1e2e4247-0de7-56d5-8026-34ab1f3150ef-1130313/Basic Discovery Scan",
"uuid": "",
"lastAuthRun": "",
"severityInfo": "2",
"osCPE": "",
"uniqueness": "repositoryID,ip,dnsName",
 "dnsName": "example.com",
"repository":
          {
"id": "1",
"description": "",
"name": "repository"
          },
"lastUnauthRun": "1549363419",
"biosGUID": "",
"tpmID": "",
"score": "0",
"hasPassive": "No",
"pluginSet": "201902020242",
"hasCompliance": "No",
"severityHigh": "0",
"netbiosName": "",
"severityMedium": "0",
"os": ""
},
"Entity": "203.0.113.1"
}
]

Recebe recursos relacionados a um endereço IP.

Parâmetros

Parâmetro Tipo Valor padrão Descrição
Nome do repositório String N/A O nome do repositório.

Data de execução

Essa ação é executada na entidade "Endereço IP".

Resultados da ação

Enriquecimento de entidade
Nome do campo de enriquecimento Lógica: quando aplicar
ID Retorna se ele existe no resultado JSON
nome Retorna se ele existe no resultado JSON
Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/Falso is_success:False
Resultado JSON
[
{
"EntityResult":
[
{
"id": "0",
"description": "All defining ranges of the Group in whose context this Asset is being evaluated.",
"name": "All Defined Ranges"
}, {
"id": "2",
"description": "This asset uses the Scan Summary plugin to detect if a host has been scanned by Nessus. The Scan Summary plugin contains the list of tests conducted during the most recent scan.",
"name": "Systems that have been Scanned"
}, {
"id": "13",
"description": "Leverage Nessus plugin 10180 (Ping the remote host) and Nessus plugin 12503 (Host Fully Qualified Domain Name (FQDN) Resolution) to find hosts that don't have a resolvable FQDN in DNS.",
"name": "Scanned Hosts Not in DNS"
}
],
"Entity": "203.0.113.1"
}
]

Acessar relatório

Receba o conteúdo do relatório por ID ou nome.

Parâmetros

Parâmetro Tipo Valor padrão Descrição
ID do relatório String N/A Número do ID do relatório.Pode ser encontrado no URL do relatório.

Executar em

Essa ação é executada em todas as 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 JSON
{
"pubSites":
[
"https://example.com",
"https://example.net"
]
}

Receber resultados da verificação

Aguarde a conclusão da verificação e receba os resultados.

Parâmetros

Parâmetro Tipo Valor padrão Descrição
ID do resultado da verificação

String

N/A O ID dos resultados da verificação.

Data de execução

Essa ação é executada em todas as 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 JSON

{
"severity_summary":
[
{
"count": "0",
"severity":
{
"id": "4",
"name": "Critical",
"description": "Critical Severity"
}
}, {
"count": "0",
"severity":
{
"id": "3",
"name": "High",
"description": "High Severity"
}
}, {
"count": "3",
"severity":
{"id": "2",
"name": "Medium",
"description": "Medium Severity"
}}
],
"results":
[
{
"name": "DNS Server Recursive Query Cache Poisoning Weakness",
"family": "DNS",
"hostTotal": "1",
"pluginID": "10539",
"total": "1",
"severity": "Medium"
}, {
"name": "DNS Server Spoofed Request Amplification DDoS",
"family": "DNS",
"hostTotal": "1",
"pluginID": "35450",
"total": "1",
"severity": "Medium"
}, {
"name": "SSL Medium Strength Cipher Suites Supported",
"family": "General",
"hostTotal": "1",
"pluginID": "42873",
"total": "1",
"severity": "Medium"
}
]
}

Receber vulnerabilidades para IP

Receba um resumo das vulnerabilidades e da gravidade de um endereço IP.

Parâmetros

N/A

Data de execução

Essa ação é executada na entidade "Endereço IP".

Resultados da ação

Enriquecimento de entidade
Nome do campo de enriquecimento Lógica: quando aplicar
macAddress Retorna se ele existe no resultado JSON
protocolo Retorna se ele existe no resultado JSON
uuid Retorna se ele existe no resultado JSON
família Retorna se ele existe no resultado JSON
pluginInfo Retorna se ele existe no resultado JSON
ip Retorna se ele existe no resultado JSON
pluginID Retorna se ele existe no resultado JSON
gravidade, Retorna se ele existe no resultado JSON
repositório Retorna se ele existe no resultado JSON
exclusividade Retorna se ele existe no resultado JSON
dnsName Retorna se ele existe no resultado JSON
porta Retorna se ele existe no resultado JSON
netbiosName Retorna se ele existe no resultado JSON
nome

Retorna se ele existe no resultado JSON

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/Falso is_success:False
Resultado JSON
[
{
"EntityResult":
[
{
"macAddress": "",
"protocol": "TCP",
"uuid": "",
"family": "Web Servers",
"pluginInfo": "10107 (443/6) HTTP Server Type and Version",
"ip": "203.0.113.1",
"pluginID": "10107",
"severity": "Info",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"port": "443",
"netbiosName": "",
"name": "HTTP Server Type and Version"
}, {
"macAddress": "",
"protocol": "UDP",
"uuid": "",
"family": "DNS",
"pluginInfo": "10539 (53/17) DNS Server Recursive Query Cache Poisoning Weakness",
"ip": "203.0.113.1",
"pluginID": "10539",
"severity": "Medium",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "exaample.com",
"port": "53",
"netbiosName": "",
"name": "DNS Server Recursive Query Cache Poisoning Weakness"
}, {
"macAddress": "",
"protocol": "TCP",
"uuid": "",
"family": "General",
"pluginInfo": "10863 (443/6) SSL Certificate Information",
"ip": "203.0.113.1",
"pluginID": "10863",
"severity": "Info",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"port": "443",
"netbiosName": "",
"name": "SSL Certificate Information"
}
],
"Entity": "203.0.113.1"
}
]

Ping

Teste a conectividade.

Data de execução

Essa ação é executada em todas as entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
null N/A N/A

Verificar IPs

Inicie uma verificação de endereços IP.

Parâmetros

Parâmetro Tipo Valor padrão Descrição
Nome da verificação String N/A O nome da verificação a ser criada.
Nome da política String N/A O nome da política.

Data de execução

Essa ação é executada na entidade "Endereço IP".

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
scan_result_id N/A N/A

Executar a verificação de recursos

Execute a verificação de recursos no Tenable Security Center.

Onde encontrar o ID da política e do repositório

Para o ID da política:

  1. Acesse https://INSTANCE_IP_ADDRESS/#policies.
  2. Selecione a política que você quer usar na ação.
  3. No URL, você vai encontrar um ID dessa política.

Para o ID do repositório:

  1. Acesse https://INSTANCE_IP_ADDRESS/#repositories.
  2. Selecione o repositório que você quer usar na ação.
  3. No URL, você vai encontrar um ID desse repositório.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Nome da verificação N/A Sim Especifique o nome da verificação.
Nome do recurso String N/A Sim Especifique o nome do recurso que deve ser verificado.
ID da política Número inteiro N/A Sim Especifique o ID da política que deve ser usada na verificação.
ID do repositório Número inteiro N/A Sim Especifique o ID do repositório que será usado na verificação.
Descrição String N/A Não Especifique a descrição da verificação.

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 JSON
{
    "type": "regular",
    "response": {
        "id": "11",
        "name": "Scan Name",
        "description": "",
        "ipList": "",
        "type": "policy",
        "dhcpTracking": "false",
        "classifyMitigatedAge": "0",
        "emailOnLaunch": "false",
        "emailOnFinish": "false",
        "timeoutAction": "import",
        "scanningVirtualHosts": "false",
        "rolloverType": "template",
        "status": "0",
        "createdTime": "1606132784",
        "modifiedTime": "1606132784",
        "maxScanTime": "3600",
        "reports": [],
        "assets": [
            {
                "id": "38",
                "name": "api_test_1",
                "description": ""
            }
        ],
        "credentials": [],
        "numDependents": "0",
        "schedule": {
            "id": -1,
            "objectType": -1,
            "type": "now",
            "start": "",
            "repeatRule": "",
            "enabled": "true",
            "nextRun": -1,
            "dependent": {
                "id": -1,
                "name": "",
                "description": ""
            }
        },
        "policy": {
            "id": "1000002",
            "context": "",
            "name": "Host Discovery",
            "description": "",
            "tags": "",
            "owner": {
                "id": "1",
                "username": "security_manager",
                "firstname": "Manager",
                "lastname": "Security"
            },
            "ownerGroup": {
                "id": "0",
                "name": "Full Access",
                "description": "Full Access group"
            }
        },
        "policyPrefs": [
            {
                "name": "MODE|discovery",
                "value": "host_enumeration"
            },
            {
                "name": "description",
                "value": ""
            },
            {
                "name": "display_unreachable_hosts",
                "value": "no"
            },
            {
                "name": "log_live_hosts",
                "value": "yes"
            },
            {
                "name": "name",
                "value": "Host Discovery"
            },
            {
                "name": "reverse_lookup",
                "value": "no"
            }
        ],
        "repository": {
            "id": "1",
            "name": "Example-Repository",
            "description": ""
        },
        "canUse": "true",
        "canManage": "true",
        "plugin": {
            "id": -1,
            "name": "",
            "description": ""
        },
        "zone": {
            "id": -1,
            "name": "",
            "description": ""
        },
        "ownerGroup": {
            "id": "0",
            "name": "Full Access",
            "description": "Full Access group"
        },
        "creator": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "owner": {
            "id": "1",
            "username": "security_manager",
            "firstname": "Manager",
            "lastname": "Security"
        },
        "scanResultID": "34"
    },
    "error_code": 0,
    "error_msg": "",
    "warnings": [],
    "timestamp": 1606132783
}
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 o código estático 200(is_success = true): print "Successfully started asset scan {0} in Tenable Security Center.".format(name)

A ação precisa falhar e interromper a execução de um playbook:
se houver um erro fatal, como credenciais incorretas, nenhuma conexão com o servidor, outros: print "Error executing action "Run Asset Scan". Motivo: {0}''.format(error.Stacktrace)

Se o recurso não for encontrado:imprima "Erro ao executar a ação "Executar verificação de recursos". Motivo: o recurso {0} não foi encontrado no Tenable Security Center. ''.format(name)

Se não for o código estático 200 (is_success = false): imprima "Erro ao executar a ação "Executar verificação de recursos". Motivo:{0}".format(error_msg)

Geral

Conectores

Conector do Tenable Security Center

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:

Parâmetro Tipo Valor padrão Descrição
DeviceProductField String device_product O nome do campo usado para determinar o produto do dispositivo.
EventClassId String nome O nome do campo usado para determinar o nome do evento (subtipo).
PythonProcessTimeout String 60 O limite de tempo limite (em segundos) para o processo Python que executa o script atual.
Endereço do servidor String null N/A
Nome de usuário String null N/A
Senha Senha null N/A
Usar SSL Caixa de seleção Desmarcado N/A
Número máximo de dias para retroceder Número inteiro 1 O número de dias anteriores a partir de que você quer buscar dados.
Limite por ciclo Número inteiro 10 A quantidade de alertas ingeridos no conector em cada ciclo de execução.
Endereço do servidor proxy String null O endereço do servidor proxy a ser usado.
Nome de usuário do proxy String null O nome de usuário do proxy para autenticação.
Senha do proxy Senha null A senha do proxy para autenticação.

Regras do conector

O conector é compatível com proxies.

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