將 APIVoid 與 Google SecOps 整合

本文說明如何將 APIVoid 與 Google Security Operations (Google SecOps) 整合。

整合版本:12.0

事前準備

在 Google SecOps 中設定 APIVoid 整合功能 (適用於第 2 版) 之前,請確認您具備下列條件:

  • APIVoid v2 帳戶:有效帳戶,可存取 v2 API 服務。

  • APIVoid v2 API 金鑰:從 APIVoid 使用者資訊主頁專為 v2 API 產生的新 API 金鑰。

  • 更新的 API 端點:熟悉您打算使用的特定 APIVoid 服務 (例如 IP 信譽 API、網域信譽 API) 的更新版 v2 API 端點網址。

產生 APIVoid v2 API 金鑰

如要產生 APIVoid v2 API 金鑰,請完成下列步驟:

  1. 登入 APIVoid 使用者資訊主頁

  2. 前往「API 金鑰」部分。(位置可能因資訊主頁更新而異)。

  3. 產生新的 API 金鑰。請立即複製並妥善儲存金鑰。這組代碼可能只會顯示一次。

網路

函式 預設通訊埠 方向 通訊協定
API 多個值 傳出 apikey

整合參數

請使用下列參數設定整合:

參數名稱 類型 預設值 為必填項目 說明
執行個體名稱 字串 不適用 您要設定整合的執行個體名稱。
說明 字串 不適用 執行個體的說明。
API 根目錄 字串 https://endpoint.apivoid.com APIVoid 執行個體的位址。
API 金鑰 密碼 不適用 在 APIVoid 控制台中產生的 API 金鑰。
驗證 SSL 核取方塊 已取消勾選 如果您的 APIVoid 連線需要 SSL 驗證,請勾選這個核取方塊。
遠端執行 核取方塊 已取消勾選 勾選這個欄位,即可遠端執行設定的整合項目。勾選後,系統會顯示選取遠端使用者 (服務專員) 的選項。

如需在 Google SecOps 中設定整合功能的操作說明,請參閱「設定整合功能」。

如有需要,您可以在稍後階段進行變更。設定整合執行個體後,您就可以在劇本中使用該執行個體。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。

動作

如要進一步瞭解動作,請參閱「 從工作台回覆待處理動作」和「執行手動動作」。

取得網域信譽

如果網域遭到熱門且值得信賴的網域封鎖清單服務 (例如 URLVir、ThreatLog、OpenPhish、Spam404、PhishTank、ZeuS Tracker 等) 排除,系統會檢查網域信譽。多個網域封鎖清單服務會找出可能涉及惡意軟體散布、網路釣魚事件和虛假網路商店的惡意和詐欺網站。

參數

參數名稱 類型 預設值 為必填項目 說明
門檻 字串 0 網域風險門檻。門檻必須是數值。範例:3
建立洞察資料 核取方塊 已勾選 指定動作是否應建立洞察資料。

用途

網域信譽 API 的其中一個用途是檢查用戶端的網站是否遭到排除、檢查使用者在應用程式中提交的網址,或是識別可能有害和不安全的網站。

執行日期

這項動作會對下列實體執行:

  • 主機名稱
  • 網址

動作結果

實體充實

如果負面引擎數量等於或高於指定門檻,請將實體標示為可疑。

