DomainTools Iris Investigate-Ergebnisse abrufen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie DomainTools Iris Investigate-Ergebnisse mithilfe von Amazon S3 in Google Security Operations aufnehmen. Der Parser wandelt Roh-JSON-Daten aus der Iris API von DomainTools in ein strukturiertes Format um, das dem einheitlichen Datenmodell (Unified Data Model, UDM) von Google SecOps entspricht. Es werden Informationen zu Domaindetails, Kontaktinformationen, Sicherheitsrisiken, SSL-Zertifikaten und anderen relevanten Attributen extrahiert und den entsprechenden UDM-Feldern zugeordnet, um eine konsistente Analyse und Threat Intelligence zu ermöglichen.

Hinweise

  • Google SecOps-Instanz
  • Privilegierter Zugriff auf das DomainTools-Unternehmenskonto (API-Zugriff auf Iris Investigate)
  • Privilegierter Zugriff auf AWS (S3, IAM, Lambda, EventBridge)

DomainTools-API-Schlüssel und ‑Endpunkt abrufen

  1. Melden Sie sich im DomainTools API Dashboard an. Nur das Konto des API-Inhabers kann den API-Schlüssel zurücksetzen.
  2. Wählen Sie im Bereich Mein Konto auf dem Tab Kontoübersicht den Link API-Dashboard aufrufen aus.
  3. Rufen Sie den Abschnitt API-Nutzername auf, um Ihren Nutzernamen zu erhalten.
  4. Suchen Sie auf demselben Tab nach Ihrem API-Schlüssel.
  5. Kopieren Sie den Schlüssel und speichern Sie ihn an einem sicheren Ort.
  6. Wenn Sie einen neuen Schlüssel benötigen, wählen Sie API-Schlüssel zurücksetzen aus.

  7. Notieren Sie sich den Endpunkt für Iris Investigate: https://api.domaintools.com/v1/iris-investigate/.

AWS S3-Bucket und IAM für Google SecOps konfigurieren

  1. Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu dieser Anleitung: Bucket erstellen.
  2. Speichern Sie den Namen und die Region des Buckets zur späteren Verwendung (z. B. domaintools-iris).
  3. Erstellen Sie einen Nutzer gemäß dieser Anleitung: IAM-Nutzer erstellen.
  4. Wählen Sie den erstellten Nutzer aus.
  5. Wählen Sie den Tab Sicherheitsanmeldedaten aus.
  6. Klicken Sie im Abschnitt Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
  7. Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
  8. Klicken Sie auf Weiter.
  9. Optional: Fügen Sie ein Beschreibungstag hinzu.
  10. Klicken Sie auf Zugriffsschlüssel erstellen.
  11. Klicken Sie auf CSV-Datei herunterladen, um den Zugriffsschlüssel und den geheimen Zugriffsschlüssel zur späteren Verwendung zu speichern.
  12. Klicken Sie auf Fertig.
  13. Wählen Sie den Tab Berechtigungen aus.
  14. Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
  15. Wählen Sie Berechtigungen hinzufügen aus.
  16. Wählen Sie Richtlinien direkt anhängen aus.
  17. Suchen Sie nach der Richtlinie AmazonS3FullAccess und wählen Sie sie aus.
  18. Klicken Sie auf Weiter.
  19. Klicken Sie auf Berechtigungen hinzufügen.

IAM-Richtlinie und -Rolle für S3-Uploads konfigurieren

  1. Rufen Sie in der AWS-Konsole IAM > Richtlinien > Richtlinie erstellen > JSON-Tab auf.
  2. Geben Sie die folgende Richtlinie ein:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowPutDomainToolsIrisObjects",
          "Effect": "Allow",
          "Action": "s3:PutObject",
          "Resource": "arn:aws:s3:::domaintools-iris/*"
        }
      ]
    }
    
    • Ersetzen Sie domaintools-iris, wenn Sie einen anderen Bucket-Namen eingegeben haben.
  3. Klicken Sie auf Weiter > Richtlinie erstellen.

  4. Rufen Sie IAM > Rollen > Rolle erstellen > AWS-Service > Lambda auf.

  5. Hängen Sie die neu erstellte Richtlinie an.

  6. Geben Sie der Rolle den Namen WriteDomainToolsIrisToS3Role und klicken Sie auf Rolle erstellen.

