Google SecOps와 APIVoid 통합
이 문서에서는 APIVoid를 Google Security Operations (Google SecOps)와 통합하는 방법을 설명합니다.
통합 버전: 12.0
시작하기 전에
v2용 Google SecOps에서 APIVoid 통합을 구성하기 전에 다음이 있는지 확인하세요.
APIVoid v2 계정: v2 API 서비스에 액세스할 수 있는 활성 계정입니다.
APIVoid v2 API 키: APIVoid 사용자 대시보드에서 v2 API용으로 특별히 생성된 새 API 키입니다.
업데이트된 API 엔드포인트: 사용할 특정 APIVoid 서비스 (예: IP 평판 API, 도메인 평판 API)의 업데이트된 v2 API 엔드포인트 URL을 잘 알고 있어야 합니다.
APIVoid v2 API 키 생성
APIVoid v2 API 키를 생성하려면 다음 단계를 완료하세요.
APIVoid 사용자 대시보드에 로그인합니다.
API 키 섹션으로 이동합니다. (위치는 대시보드 업데이트에 따라 다를 수 있습니다.)
새 API 키를 생성합니다. 키를 즉시 복사하여 안전하게 저장합니다. 한 번만 표시될 수 있습니다.
네트워크
함수 | 기본 포트 | 방향 | 프로토콜 |
---|---|---|---|
API | Multivalues | 아웃바운드 | apikey |
통합 매개변수
다음 매개변수를 사용하여 통합을 구성합니다.
매개변수 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
---|---|---|---|---|
인스턴스 이름 | 문자열 | 해당 사항 없음 | No | 통합을 구성할 인스턴스의 이름입니다. |
설명 | 문자열 | 해당 사항 없음 | No | 인스턴스에 대한 설명입니다. |
API 루트 | 문자열 | https://endpoint.apivoid.com | 예 | APIVoid 인스턴스의 주소입니다. |
API 키 | 비밀번호 | 해당 사항 없음 | 예 | APIVoid 콘솔에서 생성된 API 키입니다. |
SSL 확인 | 체크박스 | 선택 해제 | 아니요 | APIVoid 연결에 SSL 확인이 필요한 경우 이 체크박스를 사용합니다. |
원격 실행 | 체크박스 | 선택 해제 | No | 구성된 통합을 원격으로 실행하려면 필드를 선택합니다. 선택하면 원격 사용자(에이전트)를 선택하는 옵션이 나타납니다. |
Google SecOps에서 통합을 구성하는 방법에 대한 안내는 통합 구성을 참고하세요.
필요한 경우 이후 단계에서 변경할 수 있습니다. 통합 인스턴스를 구성한 후 플레이북에서 사용할 수 있습니다. 여러 인스턴스를 구성하고 지원하는 방법에 관한 자세한 내용은 여러 인스턴스 지원을 참고하세요.
작업
작업에 대한 자세한 내용은 내 Workdesk에서 대기 중인 작업에 응답 및 수동 작업 실행을 참고하세요.
도메인 평판 가져오기
URLVir, ThreatLog, OpenPhish, Spam404, PhishTank, ZeuS Tracker 등 인기 있고 신뢰할 수 있는 도메인 차단 목록 서비스에서 도메인이 제외된 경우 도메인 평판 확인을 받습니다. 여러 도메인 차단목록 서비스는 멀웨어 배포, 피싱 사건, 가짜 온라인 상점과 관련된 악성 및 사기성 웹사이트를 식별합니다.
매개변수
매개변수 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
---|---|---|---|---|
기준 | 문자열 | 0 | 예 | 도메인 위험 기준입니다. 기준점은 숫자 값이어야 합니다. 예: 3 |
통계 만들기 | 체크박스 | 선택 | 예 | 작업에서 통계를 생성해야 하는지 여부를 지정합니다. |
사용 사례
Domain Reputation API의 사용 사례 중 하나는 클라이언트의 웹사이트가 제외되었는지 확인하거나, 애플리케이션에서 사용자가 제출한 URL을 확인하거나, 잠재적으로 악성이고 안전하지 않은 웹사이트를 식별하는 것입니다.
실행
이 작업은 다음 항목에서 실행됩니다.
- 호스트 이름
- URL
작업 결과
항목 보강
부정적인 엔진 수가 지정된 기준 이상이면 항목을 의심스러운 것으로 표시합니다.
보강 필드 이름 | 로직 - 적용 시기 |
---|---|
alexa_top_100k | JSON 결과에 존재하는 경우에 반환 |
domain_length | JSON 결과에 존재하는 경우에 반환 |
alexa_top_10k | JSON 결과에 존재하는 경우에 반환 |
블랙리스트 | JSON 결과에 존재하는 경우에 반환 |
서버 | JSON 결과에 존재하는 경우에 반환 |
호스트 | JSON 결과에 존재하는 경우에 반환 |
most_abused_tld | JSON 결과에 존재하는 경우에 반환 |
alexa_top_250k | JSON 결과에 존재하는 경우에 반환 |
통계
심각도 | 설명 |
---|---|
주의 | 보강된 엔티티의 악성 상태를 알리기 위해 경고 통계가 생성됩니다. 탐지된 엔진 수가 스캔 전에 설정된 최소 의심 기준점 이상인 경우에 생성됩니다. |
스크립트 결과
스크립트 결과 이름 | 값 옵션 | 예 |
---|---|---|
성공 | True/False | success:False |
JSON 결과
[
{
"EntityResult": {
"alexa_top_100k": false,
"domain_length": 17,
"alexa_top_10k": false,
"blacklists": {
"scantime": "0.07",
"detection_rate": "0%",
"detections": 0,
"engines_count": 29,
"engines": [{
"engine": "ThreatLog",
"detected": false,
"confidence": "high",
"reference": "http://www.threatlog.com/"
}, {
"engine": "Threat Sourcing",
"detected": false,
"confidence": "high",
"reference": "https://www.threatsourcing.com/"
}, {
"engine": "URLVir",
"detected": false,
"confidence": "high",
"reference": "http://www.urlvir.com/"
}]},
"server": {
"region_name": null,
"reverse_dns": " ",
"ip": " ",
"isp": null,
"continent_code": null,
"latitude": null,
"city_name": null,
"longitude": null,
"country_code": null,
"country_name": null,
"continent_name": null
},
"host": "example.com",
"most_abused_tld": false,
"alexa_top_250k": false
},
"Entity": "example.com"
}, {
"EntityResult": {
"alexa_top_100k": false,
"domain_length": 9,
"alexa_top_10k": false,
"blacklists": {
"scantime": "0.03",
"detection_rate": "0%",
"detections": 0,
"engines_count": 29,
"engines": [{
"engine": "ThreatLog",
"detected": false,
"confidence": "high",
"reference": "http://www.threatlog.com/"
}, {
"engine": "Threat Sourcing",
"detected": false,
"confidence": "high",
"reference": "https://www.threatsourcing.com/"
}, {
"engine": "URLVir",
"detected": false,
"confidence": "high",
"reference": "http://www.urlvir.com/"
}]},
"server": {
"region_name": null,
"reverse_dns": " ",
"ip": " ",
"isp": null,
"continent_code": null,
"latitude": null,
"city_name": null,
"longitude": null,
"country_code": null,
"country_name": null,
"continent_name": null
},
"host": "192.0.2.1",
"most_abused_tld": false,
"alexa_top_250k": false
},
"Entity": "192.0.2.1"
}
]
IP 평판 가져오기
IP Reputation API는 스팸, 웹사이트 공격 또는 사기 행위에 일반적으로 사용되는 잠재적으로 악의적인 IP 주소를 감지합니다.
매개변수
매개변수 | 유형 | 기본값 | 필수 항목 | 설명 |
---|---|---|---|---|
기준 | 문자열 | 해당 사항 없음 | 예 | IP 위험 기준입니다. 기준점은 숫자 값이어야 합니다. 예: 3. |
통계 만들기 | 체크박스 | 선택 | 예 | 작업에서 통계를 생성해야 하는지 여부를 지정합니다. |
실행
이 작업은 IP 주소 항목에서 실행됩니다.
작업 결과
항목 보강
부정적인 엔진 수가 지정된 기준 이상이면 항목을 의심스러운 것으로 표시합니다.
보강 필드 이름 | 로직 - 적용 시기 |
---|---|
정보 | JSON 결과에 존재하는 경우에 반환 |
블랙리스트 | JSON 결과에 존재하는 경우에 반환 |
익명성 | JSON 결과에 존재하는 경우에 반환 |
ip | JSON 결과에 존재하는 경우에 반환 |
통계
심각도 | 설명 |
---|---|
주의 | 보강된 해시의 악성 상태를 알리기 위해 경고 통계가 생성됩니다. 이 통계는 감지된 엔진 수가 스캔 전에 설정된 최소 의심 기준점과 같거나 이를 초과하는 경우에 생성됩니다. |
스크립트 결과
스크립트 결과 이름 | 값 옵션 | 예 |
---|---|---|
성공 | True/False | success:False |
JSON 결과
[
{
"EntityResult": {
"information": {
"is_proxy": false,
"is_vpn": false,
"region_name": "Zhejiang",
"is_webproxy": false,
"latitude": 28.680280685424805,
"isp": "ChinaNet Zhejiang Province Network",
"continent_code": "AS",
"is_tor": false,
"reverse_dns": " ",
"detections": 18,
"engines_count": 76,
"longitude": 121.44277954101562,
"city_name": "Jiaojiang",
"country_name": "China",
"continent_name": "Asia",
"detection_rate": "24%",
"country_code": "CN",
"is_hosting": false
},
"blacklists": {
"scantime": "0.57",
"detection_rate":
"24%",
"detections": 18,
"engines_count": 76,
"engines": [{
"engine": "PlonkatronixBL",
"detected": false,
"reference": "http://bl.plonkatronix.com/"
}, {
"engine": "Engine",
"detected": true,
"reference": "https://home.nuug.no/~engine/"
}, {"engine": "Malc0de",
"detected": false,
"reference": "http://malc0de.com/database/index.php"
}]},
"anonymity": {
"is_tor": false,
"is_proxy": false,
"is_vpn": false,
"is_webproxy": false,
"is_hosting": false
},
"ip": "192.0.2.1"
},
"Entity": "192.0.2.1"
}
]
URL 평판 가져오기
URL의 안전 평판과 위험 점수를 가져옵니다.
매개변수
매개변수 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
---|---|---|---|---|
기준 | 정수 | 해당 사항 없음 | 예 | URL 위험 기준입니다. 기준점은 숫자 값이어야 합니다. 예: 3 |
사용 사례
분석가는 도메인 또는 IP 주소의 평판을 가져오는 방법과 유사하게 URL 평판을 가져올 수 있습니다.
실행
이 작업은 URL 항목에서 실행됩니다.
작업 결과
항목 보강
부정적인 엔진 수가 지정된 기준점 이상이면 항목을 의심스러운 것으로 표시합니다. if data.get("report", {}).get("risk_score", {}).get("result") > threshold
보강 필드 이름 | 로직 - 적용 시기 |
---|---|
domain_blacklist | JSON 결과에 존재하는 경우에 반환 |
html_forms | JSON 결과에 존재하는 경우에 반환 |
server_details | JSON 결과에 존재하는 경우에 반환 |
response_headers | JSON 결과에 존재하는 경우에 반환 |
리디렉션 | JSON 결과에 존재하는 경우에 반환 |
file_type | JSON 결과에 존재하는 경우에 반환 |
risk_score | JSON 결과에 존재하는 경우에 반환 |
security_checks | JSON 결과에 존재하는 경우에 반환 |
geo_location | JSON 결과에 존재하는 경우에 반환 |
url_parts | JSON 결과에 존재하는 경우에 반환 |
site_category | JSON 결과에 존재하는 경우에 반환 |
web_page | JSON 결과에 존재하는 경우에 반환 |
dns_records | JSON 결과에 존재하는 경우에 반환 |
스크립트 결과
스크립트 결과 이름 | 값 옵션 | 예 |
---|---|---|
is_success | True/False | is_success:False |
JSON 결과
[
{
"EntityResult": {
"domain_blacklist": {
"detections": 0,
"engines": [{
"detected": false,
"name": "SpamhausDBL", "reference": "https://www.spamhaus.org/lookup/"
}, {
"detected": false,
"name": "ThreatLog",
"reference": "http://www.threatlog.com/"
}, {
"detected": false,
"name": "OpenPhish",
"reference": "http://www.openphish.com/"
}, {
"detected": false,
"name": "PhishTank",
"reference": "http://www.phishtank.com/"
}, {
"detected": false,
"name": "Phishing.Database",
"reference": "https://github.com/mitchellkrogza/Phishing.Database"
}, {
"detected": false,
"name": "PhishStats",
"reference": "https://phishstats.info/"
}, {
"detected": false,
"name": "URLVir",
"reference": "http://www.urlvir.com/"
}, {
"detected": false,
"name": "URLhaus",
"reference": "https://urlhaus.abuse.ch/"
}, {
"detected": false,
"name": "RPiList Not Serious",
"reference": "https://github.com/RPiList/specials"
}, {
"detected": false,
"name": "precisionsec",
"reference": "https://precisionsec.com/"
}, {
"detected": false,
"name": "AntiSocial Blacklist",
"reference": "https://theantisocialengineer.com/"
}, {
"detected": false,
"name": "PhishFeed",
"reference": "https://phishfeed.com/"
}, {
"detected": false,
"name": "Spam404",
"reference": "https://www.spam404.com/"
}]},
"html_forms": {
"number_of_total_input_fields": 0,
"email_field_present": false,
"number_of_total_forms": 0,
"password_field_present": false,
"two_text_inputs_in_a_form": false,
"credit_card_field_present": false
},
"server_details": {
"continent_name": "Asia",
"hostname": "example.com",
"region_name": "Seoul-teukbyeolsi",
"ip": "192.0.2.141",
"isp": "Example Corporation",
"continent_code": "AS",
"country_name": "Korea (Republic of)",
"city_name": "Seoul",
"longitude": 126.97782897949219,
"country_code": "KR",
"latitude": 37.568260192871094
},
"response_headers": {
"status": "HTTP/1.1 404 Not Found",
"content-length": "177",
"code": 404,
"server": "nginx/1.4.6 (Ubuntu)",
"connection": "keep-alive",
"date": "Wed, 15 Jul 2020 08:21:54 GMT",
"content-type": "text/html"
},
"redirection": {
"url": null,
"found": false,
"external": false
},
"file_type": {
"headers": "HTML",
"extension": "HTML",
"signature": " "
},
"risk_score": {
"result": 10
},
"security_checks": {
"is_suspended_page": false,
"is_defaced_heuristic": false,
"is_windows_exe_file": false,
"is_credit_card_field": false,
"is_windows_exe_file_on_free_hosting": false,
"is_masked_linux_elf_file": false,
"is_exe_on_directory_listing": false,
"is_php_on_directory_listing": false,
"is_masked_windows_exe_file": false,
"is_sinkholed_domain": false,
"is_robots_noindex": false,
"is_windows_exe_file_on_free_dynamic_dns": false,
"is_doc_on_directory_listing": false,
"is_non_standard_port": false,
"is_linux_elf_file_on_free_dynamic_dns": false,
"is_suspicious_domain": false, "is_suspicious_url_pattern": false,
"is_china_country": false,
"is_risky_geo_location": false,
"is_pdf_on_directory_listing": false,
"is_valid_https": false,
"is_external_redirect": false, "is_windows_exe_file_on_ipv4": false,
"is_phishing_heuristic": false,
"is_linux_elf_file_on_ipv4": false,
"is_email_address_on_url_query": false,
"is_uncommon_clickable_url": false,
"is_most_abused_tld": false,
"is_domain_blacklisted": false,
"is_host_an_ipv4": false,
"is_linux_elf_file_on_free_hosting": false,
"is_zip_on_directory_listing": false,
"is_password_field": false,
"is_linux_elf_file": false,
"is_empty_page_title": false,
"is_directory_listing": false,
"is_masked_file": false,
"is_suspicious_file_extension": false,
"is_suspicious_content": false
},
"geo_location": {
"countries": ["KR"]
},
"url_parts": {
"host_nowww": "example.com",
"host": "www.example.com",
"path": "/dynamic/example.html",
"query": null,
"scheme": "http",
"port": 80},
"site_category": {
"is_vpn_provider": false,
"is_url_shortener": false,
"is_anonymizer": false,
"is_torrent": false,
"is_free_dynamic_dns": false,
"is_free_hosting": false
},
"web_page": {
"keywords": "",
"description": "",
"title": "404 Not Found"
},
"dns_records": {
"ns": {
"records": [{
"country_name": "Korea (Republic of)",
"ip": "192.0.2.95",
"isp": "Example Corporation",
"target": "example.com",
"country_code": "KR"
}, {
"country_name": "Korea (Republic of)",
"ip": "192.0.2.26",
"isp": "LX",
"target": "example.com",
"country_code": "KR"
}]},
"mx": {
"records": []
}}},
"Entity": "www.example.com:80/dynamic/example.html"
}
]
케이스 월
결과 유형 | 설명 | 유형 |
---|---|---|
출력 메시지* |
|
일반 |
CSV 케이스 월 | 사용 가능한 데이터가 있는 경우 새 항목 CSV 테이블을 만듭니다.
|
일반 |
보강 | 사용 가능한 데이터가 있는 경우 다음을 엔티티 보강으로 추가합니다. 'APIVoid' 접두사를 추가해야 합니다.
|
항목 |
스크린샷 가져오기
웹사이트 또는 URL의 고화질 스크린샷을 캡처합니다.
매개변수
해당 사항 없음
사용 사례
분석가는 PNG 또는 JPG 이미지 형식으로 모든 웹사이트 또는 URL의 고품질 스크린샷을 캡처할 수 있습니다.
실행
이 작업은 사용자 항목에서 실행됩니다.
작업 결과
항목 보강
부정적인 엔진 수가 지정된 임곗값 이상이면 항목을 의심스러운 것으로 표시합니다. is_suspicious: if data.get("score") > threshold
보강 필드 이름 | 로직 - 적용 시기 |
---|---|
도메인 | JSON 결과에 존재하는 경우에 반환 |
should_block | JSON 결과에 존재하는 경우에 반환 |
점수 | JSON 결과에 존재하는 경우에 반환 |
일회용 | JSON 결과에 존재하는 경우에 반환 |
has_mx_records | JSON 결과에 존재하는 경우에 반환 |
has_spf_records | JSON 결과에 존재하는 경우에 반환 |
스크립트 결과
스크립트 결과 이름 | 값 옵션 | 예 |
---|---|---|
is_success | True/False | is_success:False |
JSON 결과
[
{
"EntityResult": {
"domain": "example.com",
"valid_tld": true,
"email": "user@example.co",
"role_address": false,
"should_block": false,
"risky_tld": false,
"dirty_words_username": false,
"suspicious_domain": false,
"score": 100,
"educational_domain": false,
"dirty_words_domain": false,
"did_you_mean": " ",
"username": "user",
"valid_format": true,
"is_spoofable ": false,
"disposable": false,
"government_domain": false,
"has_spf_records": true,
"domain_popular": false,
"has_mx_records": true,
"china_free_email": false,
"free_email": false,
"russian_free_email": false,
"police_domain": false,
"dmarc_enforced": false,
"suspicious_username": false
},
"Entity": "USER@EXAMPLE.COM"
}
]
케이스 월
결과 유형 | 설명 | 유형 |
---|---|---|
출력 메시지* |
|
일반 |
첨부파일 | 데이터가 있으면 새 파일 객체를 만듭니다.
|
일반 |
핑
연결을 테스트합니다.
매개변수
해당 사항 없음
실행
이 작업은 모든 항목에서 실행됩니다.
작업 결과
스크립트 결과
스크립트 결과 이름 | 값 옵션 | 예 |
---|---|---|
성공 | True/False | success:False |
이메일 확인
이메일이 일회용인지, MX 레코드가 있는지 등을 확인합니다.
매개변수
매개변수 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
---|---|---|---|---|
기준 | 정수 | 해당 사항 없음 | 예 | 이메일 위험 기준입니다. 기준점은 숫자 값이어야 합니다. 예: 3 |
사용 사례
분석가는 이메일이 일회용인지 확인하고 MX 레코드 등을 가져올 수 있습니다.
실행
이 작업은 사용자 항목에서 실행됩니다.
작업 결과
항목 보강
부정적인 엔진 수가 지정된 임곗값 이상이면 항목을 의심스러운 것으로 표시합니다. is_suspicious: if data.get("score") > threshold
보강 필드 이름 | 로직 - 적용 시기 |
---|---|
도메인 | JSON 결과에 존재하는 경우에 반환 |
should_block | JSON 결과에 존재하는 경우에 반환 |
점수 | JSON 결과에 존재하는 경우에 반환 |
일회용 | JSON 결과에 존재하는 경우에 반환 |
has_mx_records | JSON 결과에 존재하는 경우에 반환 |
has_spf_records | JSON 결과에 존재하는 경우에 반환 |
스크립트 결과
스크립트 결과 이름 | 값 옵션 | 예 |
---|---|---|
is_success | True/False | is_success:False |
JSON 결과
[
{
"EntityResult": {
"domain": "example.com",
"valid_tld": true,
"email": "user@example.com",
"role_address": false,
"should_block": false,
"risky_tld": false,
"dirty_words_username": false,
"suspicious_domain": false,
"score": 100,
"educational_domain": false,
"dirty_words_domain": false,
"did_you_mean": " ",
"username": "user",
"valid_format": true,
"is_spoofable ": false,
"disposable": false,
"government_domain": false,
"has_spf_records": true,
"domain_popular": false,
"has_mx_records": true,
"china_free_email": false,
"free_email": false,
"russian_free_email": false,
"police_domain": false,
"dmarc_enforced": false,
"suspicious_username": false
},
"Entity": "USER@EXAMPLE.COm"
}
]
케이스 월
결과 유형 | 설명 | 유형 |
---|---|---|
출력 메시지* |
|
일반 |
CSV 케이스 월 | CSV 콘텐츠: 엔티티 데이터(아래 예) | 일반 |
보강 | 사용 가능한 데이터가 있는 경우 다음을 엔티티 보강으로 추가합니다. 'APIVoid' 접두사를 추가해야 합니다.
|
항목 |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.