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.
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
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 Receber relatório de domínio para recuperar relatórios de domínio do VirusTotal para as entidades fornecidas e enriquecer essas entidades na plataforma Google SecOps.
Essa ação é executada nas seguintes entidades do Google SecOps:
UserHostname
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 que você definiu 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 onde os arquivos estão localizados, como |
Linux User |
Opcional. O nome de usuário para autenticação 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.