Integra APIVoid con Google SecOps

Questo documento descrive come integrare APIVoid con Google Security Operations (Google SecOps).

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 specificamente per le API v2 dalla dashboard utente di 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).

Genera una chiave API APIVoid v2

Per generare la chiave API APIVoid v2, completa questi passaggi:

  1. Accedi alla dashboard utente di APIVoid.

  2. Vai alla sezione Chiavi API. (La posizione potrebbe variare in base agli aggiornamenti della dashboard.)

  3. 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ì 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 Configura le integrazioni.

Se necessario, puoi 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 Supporto di più istanze.

Azioni

Per saperne di più sulle azioni, consulta Rispondi alle azioni in attesa dalla scrivania di lavoro ed Esegui un'azione manuale nel tuo caso.

Ottieni reputazione dominio

I controlli della reputazione del dominio verificano se un dominio è escluso da servizi di liste bloccate di domini popolari e attendibili, come URLVir, ThreatLog, OpenPhish, Spam404, PhishTank, ZeuS Tracker e altri. I vari servizi di liste bloccate di 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 insight Casella di controllo Selezionata Sì Specifica se l'azione deve creare o meno insight.

Casi d'uso

Uno dei casi d'uso dell'API Domain Reputation è verificare se i siti web del client sono esclusi, controllare gli URL inviati dagli utenti sulla 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

Enrichment 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 applicarle
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
Insight
Gravità Descrizione
Avviso Viene creato un insight di avviso per informare sullo stato dannoso dell'entità arricchita. Viene creato quando il numero di motori rilevati è uguale o superiore alla soglia minima di sospetto 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 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 insight Casella di controllo Selezionata Sì Specifica se l'azione deve creare o meno insight.

Pubblica su

Questa azione viene eseguita sull'entità Indirizzo IP.

Risultati dell'azione

Enrichment 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 applicarle
informazioni Restituisce se esiste nel risultato JSON
liste nere Restituisce se esiste nel risultato JSON
anonymity Restituisce se esiste nel risultato JSON
ip Restituisce se esiste nel risultato JSON
Insight
Gravità Descrizione
Avviso Viene creato un insight di avviso per informare sullo stato dannoso dell'hash arricchito. L'insight viene creato quando il numero di motori rilevati è uguale o superiore alla soglia minima di sospetto 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"
    }
]

Ottieni reputazione URL

Ottieni la reputazione di sicurezza e lo scoring del 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 recupera la reputazione di un dominio o di un indirizzo IP.

Pubblica su

Questa azione viene eseguita sull'entità URL.

Risultati dell'azione

Enrichment 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 applicarle
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
redirection 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*
  1. Entità riuscite: "APIVoid: reputazione recuperata per le seguenti entità: <elenco identificatori entità>
  2. Entità non caricate: "Si è verificato un errore nelle seguenti entità: <elenco identificatori entità>"
  3. Entità mancanti (nessun dato): "Impossibile trovare la reputazione per le seguenti entità: <elenco identificatori entità>"
  4. Avviso senza entità URL: "APIVoid: No URLs found." (APIVoid: nessun URL trovato).
Generale
Bacheca casi CSV

Se i dati sono disponibili, crea una nuova tabella CSV delle entità:

  1. domain blocklist report: data.get("report",{}).get("domain_blacklist",{}).get("engines", [])
Generale
Arricchimento

Se i dati sono disponibili, aggiungi quanto segue come arricchimento dell'entità (non dimenticare di aggiungere il prefisso "APIVoid"):

  1. geo_location: data.get("report",{}).get("geo_location",{}).get("countries", [])
  2. is_suspicious_domain: data.get("report",{}).get("security_checks",{}).get("is_suspicious_domain")
  3. is_domain_blacklisted: data.get("report",{}).get("security_checks",{}).get("is_domain_blacklisted")
  4. is_risky_geo_location: data.get("report",{}).get("security_checks",{}).get("is_risky_geo_location")
  5. risk_score: data.get("report", {}).get("risk_score", {}).get("result")
  6. is_external_redirect: data.get("report",{}).get("security_checks",{}).get("is_external_redirect")
Entità

Acquisisci screenshot

Acquisisci 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 dell'immagine PNG o JPG.

Pubblica su

Questa azione viene eseguita sull'entità Utente.

Risultati dell'azione

Enrichment delle entità

Contrassegna l'entità come sospetta se il numero di motori negativi è uguale o superiore alla soglia specificata. is_suspicious: if data.get("score") > threshold

Nome del campo di arricchimento Logica: quando applicarle
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*
  1. Entità riuscite: "APIVoid: Added screenshots for the following entities: <entities identifier list>"
  2. Entità non riuscite: "Si è verificato un errore nelle seguenti entità: <elenco di identificatori di entità>"
  3. Entità mancanti (nessun dato): "Nessuno screenshot trovato per le seguenti entità: <elenco di identificatori di entità>"
  4. Avviso senza entità URL: "APIVoid: No URL entities found for capturing screenshots." (APIVoid: nessuna entità URL trovata per l'acquisizione di screenshot).
  5. Per entità di grandi dimensioni (dimensioni del file allegato > 3 MB): "Impossibile aggiungere screenshot come allegati alle seguenti entità: <<elenco di identificatori di entità>>"
Generale
Allegati

Se i dati sono disponibili, crea un nuovo oggetto file:

  1. attachment title: 'Screenshot - {0}'.format(entity.identifier)
  2. Il nome file deve essere l'URL senza il suffisso (https/http) + "_capture.<formato file>"
  3. screenshot is returned in base64 encoded string --> file content should be b64decode(data.get('base64_file'))
  4. Non dimenticare di aggiungere try, except: abbiamo un limite di 3 MB dalla piattaforma. In caso di errore, aggiungi un messaggio pertinente al logger.
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 è temporanea, 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 è usa e getta, ottenere record MX e altro ancora.

Pubblica su

Questa azione viene eseguita sull'entità Utente.

Risultati dell'azione

Enrichment delle entità

Contrassegna l'entità come sospetta se il numero di motori negativi è uguale o superiore alla soglia specificata. is_suspicious: if data.get("score") > threshold

Nome del campo di arricchimento Logica: quando applicarle
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*
  1. Entità riuscite: "APIVoid: informazioni recuperate per le seguenti entità: <elenco identificatori entità>
  2. Entità non caricate: "Si è verificato un errore nelle seguenti entità: <elenco identificatori entità>"
  3. Entità mancanti (nessun dato): "Impossibile trovare informazioni per le seguenti entità: <elenco identificatori entità>"
  4. Avviso senza entità URL: "APIVoid: No emails found." (APIVoid: nessuna email trovata).
Generale
Bacheca casi CSV Contenuti 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"):

  1. suspicious_domain: data.get("suspicious_domain")
  2. should_block: data.get("should_block")
  3. score: data.get("score")
  4. disposable: data.get("disposable")
  5. has_mx_records: data.get("has_mx_records")
  6. has_spf_records: data.get("has_spf_records")
Entità

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.