補充資料欄位名稱 邏輯 - 應用時機
alexa_top_100k 如果 JSON 結果中存在該值,則傳回該值
domain_length 如果 JSON 結果中存在該值,則傳回該值
alexa_top_10k 如果 JSON 結果中存在該值,則傳回該值
黑名單 如果 JSON 結果中存在該值,則傳回該值
伺服器 如果 JSON 結果中存在該值,則傳回該值
主機 如果 JSON 結果中存在該值,則傳回該值
most_abused_tld 如果 JSON 結果中存在該值,則傳回該值
alexa_top_250k 如果 JSON 結果中存在該值,則傳回該值
深入分析
嚴重性 說明
警告 系統會建立警示洞察資訊,通知您經過擴充的實體是否為惡意實體。當偵測到的引擎數量等於或超過掃描前設定的最低可疑門檻時,系統就會建立該檔案。
指令碼結果
指令碼結果名稱 值選項 範例
成功 True/False success:False
JSON 結果
[
    {
        "EntityResult": {
            "alexa_top_100k": false,
            "domain_length": 17,
            "alexa_top_10k": false,
            "blacklists": {
                "scantime": "0.07",
                "detection_rate": "0%",
                "detections": 0,
                "engines_count": 29,
                "engines": [{
                    "engine": "ThreatLog",
                    "detected": false,
                    "confidence": "high",
                    "reference": "http://www.threatlog.com/"
                }, {
                    "engine": "Threat Sourcing",
                    "detected": false,
                    "confidence": "high",
                    "reference": "https://www.threatsourcing.com/"
                }, {
                    "engine": "URLVir",
                    "detected": false,
                    "confidence": "high",
                    "reference": "http://www.urlvir.com/"
                }]},
            "server": {
                "region_name": null,
                "reverse_dns": " ",
                "ip": " ",
                "isp": null,
                "continent_code": null,
                "latitude": null,
                "city_name": null,
                "longitude": null,
                "country_code": null,
                "country_name": null,
                "continent_name": null
            },
            "host": "example.com",
            "most_abused_tld": false,
            "alexa_top_250k": false
        },
        "Entity": "example.com"
    }, {
        "EntityResult": {
            "alexa_top_100k": false,
            "domain_length": 9,
            "alexa_top_10k": false,
            "blacklists": {
                "scantime": "0.03",
                "detection_rate": "0%",
                "detections": 0,
                "engines_count": 29,
                "engines": [{
                    "engine": "ThreatLog",
                    "detected": false,
                    "confidence": "high",
                    "reference": "http://www.threatlog.com/"
                }, {
                    "engine": "Threat Sourcing",
                    "detected": false,
                    "confidence": "high",
                    "reference": "https://www.threatsourcing.com/"
                }, {
                    "engine": "URLVir",
                    "detected": false,
                    "confidence": "high",
                    "reference": "http://www.urlvir.com/"
                }]},
            "server": {
                "region_name": null,
                "reverse_dns": " ",
                "ip": " ",
                "isp": null,
                "continent_code": null,
                "latitude": null,
                "city_name": null,
                "longitude": null,
                "country_code": null,
                "country_name": null,
                "continent_name": null
            },
            "host": "192.0.2.1",
            "most_abused_tld": false,
            "alexa_top_250k": false
        },
        "Entity": "192.0.2.1"
    }
]

取得 IP 信譽

IP Reputation API 會偵測可能用於垃圾內容、網站攻擊或詐欺活動的惡意 IP 位址。

參數

參數 類型 預設值 為必填項目 說明
門檻 字串 不適用 IP 風險門檻。門檻必須是數值。示例:3.
建立洞察資料 核取方塊 已勾選 指定動作是否應建立洞察資料。

執行日期

這項操作會對 IP 位址實體執行。

動作結果

實體充實

如果負面引擎數量等於或高於指定門檻,請將實體標示為可疑。

