Integra UrlScan.io con Google SecOps

Questo documento fornisce indicazioni su come integrare urlscan.io con Google SecOps.

Questo documento spiega come integrare UrlScan.io con Google Security Operations.

Casi d'uso

L'integrazione di UrlScan.io utilizza le funzionalità di Google SecOps per supportare i seguenti casi d'uso:

  • Analisi automatica degli URL: invia automaticamente gli URL sospetti a UrlScan.io per determinare i livelli di rischio e recuperare gli screenshot per la verifica visiva durante il triage degli incidenti.

  • Arricchimento delle informazioni sulle minacce: arricchisci gli avvisi eseguendo query su UrlScan.io per ottenere metadati dettagliati su indirizzi IP, domini e URL, fornendo agli analisti un contesto immediato su ASN, tipi di server e punteggi dannosi.

  • Ricerca proattiva di scansioni storiche: cerca scansioni pubbliche e private esistenti associate a indicatori di compromissione per identificare attività e pattern dannosi storici.

  • Analisi forense e report approfonditi: recupera i dettagli completi della scansione utilizzando ID scansione specifici per eseguire un'analisi approfondita di cookie, conteggi delle richieste e link correlati per indagini di sicurezza complesse.

Prima di iniziare

Per autenticare la connessione tra Google SecOps e UrlScan.io, devi fornire una chiave API valida.

Puoi ottenere e gestire le chiavi API nella sezione Profilo del tuo account urlscan.io.

Parametri di integrazione

L'integrazione di urlscan.io richiede i seguenti parametri:

Parametro Descrizione
Api Key

Obbligatorio.

La chiave API univoca utilizzata per l'autenticazione con il servizio urlscan.io.

Verify SSL

Facoltativo.

Se selezionata, l'integrazione convalida il certificato SSL quando si connette al server UrlScan.io.

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.

Dindin

Testa la connettività.

Parametri

N/D

Casi d'uso

N/D

Run On

Questa azione viene eseguita su tutte le entità.

Risultati dell'azione

Arricchimento delle entità
Approfondimenti

N/D

Risultato script
Nome del risultato dello script Opzioni di valore Esempio
is_success Vero/Falso is_success:False
Risultato JSON
N/A

Controllo URL

Invia un URL da scansionare e ottieni i dettagli della scansione.

Parametri

Nome parametro Tipo È obbligatorio Valore predefinito Descrizione
Visibilità

DDL
possible:
public, unlisted, private.

No pubblica Le scansioni su urlscan.io hanno uno dei tre livelli di visibilità, assicurati di utilizzare il livello appropriato per l'invio.
Soglia integer No -1 Contrassegna l'entità come sospetta se il punteggio dei verdetti è uguale o superiore alla soglia specificata. Il valore predefinito è -1, in questo caso consideriamo ogni URL scansionato come sospetto.
Crea approfondimento Booleano No Sì Se attivata, l'azione creerà un insight contenente informazioni sulle entità.
Solo approfondimenti sospetti Booleano No No Se abilitata, l'azione creerà approfondimenti solo per le entità sospette. Nota: il parametro "Crea insight" deve essere attivato.
Aggiungere uno screenshot all'insight Booleano No No Se attivata, l'azione aggiungerà uno screenshot del sito web all'approfondimento, se disponibile.

Casi d'uso

N/D

Run On

Questa azione viene eseguita sulle seguenti entità:

  • Indirizzo IP
  • Dominio
  • URL

Risultati dell'azione

Arricchimento delle entità
Nome Key (Chiave)
real_url tasks/url
visibilità visibilità
requests_count len(data/requests)
cookie CSV di dati/cookie/nome
related_links CSV di dati/link/href
main_country pagina/paese
main_domain pagina/dominio
main_ip page/ip
main_asn pagina/asnname
main_server pagina/server
related_ips_count len(lists/ips)
related_domains_count len(lists/domains)
related_countries Elenchi/paesi CSV
overall_score verdicts/overall/score
categorie verdicts/overall/categories
Tag verdicts/overall/tags
dannose verdicts/overall/malicious
Approfondimenti

N/D

