Integrar o VirusTotal ao Google SecOps

Este documento explica como integrar o VirusTotal ao Google Security Operations (Google SecOps).

Versão da integração: 39.0

Essa integração usa a API VirusTotal v2.

Essa integração usa um ou mais componentes de código aberto. Faça o download de uma cópia compactada do código-fonte completo dessa integração no bucket do Cloud Storage.

Antes de começar

Para usar a integração do VirusTotal, configure uma chave de API.

Para configurar a chave de API, siga estas etapas:

  1. Faça login no portal do VirusTotal.
  2. Abaixo do seu nome de usuário, clique em Chave de API.
  3. Copie a chave de API gerada para usar nos parâmetros de integração.
  4. Clique em Salvar.

Parâmetros de integração

A integração com o VirusTotal exige os seguintes parâmetros:

Parâmetro Descrição
Api Key

Obrigatório.

A chave de API para acessar o VirusTotal.

Verify SSL

Opcional.

Se selecionada, a integração valida o certificado SSL ao se conectar ao VirusTotal.

Não selecionada por padrão.

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

É possível 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

Para mais informações sobre ações, consulte Responder a ações pendentes na Sua mesa de trabalho e Realizar uma ação manual.

Receber relatório de domínio

Use a ação Get Domain Report para recuperar relatórios de domínio do VirusTotal para as entidades fornecidas e enriquecer essas entidades na plataforma do Google SecOps.

Essa ação é executada nas seguintes entidades do Google SecOps:

  • User
  • Hostname

Entradas de ação

Nenhuma.

Saídas de ação

A ação Receber relatório de domínio fornece as seguintes saídas:

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Painel de Casos Indisponível
Tabela do painel de casos Indisponível
Tabela de enriquecimento de entidades Disponível
Resultado JSON Disponível
Resultado do script Disponível
Tabela de enriquecimento de entidades

A ação Receber relatório de domínio pode enriquecer os seguintes campos:

Nome do campo de enriquecimento Lógica aplicável
Forcepoint ThreatSeeker category Retorna se ele existir no resultado JSON.
BitDefender domain info Retorna se ele existir no resultado JSON.
Categories Retorna se ele existir no resultado JSON.
BitDefender Category Retorna se ele existir no resultado JSON.
Alexa Category Retorna se ele existir no resultado JSON.
Alexa domain info Retorna se ele existir no resultado JSON.
Websense ThreatSeeker category Retorna se ele existir no resultado JSON.
TrendMicro category Retorna se ele existir no resultado JSON.
Opera domain info Retorna se ele existir no resultado JSON.
Webutation domain info Retorna se ele existir no resultado JSON.
verbose_msg Retorna se ele existir no resultado JSON.
whois Retorna se ele existir no resultado JSON.
Resultado JSON

O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação Get Domain Report:

[
    {
        "EntityResult": {
            "detected_downloaded_samples": [],
            "undetected_downloaded_samples": [{
                "date": "2018-08-08 22:48:28",
                "positives": 0,
                "sha256": "ef1955ae757c8b966c83248350331bd3a30f658ced11f387f8ebf05ab3368629",
                "total": 59
            }],
            "resolutions": [{
                "last_resolved": "2019-01-13 03:31:09",
                "ip_address": "192.0.2.1"
            }],
            "Opera domain info": "The URL domain/host was seen to host badware at some point in time",
            "domain_siblings": [],
            "BitDefender domain info": "This URL domain/host was seen to host badware at some point in time",
            "whois": "Domain Name: EXAMPLE.CO.IN, nUpdated Date: 2018-05-22T09:30:37Z, nCreation Date: 2003-06-23T14:02:33Z, nRegistry Expiry Date: 2019-06-23T14:02:33Z, nDomain Status: clientDeleteProhibited, nDomain Status: clientTransferProhibited, nDomain Status: clientUpdateProhibited, nRegistrant Country: US, nName Server: NS1.EXAMPLE.COM, nName Server: NS2.EXAMPLE.COM, nName Server: NS3.EXAMPLE.COM, nName Server: NS4.EXAMPLE.COM, nDNSSEC: unsigned",
            "Alexa domain info": "example.co.in is one of the top 100 sites in the world and is in the Search_Engines category",
            "verbose_msg": "Domain found in dataset",
            "BitDefender category": "searchengines",
            "undetected_referrer_samples": [{
                "date": "2019-02-05 13:20:39",
                "positives": 0,
                "sha256": "3baf9f2a2d2b152193d2af602378b71e40d381e835b0aa3111851b2f29e64f38",
                "total": 71
            }],
            "whois_timestamp": 1548379042,
            "WOT domain info": {
                "Vendor reliability": "Excellent",
                "Child safety": "Excellent",
                "Trustworthiness": "Excellent",
                "Privacy": "Excellent"
            },
            "detected_referrer_samples": [{
                "date": "2019-02-05 01:11:35",
                "positives": 1,
                "sha256": "097ea19b440441248b157698e2b23555cdf6117491b5f49f7ec8e492550cb02c",
                "total": 70
            }],
            "Forcepoint ThreatSeeker category": "search engines and portals",
            "Alexa category": "search_engines",
            "detected_communicating_samples": [{
                "date": "2019-01-28 23:58:13",
                "positives": 30,
                "sha256": "e65faa1283f8941d98dc23ff6822be228a24cb4489a5e5b01aeee749bf851658",
                "total": 70
            }],
            "TrendMicro category": "search engines portals",
            "categories": [
                "searchengines", "search engines and portals"
            ],
            "undetected_urls": [[
                "http://example.co.in/example", "daed97b2c77f0f72c9e4ee45506e3e1bc4e34d7b8846246877a02779bb85dd5b", 0, 70, "2019-02-04 14:58:23"
            ]],
            "response_code": 1,
            "Webutation domain info": {
                "Safety score": 100,
                "Adult content": "no",
                "Verdict": "safe"
            },
            "subdomains": [
                "www.example.co.in"
            ],
            "Websense ThreatSeeker category": "search engines and portals",
            "detected_urls": [{
                "url": "http://example.co.in/urlURL",
                "positives": 2,
                "total": 66,
                "scan_date": "2018-01-13 00:38:35"
            }],
            "Alexa rank": 100,
            "undetected_communicating_samples": [{
                "date": "2018-11-17 03:19:28",
                "positives": 0,
                "sha256": "e2a6ab7d594490c62bd3bb508dc38d7191ad48977da4d8dcce08dcb8af0070e9",
                "total": 68
            }],
            "pcaps": [
           "97e4a17068ce3ed01ed1c25c3d263fc0145e5ecc53b7db6f2ba84496b53d4a65"
            ]},
        "Entity": "example.co.in"
    }
]
Resultado do script

A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Receber relatório de domínio:

Nome do resultado do script Valor
is_success True ou False

Hash da verificação

Use a ação Verificar hash para verificar hashes de arquivos com o VirusTotal, marcar entidades como suspeitas e mostrar insights se a pontuação de risco corresponder a um determinado limite.

Essa ação é executada na entidade Filehash do Google SecOps.

Entradas de ação

A ação Hash da verificação exige os seguintes parâmetros:

Parâmetro Descrição
Threshold

Obrigatório.

O limite para marcar detecções como suspeitas.

Se as detecções do mecanismo malicioso atingirem ou excederem o limite definido, a ação vai marcar a entidade como suspeita.

Rescan after days

Opcional.

O número de dias após a data da última verificação para verificar novamente a entidade.

Saídas de ação

A ação Hash de verificação fornece as seguintes saídas:

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Painel de Casos Indisponível
Tabela do painel de casos Indisponível
Tabela de enriquecimento de entidades Disponível
Insight Disponível
Resultado JSON Disponível
Resultado do script Disponível
Tabela de enriquecimento de entidades

A ação Hash da verificação pode enriquecer os seguintes campos:

Nome do campo de enriquecimento Lógica aplicável
permalink Retorna se ele existir no resultado JSON.
sha1 Retorna se ele existir no resultado JSON.
resource Retorna se ele existir no resultado JSON.
Scan date Retorna se ele existir no resultado JSON.
Scan ID Retorna se ele existir no resultado JSON.
verbose_msg Retorna se ele existir no resultado JSON.
total Retorna se ele existir no resultado JSON.
positives Retorna se ele existir no resultado JSON.
sha256 Retorna se ele existir no resultado JSON.
md5 Retorna se ele existir no resultado JSON.
Detecting Engines Retorna se ele existir no resultado JSON.
Insight

A ação Verificar hash pode retornar o seguinte insight:

Gravidade Descrição
Warn

A ação cria um insight de aviso para informar sobre o status malicioso do hash enriquecido.

A ação só cria o insight quando o número de mecanismos detectados é igual ou excede o limite mínimo de suspeita definido antes da verificação.

Resultado JSON

O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação Verificar hash:

[
    {
        "EntityResult": {
            "permalink": "https://www.virustotal.com/file/HASH/analysis/ANALYSIS_ID/",
            "sha1": "3395856ce81f2b7382dee72602f798b642f14140",
            "resource": "HASH",
            "response_code": 1,
            "scan_date": "2019-02-05 15:41:52",
            "scan_id": "HASH-ANALYSIS_ID",
            "verbose_msg": "Scan finished, information embedded",
            "total": 60,
            "positives": 54,
            "sha256": "HASH",
            "md5": "44d88612fea8a8f36de82e1278abb02f",
            "scans": {
                "Bkav": {
                    "detected": true,
                    "version": "192.0.2.1",
                    "result": "Trojan",
                    "update": "20190201"
                },
                "MicroWorld-eScan": {
                    "detected": true,
                    "version": "14.0.297.0",
                    "result": "Test-File",
                    "update": "20190205"
                }}},
        "Entity": "HASH"
    }
]
Resultado do script

A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Verificar hash:

Nome do resultado do script Valor
is_risky True ou False

Verificar IP

Use a ação Verificar IP para coletar as informações que o VirusTotal viu recentemente em um IP específico.

Essa ação é executada na entidade IP Address do Google SecOps.

Entradas de ação

A ação Verificar IP exige os seguintes parâmetros:

Parâmetro Descrição
Threshold

Opcional.

O limite para marcar um endereço IP como suspeito.

Se as detecções do mecanismo malicioso atingirem ou excederem o limite definido, a ação vai marcar o endereço IP como suspeito.

O valor padrão é 25.

Saídas de ação

A ação Verificar IP fornece as seguintes saídas:

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Painel de Casos Indisponível
Tabela do painel de casos Indisponível
Tabela de enriquecimento de entidades Disponível
Insights Disponível
Resultado JSON Disponível
Resultado do script Disponível
Tabela de enriquecimento de entidades

A ação Verificar IP pode enriquecer os seguintes campos:

Nome do campo de enriquecimento Lógica aplicável
Country Retorna se ele existir no resultado JSON.
Related Domains Retorna se ele existir no resultado JSON.
Last Scan Date Retorna se ele existir no resultado JSON.
verbose_msg Retorna se ele existir no resultado JSON.
Resolutions Retorna se ele existir no resultado JSON.
Insights

A ação Verificar IP pode retornar os seguintes insights:

Gravidade Descrição
Warn

A ação cria um insight de aviso para informar sobre o status malicioso do endereço IP enriquecido.

A ação só cria o insight quando o número de mecanismos detectados é igual ou excede o limite mínimo de suspeita definido antes da verificação.

Nome do insight Corpo
Entity Insight
  • País: country
  • Exemplos de referenciadores maliciosos: len(detected_referrer_samples)
  • Amostras baixadas maliciosas: len(detected_downloaded_samples)
  • Exemplos de comunicação maliciosa: len(detected_communicating_samples)
  • URLs maliciosos: len(detected_urls)