補充資料欄位名稱 邏輯 - 應用時機
資訊 如果 JSON 結果中存在該值,則傳回該值
黑名單 如果 JSON 結果中存在該值,則傳回該值
匿名性 如果 JSON 結果中存在該值,則傳回該值
ip 如果 JSON 結果中存在該值,則傳回該值
深入分析
嚴重性 說明
警告 系統會建立警告深入分析,通知您經過擴充的雜湊值是否為惡意。當偵測到的引擎數量等於或超過掃描前設定的最低可疑門檻時,系統就會建立洞察資料。
指令碼結果
指令碼結果名稱 值選項 範例
成功 True/False success:False
JSON 結果
[
    {
        "EntityResult": {
            "information": {
                "is_proxy": false,
                "is_vpn": false,
                "region_name": "Zhejiang",
                "is_webproxy": false,
                "latitude": 28.680280685424805,
                "isp": "ChinaNet Zhejiang Province Network",
                "continent_code": "AS",
                "is_tor": false,
                "reverse_dns": " ",
                "detections": 18,
                "engines_count": 76,
                "longitude": 121.44277954101562,
                "city_name": "Jiaojiang",
                "country_name": "China",
                "continent_name": "Asia",
                "detection_rate": "24%",
                "country_code": "CN",
                "is_hosting": false
            },
            "blacklists": {
                "scantime": "0.57",
                "detection_rate":
                "24%",
                "detections": 18,
                "engines_count": 76,
                "engines": [{
                    "engine": "PlonkatronixBL",
                    "detected": false,
                    "reference": "http://bl.plonkatronix.com/"
                }, {
                    "engine": "Engine",
                    "detected": true,
                    "reference": "https://home.nuug.no/~engine/"
                }, {"engine": "Malc0de",
                    "detected": false,
                    "reference": "http://malc0de.com/database/index.php"
                   }]},
            "anonymity": {
                "is_tor": false,
                "is_proxy": false,
                "is_vpn": false,
                "is_webproxy": false,
                "is_hosting": false
            },
            "ip": "192.0.2.1"
        },
        "Entity": "192.0.2.1"
    }
]

取得網址信譽

取得網址的安全信譽和風險分數。

參數

參數名稱 類型 預設值 為必填項目 說明
門檻 整數 不適用

網址風險門檻。門檻必須是數值。範例:3

用途

分析師可以擷取網址信譽,做法與擷取網域或 IP 位址信譽類似。

執行日期

這項動作會對網址實體執行。

動作結果

實體充實

如果負面引擎的數量等於或高於指定門檻,請將實體標示為可疑。if data.get("report", {}).get("risk_score", {}).get("result") > threshold