Lambda-Funktion erstellen

  1. Rufen Sie in der AWS Console Lambda > Funktionen > Funktion erstellen auf.
  2. Klicken Sie auf Von Grund auf erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:

    Einstellung Wert
    Name domaintools_iris_to_s3
    Laufzeit Python 3.13
    Architektur x86_64
    Ausführungsrolle WriteDomainToolsIrisToS3Role
  4. Nachdem die Funktion erstellt wurde, öffnen Sie den Tab Code, löschen Sie den Stub und geben Sie den folgenden Code ein (domaintools_iris_to_s3.py):

    #!/usr/bin/env python3
    # Lambda: Pull DomainTools Iris Investigate results to S3 (no transform)
    
    import os, json, time, urllib.parse
    from urllib.request import Request, urlopen
    from urllib.error import HTTPError
    import boto3
    
    # --- Environment ---
    S3_BUCKET    = os.environ["S3_BUCKET"].strip()
    S3_PREFIX    = os.environ.get("S3_PREFIX", "domaintools/iris/").strip()
    STATE_KEY    = os.environ.get("STATE_KEY", "domaintools/iris/state.json").strip()
    
    DT_API_KEY   = os.environ["DT_API_KEY"].strip()
    DT_API_SECRET= os.environ.get("DT_API_SECRET", "").strip()  # optional if your account uses key-only auth
    
    USE_MODE     = os.environ.get("USE_MODE", "HASH").strip().upper()  # HASH | DOMAINS | QUERY
    SEARCH_HASHES= [h.strip() for h in os.environ.get("SEARCH_HASHES", "").split(";") if h.strip()]
    DOMAINS      = [d.strip() for d in os.environ.get("DOMAINS", "").split(";") if d.strip()]
    QUERY_LIST   = [q.strip() for q in os.environ.get("QUERY_LIST", "").split(";") if q.strip()]
    
    PAGE_SIZE    = int(os.environ.get("PAGE_SIZE", "500"))
    MAX_PAGES    = int(os.environ.get("MAX_PAGES", "20"))
    USE_NEXT     = os.environ.get("USE_NEXT", "true").lower() == "true"
    HTTP_TIMEOUT = int(os.environ.get("HTTP_TIMEOUT", "60"))
    RETRIES      = int(os.environ.get("HTTP_RETRIES", "2"))
    
    BASE_URL = "https://api.domaintools.com/v1/iris-investigate/"
    HDRS = {
        "X-Api-Key": DT_API_KEY,
        "Accept": "application/json",
    }
    if DT_API_SECRET:
        HDRS["X-Api-Secret"] = DT_API_SECRET
    
    s3 = boto3.client("s3")
    
    # --- HTTP helpers ---
    
    def _http_get(url: str) -> dict:
        req = Request(url, method="GET")
        for k, v in HDRS.items():
            req.add_header(k, v)
        attempt = 0
        while True:
            try:
                with urlopen(req, timeout=HTTP_TIMEOUT) as r:
                    return json.loads(r.read().decode("utf-8"))
            except HTTPError as e:
                if e.code in (429, 500, 502, 503, 504) and attempt < RETRIES:
                    delay = int(e.headers.get("Retry-After", "2"))
                    time.sleep(max(1, delay))
                    attempt += 1
                    continue
                raise
    
    def _build_url(params: dict) -> str:
        return BASE_URL + ("?" + urllib.parse.urlencode(params, doseq=True) if params else "")
    
    # --- S3 helpers ---
    
    def _write_page(obj: dict, label: str, page: int) -> str:
        ts = time.strftime("%Y/%m/%d/%H%M%S", time.gmtime())
        key = f"{S3_PREFIX.rstrip('/')}/{ts}-{label}-p{page:05d}.json"
        s3.put_object(
            Bucket=S3_BUCKET, Key=key,
            Body=json.dumps(obj, separators=(",", ":")).encode("utf-8"),
            ContentType="application/json",
        )
        return key
    
    # --- Iris paging ---
    
    def _first_page_params() -> dict:
        params: dict[str, object] = {"page_size": str(PAGE_SIZE)}
        if USE_NEXT:
            params["next"] = "true"
        return params
    
    def _paginate(label: str, params: dict) -> tuple[int, int]:
        pages = 0
        total = 0
        url = _build_url(params)
        while pages < MAX_PAGES:
            data = _http_get(url)
            _write_page(data, label, pages)
    
            resp = data.get("response") or {}
            results = resp.get("results") or []
            total += len(results)
            pages += 1
    
            # Prefer `next` absolute URL if present
            next_url = resp.get("next") if isinstance(resp, dict) else None
            if next_url:
                url = next_url
                continue
    
            # Fallback: position pager when `next=true` not used/supported
            if resp.get("has_more_results") and resp.get("position"):
                base = _first_page_params()
                base.pop("next", None)
                base["position"] = resp["position"]
                url = _build_url(base)
                continue
    
            break
        return pages, total
    
    # --- Mode runners ---
    
    def run_hashes(hashes: list[str]) -> dict:
        agg_pages = agg_results = 0
        for h in hashes:
            params = _first_page_params()
            params["search_hash"] = h
            p, r = _paginate(f"hash-{h}", params)
            agg_pages += p
            agg_results += r
        return {"pages": agg_pages, "results": agg_results}
    
    def run_domains(domains: list[str]) -> dict:
        agg_pages = agg_results = 0
        for d in domains:
            params = _first_page_params()
            # DomainTools accepts `domain` as a filter in Investigate search
            params["domain"] = d
            p, r = _paginate(f"domain-{d}", params)
            agg_pages += p
            agg_results += r
        return {"pages": agg_pages, "results": agg_results}
    
    def run_queries(queries: list[str]) -> dict:
        agg_pages = agg_results = 0
        for q in queries:
            # Merge arbitrary k=v pairs from the query string
            base = _first_page_params()
            for k, v in urllib.parse.parse_qsl(q, keep_blank_values=True):
                base.setdefault(k, v)
            p, r = _paginate(f"query-{q.replace('=','-')}", base)
            agg_pages += p
            agg_results += r
        return {"pages": agg_pages, "results": agg_results}
    
    # --- Entry point ---
    
    def lambda_handler(event=None, context=None):
        if USE_MODE == "HASH" and SEARCH_HASHES:
            res = run_hashes(SEARCH_HASHES)
        elif USE_MODE == "DOMAINS" and DOMAINS:
            res = run_domains(DOMAINS)
        elif USE_MODE == "QUERY" and QUERY_LIST:
            res = run_queries(QUERY_LIST)
        else:
            raise ValueError("Invalid USE_MODE or missing parameters. Set USE_MODE to HASH | DOMAINS | QUERY and provide SEARCH_HASHES | DOMAINS | QUERY_LIST accordingly.")
    
        return {"ok": True, "mode": USE_MODE, **res}
    
    if __name__ == "__main__":
        print(json.dumps(lambda_handler(), indent=2))
    
  5. Klicken Sie auf Konfiguration> Umgebungsvariablen> Bearbeiten> Neue Umgebungsvariable hinzufügen.

  6. Geben Sie die folgenden Umgebungsvariablen ein und ersetzen Sie die Platzhalter durch Ihre Werte:

    Schlüssel Beispielwert Beschreibung
    S3_BUCKET domaintools-iris Name des S3-Buckets, in dem die Daten gespeichert werden.
    S3_PREFIX domaintools/iris/ Optionales S3-Präfix (Unterordner) für Objekte.
    STATE_KEY domaintools/iris/state.json Optionaler Schlüssel für die Datei mit dem Status/Checkpoint.
    DT_API_KEY DT-XXXXXXXXXXXXXXXXXXXX DomainTools-API-Schlüssel.
    DT_API_SECRET YYYYYYYYYYYYYYYYYYYYYYYY DomainTools API-Secret (falls zutreffend).
    USE_MODE HASH | DOMAINS | QUERY Wählen Sie den gewünschten Modus aus. Es kann jeweils nur ein Modus aktiv sein.
    SEARCH_HASHES hash1;hash2;hash3 Erforderlich, wenn USE_MODE=HASH. Eine durch Semikolons getrennte Liste der Hashes gespeicherter Suchanfragen aus der Iris-Benutzeroberfläche.
    DOMAINS example.com;domaintools.com Erforderlich, wenn USE_MODE=DOMAINS. Durch Semikolons getrennte Liste von Domains.
    QUERY_LIST ip=1.1.1.1;ip=8.8.8.8;domain=example.org Erforderlich, wenn USE_MODE=QUERY. Eine durch Semikolons getrennte Liste von Abfragestrings (k=v&k2=v2).
    PAGE_SIZE 500 Zeilen pro Seite (Standardwert: 500).
    MAX_PAGES 20 Maximale Anzahl von Seiten pro Anfrage
  7. Bleiben Sie nach dem Erstellen der Funktion auf der zugehörigen Seite oder öffnen Sie Lambda > Funktionen > Ihre Funktion.

  8. Wählen Sie den Tab Konfiguration aus.

  9. Klicken Sie im Bereich Allgemeine Konfiguration auf Bearbeiten.

  10. Ändern Sie Timeout in 15 minutes (900 seconds) (15 Minuten (900 Sekunden)) und klicken Sie auf Save (Speichern).

