Tenable セキュリティ センター
統合バージョン: 15.0
Tenable Security Center と Google Security Operations を統合する
Google SecOps で統合を構成する方法について詳しくは、統合を構成するをご覧ください。
統合の入力
統合を構成するには、次のパラメータを使用します。
| パラメータ | |
|---|---|
Server Address |
必須 統合で使用する Tenable Security Center サーバーのアドレス。 |
Username |
必須 Tenable Security Center サーバーにログインするためのユーザー名。 |
Password |
必須 Tenable Security Center サーバーにログインするためのパスワード。 |
Verify SSL |
Optional 選択すると、Tenable サーバーへの接続用の SSL 証明書が有効かどうかが検証されます。 デフォルトで選択されます。 |
操作
IP を IP リスト アセットに追加する
Tenable Security Center で IP リスト アセットに IP を追加します。
パラメータ
| パラメータの表示名 | タイプ | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| アセット名 | 文字列 | なし | はい | 新しい IP を追加する IP リスト アセットの名前を指定します。 |
実行
このアクションは IP アドレス エンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
{
"type": "regular",
"response": {
"id": "41",
"name": "api_test_5",
"type": "static",
"description": "",
"tags": "qweqwe",
"context": "",
"status": "0",
"createdTime": "1606129689",
"modifiedTime": "1606129689",
"ioSyncStatus": "Not Synced",
"ioFirstSyncTime": "-1",
"ioLastSyncSuccess": "-1",
"ioLastSyncFailure": "-1",
"ioSyncErrorDetails": null,
"typeFields": {
"definedIPs": "203.0.113.1,203.0.113.10"
},
"repositories": [
{
"ipCount": "-1",
"repository": {
"id": "1",
"name": "Example-Repository",
"description": ""
}
}
],
"ipCount": -1,
"groups": [],
"assetDataFields": [],
"canUse": "true",
"canManage": "true",
"creator": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"owner": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"ownerGroup": {
"id": "0",
"name": "Full Access",
"description": "Full Access group"
},
"targetGroup": {
"id": -1,
"name": "",
"description": ""
},
"template": {
"id": -1,
"name": "",
"description": ""
}
},
"error_code": 0,
"error_msg": "",
"warnings": [],
"timestamp": 1606129688
}
ケースウォール
| 結果のタイプ | 値 / 説明 | タイプ |
|---|---|---|
| 出力メッセージ * | アクションが失敗したり、ハンドブックの実行が停止したりしないようにする必要があります。
IP エンティティがない場合: IP アドレスが IP リスト アセット {0} に追加されませんでした。format(name)
ステータス コードが 200 でない場合(is_success = false): 「アクション「IP リスト アセットに IP を追加」の実行エラー」と出力します。理由: {0}」.format(error_msg) |
全般 |
IP リスト アセットを作成する
Tenable Security Center で IP リスト アセットを作成します。正常に実行するには、少なくとも 1 つの IP エンティティが必要です。
パラメータ
| パラメータの表示名 | タイプ | デフォルト値 | 必須 | Description |
|---|---|---|---|---|
| 名前 | 文字列 | なし | はい | IP リスト アセットの名前を指定します。 |
| 説明 | 文字列 | なし | いいえ | IP リスト アセットの説明を指定します。 |
| タグ | 文字列 | なし | いいえ | IP リスト アセットのタグを指定します。 |
実行
このアクションは IP アドレス エンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
{
"type": "regular",
"response": {
"id": "41",
"name": "api_test_5",
"type": "static",
"description": "",
"tags": "qweqwe",
"context": "",
"status": "0",
"createdTime": "1606129689",
"modifiedTime": "1606129689",
"ioSyncStatus": "Not Synced",
"ioFirstSyncTime": "-1",
"ioLastSyncSuccess": "-1",
"ioLastSyncFailure": "-1",
"ioSyncErrorDetails": null,
"typeFields": {
"definedIPs": "203.0.113.1,203.0.113.10"
},
"repositories": [
{
"ipCount": "-1",
"repository": {
"id": "1",
"name": "Example-Repository",
"description": ""
}
}
],
"ipCount": -1,
"groups": [],
"assetDataFields": [],
"canUse": "true",
"canManage": "true",
"creator": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"owner": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"ownerGroup": {
"id": "0",
"name": "Full Access",
"description": "Full Access group"
},
"targetGroup": {
"id": -1,
"name": "",
"description": ""
},
"template": {
"id": -1,
"name": "",
"description": ""
}
},
"error_code": 0,
"error_msg": "",
"warnings": [],
"timestamp": 1606129688
}
ケースウォール
| 結果のタイプ | 値 / 説明 | タイプ |
|---|---|---|
| 出力メッセージ * | アクションが失敗したり、ハンドブックの実行が停止したりしないようにする必要があります。
IP エンティティがない場合: 「IP リスト アセットを作成するには、少なくとも 1 つの IP エンティティが必要です」と出力します。
ステータス コードが 200 以外の場合(is_success = false): 「アクション「IP リスト アセットの作成」の実行エラー」と出力します。理由: {0}」.format(error_msg) |
全般 |
IP を拡充する
IP アドレスに関する情報を取得して拡充します。
パラメータ
| パラメータ | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| リポジトリ名 | 文字列 | なし | リポジトリ名。 |
実行
このアクションは IP アドレス エンティティに対して実行されます。
アクションの結果
エンティティ拡充
| 拡充フィールド名 | ロジック - 適用するタイミング |
|---|---|
| macAddress | JSON の結果に存在する場合に返す |
| severityLow | JSON の結果に存在する場合に返す |
| links | JSON の結果に存在する場合に返す |
| ip | JSON の結果に存在する場合に返す |
| 前回のスキャン | JSON の結果に存在する場合に返す |
| severityCritical | JSON の結果に存在する場合に返す |
| total が double 型に | JSON の結果に存在する場合に返す |
| severityAll | JSON の結果に存在する場合に返す |
| mcafeeGUID | JSON の結果に存在する場合に返す |
| policyName | JSON の結果に存在する場合に返す |
| uuid | JSON の結果に存在する場合に返す |
| lastAuthRun | JSON の結果に存在する場合に返す |
| severityInfo | JSON の結果に存在する場合に返す |
| osCPE | JSON の結果に存在する場合に返す |
| 一意性 | JSON の結果に存在する場合に返す |
| dnsName | JSON の結果に存在する場合に返す |
| リポジトリ | JSON の結果に存在する場合に返す |
| ip | JSON の結果に存在する場合に返す |
| 説明 | JSON の結果に存在する場合に返す |
| name | JSON の結果に存在する場合に返す |
| lastUnauthRun | JSON の結果に存在する場合に返す |
| biosGUID | JSON の結果に存在する場合に返す |
| tpmID | JSON の結果に存在する場合に返す |
| スコア | JSON の結果に存在する場合に返す |
| hasPassive | JSON の結果に存在する場合に返す |
| pluginSet | JSON の結果に存在する場合に返す |
| hasCompliance | JSON の結果に存在する場合に返す |
| severityHigh | JSON の結果に存在する場合に返す |
| netbiosName | JSON の結果に存在する場合に返す |
| severityMedium | JSON の結果に存在する場合に返す |
| os | JSON の結果に存在する場合に返す |
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
[
{
"EntityResult":
{
"macAddress": "",
"severityLow": "0",
"links": [],
"ip": "203.0.113.1",
"lastScan": "1549425224",
"severityCritical": "0",
"total": "2",
"severityAll": "0,0,0,0,2",
"mcafeeGUID": "",
"policyName": "1e2e4247-0de7-56d5-8026-34ab1f3150ef-1130313/Basic Discovery Scan",
"uuid": "",
"lastAuthRun": "",
"severityInfo": "2",
"osCPE": "",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"repository":
{
"id": "1",
"description": "",
"name": "repository"
},
"lastUnauthRun": "1549363419",
"biosGUID": "",
"tpmID": "",
"score": "0",
"hasPassive": "No",
"pluginSet": "201902020242",
"hasCompliance": "No",
"severityHigh": "0",
"netbiosName": "",
"severityMedium": "0",
"os": ""
},
"Entity": "203.0.113.1"
}
]
関連アセットを取得する
IP アドレスに関連するアセットを取得します。
パラメータ
| パラメータ | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| リポジトリ名 | 文字列 | なし | リポジトリ名。 |
実行
このアクションは IP アドレス エンティティに対して実行されます。
アクションの結果
エンティティ拡充
| 拡充フィールド名 | ロジック - 適用するタイミング |
|---|---|
| id | JSON の結果に存在する場合に返す |
| name | JSON の結果に存在する場合に返す |
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
[
{
"EntityResult":
[
{
"id": "0",
"description": "All defining ranges of the Group in whose context this Asset is being evaluated.",
"name": "All Defined Ranges"
}, {
"id": "2",
"description": "This asset uses the Scan Summary plugin to detect if a host has been scanned by Nessus. The Scan Summary plugin contains the list of tests conducted during the most recent scan.",
"name": "Systems that have been Scanned"
}, {
"id": "13",
"description": "Leverage Nessus plugin 10180 (Ping the remote host) and Nessus plugin 12503 (Host Fully Qualified Domain Name (FQDN) Resolution) to find hosts that don't have a resolvable FQDN in DNS.",
"name": "Scanned Hosts Not in DNS"
}
],
"Entity": "203.0.113.1"
}
]
レポートの取得
ID または名前でレポートのコンテンツを取得します。
パラメータ
| パラメータ | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| レポート ID | 文字列 | なし | レポート ID 番号。レポートの URL で確認できます。 |
実行
このアクションはすべてのエンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
{
"pubSites":
[
"https://example.com",
"https://example.net"
]
}
スキャン結果を取得する
スキャンが完了するまで待って、スキャンの結果を取得します。
パラメータ
| パラメータ | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| スキャン結果 ID | 文字列 |
なし | スキャン結果 ID。 |
実行
このアクションはすべてのエンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
{
"severity_summary":
[
{
"count": "0",
"severity":
{
"id": "4",
"name": "Critical",
"description": "Critical Severity"
}
}, {
"count": "0",
"severity":
{
"id": "3",
"name": "High",
"description": "High Severity"
}
}, {
"count": "3",
"severity":
{"id": "2",
"name": "Medium",
"description": "Medium Severity"
}}
],
"results":
[
{
"name": "DNS Server Recursive Query Cache Poisoning Weakness",
"family": "DNS",
"hostTotal": "1",
"pluginID": "10539",
"total": "1",
"severity": "Medium"
}, {
"name": "DNS Server Spoofed Request Amplification DDoS",
"family": "DNS",
"hostTotal": "1",
"pluginID": "35450",
"total": "1",
"severity": "Medium"
}, {
"name": "SSL Medium Strength Cipher Suites Supported",
"family": "General",
"hostTotal": "1",
"pluginID": "42873",
"total": "1",
"severity": "Medium"
}
]
}
IP の脆弱性を取得する
IP アドレスの脆弱性と重大度の概要を取得します。
パラメータ
なし
実行
このアクションは IP アドレス エンティティに対して実行されます。
アクションの結果
エンティティ拡充
| 拡充フィールド名 | ロジック - 適用するタイミング |
|---|---|
| macAddress | JSON の結果に存在する場合に返す |
| プロトコル | JSON の結果に存在する場合に返す |
| uuid | JSON の結果に存在する場合に返す |
| ファミリー | JSON の結果に存在する場合に返す |
| pluginInfo | JSON の結果に存在する場合に返す |
| ip | JSON の結果に存在する場合に返す |
| pluginID | JSON の結果に存在する場合に返す |
| 重要度 | JSON の結果に存在する場合に返す |
| リポジトリ | JSON の結果に存在する場合に返す |
| 一意性 | JSON の結果に存在する場合に返す |
| dnsName | JSON の結果に存在する場合に返す |
| ポート | JSON の結果に存在する場合に返す |
| netbiosName | JSON の結果に存在する場合に返す |
| name | JSON の結果に存在する場合に返す |
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
[
{
"EntityResult":
[
{
"macAddress": "",
"protocol": "TCP",
"uuid": "",
"family": "Web Servers",
"pluginInfo": "10107 (443/6) HTTP Server Type and Version",
"ip": "203.0.113.1",
"pluginID": "10107",
"severity": "Info",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"port": "443",
"netbiosName": "",
"name": "HTTP Server Type and Version"
}, {
"macAddress": "",
"protocol": "UDP",
"uuid": "",
"family": "DNS",
"pluginInfo": "10539 (53/17) DNS Server Recursive Query Cache Poisoning Weakness",
"ip": "203.0.113.1",
"pluginID": "10539",
"severity": "Medium",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "exaample.com",
"port": "53",
"netbiosName": "",
"name": "DNS Server Recursive Query Cache Poisoning Weakness"
}, {
"macAddress": "",
"protocol": "TCP",
"uuid": "",
"family": "General",
"pluginInfo": "10863 (443/6) SSL Certificate Information",
"ip": "203.0.113.1",
"pluginID": "10863",
"severity": "Info",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"port": "443",
"netbiosName": "",
"name": "SSL Certificate Information"
}
],
"Entity": "203.0.113.1"
}
]
Ping
接続をテストします。
実行
このアクションはすべてのエンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| null | なし | なし |
IP をスキャンする
IP アドレスのスキャンを開始します。
パラメータ
| パラメータ | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| スキャン名 | 文字列 | なし | 作成するスキャンの名前。 |
| ポリシー名 | 文字列 | なし | ポリシーの名前。 |
実行
このアクションは IP アドレス エンティティに対して実行されます。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| scan_result_id | なし | なし |
アセット スキャンを実行する
Tenable Security Center でアセット スキャンを実行します。
ポリシー ID とリポジトリ ID の確認方法
ポリシー ID の場合:
https://INSTANCE_IP_ADDRESS/#policiesに移動します。- アクションで使用するポリシーを選択します。
- URL には、そのポリシーの ID が表示されます。
リポジトリ ID の場合:
https://INSTANCE_IP_ADDRESS/#repositoriesに移動します。- アクションで使用するリポジトリを選択します。
- URL には、そのリポジトリの ID が表示されます。
パラメータ
| パラメータの表示名 | タイプ | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| スキャン名 | なし | はい | スキャンの名前を指定します。 | |
| アセット名 | 文字列 | なし | はい | スキャンするアセットの名前を指定します。 |
| ポリシー ID | Integer | なし | はい | スキャンで使用するポリシーの ID を指定します。 |
| リポジトリ ID | Integer | なし | はい | スキャンで使用するリポジトリの ID を指定します。 |
| 説明 | 文字列 | なし | いいえ | スキャンの説明を指定します。 |
実行
このアクションはエンティティに対しては実行されません。
アクションの結果
スクリプトの結果
| スクリプトの結果名 | 値のオプション | 例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON の結果
{
"type": "regular",
"response": {
"id": "11",
"name": "Scan Name",
"description": "",
"ipList": "",
"type": "policy",
"dhcpTracking": "false",
"classifyMitigatedAge": "0",
"emailOnLaunch": "false",
"emailOnFinish": "false",
"timeoutAction": "import",
"scanningVirtualHosts": "false",
"rolloverType": "template",
"status": "0",
"createdTime": "1606132784",
"modifiedTime": "1606132784",
"maxScanTime": "3600",
"reports": [],
"assets": [
{
"id": "38",
"name": "api_test_1",
"description": ""
}
],
"credentials": [],
"numDependents": "0",
"schedule": {
"id": -1,
"objectType": -1,
"type": "now",
"start": "",
"repeatRule": "",
"enabled": "true",
"nextRun": -1,
"dependent": {
"id": -1,
"name": "",
"description": ""
}
},
"policy": {
"id": "1000002",
"context": "",
"name": "Host Discovery",
"description": "",
"tags": "",
"owner": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"ownerGroup": {
"id": "0",
"name": "Full Access",
"description": "Full Access group"
}
},
"policyPrefs": [
{
"name": "MODE|discovery",
"value": "host_enumeration"
},
{
"name": "description",
"value": ""
},
{
"name": "display_unreachable_hosts",
"value": "no"
},
{
"name": "log_live_hosts",
"value": "yes"
},
{
"name": "name",
"value": "Host Discovery"
},
{
"name": "reverse_lookup",
"value": "no"
}
],
"repository": {
"id": "1",
"name": "Example-Repository",
"description": ""
},
"canUse": "true",
"canManage": "true",
"plugin": {
"id": -1,
"name": "",
"description": ""
},
"zone": {
"id": -1,
"name": "",
"description": ""
},
"ownerGroup": {
"id": "0",
"name": "Full Access",
"description": "Full Access group"
},
"creator": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"owner": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"scanResultID": "34"
},
"error_code": 0,
"error_msg": "",
"warnings": [],
"timestamp": 1606132783
}
ケースウォール
| 結果のタイプ | 値 / 説明 | タイプ |
|---|---|---|
| 出力メッセージ * | アクションが失敗したり、ハンドブックの実行が停止したりしないようにする必要があります。
アクションが失敗し、ハンドブックの実行が停止します: アセットが見つからない場合: 「アクション「アセット スキャンを実行」の実行中にエラーが発生しました」と出力します。理由: アセット {0} が Tenable Security Center に見つかりませんでした。''.format(name) ステータス コードが 200 でない場合(is_success = false): 「アクション「アセット スキャンを実行」の実行エラー。理由:{0}」.format(error_msg) |
全般 |
コネクタ
Tenable Security Center コネクタ
Google SecOps でコネクタを構成する方法の詳細については、コネクタの構成をご覧ください。
コネクタ パラメータ
次のパラメータを使用してコネクタを構成します。
| パラメータ | 種類 | デフォルト値 | 説明 |
|---|---|---|---|
| DeviceProductField | 文字列 | device_product | デバイス プロダクトを識別するために使用されるフィールド名。 |
| EventClassId | 文字列 | name | イベント名(サブタイプ)を特定するために使用されるフィールド名。 |
| PythonProcessTimeout | 文字列 | 60 | 現在のスクリプトを実行している Python プロセスのタイムアウト上限(秒単位)。 |
| サーバー アドレス | 文字列 | null | なし |
| ユーザー名 | 文字列 | null | なし |
| パスワード | パスワード | null | なし |
| Use SSL | チェックボックス | オフ | なし |
| 遡る最大日数 | 整数 | 1 | データを取得する過去の日数。 |
| サイクルあたりの上限 | Integer | 10 | 各実行サイクルでコネクタに取り込まれるアラートの数。 |
| プロキシ サーバーのアドレス | 文字列 | null | 使用するプロキシ サーバーのアドレス。 |
| プロキシのユーザー名 | 文字列 | null | 認証に使用するプロキシのユーザー名。 |
| プロキシ パスワード | パスワード | null | 認証に使用するプロキシ パスワード。 |
コネクタルール
コネクタはプロキシをサポートしています。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。