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:
- Faça login no portal do VirusTotal.
- Abaixo do seu nome de usuário, clique em Chave de API.
- Copie a chave de API gerada para usar nos parâmetros de integração.
- 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 é |
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 |
|
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 é |
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 |
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.