EventBridge-Zeitplan erstellen

  1. Gehen Sie zu Amazon EventBridge > Scheduler > Create schedule (Amazon EventBridge > Scheduler > Zeitplan erstellen).
  2. Geben Sie die folgenden Konfigurationsdetails an:
    • Wiederkehrender Zeitplan: Preis (1 hour).
    • Ziel: Ihre Lambda-Funktion.
    • Name: domaintools-iris-1h.
  3. Klicken Sie auf Zeitplan erstellen.

Optional: IAM-Nutzer mit Lesezugriff und Schlüssel für Google SecOps erstellen

  1. Rufen Sie in der AWS-Konsole IAM > Nutzer auf und klicken Sie auf Nutzer hinzufügen.
  2. Geben Sie die folgenden Konfigurationsdetails an:
    • Nutzer: Geben Sie einen eindeutigen Namen ein, z. B. secops-reader.
    • Zugriffstyp: Wählen Sie Zugriffsschlüssel – programmatischer Zugriff aus.
    • Klicken Sie auf Nutzer erstellen.
  3. Richtlinie mit minimalen Leseberechtigungen anhängen (benutzerdefiniert): Nutzer > secops-reader auswählen > Berechtigungen > Berechtigungen hinzufügen > Richtlinien direkt anhängen > Richtlinie erstellen
  4. Geben Sie im JSON-Editor die folgende Richtlinie ein:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::<your-bucket>/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::<your-bucket>"
        }
      ]
    }
    
  5. Legen Sie secops-reader-policy als Name fest.

  6. Gehen Sie zu Richtlinie erstellen> suchen/auswählen > Weiter > Berechtigungen hinzufügen.

  7. Rufen Sie Sicherheitsanmeldedaten > Zugriffsschlüssel > Zugriffsschlüssel erstellen auf.

  8. Laden Sie die CSV herunter (diese Werte werden in den Feed eingegeben).