Risultato script
Nome del risultato dello script Opzioni di valore Esempio
is_success Vero/Falso is_success:False
Risultato JSON
[
    {
        "Entity": "https://example.com",
        "EntityResult": {
            "lists": {
                "ips": [
                    "0.0.0.0"
                ],
                "countries": [
                    "ZZ"
                ],
                "asns": [
                    "00000"
                ],
                "domains": [
                    "subdomain.example.com"
                ],
                "servers": [
                    "GenericServer/1.0.0"
                ],
                "urls": [
                    "https://example.com/",
                    "https://example.com/assets/image.png",
                    "https://example.com/assets/script.js",
                    "https://example.com/assets/style.svg",
                    "https://example.com/favicon.ico"
                ],
                "linkDomains": [
                    "node1.example.com",
                    "node2.example.com",
                    "node3.example.com"
                ],
                "certificates": [
                    {
                        "subjectName": "*.example.com",
                        "issuer": "CA-0",
                        "validFrom": 1000000000,
                        "validTo": 2000000000
                    }
                ],
                "hashes": [
                    "hash_string_alpha_001",
                    "hash_string_alpha_002",
                    "hash_string_alpha_003"
                ]
            },
            "page": {
                "asn": "AS00000",
                "asnname": "PROVIDER - Service Provider Inc., ZZ",
                "city": "",
                "country": "ZZ",
                "domain": "subdomain.example.com",
                "ip": "0.0.0.0",
                "ptr": "host.provider.net",
                "server": "GenericServer/1.0.0",
                "url": "https://example.com/",
                "apexDomainAgeDays": 1,
                "mimeType": "application/octet-stream",
                "title": "Title Placeholder",
                "tlsValidDays": 0,
                "tlsAgeDays": 0,
                "domainAgeDays": 1,
                "tlsValidFrom": "2000-01-01T00:00:00.000Z",
                "umbrellaRank": 0,
                "apexDomain": "example.com",
                "tlsIssuer": "CA-0",
                "status": "000"
            },
            "scanner": {
                "country": "zz"
            },
            "stats": {
                "IPv6Percentage": 0,
                "adBlocked": 0,
                "malicious": 0,
                "securePercentage": 0,
                "secureRequests": 0,
                "totalLinks": 0,
                "uniqCountries": 0
            },
            "submitter": {
                "country": "ZZ"
            },
            "task": {
                "method": "system",
                "source": "source_id",
                "time": "2000-01-01T00:00:00.000Z",
                "url": "https://example.com/",
                "uuid": "00000000-0000-0000-0000-000000000000",
                "visibility": "private",
                "reportURL": "https://service.io/result/id/",
                "screenshotURL": "https://service.io/screen/id.png",
                "domURL": "https://service.io/dom/id/",
                "domain": "subdomain.example.com",
                "apexDomain": "example.com"
            },
            "verdicts": {
                "overall": {
                    "score": 0,
                    "categories": [],
                    "brands": [],
                    "tags": [],
                    "malicious": false,
                    "hasVerdicts": false
                },
                "service_provider": {
                    "score": 0,
                    "categories": [],
                    "brands": [],
                    "tags": [],
                    "malicious": false,
                    "hasVerdicts": false
                },
                "engines": {
                    "score": 0,
                    "malicious": false,
                    "categories": [],
                    "enginesTotal": 0,
                    "maliciousTotal": 0,
                    "benignTotal": 0,
                    "maliciousVerdicts": [],
                    "benignVerdicts": [],
                    "hasVerdicts": false,
                    "tags": [
                        "tag-alpha",
                        "tag-beta"
                    ]
                },
                "community": {
                    "score": 0,
                    "categories": [],
                    "brands": [],
                    "votesTotal": 0,
                    "votesMalicious": 0,
                    "votesBenign": 0,
                    "malicious": false,
                    "hasVerdicts": false
                }
            },
            "is_risky": false
        }
    }
]

Cerca scansioni

Cerca scansioni esistenti di urlscan.io in base ad attributi quali domini, IP, numeri di sistemi autonomi (AS), hash e così via. L'azione troverà scansioni pubbliche eseguite da chiunque, nonché scansioni non in elenco e private eseguite da te o dai tuoi team.

Parametri

