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
}
케이스 월
결과 유형 | 값/설명 | 유형 |
---|---|---|
출력 메시지* | 작업이 실패하거나 플레이북 실행을 중지하지 않아야 합니다.
IP 항목이 없는 경우: IP 목록 애셋 {0}에 IP 주소가 추가되지 않았습니다.format(name)
상태 코드가 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
}
케이스 월
결과 유형 | 값/설명 | 유형 |
---|---|---|
출력 메시지* | 작업이 실패하거나 플레이북 실행을 중지하지 않아야 합니다.
IP 항목이 없는 경우: 'IP 목록 애셋을 만들려면 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 속성 | 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:
https://INSTANCE_IP_ADDRESS/#policies
로 이동합니다.- 작업에 사용할 정책을 선택합니다.
- URL에서 해당 정책의 ID를 확인할 수 있습니다.
저장소 ID:
https://INSTANCE_IP_ADDRESS/#repositories
로 이동합니다.- 작업에서 사용할 저장소를 선택합니다.
- 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
}
케이스 월
결과 유형 | 값/설명 | 유형 |
---|---|---|
출력 메시지* | 작업이 실패하거나 플레이북 실행을 중지하지 않아야 합니다.
작업이 실패하고 플레이북 실행을 중지해야 합니다. 애셋을 찾을 수 없는 경우: ''애셋 검사 실행' 작업을 실행하는 동안 오류가 발생했습니다.'를 출력합니다. 이유: 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 전문가로부터 답변을 받으세요.