Mengintegrasikan UrlScan.io dengan Google SecOps

Dokumen ini memberikan panduan tentang cara mengintegrasikan urlscan.io dengan Google SecOps.

Dokumen ini menjelaskan cara mengintegrasikan UrlScan.io dengan Google Security Operations.

Kasus penggunaan

Integrasi UrlScan.io menggunakan kemampuan Google SecOps untuk mendukung kasus penggunaan berikut:

  • Analisis URL otomatis: Mengirimkan URL yang mencurigakan secara otomatis ke UrlScan.io untuk menentukan tingkat risiko dan mengambil screenshot untuk verifikasi visual selama triase insiden.

  • Pengayaan threat intelligence: Memperkaya pemberitahuan dengan mengkueri UrlScan.io untuk mendapatkan metadata mendetail tentang alamat IP, domain, dan URL, sehingga memberikan konteks langsung kepada analis tentang ASN, jenis server, dan skor berbahaya.

  • Penelusuran pemindaian historis proaktif: Menelusuri pemindaian publik dan pribadi yang ada yang terkait dengan indikator penyusupan untuk mengidentifikasi aktivitas dan pola berbahaya historis.

  • Pelaporan dan forensik mendalam: Ambil detail pemindaian yang komprehensif menggunakan ID pemindaian tertentu untuk melakukan analisis mendalam terhadap cookie, jumlah permintaan, dan link terkait untuk investigasi keamanan yang kompleks.

Sebelum memulai

Untuk mengautentikasi koneksi antara Google SecOps dan UrlScan.io, Anda harus memberikan kunci API yang valid.

Anda dapat memperoleh dan mengelola kunci API dalam bagian Profile di akun urlscan.io Anda.

Parameter integrasi

Integrasi urlscan.io memerlukan parameter berikut:

Parameter Deskripsi
Api Key

Wajib.

Kunci API unik yang digunakan untuk melakukan autentikasi dengan layanan urlscan.io.

Verify SSL

Opsional.

Jika dipilih, integrasi akan memvalidasi sertifikat SSL saat terhubung ke server UrlScan.io.

Untuk mendapatkan petunjuk tentang cara mengonfigurasi integrasi di Google SecOps, lihat Mengonfigurasi integrasi.

Anda dapat melakukan perubahan pada tahap selanjutnya, jika diperlukan. Setelah mengonfigurasi instance integrasi, Anda dapat menggunakannya dalam playbook. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi dan mendukung beberapa instance, lihat Mendukung beberapa instance.

Tindakan

Untuk mengetahui informasi selengkapnya tentang tindakan, lihat Merespons tindakan yang tertunda dari meja kerja Anda dan Menjalankan tindakan manual dalam kasus Anda.

Ping

Menguji Konektivitas.

Parameter

T/A

Kasus penggunaan

T/A

Dijalankan Pada

Tindakan ini berjalan di semua entity.

Hasil Tindakan

Pengayaan Entity
Insight

T/A

Hasil Skrip
Nama Hasil Skrip Opsi Nilai Contoh
is_success Benar/Salah is_success:False
Hasil JSON
N/A

Pemeriksaan URL

Kirim URL untuk dipindai dan dapatkan detail pemindaian.

Parameter

Nama Parameter Jenis Is Mandatory Nilai Default Deskripsi
Visibilitas

DDL
yang mungkin:
publik, tidak publik, pribadi.

Tidak publik Pemindaian di urlscan.io memiliki salah satu dari tiga tingkat visibilitas, pastikan untuk menggunakan tingkat yang sesuai untuk pengiriman Anda.
Batas integer Tidak -1 Tandai entitas sebagai mencurigakan jika skor putusan sama dengan atau di atas nilai minimum yang ditentukan. Defaultnya adalah -1, dalam hal ini, kami menganggap setiap URL yang dipindai sebagai mencurigakan.
Create Insight Boolean Tidak Ya Jika diaktifkan, tindakan akan membuat insight yang berisi informasi tentang entity.
Only Suspicious Insight Boolean Tidak Tidak Jika diaktifkan, tindakan hanya akan membuat insight untuk entitas yang mencurigakan. Catatan: Parameter "Create Insight" harus diaktifkan.
Tambahkan Screenshot ke Insight Boolean Tidak Tidak Jika diaktifkan, tindakan akan menambahkan screenshot situs ke insight, jika tersedia.

Kasus penggunaan

T/A

Dijalankan Pada

Tindakan ini berjalan di entity berikut:

  • Alamat IP
  • Domain
  • URL

Hasil Tindakan

