UrlScan.io를 Google SecOps와 통합

이 문서에서는 urlscan.io를 Google SecOps와 통합하는 방법을 안내합니다.

이 문서에서는 UrlScan.io를 Google Security Operations와 통합하는 방법을 설명합니다.

사용 사례

UrlScan.io 통합은 Google SecOps 기능을 사용하여 다음 사용 사례를 지원합니다.

  • 자동 URL 분석: 의심스러운 URL을 UrlScan.io에 자동으로 제출하여 위험 수준을 확인하고 사고 분류 중에 시각적 확인을 위한 스크린샷을 가져옵니다.

  • 위협 인텔리전스 보강: UrlScan.io에 IP 주소, 도메인, URL에 관한 자세한 메타데이터를 쿼리하여 알림을 보강하고 분석가에게 ASN, 서버 유형, 악성 점수에 관한 즉각적인 컨텍스트를 제공합니다.

  • 사전 대응 과거 스캔 검색: 침해 지표와 연결된 기존 공개 및 비공개 스캔을 검색하여 과거 악성 활동 및 패턴을 식별합니다.

  • 심층 포렌식 및 보고: 특정 검사 ID를 사용하여 포괄적인 검사 세부정보를 검색하여 복잡한 보안 조사를 위해 쿠키, 요청 수, 관련 링크를 심층적으로 분석합니다.

시작하기 전에

Google SecOps와 UrlScan.io 간의 연결을 인증하려면 유효한 API 키를 제공해야 합니다.

urlscan.io 계정의 프로필 섹션에서 API 키를 가져오고 관리할 수 있습니다.

통합 매개변수

urlscan.io 통합에는 다음 매개변수가 필요합니다.

매개변수 설명
Api Key

필수 항목입니다.

urlscan.io 서비스로 인증하는 데 사용되는 고유한 API 키입니다.

Verify SSL

선택사항입니다.

선택하면 통합에서 UrlScan.io 서버에 연결할 때 SSL 인증서를 검증합니다.

Google SecOps에서 통합을 구성하는 방법에 대한 안내는 통합 구성을 참고하세요.

필요한 경우 이후 단계에서 변경할 수 있습니다. 통합 인스턴스를 구성한 후 플레이북에서 사용할 수 있습니다. 여러 인스턴스를 구성하고 지원하는 방법에 관한 자세한 내용은 여러 인스턴스 지원을 참고하세요.

작업

작업에 대한 자세한 내용은 내 Workdesk에서 대기 중인 작업에 응답 및 수동 작업 실행을 참고하세요.

핑

연결을 테스트합니다.

매개변수

해당 사항 없음

사용 사례

해당 사항 없음

실행

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

작업 결과

항목 보강
통계

해당 사항 없음

스크립트 결과
스크립트 결과 이름 값 옵션 예시
is_success True/False is_success:False
JSON 결과
N/A

URL 확인

스캔할 URL을 제출하고 스캔 세부정보를 가져옵니다.

매개변수

매개변수 이름 유형 필수 항목 기본값 설명
공개 상태

DDL
가능:
public, unlisted, private.

아니요 public urlscan.io의 스캔에는 세 가지 공개 상태 수준이 있으며 제출에 적절한 수준을 사용해야 합니다.
기준 정수 아니요 -1 평결 점수가 지정된 기준 이상이면 항목을 의심스러운 것으로 표시합니다. 기본값은 -1이며, 이 경우 스캔된 모든 URL이 의심스러운 것으로 간주됩니다.
통계 만들기 불리언 아니요 예 사용 설정하면 작업에서 항목에 대한 정보가 포함된 통계를 만듭니다.
의심스러운 통계만 불리언 아니요 아니요 사용 설정하면 작업에서 의심스러운 항목에 대한 통계만 만듭니다. 참고: 'Create Insight' 매개변수를 사용 설정해야 합니다.
인사이트에 스크린샷 추가 불리언 아니요 아니요 사용 설정된 경우, 웹사이트의 스크린샷이 있으면 통계에 추가됩니다.

사용 사례

해당 사항 없음

실행

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

  • IP 주소
  • 도메인
  • URL

작업 결과

항목 보강
이름 키
real_url tasks/url
visibility visibility
requests_count len(data/requests)
쿠키 데이터/쿠키/이름의 CSV
related_links 데이터/링크/href의 CSV
main_country 페이지/국가
main_domain page/domain
main_ip page/ip
main_asn page/asnname
main_server 페이지/서버
related_ips_count len(lists/ips)
related_domains_count len(lists/domains)
related_countries CSV 목록/국가
overall_score verdicts/overall/score
categories verdicts/overall/categories
tags verdicts/overall/tags
악성 요청 verdicts/overall/malicious
통계