Nome parametro Tipo È obbligatorio Valore predefinito Descrizione
Numero massimo di scansioni Numero intero No 100 Numero di scansioni da restituire per entità. Predefinito: 100, massimo: 10.000 (a seconda dell'abbonamento).

Run On

Questa azione viene eseguita sulle seguenti entità:

  • Indirizzo IP
  • Nomi host
  • URL
  • Nome del file
  • Hash
  • Dominio

Risultati dell'azione

Arricchimento delle entità

N/D

Approfondimenti

N/D

Risultato script
Nome del risultato dello script Opzioni di valore Esempio
is_success Vero/Falso is_success:False
Risultato JSON
{"entity_identifier": "www.unitedneighborsfcu.com",
"entity_results":[
  {
        "indexedAt": "2020-12-09T12:16:43.329Z",
        "task": {
            "visibility": "public",
            "method": "automatic",
            "domain": "www.unitedneighborsfcu.com",
            "time": "2020-12-09T12:16:23.168Z",
            "source": "certstream-suspicious",
            "uuid": "96310829-fed4-4d61-9fb0-39eb2952719f",
            "url": "https://www.unitedneighborsfcu.com"
        },
        "stats": {
            "uniqIPs": 6,
            "consoleMsgs": 0,
            "uniqCountries": 3,
            "dataLength": 1938842,
            "encodedDataLength": 1568193,
            "requests": 28
        },
        "page": {
            "country": "US",
            "server": "Microsoft-IIS/10.0",
            "domain": "www.unitedneighborsfcu.com",
            "ip": "8.21.114.55",
            "mimeType": "text/html",
            "asnname": "LEVEL3, US",
            "asn": "AS3356",
            "url": "https://www.unitedneighborsfcu.com/",
            "status": "200"
        },
        "_id": "96310829-fed4-4d61-9fb0-39eb2952719f",
        "sort": [1607516183168, "96310829-fed4-4d61-9fb0-39eb2952719f"],
        "result": "https://urlscan.io/api/v1/result/96310829-fed4-4d61-9fb0-39eb2952719f/",
        "screenshot": "https://urlscan.io/screenshots/96310829-fed4-4d61-9fb0-39eb2952719f.png"
  }
  ]
}
Bacheca casi
Tipo di risultato Valore / Descrizione Tipo
Messaggio di output*

L'azione non deve non riuscire né interrompere l'esecuzione di un playbook:

  • if find scans for some of the entities (is_success = true): print "Successfully listed scans for the following entities:\n".format(entity.identifier)
  • Se non sono state trovate scansioni per alcune entità (is_success = true): stampa "Action wasn't able to list scans for the following entities:\n".format(entity.identifier)
  • Se non sono state trovate scansioni per tutte le entità(is_success = false), stampa "L'azione non è riuscita a elencare le scansioni per le entità disponibili".
  • Se non ci sono entità:stampa "Non sono state trovate entità adatte nell'ambito attuale.

    L'azione deve non riuscire e interrompere l'esecuzione di un playbook:
    se si verifica un errore irreversibile, ad esempio credenziali errate, nessuna connessione al server, altro: stampa "Errore durante l'esecuzione dell'azione "Cerca scansioni". Motivo: {0}''.format(error.Stacktrace).
Generale
Tabella Bacheca casi

Titolo: "{entity identifier} - Search Results" (risultati di ricerca)

Colonne:

ID scansione

URL

Data scansione

Dimensioni

IPS

Paesi unici

Paese

Tipo di scansione

Generale
Link alla bacheca casi Titolo: "Report web urlscan.io + (ID entità). Generale
Allegato della bacheca casi Contiene lo screenshot. Generale

Visualizzare tutti i dettagli della scansione

Recuperare i dettagli completi della scansione in base all'ID scansione

Parametri

Nome parametro Tipo È obbligatorio Valore predefinito Descrizione
ID scansione Stringa Sì N/D Recupera il report della scansione utilizzando l'ID scansione. Valori separati da virgole.

Run On

Questa azione non viene eseguita sulle entità.

Risultati dell'azione

Arricchimento delle entità

N/D

Approfondimenti

N/D

Risultato script
Nome del risultato dello script Opzioni di valore Esempio
is_success Vero/Falso is_success:False
Risultato JSON
['Effective URL'] = response['page']['url']
Bacheca casi
Tipo di risultato Valore / Descrizione Tipo
Messaggio di output*

L'azione non deve non riuscire né interrompere l'esecuzione di un playbook:

  • if find some scan ids (is_success = true): print "Successfully fetched results for the following scans: {scan ids}
  • Se non sono stati trovati alcuni (is_success = true): stampa "Action wasn't able to fetch results for the following scans: {scan ids}
  • If didn't find all (is_success = false): print "Action wasn't able to fetch results. Gli ID scansione forniti non sono disponibili utilizzando urlscan.io"

L'azione deve non riuscire e interrompere l'esecuzione di un playbook:

  • Se si verifica un errore irreversibile, ad esempio credenziali errate, nessuna connessione al server, altro: stampa "Errore durante l'esecuzione dell'azione "Ottieni dettagli completi della scansione". Motivo: {0}''.format(error.Stacktrace)
Generale
Link alla bacheca casi Titolo: "Report web di urlscan.io + (ID scansione). Generale
Allegato della bacheca casi Contiene lo screenshot. Generale

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