UrlScan.io を Google SecOps と統合する

このドキュメントでは、urlscan.io を Google SecOps と統合する方法について説明します。

このドキュメントでは、UrlScan.io を Google Security Operations と統合する方法について説明します。

ユースケース

UrlScan.io インテグレーションは、Google SecOps の機能を使用して次のユースケースをサポートします。

  • URL の自動分析: 不審な URL を UrlScan.io に自動的に送信し、リスクレベルを特定して、インシデントのトリアージ中に視覚的に検証するためのスクリーンショットを取得します。

  • 脅威インテリジェンスの拡充: UrlScan.io に IP アドレス、ドメイン、URL に関する詳細なメタデータをクエリしてアラートを拡充し、アナリストに ASN、サーバータイプ、悪意のあるスコアに関するコンテキストを即座に提供します。

  • プロアクティブな履歴スキャン検索: 侵害の指標に関連付けられた既存の公開スキャンと非公開スキャンを検索して、過去の悪意のあるアクティビティとパターンを特定します。

  • 詳細なフォレンジックとレポート: 特定のスキャン ID を使用して包括的なスキャン詳細を取得し、複雑なセキュリティ調査のために Cookie、リクエスト数、関連リンクの詳細な分析を行います。

始める前に

Google SecOps と UrlScan.io の接続を認証するには、有効な API キーを指定する必要があります。

API キーは、urlscan.io アカウントの [Profile] セクションで取得して管理できます。

統合のパラメータ

urlscan.io 統合には、次のパラメータが必要です。

パラメータ 説明
Api Key

必須。

urlscan.io サービスでの認証に使用される一意の API キー。

Verify SSL

省略可。

選択すると、UrlScan.io サーバーに接続するときに SSL 証明書が検証されます。

Google SecOps で統合を構成する手順については、統合を構成するをご覧ください。

必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できるようになります。複数のインスタンスの構成とサポートの方法については、複数のインスタンスのサポートをご覧ください。

操作

アクションの詳細については、 デスクから保留中のアクションに対応すると手動アクションを実行するをご覧ください。

Ping

接続をテストします。

パラメータ

なし

ユースケース

なし

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

エンティティ拡充
分析情報

なし

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
JSON の結果
N/A

URL チェック

スキャンする URL を送信し、スキャンの詳細を取得します。

パラメータ

パラメータ名 タイプ 必須 デフォルト値 Description
公開設定

DDL
が可能:
一般公開、限定公開、非公開。

いいえ public urlscan.io のスキャンには 3 つの公開レベルがあります。送信する際は適切なレベルを使用してください。
しきい値 整数 いいえ -1 判定のスコアが指定されたしきい値以上の場合、エンティティを不審としてマークします。デフォルトは -1 です。この場合、スキャンされたすべての URL が不審と見なされます。
インサイトの作成 ブール値 いいえ ○ 有効にした場合、アクションによってエンティティに関する情報を含むインサイトが作成されます。
不審なインサイトのみ ブール値 いいえ いいえ 有効にした場合、アクションによって不審なエンティティに関するインサイトのみが作成されます。注: 「インサイトの作成」パラメータを有効にする必要があります。
インサイトにスクリーンショットを追加 ブール値 いいえ いいえ 有効にした場合、アクションによってウェブサイトのスクリーンショットがインサイトに追加されます(利用可能な場合)。

ユースケース

なし

実行

このアクションは次のエンティティに対して実行されます。

  • IP アドレス
  • ドメイン
  • URL

アクションの結果

エンティティ拡充
Name キー
real_url タスク / URL
visibility visibility
requests_count len(データ / リクエスト)
Cookie データ / Cookie / 名前の CSV
related_links データ / リンク / href の CSV
main_country ページ / 国
main_domain ページ / ドメイン
main_ip ページ / IP
main_asn ページ / asnname
main_server ページ / サーバー
related_ips_count len(リスト / IP)
related_domains_count len(リスト / ドメイン)
related_countries CSV リスト / 国
overall_score 判定 / 全体 / スコア
categories 判定 / 全体 / カテゴリ
tags 判定 / 全体 / タグ
悪意のあるリクエスト 判断 / 全体 / 悪意がある
分析情報

なし

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
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
        }
    }
]

スキャンを検索する

ドメイン、IP、自律システム(AS)番号、ハッシュなどの属性による urlscan.io の既存のスキャンを検索します。このアクションによって任意の誰かが実行した公開スキャンだけでなく、自分またはチームによって実行された限定公開と非公開のスキャンが見つかります。

パラメータ

パラメータ名 タイプ 必須 デフォルト値 Description
最大スキャン数 整数 いいえ 100 エンティティごとに返すスキャン数。デフォルト: 100、最大: 10000(サブスクリプションによる)。

実行

このアクションは次のエンティティに対して実行されます。

  • IP アドレス
  • ホスト名
  • URL
  • ファイル名
  • Hashes
  • ドメイン

アクションの結果

エンティティ拡充

なし

分析情報

なし

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
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"
  }
  ]
}
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • 一部のエンティティのスキャンが見つかった場合(is_success = true): 次のように出力されます。「次のエンティティのスキャンを正常に一覧表示しました: \n」.format(entity.identifier)
  • 一部のエンティティのスキャンが見つからない場合(is_success = true): 次のように出力されます。「次のエンティティのスキャンを一覧表示できませんでした:\n」.format(entity.identifier)
  • すべてのエンティティのスキャンが見つからなかった場合(is_success = false): 「使用可能なエンティティのスキャンを一覧表示できませんでした」と出力されます。
  • エンティティがない場合: 「現在のスコープに適切なエンティティが見つかりませんでした。

    アクションが失敗し、ハンドブックの実行が停止されます:
    認証情報が誤っている、サーバーへの接続がないなどの致命的なエラーの場合、その他: 「アクション「スキャンを検索する」の実行エラー」が出力されます。理由: {0}」.format(error.Stacktrace).
一般
Case Wall テーブル

タイトル: 「{エンティティ ID} - 検索結果」

列:

スキャン ID

URL

スキャン日

サイズ

IPS

固有の国

国

Scan Type

一般
ケースウォールのリンク タイトル: 「urlscan.io ウェブレポート +(エンティティ ID)。 一般
ケースウォールのアタッチメント スクリーンショットが含まれます。 一般

スキャンの完全な詳細を取得する

スキャン ID 別のスキャンの完全な詳細の取得

パラメータ

パラメータ名 タイプ 必須 デフォルト値 Description
スキャン ID 文字列 ○ なし スキャン ID を使用してスキャン レポートを取得します。カンマ区切りの値。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

エンティティ拡充

なし

分析情報

なし

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
JSON の結果
['Effective URL'] = response['page']['url']
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • 一部のスキャン ID が見つかった場合(is_success = true): 「{scan ids} のスキャンの結果が正常に取得されました」と出力されます。
  • 一部が見つからなかった場合 (is_success = true): 「アクションでは、{scan ids} のスキャンの結果を取得できませんでした」と出力されます。
  • すべて見つからなかった場合 (is_success = false): 次のように出力されます。「アクションでは結果を取得できませんでした。指定されたスキャン ID は urlscan.io で使用できません。」

アクションが失敗し、ハンドブックの実行が停止します:

  • 認証情報が誤っている、サーバーへの接続がないなどの致命的なエラーの場合、その他: 「アクション「完全な詳細のスキャンを取得する」の実行エラー。理由: {0}」.format(error.Stacktrace)
一般
ケースウォールのリンク タイトル: "urlscan.io ウェブレポート +(スキャン ID)。 一般
ケースウォールのアタッチメント スクリーンショットが含まれます。 全般

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