Google SecOps와 VirusTotal 통합
이 문서에서는 VirusTotal을 Google Security Operations (Google SecOps)와 통합하는 방법을 설명합니다.
통합 버전: 39.0
이 통합은 VirusTotal API v2를 사용합니다.
이 통합은 오픈소스 구성요소를 하나 이상 사용합니다. Cloud Storage 버킷에서 이 통합의 전체 소스 코드의 압축된 사본을 다운로드할 수 있습니다.
시작하기 전에
VirusTotal 통합을 사용하려면 API 키를 구성하세요.
API 키를 구성하려면 다음 단계를 완료하세요.
- VirusTotal 포털에 로그인합니다.
- 사용자 이름 아래에서 API 키를 클릭합니다.
- 생성된 API 키를 복사하여 통합 매개변수에서 사용합니다.
- 저장을 클릭합니다.
통합 매개변수
VirusTotal 통합에는 다음 매개변수가 필요합니다.
매개변수 | 설명 |
---|---|
Api Key |
필수 항목입니다. VirusTotal에 액세스하는 데 사용되는 API 키입니다. |
Verify SSL |
(선택사항) 선택하면 VirusTotal에 연결할 때 통합에서 SSL 인증서를 검증합니다. 기본적으로 선택되지 않습니다. |
Google SecOps에서 통합을 구성하는 방법에 대한 안내는 통합 구성을 참고하세요.
필요한 경우 이후 단계에서 변경할 수 있습니다. 통합 인스턴스를 구성한 후 플레이북에서 사용할 수 있습니다. 여러 인스턴스를 구성하고 지원하는 방법에 관한 자세한 내용은 여러 인스턴스 지원을 참고하세요.
작업
작업에 관한 자세한 내용은 Workdesk에서 대기 중인 작업에 응답 및 수동 작업 실행을 참고하세요.
도메인 보고서 가져오기
도메인 보고서 가져오기 작업을 사용하여 제공된 항목에 대한 도메인 보고서를 VirusTotal에서 가져오고 Google SecOps 플랫폼 내에서 이러한 항목을 보강합니다.
이 작업은 다음 Google SecOps 항목에서 실행됩니다.
User
Hostname
작업 입력
없음
작업 출력
도메인 보고서 가져오기 작업은 다음 출력을 제공합니다.
작업 출력 유형 | 가용성 |
---|---|
케이스 월 연결 | 사용할 수 없음 |
케이스 월 링크 | 사용할 수 없음 |
케이스 월 테이블 | 사용할 수 없음 |
항목 보강 테이블 | 사용 가능 |
JSON 결과 | 사용 가능 |
스크립트 결과 | 사용 가능 |
항목 보강 테이블
도메인 보고서 가져오기 작업을 통해 다음 필드를 보강할 수 있습니다.
보강 필드 이름 | 적용 가능한 논리 |
---|---|
Forcepoint ThreatSeeker category |
JSON 결과에 존재하는 경우에 반환합니다. |
BitDefender domain info |
JSON 결과에 존재하는 경우에 반환합니다. |
Categories |
JSON 결과에 존재하는 경우에 반환합니다. |
BitDefender Category |
JSON 결과에 존재하는 경우에 반환합니다. |
Alexa Category |
JSON 결과에 존재하는 경우에 반환합니다. |
Alexa domain info |
JSON 결과에 존재하는 경우에 반환합니다. |
Websense ThreatSeeker category |
JSON 결과에 존재하는 경우에 반환합니다. |
TrendMicro category |
JSON 결과에 존재하는 경우에 반환합니다. |
Opera domain info |
JSON 결과에 존재하는 경우에 반환합니다. |
Webutation domain info |
JSON 결과에 존재하는 경우에 반환합니다. |
verbose_msg |
JSON 결과에 존재하는 경우에 반환합니다. |
whois |
JSON 결과에 존재하는 경우에 반환합니다. |
JSON 결과
다음 예시에서는 도메인 보고서 가져오기 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.
[
{
"EntityResult": {
"detected_downloaded_samples": [],
"undetected_downloaded_samples": [{
"date": "2018-08-08 22:48:28",
"positives": 0,
"sha256": "ef1955ae757c8b966c83248350331bd3a30f658ced11f387f8ebf05ab3368629",
"total": 59
}],
"resolutions": [{
"last_resolved": "2019-01-13 03:31:09",
"ip_address": "192.0.2.1"
}],
"Opera domain info": "The URL domain/host was seen to host badware at some point in time",
"domain_siblings": [],
"BitDefender domain info": "This URL domain/host was seen to host badware at some point in time",
"whois": "Domain Name: EXAMPLE.CO.IN, nUpdated Date: 2018-05-22T09:30:37Z, nCreation Date: 2003-06-23T14:02:33Z, nRegistry Expiry Date: 2019-06-23T14:02:33Z, nDomain Status: clientDeleteProhibited, nDomain Status: clientTransferProhibited, nDomain Status: clientUpdateProhibited, nRegistrant Country: US, nName Server: NS1.EXAMPLE.COM, nName Server: NS2.EXAMPLE.COM, nName Server: NS3.EXAMPLE.COM, nName Server: NS4.EXAMPLE.COM, nDNSSEC: unsigned",
"Alexa domain info": "example.co.in is one of the top 100 sites in the world and is in the Search_Engines category",
"verbose_msg": "Domain found in dataset",
"BitDefender category": "searchengines",
"undetected_referrer_samples": [{
"date": "2019-02-05 13:20:39",
"positives": 0,
"sha256": "3baf9f2a2d2b152193d2af602378b71e40d381e835b0aa3111851b2f29e64f38",
"total": 71
}],
"whois_timestamp": 1548379042,
"WOT domain info": {
"Vendor reliability": "Excellent",
"Child safety": "Excellent",
"Trustworthiness": "Excellent",
"Privacy": "Excellent"
},
"detected_referrer_samples": [{
"date": "2019-02-05 01:11:35",
"positives": 1,
"sha256": "097ea19b440441248b157698e2b23555cdf6117491b5f49f7ec8e492550cb02c",
"total": 70
}],
"Forcepoint ThreatSeeker category": "search engines and portals",
"Alexa category": "search_engines",
"detected_communicating_samples": [{
"date": "2019-01-28 23:58:13",
"positives": 30,
"sha256": "e65faa1283f8941d98dc23ff6822be228a24cb4489a5e5b01aeee749bf851658",
"total": 70
}],
"TrendMicro category": "search engines portals",
"categories": [
"searchengines", "search engines and portals"
],
"undetected_urls": [[
"http://example.co.in/example", "daed97b2c77f0f72c9e4ee45506e3e1bc4e34d7b8846246877a02779bb85dd5b", 0, 70, "2019-02-04 14:58:23"
]],
"response_code": 1,
"Webutation domain info": {
"Safety score": 100,
"Adult content": "no",
"Verdict": "safe"
},
"subdomains": [
"www.example.co.in"
],
"Websense ThreatSeeker category": "search engines and portals",
"detected_urls": [{
"url": "http://example.co.in/urlURL",
"positives": 2,
"total": 66,
"scan_date": "2018-01-13 00:38:35"
}],
"Alexa rank": 100,
"undetected_communicating_samples": [{
"date": "2018-11-17 03:19:28",
"positives": 0,
"sha256": "e2a6ab7d594490c62bd3bb508dc38d7191ad48977da4d8dcce08dcb8af0070e9",
"total": 68
}],
"pcaps": [
"97e4a17068ce3ed01ed1c25c3d263fc0145e5ecc53b7db6f2ba84496b53d4a65"
]},
"Entity": "example.co.in"
}
]
스크립트 결과
다음 표에는 도메인 보고서 가져오기 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
스크립트 결과 이름 | 값 |
---|---|
is_success |
True 또는 False |
스캔 해시
해시 스캔 작업을 사용하여 VirusTotal로 파일 해시를 스캔하고, 위험 점수가 지정된 기준점과 일치하는 경우 항목을 의심스러운 것으로 표시하고 통계를 표시합니다.
이 작업은 Google SecOps Filehash
항목에서 실행됩니다.
작업 입력
해시 스캔 작업에는 다음 매개변수가 필요합니다.
매개변수 | 설명 |
---|---|
Threshold |
필수 항목입니다. 감지를 의심스러운 것으로 표시하는 기준입니다. 악성 엔진 감지가 설정된 기준점에 도달하거나 이를 초과하면 작업에서 엔티티를 의심스러운 것으로 표시합니다. |
Rescan after days |
(선택사항) 최신 스캔 날짜 이후 항목을 다시 스캔할 일수입니다. |
작업 출력
해시 스캔 작업은 다음 출력을 제공합니다.
작업 출력 유형 | 가용성 |
---|---|
케이스 월 연결 | 사용할 수 없음 |
케이스 월 링크 | 사용할 수 없음 |
케이스 월 테이블 | 사용할 수 없음 |
항목 보강 테이블 | 사용 가능 |
통계 | 사용 가능 |
JSON 결과 | 사용 가능 |
스크립트 결과 | 사용 가능 |
항목 보강 테이블
해시 스캔 작업을 통해 다음 필드를 보강할 수 있습니다.
보강 필드 이름 | 적용 가능한 논리 |
---|---|
permalink |
JSON 결과에 존재하는 경우에 반환합니다. |
sha1 |
JSON 결과에 존재하는 경우에 반환합니다. |
resource |
JSON 결과에 존재하는 경우에 반환합니다. |
Scan date |
JSON 결과에 존재하는 경우에 반환합니다. |
Scan ID |
JSON 결과에 존재하는 경우에 반환합니다. |
verbose_msg |
JSON 결과에 존재하는 경우에 반환합니다. |
total |
JSON 결과에 존재하는 경우에 반환합니다. |
positives |
JSON 결과에 존재하는 경우에 반환합니다. |
sha256 |
JSON 결과에 존재하는 경우에 반환합니다. |
md5 |
JSON 결과에 존재하는 경우에 반환합니다. |
Detecting Engines |
JSON 결과에 존재하는 경우에 반환합니다. |
통계
해시 스캔 작업은 다음 통계를 반환할 수 있습니다.
심각도 | 설명 |
---|---|
Warn |
이 작업은 보강된 해시의 악성 상태를 알리는 경고 통계를 만듭니다. 이 작업은 감지된 엔진 수가 스캔 전에 설정한 최소 의심 기준점과 같거나 이를 초과하는 경우에만 통계를 생성합니다. |
JSON 결과
다음 예는 해시 스캔 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.
[
{
"EntityResult": {
"permalink": "https://www.virustotal.com/file/HASH/analysis/ANALYSIS_ID/",
"sha1": "3395856ce81f2b7382dee72602f798b642f14140",
"resource": "HASH",
"response_code": 1,
"scan_date": "2019-02-05 15:41:52",
"scan_id": "HASH-ANALYSIS_ID",
"verbose_msg": "Scan finished, information embedded",
"total": 60,
"positives": 54,
"sha256": "HASH",
"md5": "44d88612fea8a8f36de82e1278abb02f",
"scans": {
"Bkav": {
"detected": true,
"version": "192.0.2.1",
"result": "Trojan",
"update": "20190201"
},
"MicroWorld-eScan": {
"detected": true,
"version": "14.0.297.0",
"result": "Test-File",
"update": "20190205"
}}},
"Entity": "HASH"
}
]
스크립트 결과
다음 표에는 해시 스캔 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
스크립트 결과 이름 | 값 |
---|---|
is_risky |
True 또는 False |
IP 검색
IP 스캔 작업을 사용하여 VirusTotal에서 최근에 특정 IP에 대해 확인한 정보를 수집합니다.
이 작업은 Google SecOps IP Address
항목에서 실행됩니다.
작업 입력
IP 스캔 작업에는 다음 매개변수가 필요합니다.
매개변수 | 설명 |
---|---|
Threshold |
(선택사항) IP 주소를 의심스러운 것으로 표시하는 기준입니다. 악성 엔진 감지가 설정된 기준에 도달하거나 이를 초과하면 작업에서 IP 주소를 의심스러운 것으로 표시합니다. 기본값은 |
작업 출력
IP 스캔 작업은 다음 출력을 제공합니다.
작업 출력 유형 | 가용성 |
---|---|
케이스 월 연결 | 사용할 수 없음 |
케이스 월 링크 | 사용할 수 없음 |
케이스 월 테이블 | 사용할 수 없음 |
항목 보강 테이블 | 사용 가능 |
통계 | 사용 가능 |
JSON 결과 | 사용 가능 |
스크립트 결과 | 사용 가능 |
항목 보강 테이블
IP 스캔 작업을 통해 다음 필드를 보강할 수 있습니다.
보강 필드 이름 | 적용 가능한 논리 |
---|---|
Country |
JSON 결과에 존재하는 경우에 반환합니다. |
Related Domains |
JSON 결과에 존재하는 경우에 반환합니다. |
Last Scan Date |
JSON 결과에 존재하는 경우에 반환합니다. |
verbose_msg |
JSON 결과에 존재하는 경우에 반환합니다. |
Resolutions |
JSON 결과에 존재하는 경우에 반환합니다. |
통계
IP 스캔 작업은 다음 통계를 반환할 수 있습니다.
심각도 | 설명 |
---|---|
Warn |
이 작업은 보강된 IP 주소의 악성 상태를 알리는 경고 통계를 생성합니다. 이 작업은 감지된 엔진 수가 스캔 전에 설정한 최소 의심 기준점 이상인 경우에만 통계를 생성합니다. |
유용한 정보 이름 | 본문 |
---|---|
Entity Insight |
|
JSON 결과
다음 예시는 IP 스캔 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.
[
{
"EntityResult": {
"asn": 4436,
"undetected_urls": [[
"http://example.com", "2ed06796f95e7c1xxxxxbd68d81754acf535c999e901bfe2cf9c45612396f66", 0, 66, "2022-11-23 06:51:49"
]],
"undetected_downloaded_samples": [{
"date": "2018-07-09 07:53:30",
"positives": 0,
"sha256": "6a0bf66ddc73d7e64eb2ff0dd3512c5378c0c63c2ad4e13c0e1429fe",
"total": 60
}],
"country": "country",
"response_code": 1,
"as_owner": "Example, Inc.",
"verbose_msg": "IP address in dataset",
"detected_downloaded_samples": [{
"date": "2023-05-20 08:38:00",
"positives": 6,
"sha256": "9cf5c07c99c3342d83b241c25850da0bf231ee150cb962cab1e8399cb",
"total": 57
}],
"resolutions": [{
"last_resolved": "2023-05-13 00:00:00",
"hostname": "40515350444dff68-2f7735d5ad283fa41a203a082d9a8f25.example.com"
}],
"detected_urls": [{
"url": "http://example.com",
"positives": 2,
"total": 67,
"scan_date": "2023-05-20 07:16:45"
}]},
"Entity": "192.0.2.1"
}
]
스크립트 결과
다음 표에는 IP 스캔 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
스크립트 결과 이름 | 값 |
---|---|
is_success |
True 또는 False |
URL 스캔
URL 스캔 작업을 사용하여 VirusTotal로 URL을 스캔합니다.
이 작업은 Google SecOps URL
항목에서 실행됩니다.
작업 입력
URL 검사 작업에는 다음 매개변수가 필요합니다.
매개변수 | 설명 |
---|---|
Threshold |
필수 항목입니다. 감지를 의심스러운 것으로 표시하는 기준입니다. 악성 엔진 감지가 설정된 기준점에 도달하거나 이를 초과하면 작업에서 엔티티를 의심스러운 것으로 표시합니다. |
Rescan after days |
(선택사항) 최신 스캔 날짜 이후 항목을 다시 스캔할 일수입니다. |
작업 출력
URL 스캔 작업은 다음 출력을 제공합니다.
작업 출력 유형 | 가용성 |
---|---|
케이스 월 연결 | 사용할 수 없음 |
케이스 월 링크 | 사용할 수 없음 |
케이스 월 테이블 | 사용할 수 없음 |
항목 보강 테이블 | 사용 가능 |
통계 | 사용 가능 |
JSON 결과 | 사용 가능 |
스크립트 결과 | 사용 가능 |
항목 보강 테이블
URL 스캔 작업을 통해 다음 필드를 보강할 수 있습니다.
보강 필드 이름 | 적용 가능한 논리 |
---|---|
Scan date |
JSON 결과에 존재하는 경우에 반환합니다. |
Scan ID |
JSON 결과에 존재하는 경우에 반환합니다. |
risk_score |
JSON 결과에 존재하는 경우에 반환합니다. |
Total |
JSON 결과에 존재하는 경우에 반환합니다. |
Online Link |
JSON 결과에 존재하는 경우에 반환합니다. |
Scanned Url |
JSON 결과에 존재하는 경우에 반환합니다. |
resource |
JSON 결과에 존재하는 경우에 반환합니다. |
Detecting Engines |
JSON 결과에 존재하는 경우에 반환합니다. |
Risk Score |
JSON 결과에 존재하는 경우에 반환합니다. |
Last Scan Date |
JSON 결과에 존재하는 경우에 반환합니다. |
verbose_msg |
JSON 결과에 존재하는 경우에 반환합니다. |
File Scan ID |
JSON 결과에 존재하는 경우에 반환합니다. |
통계
URL 스캔 작업을 통해 다음 통계를 반환할 수 있습니다.
심각도 | 설명 |
---|---|
Warn |
이 작업은 보강된 URL의 악성 상태를 알리는 경고 통계를 만듭니다. 이 작업은 감지된 엔진 수가 스캔 전에 설정한 최소 의심 기준점 이상인 경우에만 통계를 생성합니다. |
JSON 결과
다음 예시는 URL 검사 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.
[
{
"EntityResult": {
"permalink": "https://www.virustotal.com/url/URL_HASH/analysis/ANALYSIS_ID/",
"resource": "http://example.php",
"url": "http://example.php",
"response_code": 1,
"scan_date": "2019-02-04 05:28:54",
"scan_id": "URL_HASH-ANALYSIS_ID",
"verbose_msg": "Scan finished, scan information embedded in this object",
"filescan_id": null,
"positives": 5,
"total": 67,
"scans": {
"CLEAN MX": {
"detected": false,
"result": "clean site"
},
"DNS8": {
"detected": false,
"result": "clean site"
}}},
"Entity": "http://example.php"
}
]
스크립트 결과
다음 표에는 URL 검사 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
스크립트 결과 이름 | 값 |
---|---|
is_risky |
True 또는 False |
파일 업로드 및 스캔
파일 업로드 및 검사 작업을 사용하여 VirusTotal로 파일을 업로드하고 검사합니다.
이 작업은 모든 Google SecOps 항목에서 실행됩니다.
작업 입력
파일 업로드 및 스캔 작업에는 다음 매개변수가 필요합니다.
매개변수 | 설명 |
---|---|
Threshold |
필수 항목입니다. 파일을 위험한 것으로 간주하고 인사이트를 트리거하기 위한 VirusTotal 스캐너의 최소 양성 감지 수입니다. 기본값은 |
File Paths |
필수 항목입니다. 업로드하고 검사할 경로의 쉼표로 구분된 목록입니다. |
Linux Server Address |
(선택사항) 파일이 있는 원격 Linux 서버의 주소입니다(예: |
Linux User |
(선택사항) 원격 Linux 서버에서 인증할 사용자 이름입니다. |
Linux Password |
(선택사항) 원격 Linux 서버에서 인증하는 데 사용할 비밀번호입니다. |
작업 출력
파일 업로드 및 스캔 작업은 다음 출력을 제공합니다.
작업 출력 유형 | 가용성 |
---|---|
케이스 월 연결 | 사용할 수 없음 |
케이스 월 링크 | 사용할 수 없음 |
케이스 월 테이블 | 사용할 수 없음 |
항목 보강 테이블 | 사용 가능 |
통계 | 사용 가능 |
JSON 결과 | 사용 가능 |
스크립트 결과 | 사용 가능 |
항목 보강 테이블
파일 업로드 및 스캔 작업을 통해 다음 필드를 보강할 수 있습니다.
보강 필드 이름 | 적용 가능한 논리 |
---|---|
resource |
JSON 결과에 존재하는 경우에 반환합니다. |
Scan date |
JSON 결과에 존재하는 경우에 반환합니다. |
Scan ID |
JSON 결과에 존재하는 경우에 반환합니다. |
permalink |
JSON 결과에 존재하는 경우에 반환합니다. |
Total |
JSON 결과에 존재하는 경우에 반환합니다. |
Md5 |
JSON 결과에 존재하는 경우에 반환합니다. |
Sha1 |
JSON 결과에 존재하는 경우에 반환합니다. |
Sha256 |
JSON 결과에 존재하는 경우에 반환합니다. |
positives |
JSON 결과에 존재하는 경우에 반환합니다. |
total |
JSON 결과에 존재하는 경우에 반환합니다. |
Detecting Engines |
JSON 결과에 존재하는 경우에 반환합니다. |
verbose_msg |
JSON 결과에 존재하는 경우에 반환합니다. |
통계
파일 업로드 및 검사 작업을 통해 다음 통계를 확인할 수 있습니다.
심각도 | 설명 |
---|---|
Warn |
이 작업은 보강된 파일의 악성 상태를 알리는 경고 통계를 생성합니다. 이 작업은 감지된 엔진 수가 스캔 전에 설정한 최소 의심 기준점 이상인 경우에만 통계를 생성합니다. |
JSON 결과
다음 예시는 파일 업로드 및 스캔 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.
{
"file_path": {
"scan_id": "FILE_ID-ANALYSIS_ID",
"sha1": "ec44b2af88e602e3981db0b218ecb5d59dc0dfec",
"resource": "FILE_ID-ANALYSIS_ID",
"response_code": 1,
"scan_date": "2019-02-05 15:55:50",
"permalink": "https://www.virustotal.com/file/FILE_ID/analysis/ANALYSIS_ID/",
"verbose_msg": "Scan finished, information embedded",
"total": 58,
"positives": 0,
"sha256": "FILE_ID",
"md5": "848d57fbd8e29afa08bd3f58dd30f902",
"scans": {
"Bkav": {
"detected": false,
"version": "192.0.2.1",
"result": null,
"update": "20190201"
},
"MicroWorld-eScan": {
"detected": false,
"version": "14.0.297.0",
"result": null,
"update": "20190205"
}
}
}
}
스크립트 결과
다음 표에는 파일 업로드 및 스캔 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
스크립트 결과 이름 | 값 |
---|---|
is_risky |
True 또는 False |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.