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 automatizzata 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 della threat intelligence: 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 di pericolosità.

  • Ricerca proattiva delle 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 dei cookie, dei conteggi delle richieste e dei 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 tue 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 durante la connessione al server UrlScan.io.

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.

Dindin

Testa la connettività.

Parametri

N/D

Casi d'uso

N/D

Esegui il

Questa azione viene eseguita su tutte le entità.

Risultati dell'azione

Arricchimento delle entità
Insight

N/D

Risultato script
Script Result Name Opzioni di valore Esempio
is_success Vero/Falso is_success:False
Risultato JSON
N/A

Controllo URL

Invia un URL da sottoporre a scansione e ottieni i dettagli della scansione.

Parametri

Nome parametro Tipo Is Mandatory Valore predefinito Descrizione
Visibilità

DDL
possibili:
pubblico, non in elenco, privato.

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 sospetto ogni URL analizzato.
Crea insight Booleano No Sì Se abilitata, l'azione creerà un insight contenente informazioni sulle entità.
Solo insight sospetti Booleano No No Se abilitata, l'azione creerà insight solo per le entità sospette. Nota: il parametro "Crea insight" deve essere abilitato.
Aggiungi screenshot all'insight Booleano No No Se l'opzione è attiva, l'azione aggiungerà uno screenshot del sito web all'insight, se disponibile.

Casi d'uso

N/D

Esegui il

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 page/country
main_domain pagina/dominio
main_ip page/ip
main_asn page/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
Insight

N/D

Risultato script
Script Result Name 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 come 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 Is Mandatory Valore predefinito Descrizione
Numero massimo di scansioni Numero intero No 100 Numero di scansioni da restituire per entità. Valore predefinito: 100, valore massimo: 10.000 (a seconda dell'abbonamento).

Esegui il

Questa azione viene eseguita sulle seguenti entità:

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

Risultati dell'azione

Arricchimento delle entità

N/D

Insight

N/D

Risultato script
Script Result Name 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 avere esito negativo 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)
  • If didn't find scans for some of the entities (is_success = true): print "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 è stata in grado di elencare le scansioni per le entità disponibili".
  • If no entities: print "No suitable entities were found in the current scope.

    The action should fail and stop a playbook execution:
    if fatal error, like wrong credentials, no connection to server, other: print "Error executing action "Search for Scans". Reason: {0}''.format(error.Stacktrace).
Generale
Tabella della bacheca casi

Titolo: "{entity identifier} - Risultati di ricerca"

Colonne:

ID scansione

URL

Data scansione

Dimensioni

IPS

Unique Countries

Paese

Tipo di scansione

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

Get Scan Full Details

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

Parametri

Nome parametro Tipo Is Mandatory Valore predefinito Descrizione
ID scansione Stringa Sì N/D Ottieni il report della scansione utilizzando l'ID scansione. Valori separati da virgola.

Esegui il

Questa azione non viene eseguita sulle entità.

Risultati dell'azione

Arricchimento delle entità

N/D

Insight

N/D

Risultato script
Script Result Name 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 avere esito negativo 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 ne hai trovate alcune (is_success = true): stampa "L'azione non è riuscita a recuperare i risultati per le seguenti scansioni: {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 dovrebbe non riuscire e interrompere l'esecuzione di un playbook:

  • if fatal error, like wrong credentials, no connection to server, other: print "Error executing action "Get Scan Full Details". Reason: {0}''.format(error.Stacktrace)
Generale
Link alla bacheca casi Titolo: "urlscan.io Web Report + (ID scansione). Generale
Allegato della bacheca casi Conterrà lo screenshot. Generale

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