UrlScan.io in Google SecOps einbinden

Dieses Dokument enthält eine Anleitung zur Integration von urlscan.io in Google SecOps.

In diesem Dokument wird beschrieben, wie Sie UrlScan.io in Google Security Operations einbinden.

Anwendungsfälle

Die UrlScan.io-Integration nutzt Google SecOps-Funktionen, um die folgenden Anwendungsfälle zu unterstützen:

  • Automatisierte URL-Analyse: Verdächtige URLs werden automatisch an UrlScan.io gesendet, um Risikostufen zu ermitteln und Screenshots zur visuellen Überprüfung während der Incident-Triage abzurufen.

  • Anreicherung mit Informationen zu Bedrohungen: Warnungen werden angereichert, indem UrlScan.io nach detaillierten Metadaten zu IP-Adressen, Domains und URLs abgefragt wird. Analysten erhalten so sofort Kontext zu ASN, Servertypen und schädlichen Scores.

  • Proaktive Suche in bisherigen Scans: Suchen Sie in vorhandenen öffentlichen und privaten Scans, die mit Indikatoren für Sicherheitsrisiken verknüpft sind, nach bisherigen schädlichen Aktivitäten und Mustern.

  • Detaillierte Forensik und Berichterstellung: Rufen Sie umfassende Scandetails mit bestimmten Scan-IDs ab, um detaillierte Analysen von Cookies, Anforderungszahlen und zugehörigen Links für komplexe Sicherheitsuntersuchungen durchzuführen.

Hinweis

Um die Verbindung zwischen Google SecOps und UrlScan.io zu authentifizieren, müssen Sie einen gültigen API-Schlüssel angeben.

Sie können Ihre API-Schlüssel im Abschnitt Profil Ihres urlscan.io-Kontos abrufen und verwalten.

Integrationsparameter

Für die urlscan.io-Integration sind die folgenden Parameter erforderlich:

Parameter Beschreibung
Api Key

Erforderlich.

Der eindeutige API-Schlüssel, der für die Authentifizierung beim urlscan.io-Dienst verwendet wird.

Verify SSL

Optional.

Wenn diese Option ausgewählt ist, wird das SSL-Zertifikat bei der Verbindung zum UrlScan.io-Server validiert.

Eine Anleitung zum Konfigurieren einer Integration in Google SecOps finden Sie unter Integrationen konfigurieren.

Bei Bedarf können Sie später Änderungen vornehmen. Nachdem Sie eine Integrationsinstanz konfiguriert haben, können Sie sie in Playbooks verwenden. Weitere Informationen zum Konfigurieren und Unterstützen mehrerer Instanzen finden Sie unter Mehrere Instanzen unterstützen.

Aktionen

Weitere Informationen zu Aktionen finden Sie unter Ausstehende Aktionen in „Mein Arbeitsbereich“ beantworten und Manuelle Aktion ausführen.

Ping

Verbindung testen

Parameter

–

Anwendungsfälle

–

Ausführen am

Diese Aktion wird für alle Elemente ausgeführt.

Aktionsergebnisse

Entitätsanreicherung
Statistiken

–

Scriptergebnis
Name des Scriptergebnisses Wertoptionen Beispiel
is_success Wahr/falsch is_success:False
JSON-Ergebnis
N/A

URL-Prüfung

Sie können eine URL einreichen, die gescannt werden soll, und die Scandetails abrufen.

Parameter

Parametername Typ Pflichtfeld Standardwert Beschreibung
Sichtbarkeit

DDL
möglich
:öffentlich, nicht gelistet, privat.

Nein Öffentlich Scans auf urlscan.io haben eine von drei Sichtbarkeitsstufen. Achten Sie darauf, dass Sie die richtige Stufe für Ihren Antrag verwenden.
Grenzwert integer Nein -1 Markiert die Entität als verdächtig, wenn der Wert der Urteile gleich oder höher als der angegebene Grenzwert ist. Der Standardwert ist -1. In diesem Fall wird jede gescannte URL als verdächtig eingestuft.
Insight erstellen Boolesch Nein Ja Wenn diese Option aktiviert ist, wird durch die Aktion ein Insight mit Informationen zu Entitäten erstellt.
Nur verdächtige Statistiken Boolesch Nein Nein Wenn diese Option aktiviert ist, werden nur Informationen zu verdächtigen Einheiten erstellt. Hinweis: Der Parameter „Create Insight“ muss aktiviert sein.
Screenshot zu Insight hinzufügen Boolesch Nein Nein Wenn diese Option aktiviert ist, wird dem Insight ein Screenshot der Website hinzugefügt, sofern verfügbar.

Anwendungsfälle

–

Ausführen am

Diese Aktion wird für die folgenden Einheiten ausgeführt:

  • IP-Adresse
  • Domain
  • URL

Aktionsergebnisse

