Netskope LogoNetskope Logo
  • セキュリティサービス
  • AIサービス
  • ネットワークサービス
  • 分析サービス
  • 統合
  • getting-started.svg始める
    • サポート
    • コミュニティ
    • Netskope.com
    © 2026 無断転載を禁じます。Netskope 株式会社
    トップページ
    Netskope Cloud Exchange
    脅威交換モジュール
    サードパーティ製脅威エクスチェンジプラグインの設定
    Threat Exchange 用 Rubrik プラグイン

    Threat Exchange 用 Rubrik プラグイン

    このドキュメントではCloud Exchangeプラットフォームの Threat Exchange モジュールを使用して v1.0.0 Rubrik プラグインを構成する方法について説明します。 このプラグインは、MD5およびSHA256形式の脅威IoCをRubrikの脅威ハンティングページに共有することをサポートしており、 「脅威ハンティングを開始」アクションを実行できます。

    前提条件

    プラグインの設定を完了するには、以下が必要です。

    • Netskopeテナント(または、例えば本番環境と開発/テスト環境など、複数のテナント)。
    • Netskope Cloud Exchangeテナントには、テナントプラグインと脅威交換プラグインが既に設定済みです。
    • Rubrik Security Cloudインスタンスへの接続(例:<customername> .my.rubrik.com)。
    Rubrikプラグインのサポート

    このプラグインは、SHA256とMD5をRubrikに送信することをサポートしています。このプラグインは、共有IoCに対して「脅威ハンティング開始」アクションを実行することもサポートしています。

     取得したインジケーターの種類サポートされていません
    共有指標タイプSHA256、MD5
    APIの詳細
    使うAPI一覧
    使うケース方法EndpointAPIスコープ
    認証トークンを取得する役職/api/client_tokenなし
    Rubrik プラットフォームから objectFids を取得する役職/api/graphql脅威ハント(読む)
    Rubrikに存在するクラスターを取得します役職/api/graphql脅威ハント

    (読む)

    Rubrik での脅威ハントの開始役職/api/graphql脅威ハント(読む)
    認証トークンを取得する

    API Endpoint: /api/client_token

    Method: 役職

    Headers

    鍵Value
    ユーザーエージェントnetskope-ce-5.0.1-cte-rubrik-v1.0.0

    Payload

    パラメータValue
    client_id<Client ID>
    client_secret<Client Secret>

    Sample API Response

    {
        "access_token": "",
        "expires_in": 43200,
        "Client_id" : “”
    }
    
    脅威ハントアクションを開始するための API
    RubrikからObjectFidを取得する

    API Endpoint: /api/graphql
    Method:ポスト
    Headers

    鍵Value
    ユーザーエージェントnetskope-ce-5.0.1-cte-rubrik-v1.0.0
    Authorization無記名トークン<Bearer Token>
    Content-Typeアプリケーション/json

    Payload

    GraphQLクエリVariables
    query SnappableQuery($first: Int, $after: String, $typeFilter: [HierarchyObjectTypeEnum!], $filter: [Filter!], $sortBy: HierarchySortByField, $sortOrder: SortOrder) {
      inventoryRoot {
        descendantConnection(first: $first, after: $after, typeFilter: $typeFilter, filter: $filter, sortBy: $sortBy, sortOrder: $sortOrder) {
          edges {
            cursor
            node {
              id
              ... on WindowsFileset {
                isPassThrough
                __typename
              }
              ... on ShareFileset {
                isPassThrough
                __typename
              }
              ... on LinuxFileset {
                isPassThrough
                __typename
              }
              ... on O365Onedrive {
                userPrincipalName
                __typename
              }
              ...EffectiveSlaColumnFragment
              ...HierarchyObjectClusterColumnFragment
              ...HierarchyObjectLocationColumnFragment
              ...HierarchyObjectNameColumnFragment
              ...HierarchyObjectTypeFragment
              ... on AzureNativeVirtualMachine {
                region
                isAdeEnabled
                resourceGroup {
                  subscription {
                    name
                    __typename
                  }
                  __typename
                }
                effectiveSlaDomain {
                  ...ArchivalSpecFragment
                  __typename
                }
                __typename
              }
              ... on AzureNativeManagedDisk {
                region
                isAdeEnabled
                resourceGroup {
                  subscription {
                    name
                    __typename
                  }
                  __typename
                }
                effectiveSlaDomain {
                  ...ArchivalSpecFragment
                  __typename
                }
                __typename
              }
              ... on CloudDirectNasExport {
                exportPath
                __typename
              }
              __typename
            }
            __typename
          }
          pageInfo {
            endCursor
            hasNextPage
            hasPreviousPage
            __typename
          }
          __typename
        }
        __typename
      }
    }
    
    fragment EffectiveSlaColumnFragment on HierarchyObject {
      id
      effectiveSlaDomain {
        ...EffectiveSlaDomainFragment
        ... on GlobalSlaReply {
          description
          __typename
        }
        __typename
      }
      ... on CdmHierarchyObject {
        pendingSla {
          ...SLADomainFragment
          __typename
        }
        __typename
      }
      __typename
    }
    
    fragment EffectiveSlaDomainFragment on SlaDomain {
      id
      name
      ... on GlobalSlaReply {
        isRetentionLockedSla
        retentionLockMode
        __typename
      }
      ... on ClusterSlaDomain {
        fid
        cluster {
          id
          name
          __typename
        }
        isRetentionLockedSla
        retentionLockMode
        __typename
      }
      __typename
    }
    
    fragment SLADomainFragment on SlaDomain {
      id
      name
      ... on ClusterSlaDomain {
        fid
        cluster {
          id
          name
          __typename
        }
        __typename
      }
      __typename
    }
    
    fragment HierarchyObjectClusterColumnFragment on HierarchyObject {
      ...CdmClusterLabelFragment
      ... on CloudDirectHierarchyObject {
        cluster {
          id
          name
          __typename
        }
        __typename
      }
      __typename
    }
    
    fragment CdmClusterLabelFragment on CdmHierarchyObject {
      cluster {
        id
        name
        version
        __typename
      }
      primaryClusterLocation {
        id
        __typename
      }
      __typename
    }
    
    fragment HierarchyObjectLocationColumnFragment on HierarchyObject {
      logicalPath {
        name
        objectType
        __typename
      }
      physicalPath {
        name
        objectType
        __typename
      }
      __typename
    }
    
    fragment HierarchyObjectNameColumnFragment on HierarchyObject {
      name
      __typename
    }
    
    fragment HierarchyObjectTypeFragment on HierarchyObject {
      objectType
      __typename
    }
    
    fragment ArchivalSpecFragment on GlobalSlaReply {
      archivalSpec {
        storageSetting {
          targetType
          __typename
        }
        __typename
      }
      archivalSpecs {
        storageSetting {
          targetType
          __typename
        }
        __typename
      }
      __typename
    }
    
    {
      "first": 1,
      "filter": [
        {
          "texts": [
            "false"
          ],
          "field": "IS_GHOST"
        },
        {
          "texts": [
            “”
          ],
          "field": "CLUSTER_ID"
        }
      ],
      "sortBy": "NAME",
      "sortOrder": "ASC",
      "typeFilter": [
        "LinuxFileset",
        "ShareFileset",
        "VmwareVirtualMachine",
        "WindowsFileset",
        "HypervVirtualMachine",
        "NutanixVirtualMachine",
        "NAS_FILESET"
      ],
      "after":"Y3Vyc29yOmludDow"
    }
    

    Sample API Response

    {
        "data": {
            "inventoryRoot": {
                "descendantConnection": {
                    "edges": [
                        {
                            "cursor": "Y3Vyc29yOmludDox",
                            "node": {
                                "id": "",
                                "effectiveSlaDomain": {
                                    "id": "",
                                    "name": "MGMT-12H-30D-1Y-AWS-USW1",
                                    "isRetentionLockedSla": false,
                                    "retentionLockMode": "NO_MODE",
                                    "__typename": "GlobalSlaReply",
                                    "description": "Upgraded from Cluster_A"
                                },
                                "pendingSla": null,
                                "__typename": "NasFileset",
                                "cluster": {
                                    "id": "",
                                    "name": "Cluster_A",
                                    "version": "8.1.3-p11-25483",
                                    "__typename": "Cluster"
                                },
                                "primaryClusterLocation": {
                                    "id": "",
                                    "__typename": "DataLocation"
                                },
                                "logicalPath": [
                                    {
                                        "name": "/volume1/ISO: **",
                                        "objectType": "FilesetTemplate",
                                        "__typename": "PathNode"
                                    },
                                    {
                                        "name": "/volume1/ISO",
                                        "objectType": "NasShare",
                                        "__typename": "PathNode"
                                    },
                                    {
                                        "name": "domain.com",
                                        "objectType": "NasSystem",
                                        "__typename": "PathNode"
                                    }
                                ],
                                "physicalPath": [
                                    {
                                        "name": "/volume1/ISO: **",
                                        "objectType": "FilesetTemplate",
                                        "__typename": "PathNode"
                                    },
                                    {
                                        "name": "/volume1/ISO",
                                        "objectType": "NasShare",
                                        "__typename": "PathNode"
                                    },
                                    {
                                        "name": "domain.com",
                                        "objectType": "NasSystem",
                                        "__typename": "PathNode"
                                    }
                                ],
                                "name": "/volume1/ISO: **",
                                "objectType": "NAS_FILESET"
                            },
                            "__typename": "HierarchyObjectEdge"
                        }
                    ],
                    "pageInfo": {
                        "endCursor": "Y3Vyc29yOmludDox",
                        "hasNextPage": true,
                        "hasPreviousPage": true,
                        "__typename": "PageInfo"
                    },
                    "__typename": "HierarchyObjectConnection"
                },
                "__typename": "InventoryRoot"
            }
        }
    }
    
    Rubrikに存在するクラスターを取得する

    API Endpoint: /api/graphql
    Method:ポスト
    Headers

    鍵Value
    ユーザーエージェントnetskope-ce-5.0.1-cte-rubrik-v1.0.0
    Authorization無記名トークン<Bearer Token>
    Content-Typeアプリケーション/json

    Payload

    GraphQLクエリVariables
    query ClusterPickerQuery($first: Int, $after: String, $filter: ClusterFilterInput, $sortBy: ClusterSortByEnum, $sortOrder: SortOrder) {
      clusterConnection(filter: $filter, sortBy: $sortBy, sortOrder: $sortOrder, first: $first, after: $after) {
        edges {
          cursor
          node {
            id
            status
            ...ClusterIconNameFragment
            ...ClusterVersionColumnFragment
            ...ClusterTypeColumnFragment
            ...ClusterCapacityColumnFragment
            ...ClusterProtectedCountColumnFragment
            ...ClusterGeoLocationColumnFragment
            ...ClusterNameColumnFragment
            __typename
          }
          __typename
        }
        pageInfo {
          startCursor
          endCursor
          hasNextPage
          hasPreviousPage
          __typename
        }
        __typename
      }
    }
    
    fragment ClusterIconNameFragment on Cluster {
      id
      name
      status
      pauseStatus
      state {
        clusterRemovalState
        __typename
      }
      defaultAddress
      passesConnectivityCheck
      connectivityLastUpdated
      ...ClusterNodeConnectionFragment
      globalManagerConnectivityStatus {
        urls {
          url
          isReachable
          __typename
        }
        __typename
      }
      systemStatus
      ccprovisionInfo {
        jobStatus
        jobType
        progress
        vendor
        __typename
      }
      __typename
    }
    
    fragment ClusterNodeConnectionFragment on Cluster {
      clusterNodeConnection {
        nodes {
          id
          status
          ipAddress
          __typename
        }
        __typename
      }
      __typename
    }
    
    fragment ClusterVersionColumnFragment on Cluster {
      version
      eosDate
      eosStatus
      __typename
    }
    
    fragment ClusterTypeColumnFragment on Cluster {
      name
      productType
      type
      clusterNodeConnection {
        nodes {
          id
          __typename
        }
        __typename
      }
      __typename
    }
    
    fragment ClusterCapacityColumnFragment on Cluster {
      metric {
        usedCapacity
        availableCapacity
        totalCapacity
        __typename
      }
      __typename
    }
    
    fragment ClusterProtectedCountColumnFragment on Cluster {
      productType
      noSqlWorkloadCount
      ...ClusterProtectedSnappablesFragment
      __typename
    }
    
    fragment ClusterProtectedSnappablesFragment on Cluster {
      protectedSnappables: snappableConnection(filter: {protectionStatus: Protected}) {
        count
        __typename
      }
      __typename
    }
    
    fragment ClusterGeoLocationColumnFragment on Cluster {
      geoLocation {
        address
        __typename
      }
      __typename
    }
    
    fragment ClusterNameColumnFragment on Cluster {
      name
      __typename
    }
    
    {
      "sortBy": "ClusterName",
      "sortOrder": "ASC",
      "filter": {
        "type": [],
        "name": [
          ""
        ]
      },
      "first": 1
    }
    

    Sample API Response

    {
        "data": {
            "clusterConnection": {
                "edges": [
                    {
                        "cursor": "Y3Vyc29yOmludDow",
                        "node": {
                            "id": "40fdb2a5-3591-40ee-a37a-50bce5240d62",
                            "status": "Connected",
                            "name": "Cluster_A",
                            "pauseStatus": "NOT_PAUSED",
                            "state": {
                                "clusterRemovalState": "REGISTERED",
                                "__typename": "clusterState"
                            },
                            "defaultAddress": "cluster-a.domain.com",
                            "passesConnectivityCheck": true,
                            "connectivityLastUpdated": "2024-08-05T10:16:10.000Z",
                            "clusterNodeConnection": {
                                "nodes": [
                                    {
                                        "id": "RVMHM223S002373",
                                        "status": "OK",
                                        "ipAddress": "10.8.107.107",
                                        "__typename": "ClusterNode"
                                    },
                                    {
                                        "id": "RVMHM223S002379",
                                        "status": "OK",
                                        "ipAddress": "10.8.107.106",
                                        "__typename": "ClusterNode"
                                    },
                                    {
                                        "id": "RVMHM223S002714",
                                        "status": "OK",
                                        "ipAddress": "10.8.107.104",
                                        "__typename": "ClusterNode"
                                    },
                                    {
                                        "id": "RVMHM223S002718",
                                        "status": "OK",
                                        "ipAddress": "10.8.107.105",
                                        "__typename": "ClusterNode"
                                    }
                                ],
                                "__typename": "ClusterNodeConnection"
                            },
                            "__typename": "Cluster",
                            "globalManagerConnectivityStatus": {
                                "urls": [
                                    {
                                        "url": "https://mycustomername.my.rubrik.com",
                                        "isReachable": true,
                                        "__typename": "GlobalManagerUrl"
                                    }
                                ],
                                "__typename": "GlobalManagerConnectivity"
                            },
                            "systemStatus": "OK",
                            "ccprovisionInfo": {
                                "jobStatus": "INITIALIZING",
                                "jobType": "ADD_NODE",
                                "progress": 0,
                                "vendor": "VENDOR_UNKNOWN",
                                "__typename": "CcprovisionInfo"
                            },
                            "version": "8.1.3-p11-25483",
                            "eosDate": "2024-07-25",
                            "eosStatus": "EOS_STATUS_UNSUPPORTED",
                            "productType": "CDM",
                            "type": "OnPrem",
                            "metric": {
                                "usedCapacity": 7113709735936,
                                "availableCapacity": 54306599845888,
                                "totalCapacity": 61420309581824,
                                "__typename": "ClusterMetric"
                            },
                            "noSqlWorkloadCount": 0,
                            "protectedSnappables": {
                                "count": 148,
                                "__typename": "SnappableConnection"
                            },
                            "geoLocation": {
                                "address": "Santa Clara, CA, USA",
                                "__typename": "GeoLocation"
                            }
                        },
                        "__typename": "ClusterEdge"
                    }
                ],
                "pageInfo": {
                    "startCursor": "Y3Vyc29yOmludDow",
                    "endCursor": "Y3Vyc29yOmludDow",
                    "hasNextPage": true,
                    "hasPreviousPage": false,
                    "__typename": "PageInfo"
                },
                "__typename": "ClusterConnection"
            }
        }
    }
    
    Rubrik での脅威ハントの開始

    API Endpoint: /api/graphql
    Method:ポスト
    Headers

    鍵Value
    ユーザーエージェントnetskope-ce-5.0.1-cte-rubrik-v1.0.0
    Authorization無記名トークン<Bearer Token>
    Content-Typeアプリケーション/json

    Payload

    GraphQLクエリVariables
    mutation StartThreatHuntMutation($input: StartThreatHuntInput!) 
    {   
      startThreatHunt(input: $input)        
           {
              huntId    isSyncSuccessful __typename 
           } 
    }
    
    {
        "input": {
        "clusterUuid": "40fdb2a5-3591-40ee-a37a-50bce5240d62",
        "indicatorsOfCompromise": [
          {
            "iocKind": "IOC_HASH",
            "iocValue": "sha256:a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e"
          },
          {
            "iocKind": "IOC_HASH",
            "iocValue": "sha256:a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146f"
          }
        ],
        "objectFids": [
          “”
        ],
        "fileScanCriteria": {
          "fileSizeLimits": {
            "maximumSizeInBytes": 1024,
            "minimumSizeInBytes": 5
          },
          "pathFilter": {
            "includes": [
              "*.acm",
              "*.ax",
              "*.cpl",
              "*.dll",
              "*.drv",
              "*.efi",
              "*.exe",
              "*.mui",
              "*.ocx",
              "*.scr",
              "*.sys",
              "*.tsp"
            ],
            "excludes": [],
            "exceptions": []
          }
        },
        "maxMatchesPerSnapshot": 1,
        "name": "Sample threat hunt",
        "shouldTrustFilesystemTimeInfo": true,
        "snapshotScanLimit": {
          "maxSnapshotsPerObject": 1
        }
      }
      }
    

    Sample API Response

    {
        "data": {
            "startThreatHunt": {
                "huntId": "892caaf9-90d3-5c87-8297-5862e972a032",
                "isSyncSuccessful": true,
                "__typename": "StartThreatHuntReply"
            }
        }
    }
    
    パフォーマンスマトリックス

    以下は、これらの仕様を持つ大規模CEスタック上で、10万個の指標をRubrikに共有して実施したパフォーマンス測定結果です。

    スタックの詳細サイズ:大
    RAM:32 GB
    CPU:16コア
    Rubrikから取得した指標NA
    Rubrikと共有された指標~26K per minute
    ユーザーエージェント

    netskope-ce-5.0.1-cte-rubrik-v1.0-0

    ワークフロー

    1. クライアントIDとクライアントシークレットを取得してください。
    2. Rubrikプラグインを設定します。
    3. 脅威交換ビジネスルールを設定します。
    4. 脅威エクスチェンジ共有を設定する。
    5. Rubrikプラグインを検証してください。

    再生ボタンをクリックして動画をご覧ください。

     

    設定パラメータを取得する

    クライアントIDとクライアントシークレットを生成するには、このドキュメントの手順に従ってください。

    https://docs.rubrik.com/en-us/saas/saas/adding_a_service_account.html?hl=adding%2Cservice%2Caccount

    Rubrikプラグインの設定

    1. Cloud ExchangeにログインしてSettings > Pluginsに移動してください。
    2. CTE Rubrikプラグインボックスを検索して選択してください。
    3. 基本情報を入力してください:
      • 設定名: プラグイン設定名
      • 同期間隔:このプラグインソースからデータを取得する間隔。
      • 有効期限基準:特定の期間が経過すると、インジケーターが失効します。
      • 評判の上書き:この設定から受信した指標の評判を上書きする値を設定します。デフォルト設定のままにする場合は空欄のままにしてください。
      • SSL検証を有効にする:SSL証明書の検証を有効にします。
      • システムプロキシを使う: 設定で設定されたシステムプロキシを使います。

    4. Nextをクリックしてください。
    5. 設定パラメータを入力してください:
      • Base URL: Base URL of Rubrik instance, like https://rubrik01.rubrikdemo.com.
      • クライアント ID: Rubrik プラットフォームから生成されたクライアント ID。 クライアントIDを取得するには、サービスアカウントのJSONを生成する必要があります。Rubrikでは、 Apps > Settings > Users and Accessに移動して生成してください。
      • クライアント シークレット: Rubrik プラットフォームから生成されたクライアント シークレット。 クライアントシークレットを取得するには、サービスアカウントのJSONを生成する必要があります。RubrikでApps > Settings > Usersに移動してアクセスすると生成できます。
    6. Saveをクリックしてください。

    Rubrikプラグインのビジネスルールを設定する

    ビジネスルールは 共有する指標をフィルタリングするためのものです。 RubrikとIoCを共有するには、ビジネスルールを作成します。 次の手順:

    1. Threat Exchange > Business Rulesに移動してCreate New Ruleをクリックしてください。
    2. ルール名を追加し、IoCをフィルタリングする対象となるフィールドを選択します。完了したら、 Saveをクリックしてください。

    Rubrikプラグインに共有機能を追加する

    共有を設定するには、以下の手順に従ってください。

    1. Threat Exchange > Sharing に移動してAdd Sharing Configurationをクリックしてください。
    2. ソース構成(Rubrikにデータを共有するソース)、ビジネスルール、および宛先Select 。
    3. 目標値Select 、以下の値を入力してください。
      • 脅威ハント名:脅威ハントの名前を入力してください。この名前の脅威ハントがRubrik上で開始されます。
      • クラスター名:脅威ハンティングを開始するRubrikクラスター。
      • スキャン対象ファイルの最大サイズ(KB):スキャン対象ファイルの最大サイズ(KB単位)。デフォルト値は1024KBです。最大サポートサイズは15000000KB、最小サポートサイズは1KBです。
      • スキャンに必要な最小ファイルサイズ(KB):スキャンに必要な最小ファイルサイズ(KB)。デフォルトは5KBです。最大サポートサイズは15000000KB、最小サポートサイズは1KBです。
      • インジデントの指標の最大一致数 (スナップショットごと): スナップショットごとのインジデントの指標の最大一致数。 デフォルト値は1です。最大許容値は1000、最小許容値は1です。
      • 含めるファイル:脅威ハントに含めるファイル。
      • 除外ファイル:脅威ハントから除外するファイル。
      • 除外しないファイル:脅威ハントから除外してはならないファイル。


    4. Save .
      をクリックしてください

    Rubrikプラグインを検証する

    プル機能はサポートされていません。

    プッシュ通知を検証する

    Rubrikへの共有IOCは、Cloud Exchangeの Logging ページで利用可能なログから検証できます。

    Rubrikで共有されているIoCはApps > Data Threat Analytics > Threat Huntで検証できます。作成した脅威ハントをクリックしてください。

    共有IoCを表示するには、「パラメータ」タブをクリックしてください。

    トラブルシューティング

    Rubrikプラグインの設定ができません

    Rubrikプラグインの設定ができない場合は、以下のいずれかの理由が考えられます。

    • クレデンシャルには適切な許可が与えられていません。
    • 間違ったクレデンシャルが提供されました。

    上記の問題を解決するには、以下の手順に従ってください。

    1. Cloud Exchangeでプラグインのログを確認してください。
    2. 提供されたクレデンシャルに適切な権限があることを確認してください。
    3. プラグインの構成時に正しいクレデンシャルが指定されていることを確認してください。
    Rubrikにデータをプッシュできません

    IoCをRubrikプラグインと共有できない場合は、以下のいずれかの理由が考えられます。

    • 指定されたMD5およびSHA256の値が無効です。
    • 共有データのタイプがMD5またはSHA256以外の場合。

    上記の問題を解決するには、以下の手順に従ってください。

    1. Cloud Exchangeでプラグインのログを確認してください。
    2. 共有する必要のあるMD5とSHA256が有効であることを確認してください。
    3. IoC(侵害指標)がMD5またはSHA256のいずれかのタイプであることを確認してください。
    このトピックでは
    • Threat Exchange 用 Rubrik プラグイン