Pengayaan Entity
Nama Kunci
real_url tasks/url
visibilitas visibilitas
requests_count len(data/requests)
cookie CSV data/cookie/nama
related_links CSV data/links/href
main_country page/country
main_domain halaman/domain
main_ip page/ip
main_asn page/asnname
main_server page/server
related_ips_count len(lists/ips)
related_domains_count len(lists/domains)
related_countries CSV lists/countries
overall_score verdicts/overall/score
kategori verdicts/overall/categories
tags verdicts/overall/tags
berbahaya verdicts/overall/malicious
Insight

T/A

Hasil Skrip
Nama Hasil Skrip Opsi Nilai Contoh
is_success Benar/Salah is_success:False
Hasil 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
        }
    }
]

Menelusuri Pemindaian

Telusuri pemindaian urlscan.io yang ada berdasarkan atribut seperti domain, IP, nomor Autonomous System (AS), hash, dll. Tindakan ini akan menemukan pemindaian publik yang dilakukan oleh siapa pun serta pemindaian tidak publik dan pribadi yang dilakukan oleh Anda atau tim Anda.

Parameter

Nama Parameter Jenis Is Mandatory Nilai Default Deskripsi
Pemindaian Maksimal Bilangan bulat Tidak 100 Jumlah pemindaian yang akan ditampilkan per entity. Default: 100, Maks: 10.000 (bergantung pada langganan).

Dijalankan Pada

Tindakan ini berjalan di entity berikut:

  • Alamat IP
  • Nama host
  • URL
  • Nama file
  • Hash
  • Domain

Hasil Tindakan

Pengayaan Entity

T/A

Insight

T/A

Hasil Skrip
Nama Hasil Skrip Opsi Nilai Contoh
is_success Benar/Salah is_success:False
Hasil 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"
  }
  ]
}
Repositori Kasus
Jenis Hasil Nilai/Deskripsi Jenis
Pesan output*

Tindakan tidak boleh gagal atau menghentikan eksekusi playbook:

  • if find scans for some of the entities (is_success = true): print "Successfully listed scans for the following entities:\n".format(entity.identifier)
  • Jika tidak menemukan pemindaian untuk beberapa entitas (is_success = true): print "Action wasn't able to list scans for the following entities:\n".format(entity.identifier)
  • Jika tidak menemukan pemindaian untuk semua entitas(is_success = false): cetak "Action wasn't able to list scans for the available entities".
  • Jika tidak ada entitas: cetak "No suitable entities were found in the current scope.

    Tindakan akan gagal dan menghentikan eksekusi playbook:
    jika terjadi error fatal, seperti kredensial salah, tidak ada koneksi ke server, atau error lainnya: cetak "Error executing action "Search for Scans". Reason: {0}''.format(error.Stacktrace).
Umum
Tabel Repositori Kasus

Judul: "{entity identifier} - Hasil Penelusuran"

Kolom:

ID Pemindaian

URL

Tanggal Pemindaian

Ukuran

IPS

Negara Unik

Negara

Jenis Pemindaian

Umum
Link Repositori Kasus Judul: "urlscan.io Web Report + (ID entitas). Umum
Lampiran Repositori Kasus Akan berisi screenshot. Umum

Mendapatkan Detail Lengkap Pemindaian

Mendapatkan Detail Lengkap Pemindaian berdasarkan ID pemindaian

Parameter

Nama Parameter Jenis Is Mandatory Nilai Default Deskripsi
ID Pemindaian String Ya T/A Dapatkan laporan pemindaian menggunakan ID pemindaian. Nilai yang dipisahkan koma.

Dijalankan Pada

Tindakan ini tidak berjalan di entity.

Hasil Tindakan

Pengayaan Entity

T/A

Insight

T/A

Hasil Skrip
Nama Hasil Skrip Opsi Nilai Contoh
is_success Benar/Salah is_success:False
Hasil JSON
['Effective URL'] = response['page']['url']
Repositori Kasus
Jenis Hasil Nilai/Deskripsi Jenis
Pesan output*

Tindakan tidak boleh gagal atau menghentikan eksekusi playbook:

  • if find some scan ids (is_success = true): print "Successfully fetched results for the following scans: {scan ids}
  • Jika tidak menemukan beberapa (is_success = true): cetak "Action wasn't able to fetch results for the following scans: {scan ids}
  • Jika tidak menemukan semua (is_success = false): cetak "Action wasn't able to fetch results. ID pemindaian yang diberikan tidak tersedia menggunakan urlscan.io"

Tindakan akan gagal dan menghentikan eksekusi playbook:

  • jika error fatal, seperti kredensial salah, tidak ada koneksi ke server, atau error lainnya: cetak "Error executing action "Get Scan Full Details". Reason: {0}''.format(error.Stacktrace)
Umum
Link Repositori Kasus Judul: "urlscan.io Web Report + (Scan ID). Umum
Lampiran Repositori Kasus Akan berisi screenshot. Umum

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.