해당 사항 없음

스크립트 결과
스크립트 결과 이름 값 옵션 예시
is_success True/False is_success:False
JSON 결과
[
    {
        "Entity": "https://example.com",
        "EntityResult": {
            "lists": {
                "ips": [
                    "0.0.0.0"
                ],
                "countries": [
                    "ZZ"
                ],
                "asns": [
                    "00000"
                ],
                "domains": [
                    "subdomain.example.com"
                ],
                "servers": [
                    "GenericServer/1.0.0"
                ],
                "urls": [
                    "https://example.com/",
                    "https://example.com/assets/image.png",
                    "https://example.com/assets/script.js",
                    "https://example.com/assets/style.svg",
                    "https://example.com/favicon.ico"
                ],
                "linkDomains": [
                    "node1.example.com",
                    "node2.example.com",
                    "node3.example.com"
                ],
                "certificates": [
                    {
                        "subjectName": "*.example.com",
                        "issuer": "CA-0",
                        "validFrom": 1000000000,
                        "validTo": 2000000000
                    }
                ],
                "hashes": [
                    "hash_string_alpha_001",
                    "hash_string_alpha_002",
                    "hash_string_alpha_003"
                ]
            },
            "page": {
                "asn": "AS00000",
                "asnname": "PROVIDER - Service Provider Inc., ZZ",
                "city": "",
                "country": "ZZ",
                "domain": "subdomain.example.com",
                "ip": "0.0.0.0",
                "ptr": "host.provider.net",
                "server": "GenericServer/1.0.0",
                "url": "https://example.com/",
                "apexDomainAgeDays": 1,
                "mimeType": "application/octet-stream",
                "title": "Title Placeholder",
                "tlsValidDays": 0,
                "tlsAgeDays": 0,
                "domainAgeDays": 1,
                "tlsValidFrom": "2000-01-01T00:00:00.000Z",
                "umbrellaRank": 0,
                "apexDomain": "example.com",
                "tlsIssuer": "CA-0",
                "status": "000"
            },
            "scanner": {
                "country": "zz"
            },
            "stats": {
                "IPv6Percentage": 0,
                "adBlocked": 0,
                "malicious": 0,
                "securePercentage": 0,
                "secureRequests": 0,
                "totalLinks": 0,
                "uniqCountries": 0
            },
            "submitter": {
                "country": "ZZ"
            },
            "task": {
                "method": "system",
                "source": "source_id",
                "time": "2000-01-01T00:00:00.000Z",
                "url": "https://example.com/",
                "uuid": "00000000-0000-0000-0000-000000000000",
                "visibility": "private",
                "reportURL": "https://service.io/result/id/",
                "screenshotURL": "https://service.io/screen/id.png",
                "domURL": "https://service.io/dom/id/",
                "domain": "subdomain.example.com",
                "apexDomain": "example.com"
            },
            "verdicts": {
                "overall": {
                    "score": 0,
                    "categories": [],
                    "brands": [],
                    "tags": [],
                    "malicious": false,
                    "hasVerdicts": false
                },
                "service_provider": {
                    "score": 0,
                    "categories": [],
                    "brands": [],
                    "tags": [],
                    "malicious": false,
                    "hasVerdicts": false
                },
                "engines": {
                    "score": 0,
                    "malicious": false,
                    "categories": [],
                    "enginesTotal": 0,
                    "maliciousTotal": 0,
                    "benignTotal": 0,
                    "maliciousVerdicts": [],
                    "benignVerdicts": [],
                    "hasVerdicts": false,
                    "tags": [
                        "tag-alpha",
                        "tag-beta"
                    ]
                },
                "community": {
                    "score": 0,
                    "categories": [],
                    "brands": [],
                    "votesTotal": 0,
                    "votesMalicious": 0,
                    "votesBenign": 0,
                    "malicious": false,
                    "hasVerdicts": false
                }
            },
            "is_risky": false
        }
    }
]

스캔 검색

도메인, IP, 자율 시스템 (AS) 번호, 해시 등의 속성으로 urlscan.io 기존 스캔을 검색합니다. 이 작업은 모든 사용자가 실행한 공개 스캔뿐만 아니라 사용자와 사용자의 팀이 실행한 일부 공개 및 비공개 스캔도 찾습니다.

매개변수

매개변수 이름 유형 필수 항목 기본값 설명
최대 스캔 정수 아니요 100 항목당 반환할 스캔 수입니다. 기본값: 100, 최댓값: 10,000 (구독에 따라 다름)

