DomainTools Iris Investigate の結果を収集する

以下でサポートされています。

このドキュメントでは、Amazon S3 を使用して DomainTools Iris Investigate の結果を Google Security Operations に取り込む方法について説明します。パーサーは、DomainTools の Iris API からの未加工の JSON データを、Google SecOps の Unified Data Model(UDM)に準拠した構造化形式に変換します。ドメインの詳細、連絡先情報、セキュリティ リスク、SSL 証明書、その他の関連属性に関する情報を抽出し、対応する UDM フィールドにマッピングして、一貫した分析と脅威インテリジェンスを実現します。

始める前に

  • Google SecOps インスタンス
  • DomainTools エンタープライズ アカウントへの特権アクセス(Iris Investigate への API アクセス)
  • AWS(S3、IAM、Lambda、EventBridge)への特権アクセス

DomainTools API キーとエンドポイントを取得する

  1. DomainTools API ダッシュボードにログインします(API キーをリセットできるのは API 所有者アカウントのみです)。
  2. [My Account] セクションで、[Account Summary] タブにある [View API Dashboard] リンクを選択します。
  3. [API Username] セクションに移動して、ユーザー名を取得します。
  4. 同じタブで、[API キー] を見つけます。
  5. キーをコピーして安全な場所に保存します。
  6. 新しいキーが必要な場合は、[API キーをリセット] を選択します。

  7. Iris Investigate エンドポイントhttps://api.domaintools.com/v1/iris-investigate/)をメモします。

Google SecOps 用に AWS S3 バケットと IAM を構成する

  1. バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
  2. 後で参照できるように、バケットの名前リージョンを保存します(例: domaintools-iris)。
  3. IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
  4. 作成したユーザーを選択します。
  5. [セキュリティ認証情報] タブを選択します。
  6. [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
  7. [ユースケース] として [サードパーティ サービス] を選択します。
  8. [次へ] をクリックします。
  9. 省略可: 説明タグを追加します。
  10. [アクセスキーを作成] をクリックします。
  11. [CSV ファイルをダウンロード] をクリックして、[アクセスキー] と [シークレット アクセスキー] を保存し、後で使用できるようにします。
  12. [完了] をクリックします。
  13. [権限] タブを選択します。
  14. [権限ポリシー] セクションで、[権限を追加] をクリックします。
  15. [権限を追加] を選択します。
  16. [ポリシーを直接アタッチする] を選択します。
  17. AmazonS3FullAccess ポリシーを検索して選択します。
  18. [次へ] をクリックします。
  19. [権限を追加] をクリックします。

S3 アップロードの IAM ポリシーとロールを構成する

  1. AWS コンソールで、[IAM] > [ポリシー] > [ポリシーの作成] > [JSON] タブに移動します。
  2. 次のポリシーを入力します。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowPutDomainToolsIrisObjects",
          "Effect": "Allow",
          "Action": "s3:PutObject",
          "Resource": "arn:aws:s3:::domaintools-iris/*"
        }
      ]
    }
    
    • 別のバケット名を入力した場合は、domaintools-iris を置き換えます。
  3. [次へ] > [ポリシーを作成] をクリックします。

  4. [IAM] > [ロール] > [ロールの作成] > [AWS サービス] > [Lambda] に移動します。

  5. 新しく作成したポリシーを関連付けます。

  6. ロールに「WriteDomainToolsIrisToS3Role」という名前を付けて、[ロールを作成] をクリックします。

