Integrar o APIVoid ao Google SecOps
Este documento descreve como integrar o APIVoid ao Google Security Operations (Google SecOps).
Versão da integração: 12.0
Antes de começar
Antes de configurar a integração do APIVoid no Google SecOps para v2, verifique se você tem o seguinte:
Conta do APIVoid v2: uma conta ativa com acesso aos serviços da API v2.
Chave de API do APIVoid v2: uma nova chave de API gerada especificamente para APIs v2 no painel do usuário do APIVoid.
Endpoints de API atualizados: é importante conhecer os URLs atualizados dos endpoint de API v2 para os serviços específicos da APIVoid que você planeja usar, como a API IP Reputation e a API Domain Reputation.
Gerar uma chave de API do APIVoid v2
Para gerar sua chave de API do APIVoid v2, siga estas etapas:
Faça login no painel do usuário do APIVoid.
Navegue até a seção Chaves de API. O local pode variar dependendo das atualizações do painel.
Gere uma nova chave de API. Copie e armazene a chave com segurança imediatamente. Ele só pode ser mostrado uma vez.
Rede
Função | Porta padrão | Direção | Protocolo |
---|---|---|---|
API | Multivalores | Saída | apikey |
Parâmetros de integração
Use os seguintes parâmetros para configurar a integração:
Nome do parâmetro | Tipo | Valor padrão | É obrigatório | Descrição |
---|---|---|---|---|
Nome da instância | String | N/A | Não | Nome da instância em que você pretende configurar a integração. |
Descrição | String | N/A | Não | Descrição da instância. |
Raiz da API | String | https://endpoint.apivoid.com | Sim | Endereço da instância APIVoid. |
Chave da API | Senha | N/A | Sim | Chave de API gerada no console da APIVoid. |
Verificar SSL | Caixa de seleção | Desmarcado | Não | Use esta caixa de seleção se a conexão APIVoid exigir uma verificação SSL. |
Executar remotamente | Caixa de seleção | Desmarcado | Não | Marque a caixa para executar a integração configurada remotamente. Depois de marcada, a opção aparece para selecionar o usuário remoto (agente). |
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 da sua mesa de trabalho e Realizar uma ação manual.
Receber reputação do domínio
Receba verificações de reputação de domínio se um domínio for excluído por um serviço de bloqueio de domínio confiável e popular, como URLVir, ThreatLog, OpenPhish, Spam404, PhishTank, ZeuS Tracker e muito mais. Os vários serviços de lista de bloqueio de domínio identificam sites potencialmente maliciosos e fraudulentos envolvidos na distribuição de malware, incidentes de phishing e lojas on-line falsas.
Parâmetros
Nome do parâmetro | Tipo | Valor padrão | É obrigatório | Descrição |
---|---|---|---|---|
Limite | String | 0 | Sim | Limite de risco do domínio. O limite precisa ser um valor numérico. Exemplo: 3 |
Criar insights | Caixa de seleção | Selecionado | Sim | Especifique se a ação deve criar insights ou não. |
Casos de uso
Um dos casos de uso da API Domain Reputation é verificar se os sites do cliente estão excluídos, verificar os URLs enviados pelos usuários no seu aplicativo ou identificar sites potencialmente maliciosos e inseguros.
Data de execução
Essa ação é executada nas seguintes entidades:
- Nome do host
- URL
Resultados da ação
Enriquecimento de entidade
Marque a entidade como suspeita se o número de mecanismos negativos for igual ou maior que o limite especificado.
Nome do campo de enriquecimento | Lógica: quando aplicar |
---|---|
alexa_top_100k | Retorna se ele existe no resultado JSON |
domain_length | Retorna se ele existe no resultado JSON |
alexa_top_10k | Retorna se ele existe no resultado JSON |
listas de proibições | Retorna se ele existe no resultado JSON |
servidor | Retorna se ele existe no resultado JSON |
host | Retorna se ele existe no resultado JSON |
most_abused_tld | Retorna se ele existe no resultado JSON |
alexa_top_250k | Retorna se ele existe no resultado JSON |
Insights
Gravidade | Descrição |
---|---|
Avisar | Um insight de aviso é criado para informar sobre o status malicioso da entidade enriquecida. Ele é criado quando o número de mecanismos detectados é igual ou excede o limite mínimo de suspeita definido antes da verificação. |
Resultado do script
Nome do resultado do script | Opções de valor | Exemplo |
---|---|---|
sucesso | Verdadeiro/Falso | success:False |
Resultado JSON
[
{
"EntityResult": {
"alexa_top_100k": false,
"domain_length": 17,
"alexa_top_10k": false,
"blacklists": {
"scantime": "0.07",
"detection_rate": "0%",
"detections": 0,
"engines_count": 29,
"engines": [{
"engine": "ThreatLog",
"detected": false,
"confidence": "high",
"reference": "http://www.threatlog.com/"
}, {
"engine": "Threat Sourcing",
"detected": false,
"confidence": "high",
"reference": "https://www.threatsourcing.com/"
}, {
"engine": "URLVir",
"detected": false,
"confidence": "high",
"reference": "http://www.urlvir.com/"
}]},
"server": {
"region_name": null,
"reverse_dns": " ",
"ip": " ",
"isp": null,
"continent_code": null,
"latitude": null,
"city_name": null,
"longitude": null,
"country_code": null,
"country_name": null,
"continent_name": null
},
"host": "example.com",
"most_abused_tld": false,
"alexa_top_250k": false
},
"Entity": "example.com"
}, {
"EntityResult": {
"alexa_top_100k": false,
"domain_length": 9,
"alexa_top_10k": false,
"blacklists": {
"scantime": "0.03",
"detection_rate": "0%",
"detections": 0,
"engines_count": 29,
"engines": [{
"engine": "ThreatLog",
"detected": false,
"confidence": "high",
"reference": "http://www.threatlog.com/"
}, {
"engine": "Threat Sourcing",
"detected": false,
"confidence": "high",
"reference": "https://www.threatsourcing.com/"
}, {
"engine": "URLVir",
"detected": false,
"confidence": "high",
"reference": "http://www.urlvir.com/"
}]},
"server": {
"region_name": null,
"reverse_dns": " ",
"ip": " ",
"isp": null,
"continent_code": null,
"latitude": null,
"city_name": null,
"longitude": null,
"country_code": null,
"country_name": null,
"continent_name": null
},
"host": "192.0.2.1",
"most_abused_tld": false,
"alexa_top_250k": false
},
"Entity": "192.0.2.1"
}
]
Get Ip Reputation
A API IP Reputation detecta endereços IP potencialmente maliciosos que são comumente usados para spam, ataques a sites ou atividades fraudulentas.
Parâmetros
Parâmetro | Tipo | Valor padrão | É obrigatório | Descrição |
---|---|---|---|---|
Limite | String | N/A | Sim | Limite de risco de IP. O limite precisa ser um valor numérico. Exemplo: 3. |
Criar insights | Caixa de seleção | Selecionado | Sim | Especifique se a ação deve criar insights ou não. |
Data de execução
Essa ação é executada na entidade "Endereço IP".
Resultados da ação
Enriquecimento de entidade
Marque a entidade como suspeita se o número de mecanismos negativos for igual ou maior que o limite especificado.
Nome do campo de enriquecimento | Lógica: quando aplicar |
---|---|
informações | Retorna se ele existe no resultado JSON |
listas de proibições | Retorna se ele existe no resultado JSON |
anonimato | Retorna se ele existe no resultado JSON |
ip | Retorna se ele existe no resultado JSON |
Insights
Gravidade | Descrição |
---|---|
Avisar | Um insight de aviso é criado para informar sobre o status malicioso do hash enriquecido. O insight é criado quando o número de mecanismos detectados é igual ou excede o limite mínimo de suspeita definido antes da verificação. |
Resultado do script
Nome do resultado do script | Opções de valor | Exemplo |
---|---|---|
sucesso | Verdadeiro/Falso | success:False |
Resultado JSON
[
{
"EntityResult": {
"information": {
"is_proxy": false,
"is_vpn": false,
"region_name": "Zhejiang",
"is_webproxy": false,
"latitude": 28.680280685424805,
"isp": "ChinaNet Zhejiang Province Network",
"continent_code": "AS",
"is_tor": false,
"reverse_dns": " ",
"detections": 18,
"engines_count": 76,
"longitude": 121.44277954101562,
"city_name": "Jiaojiang",
"country_name": "China",
"continent_name": "Asia",
"detection_rate": "24%",
"country_code": "CN",
"is_hosting": false
},
"blacklists": {
"scantime": "0.57",
"detection_rate":
"24%",
"detections": 18,
"engines_count": 76,
"engines": [{
"engine": "PlonkatronixBL",
"detected": false,
"reference": "http://bl.plonkatronix.com/"
}, {
"engine": "Engine",
"detected": true,
"reference": "https://home.nuug.no/~engine/"
}, {"engine": "Malc0de",
"detected": false,
"reference": "http://malc0de.com/database/index.php"
}]},
"anonymity": {
"is_tor": false,
"is_proxy": false,
"is_vpn": false,
"is_webproxy": false,
"is_hosting": false
},
"ip": "192.0.2.1"
},
"Entity": "192.0.2.1"
}
]
Receber reputação de URL
Receba a reputação de segurança e a pontuação de risco de um URL.
Parâmetros
Nome do parâmetro | Tipo | Valor padrão | É obrigatório | Descrição |
---|---|---|---|---|
Limite | Número inteiro | N/A | Sim | Limite de risco do URL. O limite precisa ser um valor numérico. Exemplo: 3 |
Casos de uso
Um analista pode recuperar a reputação do URL, assim como a reputação de um domínio ou endereço IP.
Data de execução
Essa ação é executada na entidade de URL.
Resultados da ação
Enriquecimento de entidade
Marque a entidade como suspeita se o número de mecanismos negativos for igual ou maior que o limite especificado. if data.get("report", {}).get("risk_score", {}).get("result") > threshold
Nome do campo de enriquecimento | Lógica: quando aplicar |
---|---|
domain_blacklist | Retorna se ele existe no resultado JSON |
html_forms | Retorna se ele existe no resultado JSON |
server_details | Retorna se ele existe no resultado JSON |
response_headers | Retorna se ele existe no resultado JSON |
redirecionamento | Retorna se ele existe no resultado JSON |
file_type | Retorna se ele existe no resultado JSON |
risk_score | Retorna se ele existe no resultado JSON |
security_checks | Retorna se ele existe no resultado JSON |
geo_location | Retorna se ele existe no resultado JSON |
url_parts | Retorna se ele existe no resultado JSON |
site_category | Retorna se ele existe no resultado JSON |
web_page | Retorna se ele existe no resultado JSON |
dns_records | 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": {
"domain_blacklist": {
"detections": 0,
"engines": [{
"detected": false,
"name": "SpamhausDBL", "reference": "https://www.spamhaus.org/lookup/"
}, {
"detected": false,
"name": "ThreatLog",
"reference": "http://www.threatlog.com/"
}, {
"detected": false,
"name": "OpenPhish",
"reference": "http://www.openphish.com/"
}, {
"detected": false,
"name": "PhishTank",
"reference": "http://www.phishtank.com/"
}, {
"detected": false,
"name": "Phishing.Database",
"reference": "https://github.com/mitchellkrogza/Phishing.Database"
}, {
"detected": false,
"name": "PhishStats",
"reference": "https://phishstats.info/"
}, {
"detected": false,
"name": "URLVir",
"reference": "http://www.urlvir.com/"
}, {
"detected": false,
"name": "URLhaus",
"reference": "https://urlhaus.abuse.ch/"
}, {
"detected": false,
"name": "RPiList Not Serious",
"reference": "https://github.com/RPiList/specials"
}, {
"detected": false,
"name": "precisionsec",
"reference": "https://precisionsec.com/"
}, {
"detected": false,
"name": "AntiSocial Blacklist",
"reference": "https://theantisocialengineer.com/"
}, {
"detected": false,
"name": "PhishFeed",
"reference": "https://phishfeed.com/"
}, {
"detected": false,
"name": "Spam404",
"reference": "https://www.spam404.com/"
}]},
"html_forms": {
"number_of_total_input_fields": 0,
"email_field_present": false,
"number_of_total_forms": 0,
"password_field_present": false,
"two_text_inputs_in_a_form": false,
"credit_card_field_present": false
},
"server_details": {
"continent_name": "Asia",
"hostname": "example.com",
"region_name": "Seoul-teukbyeolsi",
"ip": "192.0.2.141",
"isp": "Example Corporation",
"continent_code": "AS",
"country_name": "Korea (Republic of)",
"city_name": "Seoul",
"longitude": 126.97782897949219,
"country_code": "KR",
"latitude": 37.568260192871094
},
"response_headers": {
"status": "HTTP/1.1 404 Not Found",
"content-length": "177",
"code": 404,
"server": "nginx/1.4.6 (Ubuntu)",
"connection": "keep-alive",
"date": "Wed, 15 Jul 2020 08:21:54 GMT",
"content-type": "text/html"
},
"redirection": {
"url": null,
"found": false,
"external": false
},
"file_type": {
"headers": "HTML",
"extension": "HTML",
"signature": " "
},
"risk_score": {
"result": 10
},
"security_checks": {
"is_suspended_page": false,
"is_defaced_heuristic": false,
"is_windows_exe_file": false,
"is_credit_card_field": false,
"is_windows_exe_file_on_free_hosting": false,
"is_masked_linux_elf_file": false,
"is_exe_on_directory_listing": false,
"is_php_on_directory_listing": false,
"is_masked_windows_exe_file": false,
"is_sinkholed_domain": false,
"is_robots_noindex": false,
"is_windows_exe_file_on_free_dynamic_dns": false,
"is_doc_on_directory_listing": false,
"is_non_standard_port": false,
"is_linux_elf_file_on_free_dynamic_dns": false,
"is_suspicious_domain": false, "is_suspicious_url_pattern": false,
"is_china_country": false,
"is_risky_geo_location": false,
"is_pdf_on_directory_listing": false,
"is_valid_https": false,
"is_external_redirect": false, "is_windows_exe_file_on_ipv4": false,
"is_phishing_heuristic": false,
"is_linux_elf_file_on_ipv4": false,
"is_email_address_on_url_query": false,
"is_uncommon_clickable_url": false,
"is_most_abused_tld": false,
"is_domain_blacklisted": false,
"is_host_an_ipv4": false,
"is_linux_elf_file_on_free_hosting": false,
"is_zip_on_directory_listing": false,
"is_password_field": false,
"is_linux_elf_file": false,
"is_empty_page_title": false,
"is_directory_listing": false,
"is_masked_file": false,
"is_suspicious_file_extension": false,
"is_suspicious_content": false
},
"geo_location": {
"countries": ["KR"]
},
"url_parts": {
"host_nowww": "example.com",
"host": "www.example.com",
"path": "/dynamic/example.html",
"query": null,
"scheme": "http",
"port": 80},
"site_category": {
"is_vpn_provider": false,
"is_url_shortener": false,
"is_anonymizer": false,
"is_torrent": false,
"is_free_dynamic_dns": false,
"is_free_hosting": false
},
"web_page": {
"keywords": "",
"description": "",
"title": "404 Not Found"
},
"dns_records": {
"ns": {
"records": [{
"country_name": "Korea (Republic of)",
"ip": "192.0.2.95",
"isp": "Example Corporation",
"target": "example.com",
"country_code": "KR"
}, {
"country_name": "Korea (Republic of)",
"ip": "192.0.2.26",
"isp": "LX",
"target": "example.com",
"country_code": "KR"
}]},
"mx": {
"records": []
}}},
"Entity": "www.example.com:80/dynamic/example.html"
}
]
Painel de casos
Tipo de resultado | Descrição | Tipo |
---|---|---|
Mensagem de saída* |
|
Geral |
Painel de casos em CSV | Se houver dados disponíveis, crie uma nova tabela CSV de entidades:
|
Geral |
Aprimoramento | Se os dados estiverem disponíveis, adicione o seguinte como enriquecimento de entidade: (não se esqueça de adicionar o prefixo "APIVoid")
|
Entidade |
Fazer captura de tela
Faça uma captura de tela de alta qualidade de qualquer site ou URL.
Parâmetros
N/A
Casos de uso
Um analista pode capturar capturas de tela de alta qualidade de qualquer site ou URL nos formatos de imagem PNG ou JPG.
Data de execução
Essa ação é executada na entidade "User".
Resultados da ação
Enriquecimento de entidade
Marque a entidade como suspeita se o número de mecanismos negativos for igual ou maior que o limite especificado. is_suspicious: if data.get("score") > threshold
Nome do campo de enriquecimento | Lógica: quando aplicar |
---|---|
domínio | Retorna se ele existe no resultado JSON |
should_block | Retorna se ele existe no resultado JSON |
score | Retorna se ele existe no resultado JSON |
descartável | Retorna se ele existe no resultado JSON |
has_mx_records | Retorna se ele existe no resultado JSON |
has_spf_records | 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": {
"domain": "example.com",
"valid_tld": true,
"email": "user@example.co",
"role_address": false,
"should_block": false,
"risky_tld": false,
"dirty_words_username": false,
"suspicious_domain": false,
"score": 100,
"educational_domain": false,
"dirty_words_domain": false,
"did_you_mean": " ",
"username": "user",
"valid_format": true,
"is_spoofable ": false,
"disposable": false,
"government_domain": false,
"has_spf_records": true,
"domain_popular": false,
"has_mx_records": true,
"china_free_email": false,
"free_email": false,
"russian_free_email": false,
"police_domain": false,
"dmarc_enforced": false,
"suspicious_username": false
},
"Entity": "USER@EXAMPLE.COM"
}
]
Painel de casos
Tipo de resultado | Descrição | Tipo |
---|---|---|
Mensagem de saída* |
|
Geral |
Anexos | Se os dados estiverem disponíveis, crie um novo objeto de arquivo:
|
Geral |
Ping
Testar a conectividade.
Parâmetros
N/A
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 |
---|---|---|
sucesso | Verdadeiro/Falso | success:False |
Verificar e-mail
Verifique se um e-mail é descartável, tem registros MX e muito mais.
Parâmetros
Nome do parâmetro | Tipo | Valor padrão | É obrigatório | Descrição |
---|---|---|---|---|
Limite | Número inteiro | N/A | Sim | Limite de risco de e-mail. O limite precisa ser um valor numérico. Exemplo: 3 |
Casos de uso
Um analista pode verificar se um e-mail é descartável, receber registros MX e muito mais.
Data de execução
Essa ação é executada na entidade "User".
Resultados da ação
Enriquecimento de entidade
Marque a entidade como suspeita se o número de mecanismos negativos for igual ou maior que o limite especificado. is_suspicious: if data.get("score") > threshold
Nome do campo de enriquecimento | Lógica: quando aplicar |
---|---|
domínio | Retorna se ele existe no resultado JSON |
should_block | Retorna se ele existe no resultado JSON |
score | Retorna se ele existe no resultado JSON |
descartável | Retorna se ele existe no resultado JSON |
has_mx_records | Retorna se ele existe no resultado JSON |
has_spf_records | 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": {
"domain": "example.com",
"valid_tld": true,
"email": "user@example.com",
"role_address": false,
"should_block": false,
"risky_tld": false,
"dirty_words_username": false,
"suspicious_domain": false,
"score": 100,
"educational_domain": false,
"dirty_words_domain": false,
"did_you_mean": " ",
"username": "user",
"valid_format": true,
"is_spoofable ": false,
"disposable": false,
"government_domain": false,
"has_spf_records": true,
"domain_popular": false,
"has_mx_records": true,
"china_free_email": false,
"free_email": false,
"russian_free_email": false,
"police_domain": false,
"dmarc_enforced": false,
"suspicious_username": false
},
"Entity": "USER@EXAMPLE.COm"
}
]
Painel de casos
Tipo de resultado | Descrição | Tipo |
---|---|---|
Mensagem de saída* |
|
Geral |
Painel de casos em CSV | Conteúdo do CSV: dados de entidade(exemplo abaixo) | Geral |
Aprimoramento | Se os dados estiverem disponíveis, adicione o seguinte como enriquecimento de entidade: (não se esqueça de adicionar o prefixo "APIVoid")
|
Entidade |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.