실행

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

  • IP 주소
  • 호스트 이름
  • URL
  • 파일 이름
  • 해시
  • 도메인

작업 결과

항목 보강

해당 사항 없음

통계

해당 사항 없음

스크립트 결과
스크립트 결과 이름 값 옵션 예시
is_success True/False is_success:False
JSON 결과
{"entity_identifier": "www.unitedneighborsfcu.com",
"entity_results":[
  {
        "indexedAt": "2020-12-09T12:16:43.329Z",
        "task": {
            "visibility": "public",
            "method": "automatic",
            "domain": "www.unitedneighborsfcu.com",
            "time": "2020-12-09T12:16:23.168Z",
            "source": "certstream-suspicious",
            "uuid": "96310829-fed4-4d61-9fb0-39eb2952719f",
            "url": "https://www.unitedneighborsfcu.com"
        },
        "stats": {
            "uniqIPs": 6,
            "consoleMsgs": 0,
            "uniqCountries": 3,
            "dataLength": 1938842,
            "encodedDataLength": 1568193,
            "requests": 28
        },
        "page": {
            "country": "US",
            "server": "Microsoft-IIS/10.0",
            "domain": "www.unitedneighborsfcu.com",
            "ip": "8.21.114.55",
            "mimeType": "text/html",
            "asnname": "LEVEL3, US",
            "asn": "AS3356",
            "url": "https://www.unitedneighborsfcu.com/",
            "status": "200"
        },
        "_id": "96310829-fed4-4d61-9fb0-39eb2952719f",
        "sort": [1607516183168, "96310829-fed4-4d61-9fb0-39eb2952719f"],
        "result": "https://urlscan.io/api/v1/result/96310829-fed4-4d61-9fb0-39eb2952719f/",
        "screenshot": "https://urlscan.io/screenshots/96310829-fed4-4d61-9fb0-39eb2952719f.png"
  }
  ]
}
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

  • 일부 항목의 스캔을 찾은 경우 (is_success = true): '다음 항목의 스캔을 나열했습니다.\n'.format(entity.identifier) 출력
  • 일부 항목의 스캔을 찾지 못한 경우 (is_success = true): '작업이 다음 항목의 스캔을 나열할 수 없습니다.\n'.format(entity.identifier) 출력
  • 모든 항목의 스캔을 찾지 못한 경우(is_success = false): '작업이 사용 가능한 항목의 스캔을 나열할 수 없습니다.'를 출력합니다.
  • 항목이 없는 경우: '현재 범위에서 적합한 항목을 찾을 수 없습니다.

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

제목: '{엔티티 식별자} - 검색 결과'

열:

스캔 ID

URL

스캔 날짜

크기

IPS : 침입 방지 시스템

고유 국가

국가

스캔 유형

일반
케이스 월 링크 제목: 'urlscan.io 웹 보고서 + (엔티티 ID)' 일반
케이스 월 첨부파일 스크린샷이 포함됩니다. 일반

전체 세부정보 가져오기

스캔 ID로 전체 스캔 세부정보 가져오기

매개변수

매개변수 이름 유형 필수 항목 기본값 설명
스캔 ID 문자열 예 해당 사항 없음 스캔 ID를 사용하여 스캔 보고서를 가져옵니다. 쉼표로 구분된 값입니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

항목 보강

해당 사항 없음

통계

해당 사항 없음

스크립트 결과
스크립트 결과 이름 값 옵션 예시
is_success True/False is_success:False
JSON 결과
['Effective URL'] = response['page']['url']
케이스 월
결과 유형 값 / 설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

  • 스캔 ID를 찾은 경우 (is_success = true): '다음 스캔의 결과를 가져왔습니다: {scan ids}
  • 일부를 찾지 못한 경우 (is_success = true): print "Action wasn't able to fetch results for the following scans: {scan ids}
  • 모두 찾지 못한 경우 (is_success = false): '작업이 결과를 가져올 수 없습니다. 제공된 스캔 ID는 urlscan.io를 사용하여 사용할 수 없습니다.'

작업이 실패하고 플레이북 실행을 중지합니다.

  • 잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류의 경우: ''전체 세부정보 가져오기' 작업을 실행하는 중에 오류가 발생했습니다.'를 출력합니다. 이유: {0}'.format(error.Stacktrace)
일반
케이스 월 링크 제목: 'urlscan.io 웹 보고서 + (스캔 ID)' 일반
케이스 월 첨부파일 스크린샷이 포함됩니다. 일반

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