Lambda 関数を作成する

  1. AWS コンソールで、[Lambda] > [Functions] > [Create function] に移動します。
  2. [Author from scratch] をクリックします。
  3. 次の構成情報を提供してください。

    設定
    名前 domaintools_iris_to_s3
    ランタイム Python 3.13
    アーキテクチャ x86_64
    実行ロール WriteDomainToolsIrisToS3Role
  4. 関数を作成したら、[コード] タブを開き、スタブを削除して次のコード(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. [構成> 環境変数 > 編集 > 新しい環境変数を追加] に移動します。

  6. 次の環境変数を入力し、実際の値に置き換えます。

    キー 値の例 説明
    S3_BUCKET domaintools-iris データが保存される S3 バケットの名前。
    S3_PREFIX domaintools/iris/ オブジェクトの省略可能な S3 接頭辞(サブフォルダ)。
    STATE_KEY domaintools/iris/state.json 状態/チェックポイント ファイルのキー(省略可)。
    DT_API_KEY DT-XXXXXXXXXXXXXXXXXXXX DomainTools API キー。
    DT_API_SECRET YYYYYYYYYYYYYYYYYYYYYYYY DomainTools API シークレット(該当する場合)。
    USE_MODE HASH | DOMAINS | QUERY 使用するモードを選択します(一度に有効にできるモードは 1 つのみです)。
    SEARCH_HASHES hash1;hash2;hash3 USE_MODE=HASH の場合は必須。Iris UI からの保存済み検索ハッシュのセミコロン区切りリスト。
    DOMAINS example.com;domaintools.com USE_MODE=DOMAINS の場合は必須。セミコロンで区切られたドメインのリスト。
    QUERY_LIST ip=1.1.1.1;ip=8.8.8.8;domain=example.org USE_MODE=QUERY の場合は必須。セミコロンで区切られたクエリ文字列のリスト(k=v&k2=v2)。
    PAGE_SIZE 500 1 ページあたりの行数(デフォルトは 500)。
    MAX_PAGES 20 リクエストあたりの最大ページ数
  7. 関数が作成されたら、そのページにとどまるか、[Lambda] > [関数] > [your-function] を開きます。

  8. [CONFIGURATION] タブを選択します。

  9. [全般的な構成] パネルで、[編集] をクリックします。

  10. [Timeout] を [15 minutes (900 seconds)] に変更し、[Save] をクリックします。

EventBridge スケジュールを作成する

  1. Amazon EventBridge > Scheduler > スケジュールの作成に移動します。
  2. 次の構成の詳細を入力します。
    • 定期的なスケジュール: レート1 hour)。
    • ターゲット: Lambda 関数。
    • 名前: domaintools-iris-1h
  3. [スケジュールを作成] をクリックします。