補充資料欄位名稱 邏輯 - 應用時機
domain_blacklist 如果 JSON 結果中存在該值,則傳回該值
html_forms 如果 JSON 結果中存在該值,則傳回該值
server_details 如果 JSON 結果中存在該值,則傳回該值
response_headers 如果 JSON 結果中存在該值,則傳回該值
重新導向 如果 JSON 結果中存在該值,則傳回該值
file_type 如果 JSON 結果中存在該值,則傳回該值
risk_score 如果 JSON 結果中存在該值,則傳回該值
security_checks 如果 JSON 結果中存在該值,則傳回該值
geo_location 如果 JSON 結果中存在該值,則傳回該值
url_parts 如果 JSON 結果中存在該值,則傳回該值
site_category 如果 JSON 結果中存在該值,則傳回該值
web_page 如果 JSON 結果中存在該值,則傳回該值
dns_records 如果 JSON 結果中存在該值,則傳回該值
指令碼結果
指令碼結果名稱 值選項 範例
is_success True/False is_success:False
JSON 結果
[
    {
        "EntityResult": {
            "domain_blacklist": {
                "detections": 0,
                "engines": [{
                    "detected": false,
                        "name": "SpamhausDBL", "reference": "https://www.spamhaus.org/lookup/"
                    }, {
                        "detected": false,
                        "name": "ThreatLog",
                        "reference": "http://www.threatlog.com/"
                    }, {
                        "detected": false,
                        "name": "OpenPhish",
                        "reference": "http://www.openphish.com/"
                    }, {
                        "detected": false,
                        "name": "PhishTank",
                        "reference": "http://www.phishtank.com/"
                    }, {
                        "detected": false,
                        "name": "Phishing.Database",
                        "reference": "https://github.com/mitchellkrogza/Phishing.Database"
                    }, {
                        "detected": false,
                        "name": "PhishStats",
                        "reference": "https://phishstats.info/"
                    }, {
                        "detected": false,
                        "name": "URLVir",
                        "reference": "http://www.urlvir.com/"
                    }, {
                        "detected": false,
                        "name": "URLhaus",
                        "reference": "https://urlhaus.abuse.ch/"
                    }, {
                        "detected": false,
                        "name": "RPiList Not Serious",
                        "reference": "https://github.com/RPiList/specials"
                    }, {
                        "detected": false,
                        "name": "precisionsec",
                        "reference": "https://precisionsec.com/"
                    }, {
                        "detected": false,
                        "name": "AntiSocial Blacklist",
                        "reference": "https://theantisocialengineer.com/"
                    }, {
                        "detected": false,
                        "name": "PhishFeed",
                        "reference": "https://phishfeed.com/"
                    }, {
                        "detected": false,
                        "name": "Spam404",
                        "reference": "https://www.spam404.com/"
                    }]},
            "html_forms": {
                "number_of_total_input_fields": 0,
                "email_field_present": false,
                "number_of_total_forms": 0,
                "password_field_present": false,
                "two_text_inputs_in_a_form": false,
                "credit_card_field_present": false
            },
            "server_details": {
                "continent_name": "Asia",
                "hostname": "example.com",
                "region_name": "Seoul-teukbyeolsi",
                "ip": "192.0.2.141",
                "isp": "Example Corporation",
                "continent_code": "AS",
                "country_name": "Korea (Republic of)",
                "city_name": "Seoul",
                "longitude": 126.97782897949219,
                "country_code": "KR",
                "latitude": 37.568260192871094
            },
            "response_headers": {
                "status": "HTTP/1.1 404 Not Found",
                "content-length": "177",
                "code": 404,
                "server": "nginx/1.4.6 (Ubuntu)",
                "connection": "keep-alive",
                "date": "Wed, 15 Jul 2020 08:21:54 GMT",
                "content-type": "text/html"
            },
            "redirection": {
                "url": null,
                "found": false,
                "external": false
            },
            "file_type": {
                "headers": "HTML",
                "extension": "HTML",
                "signature": " "
            },
            "risk_score": {
                "result": 10
            },
            "security_checks": {
                "is_suspended_page": false,
                "is_defaced_heuristic": false,
                "is_windows_exe_file": false,
                "is_credit_card_field": false,
                "is_windows_exe_file_on_free_hosting": false,
                "is_masked_linux_elf_file": false,
                "is_exe_on_directory_listing": false,
                "is_php_on_directory_listing": false,
                "is_masked_windows_exe_file": false,
                "is_sinkholed_domain": false,
                "is_robots_noindex": false,
                "is_windows_exe_file_on_free_dynamic_dns": false,
                "is_doc_on_directory_listing": false,
                "is_non_standard_port": false,
                "is_linux_elf_file_on_free_dynamic_dns": false,
                "is_suspicious_domain": false, "is_suspicious_url_pattern": false,
                "is_china_country": false,
                "is_risky_geo_location": false,
                "is_pdf_on_directory_listing": false,
                "is_valid_https": false,
                "is_external_redirect": false, "is_windows_exe_file_on_ipv4": false,
                "is_phishing_heuristic": false,
                "is_linux_elf_file_on_ipv4": false,
                "is_email_address_on_url_query": false,
                "is_uncommon_clickable_url": false,
                "is_most_abused_tld": false,
                "is_domain_blacklisted": false,
                "is_host_an_ipv4": false,
                "is_linux_elf_file_on_free_hosting": false,
                "is_zip_on_directory_listing": false,
                "is_password_field": false,
                "is_linux_elf_file": false,
                "is_empty_page_title": false,
                "is_directory_listing": false,
                "is_masked_file": false,
                "is_suspicious_file_extension": false,
                "is_suspicious_content": false
            },
            "geo_location": {
                "countries": ["KR"]
            },
            "url_parts": {
                "host_nowww": "example.com",
                "host": "www.example.com",
                "path": "/dynamic/example.html",
                "query": null,
                "scheme": "http",
                "port": 80},
            "site_category": {
                "is_vpn_provider": false,
                "is_url_shortener": false,
                "is_anonymizer": false,
                "is_torrent": false,
                "is_free_dynamic_dns": false,
                "is_free_hosting": false
            },
            "web_page": {
                "keywords": "",
                "description": "",
                "title": "404 Not Found"
            },
            "dns_records": {
                "ns": {
                    "records": [{
                        "country_name": "Korea (Republic of)",
                        "ip": "192.0.2.95",
                        "isp": "Example Corporation",
                        "target": "example.com",
                        "country_code": "KR"
                    }, {
                        "country_name": "Korea (Republic of)",
                        "ip": "192.0.2.26",
                        "isp": "LX",
                        "target": "example.com",
                        "country_code": "KR"
                    }]},
                "mx": {
                    "records": []
                }}},
        "Entity": "www.example.com:80/dynamic/example.html"
    }
]
案件總覽
結果類型 說明 類型
輸出訊息*
  1. 成功實體:「APIVoid: Fetched reputation for the following entities: <entities identifer list>」
  2. 失敗的實體:「下列實體發生錯誤:<實體 ID 清單>」
  3. 缺少實體 (沒有資料):「Can not found reputation for the following entities: <entities identifer list>」(找不到下列實體的聲譽:<實體 ID 清單>)
  4. 沒有網址實體的快訊:「APIVoid: No URLs found.」(APIVoid:找不到任何網址。)
一般
CSV 案件總覽

如有可用資料,請建立新的實體 CSV 表格:

  1. 網域封鎖清單報表:data.get("report",{}).get("domain_blacklist",{}).get("engines", [])
一般
擴充

如有可用資料,請新增下列項目做為實體擴充功能 (別忘了加上「APIVoid」前置字元):

  1. geo_location: data.get("report",{}).get("geo_location",{}).get("countries", [])
  2. is_suspicious_domain: data.get("report",{}).get("security_checks",{}).get("is_suspicious_domain")
  3. is_domain_blacklisted: data.get("report",{}).get("security_checks",{}).get("is_domain_blacklisted")
  4. is_risky_geo_location: data.get("report",{}).get("security_checks",{}).get("is_risky_geo_location")
  5. risk_score: data.get("report", {}).get("risk_score", {}).get("result")
  6. is_external_redirect: data.get("report",{}).get("security_checks",{}).get("is_external_redirect")
實體

取得螢幕截圖

擷取任何網站或網址的高畫質螢幕截圖。

參數

不適用

用途

分析師可以 PNG 或 JPG 圖片格式,擷取任何網站或網址的高畫質螢幕截圖。

執行日期

這項動作會對使用者實體執行。

動作結果

實體充實

如果負面引擎的數量等於或高於指定門檻,則將實體標示為可疑。is_suspicious:如果 data.get("score") > threshold

補充資料欄位名稱 邏輯 - 應用時機
網域 如果 JSON 結果中存在該值,則傳回該值
should_block 如果 JSON 結果中存在該值,則傳回該值
分數 如果 JSON 結果中存在該值,則傳回該值
可拋棄式 如果 JSON 結果中存在該值,則傳回該值
has_mx_records 如果 JSON 結果中存在該值,則傳回該值
has_spf_records 如果 JSON 結果中存在該值,則傳回該值
指令碼結果
指令碼結果名稱 值選項 範例
is_success True/False is_success:False
JSON 結果
[
    {
        "EntityResult": {
            "domain": "example.com",
            "valid_tld": true,
            "email": "user@example.co",
            "role_address": false,
            "should_block": false,
            "risky_tld": false,
            "dirty_words_username": false,
            "suspicious_domain": false,
            "score": 100,
            "educational_domain": false,
            "dirty_words_domain": false,
            "did_you_mean": " ",
            "username": "user",
            "valid_format": true,
            "is_spoofable ": false,
            "disposable": false,
            "government_domain": false,
            "has_spf_records": true,
            "domain_popular": false,
            "has_mx_records": true,
            "china_free_email": false,
            "free_email": false,
            "russian_free_email": false,
            "police_domain": false,
            "dmarc_enforced": false,
            "suspicious_username": false
        },
        "Entity": "USER@EXAMPLE.COM"
    }
]
案件總覽
結果類型 說明 類型
輸出訊息*
  1. 成功實體:「APIVoid:已為下列實體新增螢幕截圖:<實體 ID 清單>」
  2. 失敗的實體:「下列實體發生錯誤:<實體 ID 清單>」
  3. 缺少實體 (沒有資料):「No screenshots found for the following entities: <entities identifier list>」(找不到下列實體的螢幕截圖:<實體 ID 清單>)
  4. 沒有網址實體的快訊:「APIVoid:找不到可擷取螢幕截圖的網址實體。」
  5. 大型實體 (附件檔案大小超過 3 MB):「Failed to add screenshots as attachments on the following entities: <<entities identifier list>>」(無法將螢幕截圖新增為下列實體的附件:<<實體 ID 清單>>)
一般
附件

如有可用資料,請建立新的檔案物件:

  1. 附件標題:「Screenshot - {0}」。format(entity.identifier)
  2. 檔案名稱應為不含後置字串 (https/http) 的網址 +「_capture.<檔案格式>」
  3. 螢幕截圖會以 Base64 編碼字串的形式傳回 --> 檔案內容應為 b64decode(data.get('base64_file'))
  4. 別忘了新增 try、except,因為平台有 3MB 的限制。如有錯誤,請在記錄器中新增相關訊息。
一般

乒乓

測試連線。

參數

不適用

執行日期

這項操作會對所有實體執行。

動作結果

指令碼結果
指令碼結果名稱 值選項 範例
成功 True/False success:False

驗證電子郵件

檢查電子郵件是否為拋棄式地址、是否有 MX 記錄等。

參數

參數名稱 類型 預設值 為必填項目 說明
門檻 整數 不適用

電子郵件風險門檻。門檻必須是數值。

範例:3

用途

分析師可以檢查電子郵件是否為拋棄式,並取得 MX 記錄等資訊。

執行日期

這項動作會對使用者實體執行。

動作結果

實體充實

如果負面引擎的數量等於或高於指定門檻,則將實體標示為可疑。is_suspicious:如果 data.get("score") > threshold

補充資料欄位名稱 邏輯 - 應用時機
網域 如果 JSON 結果中存在該值,則傳回該值
should_block 如果 JSON 結果中存在該值,則傳回該值
分數 如果 JSON 結果中存在該值,則傳回該值
可拋棄式 如果 JSON 結果中存在該值,則傳回該值
has_mx_records 如果 JSON 結果中存在該值,則傳回該值
has_spf_records 如果 JSON 結果中存在該值,則傳回該值
指令碼結果
指令碼結果名稱 值選項 範例
is_success True/False is_success:False
JSON 結果
[
    {
        "EntityResult": {
            "domain": "example.com",
            "valid_tld": true,
            "email": "user@example.com",
            "role_address": false,
            "should_block": false,
            "risky_tld": false,
            "dirty_words_username": false,
            "suspicious_domain": false,
            "score": 100,
            "educational_domain": false,
            "dirty_words_domain": false,
            "did_you_mean": " ",
            "username": "user",
            "valid_format": true,
            "is_spoofable ": false,
            "disposable": false,
            "government_domain": false,
            "has_spf_records": true,
            "domain_popular": false,
            "has_mx_records": true,
            "china_free_email": false,
            "free_email": false,
            "russian_free_email": false,
            "police_domain": false,
            "dmarc_enforced": false,
            "suspicious_username": false
        },
        "Entity": "USER@EXAMPLE.COm"
    }
]
案件總覽
結果類型 說明 類型
輸出訊息*
  1. 成功實體:「APIVoid:已擷取下列實體的資訊:<實體 ID 清單>
  2. 失敗的實體:「下列實體發生錯誤:<實體 ID 清單>」
  3. 缺少實體 (沒有資料):「Can not found information for the following entities: <entities identifer list>」(找不到下列實體的資訊:<實體 ID 清單>)
  4. 沒有網址實體的快訊:「APIVoid:找不到電子郵件地址。」
一般
CSV 案件總覽 CSV 內容:實體資料(如下方範例) 一般
擴充

如有可用資料,請新增下列項目做為實體擴充功能 (別忘了加上「APIVoid」前置字元):

  1. suspicious_domain: data.get("suspicious_domain")
  2. should_block: data.get("should_block")
  3. score: data.get("score")
  4. disposable: data.get("disposable")
  5. has_mx_records: data.get("has_mx_records")
  6. has_spf_records: data.get("has_spf_records")
實體

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。