Feed in Google SecOps konfigurieren, um DomainTools Iris Investigate-Ergebnisse aufzunehmen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. DomainTools Iris Investigate.
  4. Wählen Sie Amazon S3 V2 als Quelltyp aus.
  5. Wählen Sie DomainTools Threat Intelligence als Logtyp aus.
  6. Klicken Sie auf Weiter.
  7. Geben Sie Werte für die folgenden Eingabeparameter an:
    • S3-URI: s3://domaintools-iris/domaintools/iris/
    • Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Option zum Löschen aus.
    • Maximales Dateialter: Standardmäßig 180 Tage.
    • Zugriffsschlüssel-ID: Zugriffsschlüssel des Nutzers mit Zugriff auf den S3-Bucket.
    • Secret Access Key (Geheimer Zugriffsschlüssel): Geheimer Nutzersicherheitsschlüssel mit Zugriff auf den S3-Bucket.
    • Asset-Namespace: domaintools.threat_intel
    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.
  8. Klicken Sie auf Weiter.
  9. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
Aktiv principal.domain.status Direkt aus dem Feld active im Rohlog zugeordnet.
additional_whois_email.[].value about.labels.additional_whois_email Aus dem additional_whois_email-Array extrahiert und als Label im about-Objekt hinzugefügt.
adsense.value about.labels.adsense Aus adsense.value extrahiert und als Label im about-Objekt hinzugefügt.
admin_contact.city.value principal.domain.admin.office_address.city Direkt aus dem Feld admin_contact.city.value im Rohlog zugeordnet.
admin_contact.country.value principal.domain.admin.office_address.country_or_region Direkt aus dem Feld admin_contact.country.value im Rohlog zugeordnet.
admin_contact.email.[].value principal.domain.admin.email_addresses Aus dem Array admin_contact.email extrahiert und dem Feld email_addresses hinzugefügt.
admin_contact.fax.value principal.domain.admin.attribute.labels.fax Aus admin_contact.fax.value extrahiert und als Label mit dem Schlüssel „fax“ im Attribut admin hinzugefügt.
admin_contact.name.value principal.domain.admin.user_display_name Direkt aus dem Feld admin_contact.name.value im Rohlog zugeordnet.
admin_contact.org.value principal.domain.admin.company_name Direkt aus dem Feld admin_contact.org.value im Rohlog zugeordnet.
admin_contact.phone.value principal.domain.admin.phone_numbers Direkt aus dem Feld admin_contact.phone.value im Rohlog zugeordnet.
admin_contact.postal.value principal.domain.admin.attribute.labels.postal Aus admin_contact.postal.value extrahiert und als Label mit dem Schlüssel „postal“ im Attribut admin hinzugefügt.
admin_contact.state.value principal.domain.admin.office_address.state Direkt aus dem Feld admin_contact.state.value im Rohlog zugeordnet.
admin_contact.street.value principal.domain.admin.office_address.name Direkt aus dem Feld admin_contact.street.value im Rohlog zugeordnet.
alexa about.labels.alexa Direkt aus dem Feld alexa im Rohlog zugeordnet und als Label im Objekt about hinzugefügt.
baidu_codes.[].value about.labels.baidu_codes Aus dem baidu_codes-Array extrahiert und als Label im about-Objekt hinzugefügt.
billing_contact.city.value principal.domain.billing.office_address.city Direkt aus dem Feld billing_contact.city.value im Rohlog zugeordnet.
billing_contact.country.value principal.domain.billing.office_address.country_or_region Direkt aus dem Feld billing_contact.country.value im Rohlog zugeordnet.
billing_contact.email.[].value principal.domain.billing.email_addresses Aus dem Array billing_contact.email extrahiert und dem Feld email_addresses hinzugefügt.
billing_contact.fax.value principal.domain.billing.attribute.labels.fax Aus billing_contact.fax.value extrahiert und als Label mit dem Schlüssel „fax“ im Attribut billing hinzugefügt.
billing_contact.name.value principal.domain.billing.user_display_name Direkt aus dem Feld billing_contact.name.value im Rohlog zugeordnet.
billing_contact.org.value principal.domain.billing.company_name Direkt aus dem Feld billing_contact.org.value im Rohlog zugeordnet.
billing_contact.phone.value principal.domain.billing.phone_numbers Direkt aus dem Feld billing_contact.phone.value im Rohlog zugeordnet.
billing_contact.postal.value principal.domain.billing.attribute.labels.postal Aus billing_contact.postal.value extrahiert und als Label mit dem Schlüssel „postal“ im Attribut billing hinzugefügt.
billing_contact.state.value principal.domain.billing.office_address.state Direkt aus dem Feld billing_contact.state.value im Rohlog zugeordnet.
billing_contact.street.value principal.domain.billing.office_address.name Direkt aus dem Feld billing_contact.street.value im Rohlog zugeordnet.
create_date.value principal.domain.creation_time Aus dem Feld create_date.value im Rohlog in das Zeitstempelformat konvertiert.
data_updated_timestamp principal.domain.audit_update_time Aus dem Feld data_updated_timestamp im Rohlog in das Zeitstempelformat konvertiert.
Domain principal.hostname Direkt aus dem Feld domain im Rohlog zugeordnet.
domain_risk.components.[].evidence security_result.detection_fields.evidence Aus dem domain_risk.components.[].evidence-Array extrahiert und als Erkennungsfeld mit dem Schlüssel „evidence“ (Nachweis) im security_result-Objekt hinzugefügt.
domain_risk.components.[].name security_result.category_details Direkt aus dem Feld domain_risk.components.[].name im Rohlog zugeordnet.
domain_risk.components.[].risk_score security_result.risk_score Direkt aus dem Feld domain_risk.components.[].risk_score im Rohlog zugeordnet.
domain_risk.components.[].threats security_result.threat_name Das erste Element des Arrays domain_risk.components.[].threats wird security_result.threat_name zugeordnet.
domain_risk.components.[].threats security_result.detection_fields.threats Die verbleibenden Elemente des domain_risk.components.[].threats-Arrays werden als Erkennungsfelder mit dem Schlüssel „threats“ im security_result-Objekt hinzugefügt.
domain_risk.risk_score security_result.risk_score Direkt aus dem Feld domain_risk.risk_score im Rohlog zugeordnet.
email_domain.[].value about.labels.email_domain Aus dem email_domain-Array extrahiert und als Label im about-Objekt hinzugefügt.
expiration_date.value principal.domain.expiration_time Aus dem Feld expiration_date.value im Rohlog in das Zeitstempelformat konvertiert.
fb_codes.[].value about.labels.fb_codes Aus dem fb_codes-Array extrahiert und als Label im about-Objekt hinzugefügt.
first_seen.value principal.domain.first_seen_time Aus dem Feld first_seen.value im Rohlog in das Zeitstempelformat konvertiert.
ga4.[].value about.labels.ga4 Aus dem ga4-Array extrahiert und als Label im about-Objekt hinzugefügt.
google_analytics.value about.labels.google_analytics Aus google_analytics.value extrahiert und als Label im about-Objekt hinzugefügt.
gtm_codes.[].value about.labels.gtm_codes Aus dem gtm_codes-Array extrahiert und als Label im about-Objekt hinzugefügt.
hotjar_codes.[].value about.labels.hotjar_codes Aus dem hotjar_codes-Array extrahiert und als Label im about-Objekt hinzugefügt.
ip.[].address.value principal.ip Das erste Element des Arrays ip wird principal.ip zugeordnet.
ip.[].address.value about.labels.ip_address Die verbleibenden Elemente des ip-Arrays werden als Labels mit dem Schlüssel „ip_address“ im about-Objekt hinzugefügt.
ip.[].asn.[].value network.asn Das erste Element des ersten ip.asn-Arrays wird network.asn zugeordnet.
ip.[].asn.[].value about.labels.asn Die verbleibenden Elemente der ip.asn-Arrays werden als Labels mit dem Schlüssel „asn“ im about-Objekt hinzugefügt.
ip.[].country_code.value principal.location.country_or_region Die country_code.value des ersten Elements im ip-Array wird principal.location.country_or_region zugeordnet.
ip.[].country_code.value about.location.country_or_region Die country_code.value der verbleibenden Elemente im ip-Array werden about.location.country_or_region zugeordnet.
ip.[].isp.value principal.labels.isp Die isp.value des ersten Elements im ip-Array wird principal.labels.isp zugeordnet.
ip.[].isp.value about.labels.isp Die isp.value der verbleibenden Elemente im ip-Array werden about.labels.isp zugeordnet.
matomo_codes.[].value about.labels.matomo_codes Aus dem matomo_codes-Array extrahiert und als Label im about-Objekt hinzugefügt.
monitor_domain about.labels.monitor_domain Direkt aus dem Feld monitor_domain im Rohlog zugeordnet und als Label im Objekt about hinzugefügt.
monitoring_domain_list_name about.labels.monitoring_domain_list_name Direkt aus dem Feld monitoring_domain_list_name im Rohlog zugeordnet und als Label im Objekt about hinzugefügt.
mx.[].domain.value about.domain.name Direkt aus dem Feld mx.[].domain.value im Rohlog zugeordnet.
mx.[].host.value about.hostname Direkt aus dem Feld mx.[].host.value im Rohlog zugeordnet.
mx.[].ip.[].value about.ip Aus dem Array mx.[].ip extrahiert und dem Feld ip hinzugefügt.
mx.[].priority about.security_result.priority_details Direkt aus dem Feld mx.[].priority im Rohlog zugeordnet.
name_server.[].domain.value about.labels.name_server_domain Aus name_server.[].domain.value extrahiert und als Label mit dem Schlüssel „name_server_domain“ im about-Objekt hinzugefügt.
name_server.[].host.value principal.domain.name_server Aus name_server.[].host.value extrahiert und dem Feld name_server hinzugefügt.
name_server.[].host.value about.domain.name_server Aus name_server.[].host.value extrahiert und dem Feld name_server hinzugefügt.
name_server.[].ip.[].value about.labels.ip Aus dem name_server.[].ip-Array extrahiert und als Label mit dem Schlüssel „ip“ im about-Objekt hinzugefügt.
popularity_rank about.labels.popularity_rank Direkt aus dem Feld popularity_rank im Rohlog zugeordnet und als Label im Objekt about hinzugefügt.
redirect.value about.labels.redirect Aus redirect.value extrahiert und als Label im about-Objekt hinzugefügt.
redirect_domain.value about.labels.redirect_domain Aus redirect_domain.value extrahiert und als Label im about-Objekt hinzugefügt.
registrant_contact.city.value principal.domain.registrant.office_address.city Direkt aus dem Feld registrant_contact.city.value im Rohlog zugeordnet.
registrant_contact.country.value principal.domain.registrant.office_address.country_or_region Direkt aus dem Feld registrant_contact.country.value im Rohlog zugeordnet.
registrant_contact.email.[].value principal.domain.registrant.email_addresses Aus dem Array registrant_contact.email extrahiert und dem Feld email_addresses hinzugefügt.
registrant_contact.fax.value principal.domain.registrant.attribute.labels.fax Aus registrant_contact.fax.value extrahiert und als Label mit dem Schlüssel „fax“ im Attribut registrant hinzugefügt.
registrant_contact.name.value principal.domain.registrant.user_display_name Direkt aus dem Feld registrant_contact.name.value im Rohlog zugeordnet.
registrant_contact.org.value principal.domain.registrant.company_name Direkt aus dem Feld registrant_contact.org.value im Rohlog zugeordnet.
registrant_contact.phone.value principal.domain.registrant.phone_numbers Direkt aus dem Feld registrant_contact.phone.value im Rohlog zugeordnet.
registrant_contact.postal.value principal.domain.registrant.attribute.labels.postal Aus registrant_contact.postal.value extrahiert und als Label mit dem Schlüssel „postal“ im Attribut registrant hinzugefügt.
registrant_contact.state.value principal.domain.registrant.office_address.state Direkt aus dem Feld registrant_contact.state.value im Rohlog zugeordnet.
registrant_contact.street.value principal.domain.registrant.office_address.name Direkt aus dem Feld registrant_contact.street.value im Rohlog zugeordnet.
registrant_name.value about.labels.registrant_name Aus registrant_name.value extrahiert und als Label im about-Objekt hinzugefügt.
registrant_org.value about.labels.registrant_org Aus registrant_org.value extrahiert und als Label im about-Objekt hinzugefügt.
registrar.value principal.domain.registrar Direkt aus dem Feld registrar.value im Rohlog zugeordnet.
registrar_status about.labels.registrar_status Aus dem registrar_status-Array extrahiert und als Label im about-Objekt hinzugefügt.
server_type network.tls.client.server_name Direkt aus dem Feld server_type im Rohlog zugeordnet.
soa_email.[].value principal.user.email_addresses Aus dem Array soa_email extrahiert und dem Feld email_addresses hinzugefügt.
spf_info about.labels.spf_info Direkt aus dem Feld spf_info im Rohlog zugeordnet und als Label im Objekt about hinzugefügt.
ssl_email.[].value about.labels.ssl_email Aus dem ssl_email-Array extrahiert und als Label im about-Objekt hinzugefügt.
ssl_info.[].alt_names.[].value about.labels.alt_names Aus dem ssl_info.[].alt_names-Array extrahiert und als Label im about-Objekt hinzugefügt.
ssl_info.[].common_name.value about.labels.common_name Aus ssl_info.[].common_name.value extrahiert und als Label im about-Objekt hinzugefügt.
ssl_info.[].duration.value about.labels.duration Aus ssl_info.[].duration.value extrahiert und als Label im about-Objekt hinzugefügt.
ssl_info.[].email.[].value about.labels.ssl_info_email Aus dem ssl_info.[].email-Array extrahiert und als Label mit dem Schlüssel „ssl_info_email“ im about-Objekt hinzugefügt.
ssl_info.[].hash.value network.tls.server.certificate.sha1 Die hash.value des ersten Elements im ssl_info-Array wird network.tls.server.certificate.sha1 zugeordnet.
ssl_info.[].hash.value about.labels.hash Die hash.value der verbleibenden Elemente im ssl_info-Array werden about.labels.hash zugeordnet.
ssl_info.[].issuer_common_name.value network.tls.server.certificate.issuer Die issuer_common_name.value des ersten Elements im ssl_info-Array wird network.tls.server.certificate.issuer zugeordnet.
ssl_info.[].issuer_common_name.value about.labels.issuer_common_name Die issuer_common_name.value der verbleibenden Elemente im ssl_info-Array werden about.labels.issuer_common_name zugeordnet.
ssl_info.[].not_after.value network.tls.server.certificate.not_after Die not_after.value des ersten Elements im ssl_info-Array wird in das Zeitstempelformat konvertiert und network.tls.server.certificate.not_after zugeordnet.
ssl_info.[].not_after.value about.labels.not_after Die not_after.value der verbleibenden Elemente im ssl_info-Array werden about.labels.not_after zugeordnet.
ssl_info.[].not_before.value network.tls.server.certificate.not_before Die not_before.value des ersten Elements im ssl_info-Array wird in das Zeitstempelformat konvertiert und network.tls.server.certificate.not_before zugeordnet.
ssl_info.[].not_before.value about.labels.not_before Die not_before.value der verbleibenden Elemente im ssl_info-Array werden about.labels.not_before zugeordnet.
ssl_info.[].organization.value network.organization_name Die organization.value des ersten Elements im ssl_info-Array wird network.organization_name zugeordnet.
ssl_info.[].organization.value about.labels.organization Die organization.value der verbleibenden Elemente im ssl_info-Array werden about.labels.organization zugeordnet.
ssl_info.[].subject.value about.labels.subject Aus ssl_info.[].subject.value extrahiert und als Label im about-Objekt hinzugefügt.
statcounter_project_codes.[].value about.labels.statcounter_project_codes Aus dem statcounter_project_codes-Array extrahiert und als Label im about-Objekt hinzugefügt.
statcounter_security_codes.[].value about.labels.statcounter_security_codes Aus dem statcounter_security_codes-Array extrahiert und als Label im about-Objekt hinzugefügt.
tags.[].label about.file.tags Aus tags.[].label extrahiert und dem Feld tags hinzugefügt.
tags.[].scope security_result.detection_fields.scope Aus tags.[].scope extrahiert und als Erkennungsfeld mit dem Schlüssel „scope“ im security_result-Objekt hinzugefügt.
tags.[].tagged_at security_result.detection_fields.tagged_at Aus tags.[].tagged_at extrahiert und als Erkennungsfeld mit dem Schlüssel „tagged_at“ im security_result-Objekt hinzugefügt.
technical_contact.city.value principal.domain.tech.office_address.city Direkt aus dem Feld technical_contact.city.value im Rohlog zugeordnet.
technical_contact.country.value principal.domain.tech.office_address.country_or_region Direkt aus dem Feld technical_contact.country.value im Rohlog zugeordnet.
technical_contact.email.[].value principal.domain.tech.email_addresses Aus dem Array technical_contact.email extrahiert und dem Feld email_addresses hinzugefügt.
technical_contact.fax.value principal.domain.tech.attribute.labels.fax Aus technical_contact.fax.value extrahiert und als Label mit dem Schlüssel „fax“ im Attribut tech hinzugefügt.
technical_contact.name.value principal.domain.tech.user_display_name Direkt aus dem Feld technical_contact.name.value im Rohlog zugeordnet.
technical_contact.org.value principal.domain.tech.company_name Direkt aus dem Feld technical_contact.org.value im Rohlog zugeordnet.
technical_contact.phone.value principal.domain.tech.phone_numbers Direkt aus dem Feld technical_contact.phone.value im Rohlog zugeordnet.
technical_contact.postal.value principal.domain.tech.attribute.labels.postal Aus technical_contact.postal.value extrahiert und als Label mit dem Schlüssel „postal“ im Attribut tech hinzugefügt.
technical_contact.state.value principal.domain.tech.office_address.state Direkt aus dem Feld technical_contact.state.value im Rohlog zugeordnet.
technical_contact.street.value principal.domain.tech.office_address.name Direkt aus dem Feld technical_contact.street.value im Rohlog zugeordnet.
tld about.labels.tld Direkt aus dem Feld tld im Rohlog zugeordnet und als Label im Objekt about hinzugefügt.
timestamp about.labels.timestamp Direkt aus dem Feld timestamp im Rohlog zugeordnet und als Label im Objekt about hinzugefügt.
website_response principal.network.http.response_code Direkt aus dem Feld website_response im Rohlog zugeordnet.
website_title about.labels.website_title Direkt aus dem Feld website_title im Rohlog zugeordnet und als Label im Objekt about hinzugefügt.
whois_url principal.domain.whois_server Direkt aus dem Feld whois_url im Rohlog zugeordnet.
yandex_codes.[].value about.labels.yandex_codes Aus dem yandex_codes-Array extrahiert und als Label im about-Objekt hinzugefügt.
edr.client.hostname Auf den Wert des Felds domain festgelegt.
edr.client.ip_addresses Auf den Wert des ersten Elements im ip-Array festgelegt, also ip.[0].address.value.
edr.raw_event_name Auf „STATUS_UPDATE“ festlegen, wenn principal.hostname vorhanden ist, andernfalls auf „GENERIC_EVENT“.
metadata.event_timestamp Wird aus dem Feld create_time der obersten Ebene im Rohlog kopiert.
metadata.event_type Auf „STATUS_UPDATE“ festlegen, wenn principal.hostname vorhanden ist, andernfalls auf „GENERIC_EVENT“.
metadata.log_type Legen Sie diesen Wert auf „DOMAINTOOLS_THREATINTEL“ fest.
metadata.product_name Legen Sie diesen Wert auf „DOMAINTOOLS“ fest.
metadata.vendor_name Legen Sie diesen Wert auf „DOMAINTOOLS“ fest.

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