省略可: Google SecOps 用の読み取り専用の IAM ユーザーと鍵を作成する

  1. AWS コンソールで、[IAM] > [Users] に移動し、[Add users] をクリックします。
  2. 次の構成の詳細を入力します。
    • ユーザー: 一意の名前を入力します(例: secops-reader)。
    • アクセスタイプ: [Access key - Programmatic access] を選択します。
    • [ユーザーを作成] をクリックします。
  3. 最小限の読み取りポリシー(カスタム)を適用する: [ユーザー] > secops-reader を選択 > [権限] > [権限を追加] > [ポリシーを直接適用] > [ポリシーを作成]
  4. JSON エディタで次のポリシーを入力します。

    {
      "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. 名前を secops-reader-policy に設定します。

  6. [ポリシーの作成> 検索/選択> 次へ> 権限を追加] に移動します。

  7. [セキュリティ認証情報] > [アクセスキー] > [アクセスキーを作成] に移動します。

  8. CSV をダウンロードします(これらの値はフィードに入力されます)。

DomainTools Iris Investigate の結果を取り込むように Google SecOps でフィードを構成する

  1. [SIEM 設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します(例: DomainTools Iris Investigate)。
  4. [ソースタイプ] として [Amazon S3 V2] を選択します。
  5. [ログタイプ] として [DomainTools Threat Intelligence] を選択します。
  6. [次へ] をクリックします。
  7. 次の入力パラメータの値を指定します。
    • S3 URI: s3://domaintools-iris/domaintools/iris/
    • Source deletion options: 必要に応じて削除オプションを選択します。
    • 最大ファイル経過時間: デフォルトは 180 日です。
    • アクセスキー ID: S3 バケットにアクセスできるユーザー アクセスキー。
    • シークレット アクセスキー: S3 バケットにアクセスできるユーザーのシークレット キー。
    • アセットの Namespace: domaintools.threat_intel
    • Ingestion labels: このフィードのイベントに適用されるラベル。
  8. [次へ] をクリックします。
  9. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
有効 principal.domain.status 未加工ログの active フィールドから直接マッピングされます。
additional_whois_email.[].value about.labels.additional_whois_email additional_whois_email 配列から抽出され、about オブジェクトのラベルとして追加されます。
adsense.value about.labels.adsense adsense.value から抽出され、about オブジェクトのラベルとして追加されます。
admin_contact.city.value principal.domain.admin.office_address.city 未加工ログの admin_contact.city.value フィールドから直接マッピングされます。
admin_contact.country.value principal.domain.admin.office_address.country_or_region 未加工ログの admin_contact.country.value フィールドから直接マッピングされます。
admin_contact.email.[].value principal.domain.admin.email_addresses admin_contact.email 配列から抽出され、email_addresses フィールドに追加されます。
admin_contact.fax.value principal.domain.admin.attribute.labels.fax admin_contact.fax.value から抽出され、admin 属性のキー「fax」のラベルとして追加されます。
admin_contact.name.value principal.domain.admin.user_display_name 未加工ログの admin_contact.name.value フィールドから直接マッピングされます。
admin_contact.org.value principal.domain.admin.company_name 未加工ログの admin_contact.org.value フィールドから直接マッピングされます。
admin_contact.phone.value principal.domain.admin.phone_numbers 未加工ログの admin_contact.phone.value フィールドから直接マッピングされます。
admin_contact.postal.value principal.domain.admin.attribute.labels.postal admin_contact.postal.value から抽出され、admin 属性のキー「postal」のラベルとして追加されます。
admin_contact.state.value principal.domain.admin.office_address.state 未加工ログの admin_contact.state.value フィールドから直接マッピングされます。
admin_contact.street.value principal.domain.admin.office_address.name 未加工ログの admin_contact.street.value フィールドから直接マッピングされます。
alexa about.labels.alexa 未加工ログの alexa フィールドから直接マッピングされ、about オブジェクトのラベルとして追加されます。
baidu_codes.[].value about.labels.baidu_codes baidu_codes 配列から抽出され、about オブジェクトのラベルとして追加されます。
billing_contact.city.value principal.domain.billing.office_address.city 未加工ログの billing_contact.city.value フィールドから直接マッピングされます。
billing_contact.country.value principal.domain.billing.office_address.country_or_region 未加工ログの billing_contact.country.value フィールドから直接マッピングされます。
billing_contact.email.[].value principal.domain.billing.email_addresses billing_contact.email 配列から抽出され、email_addresses フィールドに追加されます。
billing_contact.fax.value principal.domain.billing.attribute.labels.fax billing_contact.fax.value から抽出され、billing 属性のキー「fax」のラベルとして追加されます。
billing_contact.name.value principal.domain.billing.user_display_name 未加工ログの billing_contact.name.value フィールドから直接マッピングされます。
billing_contact.org.value principal.domain.billing.company_name 未加工ログの billing_contact.org.value フィールドから直接マッピングされます。
billing_contact.phone.value principal.domain.billing.phone_numbers 未加工ログの billing_contact.phone.value フィールドから直接マッピングされます。
billing_contact.postal.value principal.domain.billing.attribute.labels.postal billing_contact.postal.value から抽出され、billing 属性のキー「postal」のラベルとして追加されます。
billing_contact.state.value principal.domain.billing.office_address.state 未加工ログの billing_contact.state.value フィールドから直接マッピングされます。
billing_contact.street.value principal.domain.billing.office_address.name 未加工ログの billing_contact.street.value フィールドから直接マッピングされます。
create_date.value principal.domain.creation_time 未加工ログの create_date.value フィールドからタイムスタンプ形式に変換されます。
data_updated_timestamp principal.domain.audit_update_time 未加工ログの data_updated_timestamp フィールドからタイムスタンプ形式に変換されます。
ドメイン principal.hostname 未加工ログの domain フィールドから直接マッピングされます。
domain_risk.components.[].evidence security_result.detection_fields.evidence domain_risk.components.[].evidence 配列から抽出され、security_result オブジェクトのキー「evidence」を持つ検出フィールドとして追加されます。
domain_risk.components.[].name security_result.category_details 未加工ログの domain_risk.components.[].name フィールドから直接マッピングされます。
domain_risk.components.[].risk_score security_result.risk_score 未加工ログの domain_risk.components.[].risk_score フィールドから直接マッピングされます。
domain_risk.components.[].threats security_result.threat_name domain_risk.components.[].threats 配列の最初の要素は security_result.threat_name にマッピングされます。
domain_risk.components.[].threats security_result.detection_fields.threats domain_risk.components.[].threats 配列の残りの要素は、security_result オブジェクトのキー「threats」を持つ検出フィールドとして追加されます。
domain_risk.risk_score security_result.risk_score 未加工ログの domain_risk.risk_score フィールドから直接マッピングされます。
email_domain.[].value about.labels.email_domain email_domain 配列から抽出され、about オブジェクトのラベルとして追加されます。
expiration_date.value principal.domain.expiration_time 未加工ログの expiration_date.value フィールドからタイムスタンプ形式に変換されます。
fb_codes.[].value about.labels.fb_codes fb_codes 配列から抽出され、about オブジェクトのラベルとして追加されます。
first_seen.value principal.domain.first_seen_time 未加工ログの first_seen.value フィールドからタイムスタンプ形式に変換されます。
ga4.[].value about.labels.ga4 ga4 配列から抽出され、about オブジェクトのラベルとして追加されます。
google_analytics.value about.labels.google_analytics google_analytics.value から抽出され、about オブジェクトのラベルとして追加されます。
gtm_codes.[].value about.labels.gtm_codes gtm_codes 配列から抽出され、about オブジェクトのラベルとして追加されます。
hotjar_codes.[].value about.labels.hotjar_codes hotjar_codes 配列から抽出され、about オブジェクトのラベルとして追加されます。
ip.[].address.value principal.ip ip 配列の最初の要素は principal.ip にマッピングされます。
ip.[].address.value about.labels.ip_address ip 配列の残りの要素は、about オブジェクトのキー「ip_address」を持つラベルとして追加されます。
ip.[].asn.[].value network.asn 最初の ip.asn 配列の最初の要素は network.asn にマッピングされます。
ip.[].asn.[].value about.labels.asn ip.asn 配列の残りの要素は、about オブジェクトのキー「asn」のラベルとして追加されます。
ip.[].country_code.value principal.location.country_or_region ip 配列の最初の要素の country_code.valueprincipal.location.country_or_region にマッピングされます。
ip.[].country_code.value about.location.country_or_region ip 配列内の残りの要素の country_code.valueabout.location.country_or_region にマッピングされます。
ip.[].isp.value principal.labels.isp ip 配列の最初の要素の isp.valueprincipal.labels.isp にマッピングされます。
ip.[].isp.value about.labels.isp ip 配列内の残りの要素の isp.valueabout.labels.isp にマッピングされます。
matomo_codes.[].value about.labels.matomo_codes matomo_codes 配列から抽出され、about オブジェクトのラベルとして追加されます。
monitor_domain about.labels.monitor_domain 未加工ログの monitor_domain フィールドから直接マッピングされ、about オブジェクトのラベルとして追加されます。
monitoring_domain_list_name about.labels.monitoring_domain_list_name 未加工ログの monitoring_domain_list_name フィールドから直接マッピングされ、about オブジェクトのラベルとして追加されます。
mx.[].domain.value about.domain.name 未加工ログの mx.[].domain.value フィールドから直接マッピングされます。
mx.[].host.value about.hostname 未加工ログの mx.[].host.value フィールドから直接マッピングされます。
mx.[].ip.[].value about.ip mx.[].ip 配列から抽出され、ip フィールドに追加されます。
mx.[].priority about.security_result.priority_details 未加工ログの mx.[].priority フィールドから直接マッピングされます。
name_server.[].domain.value about.labels.name_server_domain name_server.[].domain.value から抽出され、about オブジェクトのキー「name_server_domain」のラベルとして追加されます。
name_server.[].host.value principal.domain.name_server name_server.[].host.value から抽出され、name_server フィールドに追加されます。
name_server.[].host.value about.domain.name_server name_server.[].host.value から抽出され、name_server フィールドに追加されます。
name_server.[].ip.[].value about.labels.ip name_server.[].ip 配列から抽出され、about オブジェクトのキー「ip」のラベルとして追加されます。
popularity_rank about.labels.popularity_rank 未加工ログの popularity_rank フィールドから直接マッピングされ、about オブジェクトのラベルとして追加されます。
redirect.value about.labels.redirect redirect.value から抽出され、about オブジェクトのラベルとして追加されます。
redirect_domain.value about.labels.redirect_domain redirect_domain.value から抽出され、about オブジェクトのラベルとして追加されます。
registrant_contact.city.value principal.domain.registrant.office_address.city 未加工ログの registrant_contact.city.value フィールドから直接マッピングされます。
registrant_contact.country.value principal.domain.registrant.office_address.country_or_region 未加工ログの registrant_contact.country.value フィールドから直接マッピングされます。
registrant_contact.email.[].value principal.domain.registrant.email_addresses registrant_contact.email 配列から抽出され、email_addresses フィールドに追加されます。
registrant_contact.fax.value principal.domain.registrant.attribute.labels.fax registrant_contact.fax.value から抽出され、registrant 属性のキー「fax」のラベルとして追加されます。
registrant_contact.name.value principal.domain.registrant.user_display_name 未加工ログの registrant_contact.name.value フィールドから直接マッピングされます。
registrant_contact.org.value principal.domain.registrant.company_name 未加工ログの registrant_contact.org.value フィールドから直接マッピングされます。
registrant_contact.phone.value principal.domain.registrant.phone_numbers 未加工ログの registrant_contact.phone.value フィールドから直接マッピングされます。
registrant_contact.postal.value principal.domain.registrant.attribute.labels.postal registrant_contact.postal.value から抽出され、registrant 属性のキー「postal」のラベルとして追加されます。
registrant_contact.state.value principal.domain.registrant.office_address.state 未加工ログの registrant_contact.state.value フィールドから直接マッピングされます。
registrant_contact.street.value principal.domain.registrant.office_address.name 未加工ログの registrant_contact.street.value フィールドから直接マッピングされます。
registrant_name.value about.labels.registrant_name registrant_name.value から抽出され、about オブジェクトのラベルとして追加されます。
registrant_org.value about.labels.registrant_org registrant_org.value から抽出され、about オブジェクトのラベルとして追加されます。
registrar.value principal.domain.registrar 未加工ログの registrar.value フィールドから直接マッピングされます。
registrar_status about.labels.registrar_status registrar_status 配列から抽出され、about オブジェクトのラベルとして追加されます。
server_type network.tls.client.server_name 未加工ログの server_type フィールドから直接マッピングされます。
soa_email.[].value principal.user.email_addresses soa_email 配列から抽出され、email_addresses フィールドに追加されます。
spf_info about.labels.spf_info 未加工ログの spf_info フィールドから直接マッピングされ、about オブジェクトのラベルとして追加されます。
ssl_email.[].value about.labels.ssl_email ssl_email 配列から抽出され、about オブジェクトのラベルとして追加されます。
ssl_info.[].alt_names.[].value about.labels.alt_names ssl_info.[].alt_names 配列から抽出され、about オブジェクトのラベルとして追加されます。
ssl_info.[].common_name.value about.labels.common_name ssl_info.[].common_name.value から抽出され、about オブジェクトのラベルとして追加されます。
ssl_info.[].duration.value about.labels.duration ssl_info.[].duration.value から抽出され、about オブジェクトのラベルとして追加されます。
ssl_info.[].email.[].value about.labels.ssl_info_email ssl_info.[].email 配列から抽出され、about オブジェクトのキー「ssl_info_email」のラベルとして追加されます。
ssl_info.[].hash.value network.tls.server.certificate.sha1 ssl_info 配列の最初の要素の hash.valuenetwork.tls.server.certificate.sha1 にマッピングされます。
ssl_info.[].hash.value about.labels.hash ssl_info 配列内の残りの要素の hash.valueabout.labels.hash にマッピングされます。
ssl_info.[].issuer_common_name.value network.tls.server.certificate.issuer ssl_info 配列の最初の要素の issuer_common_name.valuenetwork.tls.server.certificate.issuer にマッピングされます。
ssl_info.[].issuer_common_name.value about.labels.issuer_common_name ssl_info 配列内の残りの要素の issuer_common_name.valueabout.labels.issuer_common_name にマッピングされます。
ssl_info.[].not_after.value network.tls.server.certificate.not_after ssl_info 配列の最初の要素の not_after.value はタイムスタンプ形式に変換され、network.tls.server.certificate.not_after にマッピングされます。
ssl_info.[].not_after.value about.labels.not_after ssl_info 配列内の残りの要素の not_after.valueabout.labels.not_after にマッピングされます。
ssl_info.[].not_before.value network.tls.server.certificate.not_before ssl_info 配列の最初の要素の not_before.value はタイムスタンプ形式に変換され、network.tls.server.certificate.not_before にマッピングされます。
ssl_info.[].not_before.value about.labels.not_before ssl_info 配列内の残りの要素の not_before.valueabout.labels.not_before にマッピングされます。
ssl_info.[].organization.value network.organization_name ssl_info 配列の最初の要素の organization.valuenetwork.organization_name にマッピングされます。
ssl_info.[].organization.value about.labels.organization ssl_info 配列内の残りの要素の organization.valueabout.labels.organization にマッピングされます。
ssl_info.[].subject.value about.labels.subject ssl_info.[].subject.value から抽出され、about オブジェクトのラベルとして追加されます。
statcounter_project_codes.[].value about.labels.statcounter_project_codes statcounter_project_codes 配列から抽出され、about オブジェクトのラベルとして追加されます。
statcounter_security_codes.[].value about.labels.statcounter_security_codes statcounter_security_codes 配列から抽出され、about オブジェクトのラベルとして追加されます。
tags.[].label about.file.tags tags.[].label から抽出され、tags フィールドに追加されます。
tags.[].scope security_result.detection_fields.scope tags.[].scope から抽出され、security_result オブジェクトのキー「scope」を持つ検出フィールドとして追加されます。
tags.[].tagged_at security_result.detection_fields.tagged_at tags.[].tagged_at から抽出され、security_result オブジェクトのキー「tagged_at」を持つ検出フィールドとして追加されます。
technical_contact.city.value principal.domain.tech.office_address.city 未加工ログの technical_contact.city.value フィールドから直接マッピングされます。
technical_contact.country.value principal.domain.tech.office_address.country_or_region 未加工ログの technical_contact.country.value フィールドから直接マッピングされます。
technical_contact.email.[].value principal.domain.tech.email_addresses technical_contact.email 配列から抽出され、email_addresses フィールドに追加されます。
technical_contact.fax.value principal.domain.tech.attribute.labels.fax technical_contact.fax.value から抽出され、tech 属性のキー「fax」のラベルとして追加されます。
technical_contact.name.value principal.domain.tech.user_display_name 未加工ログの technical_contact.name.value フィールドから直接マッピングされます。
technical_contact.org.value principal.domain.tech.company_name 未加工ログの technical_contact.org.value フィールドから直接マッピングされます。
technical_contact.phone.value principal.domain.tech.phone_numbers 未加工ログの technical_contact.phone.value フィールドから直接マッピングされます。
technical_contact.postal.value principal.domain.tech.attribute.labels.postal technical_contact.postal.value から抽出され、tech 属性のキー「postal」のラベルとして追加されます。
technical_contact.state.value principal.domain.tech.office_address.state 未加工ログの technical_contact.state.value フィールドから直接マッピングされます。
technical_contact.street.value principal.domain.tech.office_address.name 未加工ログの technical_contact.street.value フィールドから直接マッピングされます。
tld about.labels.tld 未加工ログの tld フィールドから直接マッピングされ、about オブジェクトのラベルとして追加されます。
timestamp about.labels.timestamp 未加工ログの timestamp フィールドから直接マッピングされ、about オブジェクトのラベルとして追加されます。
website_response principal.network.http.response_code 未加工ログの website_response フィールドから直接マッピングされます。
website_title about.labels.website_title 未加工ログの website_title フィールドから直接マッピングされ、about オブジェクトのラベルとして追加されます。
whois_url principal.domain.whois_server 未加工ログの whois_url フィールドから直接マッピングされます。
yandex_codes.[].value about.labels.yandex_codes yandex_codes 配列から抽出され、about オブジェクトのラベルとして追加されます。
edr.client.hostname domain フィールドの値に設定します。
edr.client.ip_addresses ip 配列の最初の要素の値(具体的には ip.[0].address.value)に設定します。
edr.raw_event_name principal.hostname が存在する場合は「STATUS_UPDATE」に設定し、それ以外の場合は「GENERIC_EVENT」に設定します。
metadata.event_timestamp 未加工ログの最上位の create_time フィールドからコピーされます。
metadata.event_type principal.hostname が存在する場合は「STATUS_UPDATE」に設定し、それ以外の場合は「GENERIC_EVENT」に設定します。
metadata.log_type 「DOMAINTOOLS_THREATINTEL」に設定します。
metadata.product_name 「DOMAINTOOLS」に設定します。
metadata.vendor_name 「DOMAINTOOLS」に設定します。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。