Tenable Security Center

통합 버전: 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 선택사항

선택하면 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): 'Tenable Security Center의 IP 목록 애셋 {0}에 다음 IP를 추가했습니다.\n{1}'.format(name, entity.identifier)을 출력합니다.

IP 항목이 없는 경우: IP 목록 애셋 {0}에 IP 주소가 추가되지 않았습니다.format(name)

작업이 실패하고 플레이북 실행을 중지해야 합니다.
잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 발생한 경우: 'IP 목록 애셋에 IP 추가' 작업 실행 오류'를 출력합니다. 이유: {0}''.format(error.Stacktrace)


애셋을 찾을 수 없는 경우: 'IP 목록 애셋에 IP 추가' 작업을 실행하는 동안 오류가 발생했다고 출력합니다. 이유: Tenable Security Center에서 애셋 {0}을 찾을 수 없습니다. ''.format(error.Stacktrace)

상태 코드가 200이 아닌 경우 (is_success = false): ''IP 목록 애셋에 IP 추가' 작업을 실행하는 동안 오류가 발생했습니다.'를 출력합니다. 이유: {0}''.format(error_msg)

일반

IP 목록 확장 소재 만들기

Tenable Security Center에서 IP 목록 애셋을 만듭니다. 성공적으로 실행하려면 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)인 경우: 'Tenable Security Center에서 다음 IP로 새 IP 목록 애셋 {0}을 만들었습니다.\n{1}'.format(name, entity.identifier)을 출력합니다.

IP 항목이 없는 경우: 'IP 목록 애셋을 만들려면 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 속성 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"
}
]

연결을 테스트합니다.

실행

이 작업은 모든 항목에서 실행됩니다.

작업 결과

스크립트 결과
스크립트 결과 이름 값 옵션 예시
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 정수 해당 사항 없음 검사에서 사용할 정책의 ID를 지정합니다.
저장소 ID 정수 해당 사항 없음 스캔에 사용해야 하는 저장소의 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 "Tenable Security Center에서 {0} 자산 스캔을 시작했습니다.".format(name)

작업이 실패하고 플레이북 실행을 중지해야 합니다.
잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 발생한 경우: '애셋 검사 실행' 작업을 실행하는 중에 오류가 발생했습니다. 이유: {0}'.format(error.Stacktrace)

애셋을 찾을 수 없는 경우: ''애셋 검사 실행' 작업을 실행하는 동안 오류가 발생했습니다.'를 출력합니다. 이유: Tenable Security Center에서 애셋 {0}을 찾을 수 없습니다. ''.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 데이터를 가져올 기간(일)입니다.
주기당 한도 정수 10 각 실행 주기에서 커넥터로 인그레스된 알림 수입니다.
프록시 서버 주소 문자열 null 사용할 프록시 서버의 주소입니다.
프록시 사용자 이름 문자열 null 인증할 프록시 사용자 이름입니다.
프록시 비밀번호 비밀번호 null 인증할 프록시 비밀번호입니다.

커넥터 규칙

커넥터가 프록시를 지원합니다.

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.