Resultado JSON

O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação Verificar IP:

[
    {
        "EntityResult": {
            "asn": 4436,
            "undetected_urls": [[
                "http://example.com", "2ed06796f95e7c1xxxxxbd68d81754acf535c999e901bfe2cf9c45612396f66", 0, 66, "2022-11-23 06:51:49"
            ]],
            "undetected_downloaded_samples": [{
                "date": "2018-07-09 07:53:30",
                "positives": 0,
                "sha256": "6a0bf66ddc73d7e64eb2ff0dd3512c5378c0c63c2ad4e13c0e1429fe",
                "total": 60
            }],
            "country": "country",
            "response_code": 1,
            "as_owner": "Example, Inc.",
            "verbose_msg": "IP address in dataset",
            "detected_downloaded_samples": [{
                "date": "2023-05-20 08:38:00",
                "positives": 6,
                "sha256": "9cf5c07c99c3342d83b241c25850da0bf231ee150cb962cab1e8399cb",
                "total": 57
            }],
            "resolutions": [{
                "last_resolved": "2023-05-13 00:00:00",
                "hostname": "40515350444dff68-2f7735d5ad283fa41a203a082d9a8f25.example.com"
            }],
            "detected_urls": [{
                "url": "http://example.com",
                "positives": 2,
                "total": 67,
                "scan_date": "2023-05-20 07:16:45"
            }]},
            "Entity": "192.0.2.1"
        }
    ]
Resultado do script

A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Verificar IP:

Nome do resultado do script Valor
is_success True ou False

Verificar URL

Use a ação Verificar URL para verificar um URL com o VirusTotal.

Essa ação é executada na entidade URL do Google SecOps.

Entradas de ação

A ação Verificar URL exige os seguintes parâmetros:

Parâmetro Descrição
Threshold

Obrigatório.

O limite para marcar detecções como suspeitas.

Se as detecções do mecanismo malicioso atingirem ou excederem o limite definido, a ação vai marcar a entidade como suspeita.

Rescan after days

Opcional.

O número de dias após a data da última verificação para verificar novamente a entidade.

Saídas de ação

A ação Verificar URL fornece as seguintes saídas:

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Painel de Casos Indisponível
Tabela do painel de casos Indisponível
Tabela de enriquecimento de entidades Disponível
Insight Disponível
Resultado JSON Disponível
Resultado do script Disponível
Tabela de enriquecimento de entidades

A ação Verificar URL pode enriquecer os seguintes campos:

Nome do campo de enriquecimento Lógica aplicável
Scan date Retorna se ele existir no resultado JSON.
Scan ID Retorna se ele existir no resultado JSON.
risk_score Retorna se ele existir no resultado JSON.
Total Retorna se ele existir no resultado JSON.
Online Link Retorna se ele existir no resultado JSON.
Scanned Url Retorna se ele existir no resultado JSON.
resource Retorna se ele existir no resultado JSON.
Detecting Engines Retorna se ele existir no resultado JSON.
Risk Score Retorna se ele existir no resultado JSON.
Last Scan Date Retorna se ele existir no resultado JSON.
verbose_msg Retorna se ele existir no resultado JSON.
File Scan ID Retorna se ele existir no resultado JSON.
Insight

A ação Verificar URL pode retornar o seguinte insight:

Gravidade Descrição
Warn

A ação cria um insight de aviso para informar sobre o status malicioso do URL enriquecido.

A ação só cria o insight quando o número de mecanismos detectados é igual ou excede o limite mínimo de suspeita definido antes da verificação.

Resultado JSON

O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação Verificar URL:

[
    {
        "EntityResult": {
            "permalink": "https://www.virustotal.com/url/URL_HASH/analysis/ANALYSIS_ID/",
            "resource": "http://example.php",
            "url": "http://example.php",
            "response_code": 1,
            "scan_date": "2019-02-04 05:28:54",
            "scan_id": "URL_HASH-ANALYSIS_ID",
            "verbose_msg": "Scan finished, scan information embedded in this object",
            "filescan_id": null,
            "positives": 5,
            "total": 67,
            "scans": {
                "CLEAN MX": {
                    "detected": false,
                    "result": "clean site"
                },
                "DNS8": {
                    "detected": false,
                    "result": "clean site"
                }}},
        "Entity": "http://example.php"
    }
]
Resultado do script

A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Verificar URL:

Nome do resultado do script Valor
is_risky True ou False

Fazer upload e verificar arquivo

Use a ação Fazer upload e verificar arquivo para fazer upload e verificar um arquivo com o VirusTotal.

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

Entradas de ação

A ação Fazer upload e verificar arquivo exige os seguintes parâmetros:

Parâmetro Descrição
Threshold

Obrigatório.

O número mínimo de detecções positivas dos verificadores do VirusTotal para considerar um arquivo arriscado e acionar um insight.

O valor padrão é 3.

File Paths

Obrigatório.

Uma lista separada por vírgulas de caminhos para upload e verificação.

Linux Server Address

Opcional.

O endereço de um servidor Linux remoto em que os arquivos estão localizados, como 192.0.2.1.

Linux User

Opcional.

O nome de usuário para autenticar no servidor Linux remoto.

Linux Password

Opcional.

A senha para autenticação no servidor Linux remoto.

Saídas de ação

A ação Fazer upload e verificar arquivo fornece as seguintes saídas:

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Painel de Casos Indisponível
Tabela do painel de casos Indisponível
Tabela de enriquecimento de entidades Disponível
Insight Disponível
Resultado JSON Disponível
Resultado do script Disponível
Tabela de enriquecimento de entidades

A ação Fazer upload e verificar arquivo pode enriquecer os seguintes campos:

Nome do campo de enriquecimento Lógica aplicável
resource Retorna se ele existir no resultado JSON.
Scan date Retorna se ele existir no resultado JSON.
Scan ID Retorna se ele existir no resultado JSON.
permalink Retorna se ele existir no resultado JSON.
Total Retorna se ele existir no resultado JSON.
Md5 Retorna se ele existir no resultado JSON.
Sha1 Retorna se ele existir no resultado JSON.
Sha256 Retorna se ele existir no resultado JSON.
positives Retorna se ele existir no resultado JSON.
total Retorna se ele existir no resultado JSON.
Detecting Engines Retorna se ele existir no resultado JSON.
verbose_msg Retorna se ele existir no resultado JSON.
Insight

A ação Fazer upload e verificar arquivo pode retornar o seguinte insight:

Gravidade Descrição
Warn

A ação cria um insight de aviso para informar sobre o status malicioso do arquivo enriquecido.

A ação só cria o insight quando o número de mecanismos detectados é igual ou excede o limite mínimo de suspeita definido antes da verificação.

Resultado JSON

O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação Fazer upload e verificar arquivo:

{
    "file_path": {
        "scan_id": "FILE_ID-ANALYSIS_ID",
        "sha1": "ec44b2af88e602e3981db0b218ecb5d59dc0dfec",
        "resource": "FILE_ID-ANALYSIS_ID",
        "response_code": 1,
        "scan_date": "2019-02-05 15:55:50",
        "permalink": "https://www.virustotal.com/file/FILE_ID/analysis/ANALYSIS_ID/",
        "verbose_msg": "Scan finished, information embedded",
        "total": 58,
        "positives": 0,
        "sha256": "FILE_ID",
        "md5": "848d57fbd8e29afa08bd3f58dd30f902",
        "scans": {
            "Bkav": {
                "detected": false,
                "version": "192.0.2.1",
                "result": null,
                "update": "20190201"
            },
            "MicroWorld-eScan": {
                "detected": false,
                "version": "14.0.297.0",
                "result": null,
                "update": "20190205"
            }
        }
    }
}
Resultado do script

A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Fazer upload e verificar arquivo:

Nome do resultado do script Valor
is_risky True ou False

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