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
}
ケースウォール
結果のタイプ 値 / 説明 タイプ
出力メッセージ *

アクションが失敗したり、ハンドブックの実行が停止したりしないようにする必要があります。
静的コード 200(is_success = true)の場合: 「Successfully added the following IPs to the IP List Asset {0} in Tenable Security Center:\n{1}」と出力します。format(name, entity.identifier)

IP エンティティがない場合: IP アドレスが IP リスト アセット {0} に追加されませんでした。format(name)

アクションは失敗し、ハンドブックの実行が停止されます。
認証情報の誤り、サーバーへの接続がないなどの致命的なエラーの場合: 「アクション「IP を IP リスト アセットに追加」の実行中にエラーが発生しました」と出力されます。理由: {0}''.format(error.Stacktrace)


アセットが見つからない場合: 「アクション「IP を IP リスト アセットに追加」の実行中にエラーが発生しました」と出力します。理由: アセット {0} が Tenable Security Center に見つかりませんでした。''.format(error.Stacktrace)

ステータス コードが 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
}
ケースウォール
結果のタイプ 値 / 説明 タイプ
出力メッセージ *

アクションが失敗したり、ハンドブックの実行が停止したりしないようにする必要があります。
静的コード 200(is_success = true)の場合: 次のように出力されます。「Tenable Security Center で次の IP を含む新しい IP リスト アセット {0} が正常に作成されました:\n{1}」.format(name, entity.identifier)

IP エンティティがない場合: 「IP リスト アセットを作成するには、少なくとも 1 つの IP エンティティが必要です」と出力します。


アクションが失敗し、ハンドブックの実行が停止します:
認証情報が間違っている、サーバーに接続できない、その他など、致命的なエラーが発生した場合: 「アクション「IP リスト アセットの作成」の実行エラー」と出力します。理由: {0}''.format(error.Stacktrace)

ステータス コードが 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 の場合:

  1. https://INSTANCE_IP_ADDRESS/#policies に移動します。
  2. アクションで使用するポリシーを選択します。
  3. URL には、そのポリシーの ID が表示されます。

リポジトリ ID の場合:

  1. https://INSTANCE_IP_ADDRESS/#repositories に移動します。
  2. アクションで使用するリポジトリを選択します。
  3. 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
}
ケースウォール
結果のタイプ 値 / 説明 タイプ
出力メッセージ *

アクションが失敗したり、ハンドブックの実行が停止したりしないようにする必要があります。
静的コード 200(is_success = true)の場合: print "Successfully started asset scan {0} in Tenable Security Center.".format(name)

アクションが失敗し、ハンドブックの実行が停止します:
認証情報が間違っている、サーバーに接続できない、その他など、致命的なエラーが発生した場合: 「アクション「アセット スキャンを実行する」の実行エラー」が出力されます。理由: {0}」.format(error.Stacktrace)

アセットが見つからない場合: 「アクション「アセット スキャンを実行」の実行中にエラーが発生しました」と出力します。理由: アセット {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 のプロフェッショナルから回答を得ることができます。