Integrare APIVoid con Google SecOps
Questo documento descrive come integrare APIVoid con Google Security Operations (Google SecOps).
Versione integrazione: 12.0
Prima di iniziare
Prima di configurare l'integrazione di APIVoid in Google SecOps per la versione 2, verifica di disporre di quanto segue:
Account APIVoid v2: un account attivo con accesso ai servizi API v2.
Chiave API APIVoid v2: una nuova chiave API generata appositamente per le API v2 dalla dashboard utente APIVoid.
Endpoint API aggiornati: familiarità con gli URL degli endpoint API v2 aggiornati per i servizi APIVoid specifici che prevedi di utilizzare (ad esempio, API IP Reputation, API Domain Reputation).
Generare una chiave API APIVoid v2
Per generare la chiave API APIVoid v2, completa questi passaggi:
Accedi alla dashboard utente di APIVoid.
Vai alla sezione Chiavi API. La posizione può variare a seconda degli aggiornamenti della dashboard.
Genera una nuova chiave API. Copia e memorizza immediatamente la chiave in modo sicuro. Potrebbe essere visualizzato una sola volta.
Rete
Funzione | Porta predefinita | Direzione | Protocollo |
---|---|---|---|
API | Multivalori | In uscita | apikey |
Parametri di integrazione
Utilizza i seguenti parametri per configurare l'integrazione:
Nome parametro | Tipo | Valore predefinito | È obbligatorio | Descrizione |
---|---|---|---|---|
Nome istanza | Stringa | N/D | No | Nome dell'istanza per cui intendi configurare l'integrazione. |
Descrizione | Stringa | N/D | No | Descrizione dell'istanza. |
Radice API | Stringa | https://endpoint.apivoid.com | Sì | L'indirizzo dell'istanza APIVoid. |
Chiave API | Password | N/D | Sì | Chiave API generata nella console di APIVoid. |
Verifica SSL | Casella di controllo | Deselezionata | No | Utilizza questa casella di controllo se la connessione APIVoid richiede una verifica SSL. |
Esegui da remoto | Casella di controllo | Deselezionata | No | Seleziona il campo per eseguire l'integrazione configurata da remoto. Una volta selezionata, viene visualizzata l'opzione per selezionare l'utente remoto (agente). |
Per istruzioni su come configurare un'integrazione in Google SecOps, consulta Configurare le integrazioni.
Se necessario, potrai apportare modifiche in un secondo momento. Dopo aver configurato un'istanza di integrazione, puoi utilizzarla nei playbook. Per saperne di più su come configurare e supportare più istanze, consulta Supportare più istanze.
Azioni
Per ulteriori informazioni sulle azioni, vedi Rispondere alle azioni in attesa dalla tua scrivania e Eseguire un'azione manuale.
Ottieni la reputazione del dominio
Ricevi controlli della reputazione del dominio se un dominio è escluso da servizi di liste bloccate di domini popolari e affidabili, come URLVir, ThreatLog, OpenPhish, Spam404, PhishTank, ZeuS Tracker e altri. I servizi di blocklist di più domini identificano siti web potenzialmente dannosi e fraudolenti coinvolti nella distribuzione di malware, in incidenti di phishing e in negozi online falsi.
Parametri
Nome parametro | Tipo | Valore predefinito | È obbligatorio | Descrizione |
---|---|---|---|---|
Soglia | Stringa | 0 | Sì | Soglia di rischio del dominio. La soglia deve essere un valore numerico. Esempio: 3 |
Crea approfondimenti | Casella di controllo | Selezionata | Sì | Specifica se l'azione deve creare approfondimenti o meno. |
Casi d'uso
Uno dei casi d'uso dell'API Domain Reputation è verificare se i siti web del cliente sono esclusi, controllare gli URL inviati dagli utenti nella tua applicazione o identificare siti web potenzialmente dannosi e non sicuri.
Pubblica su
Questa azione viene eseguita sulle seguenti entità:
- Nome host
- URL
Risultati dell'azione
Arricchimento delle entità
Contrassegna l'entità come sospetta se il numero di motori negativi è uguale o superiore alla soglia specificata.
Nome del campo di arricchimento | Logica - Quando applicarla |
---|---|
alexa_top_100k | Restituisce se esiste nel risultato JSON |
domain_length | Restituisce se esiste nel risultato JSON |
alexa_top_10k | Restituisce se esiste nel risultato JSON |
liste nere | Restituisce se esiste nel risultato JSON |
server | Restituisce se esiste nel risultato JSON |
host | Restituisce se esiste nel risultato JSON |
most_abused_tld | Restituisce se esiste nel risultato JSON |
alexa_top_250k | Restituisce se esiste nel risultato JSON |
Approfondimenti
Gravità | Descrizione |
---|---|
Avviso | Viene creato un approfondimento di avviso per informare sullo stato dannoso dell'entità arricchita. Viene creato quando il numero di motori rilevati è uguale o superiore alla soglia minima sospetta impostata prima della scansione. |
Risultato dello script
Nome del risultato dello script | Opzioni del valore | Esempio |
---|---|---|
operazione riuscita | Vero/Falso | success:False |
Risultato 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"
}
]
Ottieni reputazione IP
L'API IP Reputation rileva indirizzi IP potenzialmente dannosi che vengono comunemente utilizzati per spam, attacchi a siti web o attività fraudolente.
Parametri
Parametro | Tipo | Valore predefinito | È obbligatorio | Descrizione |
---|---|---|---|---|
Soglia | Stringa | N/D | Sì | Soglia di rischio IP. La soglia deve essere un valore numerico. Esempio: 3. |
Crea approfondimenti | Casella di controllo | Selezionata | Sì | Specifica se l'azione deve creare approfondimenti o meno. |
Pubblica su
Questa azione viene eseguita sull'entità Indirizzo IP.
Risultati dell'azione
Arricchimento delle entità
Contrassegna l'entità come sospetta se il numero di motori negativi è uguale o superiore alla soglia specificata.
Nome del campo di arricchimento | Logica - Quando applicarla |
---|---|
informazioni | Restituisce se esiste nel risultato JSON |
liste nere | Restituisce se esiste nel risultato JSON |
anonimato | Restituisce se esiste nel risultato JSON |
ip | Restituisce se esiste nel risultato JSON |
Approfondimenti
Gravità | Descrizione |
---|---|
Avviso | Viene creato un approfondimento di avviso per informare sullo stato dannoso dell'hash arricchito. L'approfondimento viene creato quando il numero di motori rilevati è uguale o superiore alla soglia minima sospetta impostata prima della scansione. |
Risultato dello script
Nome del risultato dello script | Opzioni del valore | Esempio |
---|---|---|
operazione riuscita | Vero/Falso | success:False |
Risultato 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"
}
]
Ottenere la reputazione dell'URL
Ottieni la reputazione di sicurezza e il punteggio di rischio di un URL.
Parametri
Nome parametro | Tipo | Valore predefinito | È obbligatorio | Descrizione |
---|---|---|---|---|
Soglia | Numero intero | N/D | Sì | Soglia di rischio dell'URL. La soglia deve essere un valore numerico. Esempio: 3 |
Casi d'uso
Un analista può recuperare la reputazione dell'URL, in modo simile a come recuperare la reputazione di un dominio o di un indirizzo IP.
Pubblica su
Questa azione viene eseguita sull'entità URL.
Risultati dell'azione
Arricchimento delle entità
Contrassegna l'entità come sospetta se il numero di motori negativi è uguale o superiore alla soglia specificata. if data.get("report", {}).get("risk_score", {}).get("result") > threshold
Nome del campo di arricchimento | Logica - Quando applicarla |
---|---|
domain_blacklist | Restituisce se esiste nel risultato JSON |
html_forms | Restituisce se esiste nel risultato JSON |
server_details | Restituisce se esiste nel risultato JSON |
response_headers | Restituisce se esiste nel risultato JSON |
reindirizzamento | Restituisce se esiste nel risultato JSON |
file_type | Restituisce se esiste nel risultato JSON |
risk_score | Restituisce se esiste nel risultato JSON |
security_checks | Restituisce se esiste nel risultato JSON |
geo_location | Restituisce se esiste nel risultato JSON |
url_parts | Restituisce se esiste nel risultato JSON |
site_category | Restituisce se esiste nel risultato JSON |
web_page | Restituisce se esiste nel risultato JSON |
dns_records | Restituisce se esiste nel risultato JSON |
Risultato dello script
Nome del risultato dello script | Opzioni del valore | Esempio |
---|---|---|
is_success | Vero/Falso | is_success:False |
Risultato 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"
}
]
Bacheca casi
Tipo di risultato | Descrizione | Tipo |
---|---|---|
Messaggio di output* |
|
Generale |
Bacheca casi CSV | Se i dati sono disponibili, crea una nuova tabella CSV dell'entità:
|
Generale |
Arricchimento | Se i dati sono disponibili, aggiungi quanto segue come arricchimento dell'entità (non dimenticare di aggiungere il prefisso "APIVoid"):
|
Entità |
Acquisci screenshot
Acquisire uno screenshot di alta qualità di qualsiasi sito web o URL.
Parametri
N/D
Casi d'uso
Un analista può acquisire screenshot di alta qualità di qualsiasi sito web o URL in formato immagine PNG o JPG.
Pubblica su
Questa azione viene eseguita sull'entità Utente.
Risultati dell'azione
Arricchimento delle entità
Contrassegna l'entità come sospetta se il numero di motori negativi è pari o superiore alla soglia specificata. is_suspicious: if data.get("score") > threshold
Nome del campo di arricchimento | Logica - Quando applicarla |
---|---|
dominio | Restituisce se esiste nel risultato JSON |
should_block | Restituisce se esiste nel risultato JSON |
punteggio | Restituisce se esiste nel risultato JSON |
usa e getta | Restituisce se esiste nel risultato JSON |
has_mx_records | Restituisce se esiste nel risultato JSON |
has_spf_records | Restituisce se esiste nel risultato JSON |
Risultato dello script
Nome del risultato dello script | Opzioni del valore | Esempio |
---|---|---|
is_success | Vero/Falso | is_success:False |
Risultato 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"
}
]
Bacheca casi
Tipo di risultato | Descrizione | Tipo |
---|---|---|
Messaggio di output* |
|
Generale |
Allegati | Se i dati sono disponibili, crea un nuovo oggetto file:
|
Generale |
Dindin
Testa la connettività.
Parametri
N/D
Pubblica su
Questa azione viene eseguita su tutte le entità.
Risultati dell'azione
Risultato dello script
Nome del risultato dello script | Opzioni del valore | Esempio |
---|---|---|
operazione riuscita | Vero/Falso | success:False |
Verifica l'indirizzo email
Controlla se un'email è usa e getta, se ha record MX e altro ancora.
Parametri
Nome parametro | Tipo | Valore predefinito | È obbligatorio | Descrizione |
---|---|---|---|---|
Soglia | Numero intero | N/D | Sì | Soglia di rischio email. La soglia deve essere un valore numerico. Esempio: 3 |
Casi d'uso
Un analista può verificare se un'email è temporanea, ottenere record MX e altro ancora.
Pubblica su
Questa azione viene eseguita sull'entità Utente.
Risultati dell'azione
Arricchimento delle entità
Contrassegna l'entità come sospetta se il numero di motori negativi è pari o superiore alla soglia specificata. is_suspicious: if data.get("score") > threshold
Nome del campo di arricchimento | Logica - Quando applicarla |
---|---|
dominio | Restituisce se esiste nel risultato JSON |
should_block | Restituisce se esiste nel risultato JSON |
punteggio | Restituisce se esiste nel risultato JSON |
usa e getta | Restituisce se esiste nel risultato JSON |
has_mx_records | Restituisce se esiste nel risultato JSON |
has_spf_records | Restituisce se esiste nel risultato JSON |
Risultato dello script
Nome del risultato dello script | Opzioni del valore | Esempio |
---|---|---|
is_success | Vero/Falso | is_success:False |
Risultato 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"
}
]
Bacheca casi
Tipo di risultato | Descrizione | Tipo |
---|---|---|
Messaggio di output* |
|
Generale |
Bacheca casi CSV | Contenuto CSV: dati delle entità(esempio di seguito) | Generale |
Arricchimento | Se i dati sono disponibili, aggiungi quanto segue come arricchimento dell'entità (non dimenticare di aggiungere il prefisso "APIVoid"):
|
Entità |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.