Entitätsanreicherung
Name Schlüssel
real_url tasks/url
visibility visibility
requests_count len(data/requests)
Cookies CSV-Datei mit Daten/Cookies/Namen
related_links CSV-Datei mit Daten/Links/href
main_country Seite/Land
main_domain Seite/Domain
main_ip page/ip
main_asn page/asnname
main_server Seite/Server
related_ips_count len(lists/ips)
related_domains_count len(lists/domains)
related_countries CSV-Listen/Länder
overall_score verdicts/overall/score
Kategorien verdicts/overall/categories
Tags verdicts/overall/tags
schädlich verdicts/overall/malicious
Statistiken

–

Scriptergebnis
Name des Scriptergebnisses Wertoptionen Beispiel
is_success Wahr/falsch is_success:False
JSON-Ergebnis
[
    {
        "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
        }
    }
]

Nach Scans suchen

Suchen Sie mit Attributen wie Domains, IPs, AS-Nummern (Autonomous System), Hashes usw. nach vorhandenen urlscan.io-Scans. Mit der Aktion werden öffentliche Scans, die von beliebigen Personen durchgeführt wurden, sowie nicht gelistete und private Scans gefunden, die von Ihnen oder Ihren Teams durchgeführt wurden.

Parameter

Parametername Typ Pflichtfeld Standardwert Beschreibung
Maximale Scans Ganzzahl Nein 100 Anzahl der Scans, die pro Entität zurückgegeben werden sollen. Standard: 100, maximal: 10.000 (je nach Abo).

Ausführen am

Diese Aktion wird für die folgenden Einheiten ausgeführt:

  • IP-Adresse
  • Hostnamen
  • URLs
  • Dateiname
  • Hashes
  • Domain

Aktionsergebnisse

Entitätsanreicherung

–

Statistiken

–

Scriptergebnis
Name des Scriptergebnisses Wertoptionen Beispiel
is_success Wahr/falsch is_success:False
JSON-Ergebnis
{"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"
  }
  ]
}
Fall-Repository
Ergebnistyp Wert / Beschreibung Typ
Ausgabenachricht*

Die Aktion darf nicht fehlschlagen oder die Ausführung eines Playbooks stoppen:

  • if find scans for some of the entities (is_success = true): print "Successfully listed scans for the following entities:\n".format(entity.identifier)
  • Wenn für einige der Entitäten keine Scans gefunden wurden (is_success = true): print "Action wasn't able to list scans for the following entities:\n".format(entity.identifier)
  • Wenn keine Scans für alle Entitäten gefunden wurden(is_success = false): Gib „Action wasn't able to list scans for the available entities“ aus.
  • Wenn keine Entitäten vorhanden sind: Gib „No suitable entities were found in the current scope.“ (Es wurden keine geeigneten Entitäten im aktuellen Bereich gefunden.) aus.

    Die Aktion sollte fehlschlagen und die Ausführung eines Playbooks beenden:
    Bei schwerwiegenden Fehlern wie falschen Anmeldedaten, keiner Verbindung zum Server usw. Gib „Error executing action "Search for Scans". Grund: {0}''.format(error.Stacktrace).
Allgemein
Tabelle „Fall-Repository“

Titel: „{entity identifier} – Suchergebnisse“

Spalten:

Scan-ID

URL

Datum des Scans

Größe

IPS

Eindeutige Länder

Land

Scantyp

Allgemein
Link zum Fall-Repository Titel: „urlscan.io Web Report + (Entitäts-ID)“. Allgemein
Anhang im Fall‑Repository Hier wird der Screenshot angezeigt. Allgemein

Vollständige Scandetails abrufen

Vollständige Scandetails nach Scan-ID abrufen

Parameter

Parametername Typ Pflichtfeld Standardwert Beschreibung
Scan-ID String Ja – Rufen Sie den Scanbericht mit der Scan-ID ab. Durch Kommas getrennte Werte.

Ausführen am

Diese Aktion wird nicht für Elemente ausgeführt.

Aktionsergebnisse

Entitätsanreicherung

–

Statistiken

–

Scriptergebnis
Name des Scriptergebnisses Wertoptionen Beispiel
is_success Wahr/falsch is_success:False
JSON-Ergebnis
['Effective URL'] = response['page']['url']
Fall-Repository
Ergebnistyp Wert / Beschreibung Typ
Ausgabenachricht*

Die Aktion darf nicht fehlschlagen oder die Ausführung eines Playbooks stoppen:

  • if find some scan ids (is_success = true): print "Successfully fetched results for the following scans: {scan ids}
  • Wenn einige nicht gefunden wurden (is_success = true): print "Action wasn't able to fetch results for the following scans: {scan ids}
  • Wenn nicht alle gefunden wurden (is_success = false): print "Action wasn't able to fetch results. Die angegebenen Scan-IDs sind nicht über urlscan.io verfügbar.“

Die Aktion sollte fehlschlagen und die Ausführung eines Playbooks beenden:

  • Bei schwerwiegenden Fehlern wie falschen Anmeldedaten, fehlender Verbindung zum Server usw.: „Fehler beim Ausführen der Aktion ‚Vollständige Scandetails abrufen‘. Grund: {0}''.format(error.Stacktrace)
Allgemein
Link zum Fall-Repository Titel: „urlscan.io-Webbericht + (Scan-ID)“ Allgemein
Anhang im Fall‑Repository Hier wird der Screenshot angezeigt. Allgemein

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten