このドキュメントでは、 Netskope Cloud Exchangeプラットフォームの User Risk Exchange モジュールを使用してCrowdStrike v1.3.1 プラグインを構成する方法について説明します。 この統合機能は、CrowdStrikeのプラットフォームからホストIDとそのリスクスコアをCloud Exchangeに取得し、ホストスコアに基づいてホストマシン上でPut RTRスクリプトアクションを実行します。
前提条件
この設定を完了するには、以下が必要です。
- Netskopeテナント(または、例えば本番環境と開発/テスト環境など、複数のテナント)。
- Netskopeテナントおよびリスク交換モジュールが既に構成済みのNetskope Cloud Exchangeインスタンス。
- API トークンのCrowdStrikeインスタンス クレデンシャル (クライアント ID、クライアント シークレット)。
- 「RTRスクリプトを配置」アクションを実行するためのCrowdStrike Real-Time Response管理者ロール。
- 各プラットフォーム(Windows、Mac)ごとに、リアルタイム対応(高リスクコマンド)が有効になっている対応ポリシーを設定する必要があります。
- 以下のホストへの接続: https://api.crowdstrike.com
Compatibility
Netskope CE: v4.2.0, v5.0.1
パフォーマンスマトリックス
以下は、下記の仕様を持つ大規模CEスタック上で、50万台のホストとそのリスクスコアを取得して実施したパフォーマンスマトリックスです。
| スタックサイズ |
|
| 記録数 | 50万台のホスト |
| スコアを含むレコードを取り込むのにかかる時間。 | 約20分 |
プラグインスコープ
このプラグインは、CrowdStrikeテナントからホストとそのZTAスコアを取得し、ホスト上での「RTRスクリプトの配置」アクションもサポートします。
CrowdStrikeプラグインのサポート
| 取得したデータの種類 | 主催者 |
| サポートされているアクションの種類 | RTRスクリプト を配置する(アクションなし) |
マッピング
プルマッピング
| CrowdStrikeフィールズ | Netskope CE Fields |
|---|---|
| resources | id |
| overall | score |
スコアマッピング
| CrowdStrikeスコア | Netskope CE URE スコア |
|---|---|
| NA | なし |
| critical | 1-250 |
| high | 251-500 |
| medium | 501-750 |
| low | 751-1000 |
このプラグインのスコア計算は正規化されています 次の式:
UREスコアの計算 > CrowdStrikeホスト評価総合スコア * 10
スコアからファイルへのマッピング(アクション「RTRスクリプトを配置」用)
| Score | ファイル |
|---|---|
| 260未満 | crwd_zta_1_25.txt |
| 260~510 | crwd_zta_26_50.txt |
| 510~760 | crwd_zta_51_75.txt |
| 760~1000 | crwd_zta_76_100.txt |
権限
APIスコープ権限
APIスコープの権限の取得と付与については、 Get Client ID and Client Secretセクションを参照してください。
| 範囲 | Read | Write |
|---|---|---|
| 主催者 | はい | いいえ |
| リアルタイム応答(管理者) | – | はい |
| リアルタイム応答 | はい | いいえ |
| ゼロトラスト評価 | はい | – |
応答ポリシーの権限
レスポンスポリシーの権限の取得と付与については、 Add Permission for Response Policy (RTR script Permission)セクションを参照してください。
| カテゴリ | タイプ | Permission | 状態 |
|---|---|---|---|
| リアルタイム応答 | カスタムスクリプト | ファルコンスクリプト | 有効にする |
| リアルタイム応答 | 高リスクな命令 | put | 有効にする |
注: 応答ポリシーのアクセス許可は、Put RTR Script アクションを使用する場合にのみ必要です。
APIの詳細
使うAPI一覧
| APIの詳細 | 方法 | Endpoint | APIスコープ |
|---|---|---|---|
| 認証トークンを取得する | 役職 | /oauth2/token | なし |
| レコードを取得する | 得る | /デバイス/queries/デバイス-scroll/v1 | ホスト (読む) |
| スコアを取得 | 得る | /zero-trust-assessment/entities/assessments/v1 | ゼロトラスト評価(読む) |
| セッションIDを取得する | 役職 | /real-time-response/entities/sessions/v1 | リアルタイム応答 (読む) |
| スクリプトの存在を確認する | 得る | /real-time-response/queries/scripts/v1 | リアルタイム応答 (読む) |
| RTRクラウド上にスコアファイル削除スクリプトを作成する | 役職 | /real-time-response/entities/scripts/v1 | リアルタイム応答管理者(書き込み) |
| プラットフォーム名を取得する | 役職 | /devices/entities/devices/v2 | ホスト (読む) |
| ディレクトリを変更する | 役職 | /real-time-response/entities/admin-command/v1 | リアルタイム応答管理者(書き込み) |
| デバイスからファイルを削除する | 役職 | /real-time-response/entities/admin-command/v1 | リアルタイム応答管理者(書き込み) |
| コマンドのステータスを取得する | 得る | /real-time-response/entities/admin-command/v1 | リアルタイム応答管理者(書き込み) |
| デバイスにファイルを保存する | 役職 | /real-time-response/entities/admin-command/v1 | リアルタイム応答管理者(書き込み) |
| セッションを削除する | DELETE | /real-time-response/entities/sessions/v1 | リアルタイム応答 (読む) |
認証トークンを取得する
API endpoint:
/oauth2/token
Method: 役職
Parameter:
| 鍵 | Value |
|---|---|
| grant_type | client_credentials |
| client_id | <Client ID> |
| client_secret | <Client Secret> |
Sample API Response:
{
"access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6InB1YmxpYzphNDdiNTc2MS0zYzk3LTQwMmItOTgzNi0wNmNhODI0NTViOTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOltdLCJjbGllbnRfaWQiOiJlZTA5YTc3MjAwNzc0MzYwOTlhYTM5N2M2MTJlYTQzYiIsImV4cCI6MTcwMzI0MDQzOSwiZXh0Ijp7InN1Yl90eXBlIjoiY2xpZW50In0sImlhdCI6MTcwMzIzODYzOSwiaXNzIjoiaHR0cHM6Ly9hcGkuY3Jvd2RzdHJpa2UuY29tLyIsImp0aSI6ImQ5ZTlmZWI4LTM0ODAtNDM2NC1hYzI2LTBhZjgzNDdlOWY2OSIsIm5iZiI6MTcwMzIzODYzOSwic2NwIjpbXSwic3ViIjoiZWUwOWE3NzIwMDc3NDM2MDk5YWEzOTdjNjEyZWE0M2IiLCJzdWJfdHlwZSI6ImNsaWVudCJ9.a8oiNJivyV1AJKoICvr1IH5r4kMsWZ2xds7Qb_JRB6sD1JcbGqAkFq_wgw5-EAB-hHiRB-coF2Yy_PeP-8IvjWQVIjlDJrRmRQ-s-NmAkm8XaG9GojFZvaT-sufiBxKEDmpdntABNkEG1fcbVvd7tVW-vi36PFPoc3p1t4sbaMhf9_Kts8iAHsv6BudVyFsPhPAreGc2OXUFT39ZvuDTN5BxOFiPT_9_gadXt-7N*************************************************************************************",
"expires_in": 1799,
"token_type": "bearer"
}
レコードを取得する
API endpoint:
/devices/queries/devices-scroll/v1
Method: 得る
Parameters:
| 鍵 | Value |
|---|---|
| limit | 5000 |
| offset | “” |
Headers:
| 鍵 | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.0.1-ure-crowdstrike/1.3.1 |
Sample API Response:
{
"meta": {
"query_time": 0.025422559,
"pagination": {
"offset": 1,
"limit": 1,
"total": 21
},
"powered_by": "device-api",
"trace_id": "5f1a1eeb-9d8b-4412-8523-0fc933a0bf6f"
},
"resources": [
"89b9743fcb6b4ccaa09600ac5204bac4"
],
"errors": []
}
スコアを取得
API endpoint:
/zero-trust-assessment/entities/assessments/v1
Method: 得る
Parameters:
| 鍵 | Value |
|---|---|
| ids | [<Host Ids>] |
Headers:
| 鍵 | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.0.1-ure-crowdstrike/1.3.1 |
{
"meta": {
"query_time": 0.003210238,
"trace_id": "ba076fd9-7340-49f3-a9a2-41b6f2eb94d9"
},
"errors": [],
"resources": [
{
"aid": "e039334e8b0e4747bdfc7a29406ec8e1",
"cid": "c17f3a80ded0418eb107db3d26a27983",
"system_serial_number": "FVHX2HEDJ1WK",
"event_platform": "Mac",
"product_type_desc": "Workstation",
"modified_time": "2024-05-01T08:42:07Z",
"sensor_file_status": "confirmed",
"assessment": {
"sensor_config": 66,
"os": 72,
"overall": 68,
"version": "3.8.1"
},
"assessment_items": {
"os_signals": [
{
"signal_id": "mac_os_version",
"signal_name": "macOS Version",
"group_name": "macOS",
"criteria": "macOS version is ≥11.0",
"meets_criteria": "yes"
}
],
"sensor_signals": [
{
"signal_id": "ml_cloud_antimalware_detection_mac",
"signal_name": "Cloud ML - Cloud Anti-malware - Detection for macOS",
"group_name": "Prevention",
"criteria": "Cloud ML - Cloud Anti-malware Detection: set to Aggressive or higher",
"meets_criteria": "yes"
},
]
}
}
]
}
ファイルをクラウドに保存する
API endpoint:
/real-time-response/entities/put-files/v1
Method: 役職
Headers:
| 鍵 | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.0.1-ure-crowdstrike/1.3.1 |
Data:
{
"description": "file representing a ZTA score of 1_25",
"name": "crwd_zta_1_25.txt",
"comments_for_audit_log": "uploade file representing a ZTA score of 1_25 for Netskope ZTA-RTR integration"
}
Sample API Response:
{
"meta": {
"query_time": 0.536670425,
"writes": {
"resources_affected": 1
},
"powered_by": "empower-api",
"trace_id": "d4bddc66-83fd-4875-9016-a17899fd83ba"
}
}
セッションIDを取得する
API Endpoint:
real-time-response/entities/sessions/v1
Method: 役職
Headers:
| 鍵 | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.0.1-ure-crowdstrike/1.3.1 |
| Content-Type | アプリケーション/json |
Data:
| 鍵 | Value |
|---|---|
| device_id | <Device ID> |
| origin | Netskope |
| queue_offline | 真実 |
Sample API Response:
{
"meta": {
"query_time": 0.315515137,
"powered_by": "empower-api",
"trace_id": "0483a37f-896b-4bb3-bf1e-8f8b3618a2e2"
},
"resources": [
{
"session_id": "a26ad68e-1272-482b-95b5-78ee27344d80",
"scripts": [
{
"command": "cat",
"description": "Read a file from disk and display as ASCII",
"examples": "cat foo.txt\r\ncat -n foo.txt\r\ncat -t foo.txt\r\ncat -t -n foo.txt",
"internal_only": false,
"runnable": true,
"sub_commands": [],
"args": [
{
"id": 582,
"created_at": "2019-07-03T18:52:15Z",
"updated_at": "2019-07-03T18:52:15Z",
"script_id": 527,
"arg_type": "arg",
"data_type": "string",
"requires_value": false,
"arg_name": "Path",
"description": "path to cat",
"default_value": "",
"required": true,
"sequence": 1,
"options": null,
"encoding": "",
"command_level": "non-destructive"
},
{
"command": "getsid",
"description": "Enumerate local users and Security Identifiers (SID)",
"examples": "getsid\r\n List all users and associated SIDs\r\ngetsid foo\r\n List users and associated SIDs matching substring \"foo\"",
"internal_only": false,
"runnable": true,
"sub_commands": [],
"args": [
{
"id": 661,
"created_at": "2020-04-02T03:31:02Z",
"updated_at": "2020-04-02T03:31:02Z",
"script_id": 557,
"arg_type": "arg",
"data_type": "string",
"requires_value": false,
"arg_name": "UserName",
"description": "Partial or full username to filter results",
"default_value": "",
"required": false,
"sequence": 1,
"options": null,
"encoding": "",
"command_level": "non-destructive"
}
]
},
{
"command": "ls",
"description": "Display the contents of the specified path",
"examples": "ls\r\nls -l\r\nls -L\r\nls -t\r\nls -l -@\r\nls -R\r\nls -l -R\r\nls -l -t -R -L",
"internal_only": false,
"runnable": true,
"sub_commands": [],
"args": [
{
"id": 576,
"created_at": "2019-07-03T18:51:13Z",
"updated_at": "2019-07-03T18:51:13Z",
"script_id": 526,
"arg_type": "arg",
"data_type": "string",
"requires_value": false,
"arg_name": "Path",
"description": "Path ",
"default_value": ".",
"required": false,
"sequence": 1,
"options": null,
"encoding": "",
"command_level": "non-destructive"
} ]
},
{
"command": "mount",
"description": "List or mount filesystem volumes",
"examples": "Executable by all RTR roles:\r\nmount\r\nExecutable by privileged RTR users only:\r\nmount -t=nfs \"host:/exports/filesystem\" \"/mnt/filesystem\"\r\n Mount the NFS filesystem located at \"/exports/filesystem\" on \"host\" to the local destination \"/mnt/filesystem\"\r\nmount -t=smbfs \"//user:password@host/filesystem\" \"/mnt/mountpoint\"\r\n Mount the SMB \"/filesystem\" on \"host\" as \"user\" with \"password\" to \"/mnt/mountpoint\"\r\nmount -t=smbfs -o=nobrowse \"//user:password@host/filesystem\" \"/mnt/mountpoint\"\r\n Mount the SMB \"/filesystem\" with option \"nobrowse\" on \"host\" as \"user\" with \"password\" to \"/mnt/mountpoint\"",
"internal_only": false,
"runnable": true,
"sub_commands": [],
"args": []
},
{
"command": "netstat",
"description": "Display routing information or network connections",
"examples": "netstat\r\nnetstat -nr",
"internal_only": false,
"runnable": true,
"sub_commands": [],
"args": [
{
"id": 973,
"created_at": "2023-11-20T23:23:37Z",
"updated_at": "2023-11-20T23:23:37Z",
"script_id": 539,
"arg_type": "flag",
"data_type": "string",
"requires_value": false,
"arg_name": "n",
"description": "Flag to show network addresses as numbers",
"default_value": "",
"required": false,
"sequence": 2,
"options": null,
"encoding": "",
"command_level": "non-destructive"
}
]
},
{
"command": "users",
"description": "Get details about local users",
"examples": "users\r\n List details about all local users\r\nusers foo\r\n List details about local user \"foo\"",
"internal_only": false,
"runnable": true,
"sub_commands": [],
"args": [
{
"id": 679,
"created_at": "2020-04-02T03:31:12Z",
"updated_at": "2020-04-02T03:31:12Z",
"script_id": 565,
"arg_type": "arg",
"data_type": "string",
"requires_value": false,
"arg_name": "UserName",
"description": "Username to filter results",
"default_value": "",
"required": false,
"sequence": 1,
"options": null,
"encoding": "",
"command_level": "non-destructive"
}
]
}
],
"existing_aid_sessions": 1,
"created_at": "2023-12-22T15:47:24.904481922Z",
"offline_queued": true
}
],
"errors": null
}
スクリプトの存在を確認する
API endpoint: /real-time-response/queries/scripts/v1
Method: GET
Headers:
| 鍵 | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.0.1-ure-crowdstrike/1.3.1 |
Parameters:
| 鍵 | Value |
|---|---|
| filter | 名前: ' '<Script name> |
API Response:
{
"meta": {
"query_time": 0.025087906,
"pagination": {
"offset": 0,
"limit": 100,
"total": 1
},
"powered_by": "empower-api",
"trace_id": "0e9ccedb-58c9-44a9-842c-620977f096b1"
},
"resources": [
"bab3f0ff134311efb74642cd23408b64_ee09a7720077436099aa397c612ea43b"
]
}
RTR Cloud 上でスコアファイル削除スクリプトを作成する
API Endpoint: /real-time-response/entities/scripts/v1
Method: POST
Headers:
| Key | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.0.1-ure-crowdstrike/1.3.1 |
Data:
| 鍵 | Value |
|---|---|
| name | スクリプト名 |
| permission_type | public |
| description | ファイル用のデスクリプション。 |
Files
スクリプトファイルをアップロードしてください。
Pythonスクリプトの場合は、requestsのfilesパラメータにこれを追加してください。
[
(
"file",
(
"<File>",
file,
"application/octet-stream",
),
)
]
API Response:
{
"meta": {
"query_time": 0.947792627,
"writes": {
"resources_affected": 1
},
"powered_by": "empower-api",
"trace_id": "eed1850a-0c07-488a-b36d-a70d5e904d71"
}
}
プラットフォーム名を取得する
API endpoint:
/devices/entities/devices/v2
Method: 得る
Headers:
| 鍵 | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.0.1-ure-crowdstrike/1.3.1 |
Parameters:
| 鍵 | Value |
|---|---|
| Ids | [<Host ID>] |
Sample API Response:
{
"meta": {
"query_time": 0.001626152,
"powered_by": "device-api",
"trace_id": "8adcbd8a-40cd-4086-8e5d-5d3962fb1073"
},
"resources": [
{
"device_id": "d2abab7b4c6a4d9998b298b19bbda31f",
"cid": "c17f3a80ded0418eb107db3d26a27983",
"agent_load_flags": "0",
"agent_local_time": "2023-12-22T11:19:53.929Z",
"agent_version": "7.05.17603.0",
"bios_manufacturer": "Apple Inc.",
"bios_version": "515.0.0.0.0",
"config_id_base": "65994753",
"config_id_build": "17603",
"config_id_platform": "4",
"cpu_signature": "526057",
"external_ip": "117.217.127.213",
"mac_address": "dc-a9-04-99-43-aa",
"hostname": "ITs-MacBook-Pro.local",
"first_seen": "2023-12-18T08:46:57Z",
"last_login_timestamp": "2023-12-21T08:00:38Z",
"last_login_user": "it",
"last_login_uid": "501",
"last_login_user_sid": "S-1-5-21-1276927669-3124867281-3856135234-2002",
"last_seen": "2023-12-22T11:46:27Z",
"local_ip": "172.20.10.87",
"major_version": "22",
"minor_version": "6",
"os_version": "Ventura (13)",
"os_build": "22G120",
"platform_id": "1",
"platform_name": "Mac",
"policies": [
{
"policy_type": "prevention",
"policy_id": "e17fdf411592409794d748e907da9967",
"applied": true,
"settings_hash": "528b286b",
"assigned_date": "2023-12-18T08:48:02.464865254Z",
"applied_date": "2023-12-18T08:48:08.608666735Z",
"rule_groups": []
}
],
"reduced_functionality_mode": "yes",
"device_policies": {
"prevention": {
"policy_type": "prevention",
"policy_id": "e17fdf411592409794d748e907da9967",
"applied": true,
"settings_hash": "528b286b",
"assigned_date": "2023-12-18T08:48:02.464865254Z",
"applied_date": "2023-12-18T08:48:08.608666735Z",
"rule_groups": []
},
"sensor_update": {
"policy_type": "sensor-update",
"policy_id": "766825ba2e2847f8a9134f7f48f44214",
"applied": true,
"settings_hash": "tagged|3;101",
"assigned_date": "2023-12-18T09:00:47.465877148Z",
"applied_date": "2023-12-18T09:03:49.721523878Z",
"uninstall_protection": "ENABLED"
},
"device_control": {
"policy_type": "device-control",
"policy_id": "6e4a89125c4343f3ab42cbf2fa482702",
"applied": true,
"assigned_date": "2023-12-18T08:48:02.464932037Z",
"applied_date": "2023-12-18T08:49:48.770860727Z"
},
"global_config": {
"policy_type": "globalconfig",
"policy_id": "e2289d74264744f38e62d1146b13189d",
"applied": true,
"settings_hash": "1fda691c",
"assigned_date": "2023-12-22T11:20:01.358167731Z",
"applied_date": "2023-12-22T11:21:05.552056147Z"
},
"remote_response": {
"policy_type": "remote-response",
"policy_id": "70d43a45f67149e8b54c8d80ac00df10",
"applied": true,
"settings_hash": "797eb425",
"assigned_date": "2023-12-18T08:48:02.464926863Z",
"applied_date": "2023-12-18T08:48:08.689092082Z"
},
"firewall": {
"policy_type": "firewall",
"policy_id": "b1a5ff10a3c44f66a47c7f08f2e372e5",
"applied": true,
"assigned_date": "2023-12-18T08:48:02.464940776Z",
"applied_date": "2023-12-18T08:48:08.752377285Z",
"rule_set_id": "b1a5ff10a3c44f66a47c7f08f2e372e5"
}
},
"groups": [],
"group_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"product_type_desc": "Workstation",
"provision_status": "Provisioned",
"serial_number": "C02V10FEHV2T",
"status": "normal",
"system_manufacturer": "Apple Inc.",
"system_product_name": "MacBookPro14,2",
"tags": [],
"modified_timestamp": "2023-12-22T11:46:35Z",
"meta": {
"version": "110",
"version_string": "6:10864108136"
},
"kernel_version": "22.6.0",
"chassis_type": "9",
"chassis_type_desc": "Laptop"
}
],
"errors": null
}
ディレクトリの変更
API Endpoint:
/real-time-response/entities/admin-command/v1
Method: 役職
Headers:
| 鍵 | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.0.1-ure-crowdstrike/1.3.1 |
Data:
| 鍵 | Value |
|---|---|
| base_command | cd |
| command_string | cd “/Library/Application Support/Netskope/STAgent” または cd “C:\Program Files (x86)\Netskope\STAgent” |
| persist | 真実 |
| session_id | 30b171e9-26ca-4856-b00e-10d5c4be765e |
Sample API Response:
{
"meta": {
"query_time": 0.052249291,
"powered_by": "empower-api",
"trace_id": "ebb0457c-1000-4607-99c5-85fd2c2aae91"
},
"resources": [
{
"session_id": "30b171e9-26ca-4856-b00e-10d5c4be765e",
"cloud_request_id": "399d6ed9-e2c5-4e72-8618-97515f69dc72",
"queued_command_offline": false
}
],
"errors": null
}
デバイスからファイルを削除する
API Endpoint:
/real-time-response/entities/admin-command/v1
Method: 役職
Headers:
| 鍵 | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.0.1-ure-crowdstrike/1.3.1 |
Data:
| 鍵 | Value |
|---|---|
| base_command | rm |
| command_string | rm crwd_zta_1_25.txt |
| persist | 真実 |
| session_id | 30b171e9-26ca-4856-b00e-10d5c4be765e |
Sample API Response:
{
"meta": {
"query_time": 0.052249291,
"powered_by": "empower-api",
"trace_id": "ebb0457c-1000-4607-99c5-85fd2c2aae91"
},
"resources": [
{
"session_id": "30b171e9-26ca-4856-b00e-10d5c4be765e",
"cloud_request_id": "399d6ed9-e2c5-4e72-8618-97515f69dc72",
"queued_command_offline": false
}
],
"errors": null
}
ファイルをデバイスに保存する
API Endpoint:
/real-time-response/entities/admin-command/v1
Method: 役職
Headers:
| 鍵 | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.0.1-ure-crowdstrike/1.3.1 |
Data:
| 鍵 | Value |
|---|---|
| base_command | put |
| command_string | crwd_zta_1_25.txt を配置する |
| persist | 真実 |
| session_id | <Session ID> |
Sample API Response:
{
"meta": {
"query_time": 0.052249291,
"powered_by": "empower-api",
"trace_id": "ebb0457c-1000-4607-99c5-85fd2c2aae91"
},
"resources": [
{
"session_id": "30b171e9-26ca-4856-b00e-10d5c4be765e",
"cloud_request_id": "399d6ed9-e2c5-4e72-8618-97515f69dc72",
"queued_command_offline": false
}
],
"errors": null
}
コマンドステータスを取得する
API endpoint:
/real-time-response/entities/admin-command/v1
Method: 得る
Headers:
| 鍵 | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.0.1-ure-crowdstrike/1.3.1 |
Parameters:
| 鍵 | Value |
|---|---|
| cloud_request_id | 399d6ed9-e2c5-4e72-8618-97515f69dc72 |
| sequence_id | 0 |
Sample API Response:
{
"meta": {
"query_time": 0.30452861,
"powered_by": "empower-api",
"trace_id": "f2fbc47d-a6e5-4ddf-9bb0-778fd7b32017"
},
"resources": [
{
"session_id": "30b171e9-26ca-4856-b00e-10d5c4be765e",
"task_id": "399d6ed9-e2c5-4e72-8618-97515f69dc72",
"complete": true,
"stdout": "",
"stderr": "/Library/Application Support/Netskope/STAgent does not exist\n",
"base_command": "cd"
}
],
"errors": []
}
セッションを削除する
API Endpoint:
/real-time-response/entities/sessions/v1
Method: DELETE
Headers:
| 鍵 | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.0.1-ure-crowdstrike/1.3.1 |
| Content-Type | アプリケーション/json |
Parameter:
| 鍵 | Value |
|---|---|
| session_id | 30b171e9-26ca-4856-b00e-10d5c4be765e |
Sample API Response:
Status code: 204
ユーザーエージェント
このプラグインに追加されたユーザーエージェントは、次の形式です: <vendor>-<integration name>/<version> 。例えば:
netskope-ce-5.0.1-ure-crowdstrike/1.3.1
ワークフロー
- CrowdStrikeのクライアントIDとクライアントシークレットを取得してください。
- レスポンスポリシー(RTRスクリプトの権限)に権限を追加します。
- ユーザーリスク交換用のCrowdStrikeプラグインを設定します。
- CrowdStrikeプラグインのビジネスルールを設定します。
- CrowdStrikeプラグインのアクションを設定します。
- CrowdStrikeプラグインを検証してください。
再生ボタンをクリックして動画をご覧ください。
CrowdStrikeクライアントIDとクライアントシークレットを取得してください。
- CrowdStrikeプラットフォームにログインし、メニュー アイコン > サポートとリソース > API クライアントとキーに移動します。

- 「新しい API クライアントを追加」をクリックします。

- 使うCrowdStrike UREプラグインに次のスコープを追加します。
範囲 Read Write 主催者 はい いいえ リアルタイム応答(管理者) – はい リアルタイム応答 はい いいえ ゼロトラスト評価 はい – - クライアントIDとシークレットをコピーしてください。
レスポンスポリシー(RTRスクリプトの権限)に権限を追加する
- Falcon CrowdStrikeのユーザーインターフェースにログインしてください。
- 左上のメニューボタンをクリックしてください。ホストの設定と管理>応答ポリシーへ行ってください。


- Windows の場合、使用するポリシーに移動し、ポリシーの右隅にあるEdit Policyをクリックします。
- 以下の権限を有効にしてください。
Response Policy Permissions
カテゴリ タイプ Permission 状態 リアルタイム応答 高リスクな命令 put 有効にする このスクリーンショットを参照してください。

ホスト設定とManagement > Host managementから直接ホストにアクセスすることもできます。ホスト名をクリックし、左側のポップアップメニューからReal Time Response Policyまでスクロールしてください。
CrowdStrikeプラグインを設定する
- Cloud Exchangeで、 [設定] > [プラグイン]に移動します。CrowdStrike v1.3.1 (URE)プラグインボックスを検索して選択します。

- プラグインの設定にプロキシを使用する場合は、設定名、同期間隔を追加し、システム プロキシを使用を有効にします。

- 「次へ」をクリックし、ベースURL、クライアントID、クライアントシークレット、および最大スコアを入力します(最大スコアは、プラグインが指定された値以下のホストのスコアを取得するために使用する設定パラメータです)。

- 「次へ」をクリックして、Select範囲のページからスコア範囲を設定してください。.

- 完了したら、 「保存」をクリックしてください

CrowdStrikeのユーザーリスク交換ビジネスルールを作成する
- リスク交換モジュール > ユーザーリスク交換 > ビジネスルールに移動し、 「新しいルールの作成」をクリックします。

- ルール名を入力し、要件に基づいてビジネスルールのクエリを設定したら、 「保存」をクリックします。

CrowdStrike 用の Netskope ユーザーリスク交換アクションを設定する
このCrowdStrikeプラグインは、以下の2種類のアクションタイプをサポートしています。
- 何もしない:このアクションに対しては何も行われません。ユーザーは、CTOでUBAアラートを生成するには この操作を行い、アラート生成トグルボタンを有効にします。
- RTRスクリプトを配置: RTRスクリプトを配置するアクションは、それぞれのスコアに応じてホスト上にファイルを配置します。
Score to File Mapping
| Score | ファイル |
|---|---|
| 260未満 | crwd_zta_1_25.txt |
| 260~510 | crwd_zta_26_50.txt |
| 510~760 | crwd_zta_51_75.txt |
| 760~1000 | crwd_zta_76_100.txt |
アクションを設定する手順:
- ユーザーリスクエクスチェンジ > アクションに移動し、 「アクション構成の追加」をクリックします。

- それぞれのドロップダウンメニューから、必要なビジネスルール、設定(プラグイン)、およびアクションSelect 。

- 「保存」ボタンをクリックしてください。
CrowdStrikeプラグインを検証する
Cloud Exchangeで検証する
- User Risk Exchange > Hostsへ移動してください。ホスト全員とそのスコアを確認できます。

- ログページにアクセスして、ホストとそのそれぞれのスコアが取得したログを確認してください。

- 操作がMacマシン上で実行された場合は、ログページに移動して、Macホストに対して実行された操作を確認してください。

- 操作がWindowsマシン上で実行された場合は、ログページに移動して、Windowsホストに対して実行された操作を確認してください。

- ユーザーが設定済みのビジネスルールのいずれかに一致した場合、そのユーザーに対して設定済みのアクションが実行されます。これはRisk Exchange > Action Logs .
で確認できます。
CrowdStrikeで検証する
- CrowdStrikeプラットフォームにログインしてください。左上のメニューオプションをクリックしてから、 Host Setup and management > Host Managementをクリックします。

- この画像に示すように、プラットフォームから取得されたホストの数が表示されます。

RTR スクリプトの配置アクションを検証し、ホストマシンに追加されたファイルを確認する場合は、 RTR スクリプトの配置アクションの以下の手順と検証手順に従ってください。
Step 1: Check Host Existence
アクションがトリガーされると、プラグインはまず、指定されたホスト ID を持つホストがCrowdStrike上に存在するかどうかを確認します。 。
Step 2: Evaluate Host Presence
- ホストが存在しない場合、プラグインはそれ以上の処理を実行せず、警告を表示します。
- ホストが存在する場合、プラグインは以下の操作を実行します。
Step 3: Create Score Files on RTR Cloud
このプラグインは、RTRクラウド上の各リスクスコア範囲ごとにファイルを作成します。
例えば、スコアが1~25の場合、ファイル名はcrwd_zta_1_25.txtとなります。
同名のファイルが既に存在する場合、API は新しいファイルを作成しません。
Step 4: Establish Host Session
必要なファイルが作成されると、プラグインはホストとのセッションを開始します。 ホストID。
Step 5: Retrieve Host OS
プラグインは、それぞれのホストのオペレーティングシステム(OS)情報を取得します。
Step 6: Change Directory Based on OS
- ホストのOSに応じて、プラグインはAPI呼び出しを行い、ディレクトリを適切な場所に変更します。
- For Mac: cd “/Library/Application Support/Netskope/STAgent”
- For Windows: cd 「/Program Files (x86)/Netskope/STAgent」
- プラグインはコマンドの実行を最大5分間待機します。処理にそれ以上の時間がかかる場合は、タイムアウトエラーが発生します。このタイムアウトは、手順6、7、および8のコマンドに適用されます。
Step 7: Check if the script for removal of file for OS is present on RTR Cloud
- ホストマシンから既存のファイルを削除するには、プラグインがRTRクラウド上に削除スクリプトが既に存在するかどうかを確認する必要があります。
- RTRスクリプトの配置アクションはWindowsとmacOSをサポートしているため、Windowsスコアファイル削除スクリプトとMacスコアファイル削除スクリプトはRTRクラウド上に存在する必要があります。
Step 8: Create script if it does not exist on the RTR cloud
該当するOS用のスクリプトがRTRクラウド上に存在しない場合は、作成してください。
Step 9: Remove existing files from host machine
ホストマシンのそれぞれのOSに対応したスクリプトを実行して、既存のファイルを削除します。
Step 10: Upload New Score File
- 古いスコアファイルを削除した後、プラグインは「put」コマンドを実行して新しいスコアファイルをアップロードします。
- 既存のスコアが12(crwd_zta_1_25.txtが必要)で、スコアが48に変更された場合、新しいファイル(crwd_zta_26_50.txt)がアップロードされます。
Step 11: Delete Host Session
すべての手順が完了すると、プラグインはホストとの間で作成されたセッションを削除し、リソースを解放して適切なクリーンアップを確実に行います。
Steps to Validate action on CrowdStrike
- CrowdStrikeで、「ホスト設定と管理」>「ホスト管理」に移動します。
- ホストを検索 ホスト名またはホストIDを入力してください。 ホスト名をクリックしてください。
- 左側のポップアップメニューから、設定アイコンをクリックし、「ホストに接続」を選択します。

ホストに追加されたファイルを確認するには、ホストに接続後、以下のパスに移動して、作成された該当するスコアファイルを確認してください。
- Windowsマシンの場合:C:\\Program Files (x86)\\Netskope\\STAgent

- Macの場合:/Library/Application Support/Netskope/STAgent

トラブルシューティング
CrowdStrikeプラットフォームからホストをプルできません
CrowdStrikeプラットフォームからホスト ID が取得されない場合は、CE Logging のログを確認してください。 次のいずれかである可能性があります。
- プラットフォームからホストを取得中にエラーが発生しました。
- CrowdStrikeプラットフォームをプルできるホストがありません。
What to do: IOCの取得中にエラーが発生した場合は、エラーメッセージを確認し、以下の手順に従ってください。
500エラーを受信しました:サーバーがダウンしている可能性があります。しばらく待ってから再度確認してください。
403 エラーの受信: プラグイン構成パラメータに十分な権限がないか、クレデンシャルが存在しません。 クライアントIDとシークレットの権限を確認してください。
ログにエラーがない場合は、プラットフォーム上でホストを取得できない可能性があります。 CrowdStrikeで利用可能なホストを確認し、同じ内容であることを確認してください。
引き抜かれたホストのスコアを取得できませんでした
プラットフォームからすべてのホストまたは一部のホストのスコアを取得できない場合、プラグインの設定で指定されている最大スコア値が原因である可能性があります。
What to do: プラグインの設定パラメータページを確認してください。プラグイン設定で「最大スコア」の値を増やしてください。このプラグインは、最大スコア欄に記載された値以下のホストスコアを取得します。

ホスト上でアクションを実行できません
RTRスクリプトを実行できない場合は、以下のいずれかの理由が考えられます。
- 当該行為に対する十分な許可が与えられていなかった。
- 操作の実行中にエラーが発生しました。
What to do: 問題を確認し、それに応じて適切な対応を取ってください。
当該行為に対する十分な許可が与えられていなかった。RTRスクリプトの権限が付与されているか確認してください。
Receiving error while performing an action.
ホストマシンがダウンしているか存在しない場合、プラグインは RTR スクリプトの配置アクションを正常に実行できません。ホストにアクセスできることを確認してください。
ホストがLinuxの場合、Linuxはサポート対象外のOSであるため、この操作は実行されません。
ホスト上で実行される操作が多すぎると、425エラーが発生し、その操作がキューに追加される可能性があります。操作を再度実行する前に、しばらく待つ必要があります。

