Mengintegrasikan APIVoid dengan Google SecOps
Dokumen ini menjelaskan cara mengintegrasikan APIVoid dengan Google Security Operations (Google SecOps).
Sebelum memulai
Sebelum mengonfigurasi integrasi APIVoid di Google SecOps untuk v2, pastikan Anda memiliki hal berikut:
Akun APIVoid v2: Akun aktif dengan akses ke layanan API v2.
Kunci API APIVoid v2: Kunci API baru yang dibuat khusus untuk API v2 dari dasbor pengguna APIVoid Anda.
Endpoint API yang diperbarui: Memahami URL endpoint API v2 yang diperbarui untuk layanan APIVoid tertentu yang ingin Anda gunakan (seperti, IP Reputation API, Domain Reputation API).
Membuat kunci API APIVoid v2
Untuk membuat kunci API APIVoid v2, selesaikan langkah-langkah berikut:
Login ke dasbor pengguna APIVoid Anda.
Buka bagian Kunci API. (Lokasinya dapat bervariasi bergantung pada update dasbor.)
Buat Kunci API baru. Segera salin dan simpan kunci dengan aman. Token ini mungkin hanya ditampilkan sekali.
Jaringan
| Fungsi | Port default | Arah | Protokol |
|---|---|---|---|
| API | Multivalues | Keluar | apikey |
Parameter integrasi
Gunakan parameter berikut untuk mengonfigurasi integrasi:
| Nama parameter | Jenis | Nilai default | Wajib | Deskripsi |
|---|---|---|---|---|
| Nama Instance | String | T/A | Tidak | Nama Instance yang ingin Anda konfigurasi integrasinya. |
| Deskripsi | String | T/A | Tidak | Deskripsi Instance. |
| Root API | String | https://endpoint.apivoid.com | Ya | Alamat instance APIVoid. |
| Kunci API | Sandi | T/A | Ya | Kunci API yang dibuat di konsol APIVoid. |
| Verifikasi SSL | Kotak centang | Tidak dicentang | Tidak | Gunakan kotak centang ini jika koneksi APIVoid Anda memerlukan verifikasi SSL. |
| Menjalankan dari Jarak Jauh | Kotak centang | Tidak dicentang | Tidak | Centang kolom untuk menjalankan integrasi yang dikonfigurasi dari jarak jauh. Setelah dicentang, opsi akan muncul untuk memilih pengguna jarak jauh (agen). |
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.
Mendapatkan Reputasi Domain
Pemeriksaan reputasi domain akan memeriksa apakah domain dikecualikan oleh layanan daftar yang tidak disetujui untuk domain yang populer dan tepercaya, seperti URLVir, ThreatLog, OpenPhish, Spam404, PhishTank, ZeuS Tracker, dan lainnya. Layanan daftar yang tidak diizinkan untuk beberapa domain mengidentifikasi situs yang berpotensi berbahaya dan bersifat menipu yang terlibat dalam distribusi malware, insiden phishing, dan toko online palsu.
Parameter
| Nama parameter | Jenis | Nilai default | Wajib | Deskripsi |
|---|---|---|---|---|
| Batas | String | 0 | Ya | Batas risiko domain. Nilai minimum harus berupa nilai numerik. Contoh: 3 |
| Membuat Insight | Kotak centang | Dicentang | Ya | Tentukan apakah tindakan harus membuat insight atau tidak. |
Kasus penggunaan
Salah satu kasus penggunaan Domain Reputation API adalah untuk memeriksa apakah situs klien dikecualikan, memeriksa URL yang dikirimkan oleh pengguna di aplikasi Anda, atau untuk mengidentifikasi situs yang berpotensi berbahaya dan tidak aman.
Dijalankan pada
Tindakan ini berjalan di entity berikut:
- Hostname
- URL
Hasil tindakan
Pengayaan entity
Tandai entity sebagai mencurigakan jika jumlah mesin negatif sama dengan atau di atas nilai minimum yang ditentukan.
| Nama kolom pengayaan | Logika - Kapan harus diterapkan |
|---|---|
| alexa_top_100k | Menampilkan jika ada dalam hasil JSON |
| domain_length | Menampilkan jika ada dalam hasil JSON |
| alexa_top_10k | Menampilkan jika ada dalam hasil JSON |
| daftar yang tidak diizinkan | Menampilkan jika ada dalam hasil JSON |
| server | Menampilkan jika ada dalam hasil JSON |
| host | Menampilkan jika ada dalam hasil JSON |
| most_abused_tld | Menampilkan jika ada dalam hasil JSON |
| alexa_top_250k | Menampilkan jika ada dalam hasil JSON |
Insight
| Keparahan | Deskripsi |
|---|---|
| Peringatkan | Insight peringatan dibuat untuk menginformasikan status berbahaya dari entitas yang diperkaya. Laporan ini dibuat jika jumlah mesin yang terdeteksi sama dengan atau melebihi Nilai minimum mencurigakan yang ditetapkan sebelum pemindaian. |
Hasil skrip
| Nama hasil skrip | Opsi nilai | Contoh |
|---|---|---|
| berhasil | Benar/Salah | success:False |
Hasil 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"
}
]
Mendapatkan Reputasi IP
IP Reputation API mendeteksi alamat IP yang berpotensi berbahaya yang biasanya digunakan untuk spam, serangan situs, atau aktivitas penipuan.
Parameter
| Parameter | Jenis | Nilai default | Wajib | Deskripsi |
|---|---|---|---|---|
| Batas | String | T/A | Ya | Batas risiko IP. Nilai minimum harus berupa nilai numerik. Contoh: 3. |
| Membuat Insight | Kotak centang | Dicentang | Ya | Tentukan apakah tindakan harus membuat insight atau tidak. |
Dijalankan pada
Tindakan ini berjalan di entity Alamat IP.
Hasil tindakan
Pengayaan entity
Tandai entity sebagai mencurigakan jika jumlah mesin negatif sama dengan atau di atas nilai minimum yang ditentukan.
| Nama kolom pengayaan | Logika - Kapan harus diterapkan |
|---|---|
| informasi | Menampilkan jika ada dalam hasil JSON |
| daftar yang tidak diizinkan | Menampilkan jika ada dalam hasil JSON |
| anonymity | Menampilkan jika ada dalam hasil JSON |
| ip | Menampilkan jika ada dalam hasil JSON |
Insight
| Keparahan | Deskripsi |
|---|---|
| Peringatkan | Insight peringatan dibuat untuk menginformasikan status berbahaya dari hash yang diperkaya. Insight dibuat saat jumlah mesin yang terdeteksi sama dengan atau melebihi nilai minimum mencurigakan yang ditetapkan sebelum pemindaian. |
Hasil skrip
| Nama hasil skrip | Opsi nilai | Contoh |
|---|---|---|
| berhasil | Benar/Salah | success:False |
Hasil 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"
}
]
Mendapatkan Reputasi URL
Mendapatkan reputasi keamanan dan skor risiko URL.
Parameter
| Nama parameter | Jenis | Nilai default | Wajib | Deskripsi |
|---|---|---|---|---|
| Batas | Bilangan bulat | T/A | Ya | Batas risiko URL. Nilai minimum harus berupa nilai numerik. Contoh: 3 |
Kasus penggunaan
Analis dapat mengambil reputasi URL, mirip dengan cara mengambil reputasi domain atau alamat IP.
Dijalankan pada
Tindakan ini berjalan di entity URL.
Hasil tindakan
Pengayaan entity
Tandai entity sebagai mencurigakan jika jumlah mesin negatif sama dengan atau di atas nilai minimum yang ditentukan. if data.get("report", {}).get("risk_score", {}).get("result") > threshold
| Nama kolom pengayaan | Logika - Kapan harus diterapkan |
|---|---|
| domain_blacklist | Menampilkan jika ada dalam hasil JSON |
| html_forms | Menampilkan jika ada dalam hasil JSON |
| server_details | Menampilkan jika ada dalam hasil JSON |
| response_headers | Menampilkan jika ada dalam hasil JSON |
| pengalihan | Menampilkan jika ada dalam hasil JSON |
| file_type | Menampilkan jika ada dalam hasil JSON |
| risk_score | Menampilkan jika ada dalam hasil JSON |
| security_checks | Menampilkan jika ada dalam hasil JSON |
| geo_location | Menampilkan jika ada dalam hasil JSON |
| url_parts | Menampilkan jika ada dalam hasil JSON |
| site_category | Menampilkan jika ada dalam hasil JSON |
| web_page | Menampilkan jika ada dalam hasil JSON |
| dns_records | Menampilkan jika ada dalam hasil JSON |
Hasil skrip
| Nama hasil skrip | Opsi nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success:False |
Hasil 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"
}
]
Repositori kasus
| Jenis hasil | Deskripsi | Jenis |
|---|---|---|
| Pesan output* |
|
Umum |
| Repositori Kasus CSV | Jika data tersedia, buat tabel csv entitas baru:
|
Umum |
| Pengayaan | Jika data tersedia, tambahkan hal berikut sebagai pengayaan entity: (jangan lupa untuk menambahkan awalan "APIVoid")
|
Entity |
Dapatkan Screenshot
Ambil screenshot berkualitas tinggi dari situs atau URL mana pun.
Parameter
T/A
Kasus penggunaan
Analis dapat mengambil screenshot berkualitas tinggi dari situs atau URL apa pun, dalam format gambar PNG atau JPG.
Dijalankan pada
Tindakan ini berjalan di entity Pengguna.
Hasil tindakan
Pengayaan entity
Tandai entity sebagai mencurigakan jika jumlah mesin negatif sama dengan atau di atas nilai minimum yang ditentukan. is_suspicious: if data.get("score") > threshold
| Nama kolom pengayaan | Logika - Kapan harus diterapkan |
|---|---|
| domain | Menampilkan jika ada dalam hasil JSON |
| should_block | Menampilkan jika ada dalam hasil JSON |
| skor | Menampilkan jika ada dalam hasil JSON |
| disposable | Menampilkan jika ada dalam hasil JSON |
| has_mx_records | Menampilkan jika ada dalam hasil JSON |
| has_spf_records | Menampilkan jika ada dalam hasil JSON |
Hasil skrip
| Nama hasil skrip | Opsi nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success:False |
Hasil 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"
}
]
Repositori kasus
| Jenis hasil | Deskripsi | Jenis |
|---|---|---|
| Pesan output* |
|
Umum |
| Lampiran | Jika data tersedia, buat objek file baru:
|
Umum |
Ping
Menguji konektivitas.
Parameter
T/A
Dijalankan pada
Tindakan ini berjalan di semua entity.
Hasil tindakan
Hasil skrip
| Nama hasil skrip | Opsi nilai | Contoh |
|---|---|---|
| berhasil | Benar/Salah | success:False |
Verifikasi Email
Periksa apakah email bersifat sementara, memiliki data MX, dan lainnya.
Parameter
| Nama parameter | Jenis | Nilai default | Wajib | Deskripsi |
|---|---|---|---|---|
| Batas | Bilangan bulat | T/A | Ya | Batas risiko email. Nilai minimum harus berupa nilai numerik. Contoh: 3 |
Kasus penggunaan
Analis dapat memeriksa apakah email bersifat sekali pakai, mendapatkan data MX, dan lainnya.
Dijalankan pada
Tindakan ini berjalan di entity Pengguna.
Hasil tindakan
Pengayaan entity
Tandai entity sebagai mencurigakan jika jumlah mesin negatif sama dengan atau di atas nilai minimum yang ditentukan. is_suspicious: if data.get("score") > threshold
| Nama kolom pengayaan | Logika - Kapan harus diterapkan |
|---|---|
| domain | Menampilkan jika ada dalam hasil JSON |
| should_block | Menampilkan jika ada dalam hasil JSON |
| skor | Menampilkan jika ada dalam hasil JSON |
| disposable | Menampilkan jika ada dalam hasil JSON |
| has_mx_records | Menampilkan jika ada dalam hasil JSON |
| has_spf_records | Menampilkan jika ada dalam hasil JSON |
Hasil skrip
| Nama hasil skrip | Opsi nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success:False |
Hasil 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"
}
]
Repositori kasus
| Jenis hasil | Deskripsi | Jenis |
|---|---|---|
| Pesan output* |
|
Umum |
| Repositori Kasus CSV | Konten CSV: data entitas(contoh di bawah) | Umum |
| Pengayaan | Jika data tersedia, tambahkan hal berikut sebagai pengayaan entity: (jangan lupa untuk menambahkan awalan "APIVoid")
|
Entity |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.