Mengelola pengecualian aturan
Dokumen ini menjelaskan cara mengelola pengecualian aturan secara terprogram di Google Security Operations menggunakan API. Pengecualian berfungsi sebagai filter yang Anda tentukan berdasarkan kolom Unified Data Model (UDM) untuk mencegah deteksi tertentu menghasilkan pemberitahuan. Dengan mengidentifikasi aktivitas yang diketahui atau aman, filter ini menghentikan gangguan yang tidak perlu di dasbor Anda.
Membuat pengecualian dengan filter hasil
Anda dapat membuat aturan eksklusif baru secara terprogram untuk menyembunyikan temuan deteksi tertentu yang cocok dengan kriteria yang Anda tentukan, sehingga mengurangi derau dan memprioritaskan pemberitahuan fidelitas tinggi.
Gunakan endpoint POST untuk menentukan logika penekanan. Semua filter dengan array outcomeFilters ditautkan oleh klausa AND implisit.
Metode: POST
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID
Ganti kode berikut:
REGION: Google Cloud Region untuk instance Google SecOps.
PROJECT_ID: Project ID Google Cloud Anda.
LOCATION: Lokasi instance Google SecOps (sering kali sama dengan region).
INSTANCE_ID: ID instance Google SecOps.
Contoh:
POST https://us-chronicle.googleapis.com/v1/projects/my-project/locations/us/instances/my-instance/findingsRefinements
Isi permintaan:
{
"displayName": "Exclusion with outcome filters",
"type": "DETECTION_EXCLUSION",
"query": "principal.hostname = \"altostrat.com\"",
"outcomeFilters": [
{
"outcome_variable": "ip",
"outcome_value": "127.0.01",
"outcome_filter_operator": "EQUAL"
},
{
"outcome_variable": "hostnames",
"outcome_value": "altostrat.com",
"outcome_filter_operator": "CONTAINS"
}
]
}
Contoh ini menunjukkan cara menentukan logika peniadaan saat
beberapa filter dalam array outcomeFilters ditautkan oleh klausa
AND implisit.
Kolom wajib diisi: displayName, type, query
Kolom yang dibuat sistem: Jangan tentukan name, createTime, atau updateTime.
Kolom ini dikelola oleh sistem dan diabaikan atau menyebabkan error jika disertakan dalam permintaan.
Logika peniadaan mengikuti hubungan AND. Permintaan ini akan membuat pengecualian yang menekan deteksi apa pun yang memiliki peristiwa dengan hal berikut:
"altostrat.com" sebagai nama host utama
Variabel hasil
ipdengan nilai127.0.0.1Variabel hasil
hostnamesdengan setidaknya salah satu nilai gabungannya adalahaltostrat.com.
Semua filter yang ditentukan dalam pengecualian ditautkan secara implisit oleh klausa AND.
Respons API: API menampilkan nama resource FindingsRefinement.
Resource FindingsRefinement berisi logika penekanan inti
(filter kueri dan hasil). Nama resource (ID) digunakan untuk operasi berikutnya pada pengecualian
Mengakses pengecualian
Gunakan endpoint GET untuk melakukan hal berikut:
Mendapatkan detail satu definisi pengecualian berdasarkan ID uniknya.
Saat Anda memiliki
refinement-idtertentu dan perlu memverifikasi kueri persis atau filter hasil yang ada di dalamnya.
Metode: GET
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements
Ganti kode berikut:
REGION: Region Google Cloud untuk instance Google SecOps.
PROJECT_ID: Project ID Google Cloud Anda.
LOCATION: Lokasi instance Google SecOps (sering kali sama dengan region).
INSTANCE_ID: ID instance Google SecOps.
Contoh:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777
Menerapkan pengecualian ke aturan atau set aturan
Anda harus menerapkan pengecualian pada aturan tertentu atau set aturan pilihan.
Saat Anda menerapkan pengecualian ke aturan atau set aturan, tindakan ini akan membuat resource FindingsRefinementDeployment. Anda dapat menggunakan resource ini untuk menentukan aturan kustom, aturan pilihan, atau set aturan pilihan yang berlaku untuk resource FindingsRefinement. Kemudian, Anda dapat menentukan parameter update_mask
dalam permintaan API untuk menunjukkan kolom mana dalam
FindingsRefinementDeployment yang akan diperbarui.
Metode: PATCH
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements/REFINEMENT_ID
Ganti kode berikut:
REGION: Region Google Cloud untuk instance Google SecOps.
PROJECT_ID: Project ID Google Cloud Anda.
LOCATION: Lokasi instance Google SecOps (sering kali sama dengan region).
INSTANCE_ID: ID instance Google SecOps.
REFINEMENT_ID: ID unik Penyempurnaan Temuan.
Contoh:
PATCH https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777?update_mask=enabled,detectionExclusionApplication
Isi permintaan:
{
"name": "projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777"
"enabled": true,
"detectionExclusionApplication": {
"curatedRuleSets": [
...list curated rule set resource names
],
"curatedRules": [
...list curated rule resource names
],
"rules": [
...list rule resource names
],
}
}
Saat Anda menerapkan pengecualian ke aturan atau set aturan, sistem akan membuat resource FindingsRefinementDeployment. Resource ini menentukan aturan kustom, aturan yang diseleksi, dan set aturan yang diseleksi mana yang berlaku untuk resource FindingsRefinement. Anda juga dapat menyertakan parameter update_mask
dalam permintaan API untuk menentukan kolom mana dalam
FindingsRefinementDeployment yang akan diperbarui.
Mengakses deployment untuk pengecualian
Setelah membuat atau memperbarui pengecualian, gunakan endpoint ini untuk memverifikasi aturan atau set aturan yang menjadi tujuan penerapan pengecualian tertentu tersebut.
Metode: GET
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements/REFINEMENT_ID
Ganti kode berikut:
REGION: Region Google Cloud untuk instance Google SecOps.
PROJECT_ID: Project ID Google Cloud Anda.
LOCATION: Lokasi instance Google SecOps (sering kali sama dengan region).
INSTANCE_ID: ID instance Google SecOps.
REFINEMENT_ID: ID unik Penyempurnaan Temuan.
Contoh:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777/deployment
Mencantumkan semua pengecualian
Gunakan endpoint ini untuk mengambil daftar resource findingsRefinements.
Metode: GET
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements
Ganti kode berikut:
REGION: Google Cloud Region untuk instance Google SecOps.
PROJECT_ID: Project ID Google Cloud Anda.
LOCATION: Lokasi instance Google SecOps (sering kali sama dengan region).
INSTANCE_ID: ID instance Google SecOps.
Contoh:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements
Parameter kueri opsional: pageSize, pageToken
Anda dapat menggunakan parameter opsional untuk mencantumkan lebih banyak hasil yang mirip dengan endpoint daftar lainnya dalam API.
Mencantumkan semua deployment pengecualian
Gunakan endpoint ini untuk mendapatkan daftar resource FindingsRefinement yang dibuat dalam instance Anda.
Metode: GET
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements
Ganti kode berikut:
REGION: Region Google Cloud untuk instance Google SecOps.
PROJECT_ID: Project ID Google Cloud Anda.
LOCATION: Lokasi instance Google SecOps (sering kali sama dengan region).
INSTANCE_ID: ID instance Google SecOps.
Contoh:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210:listAllFindingsRefinementDeployments
Parameter kueri opsional:
Gunakan parameter
pageSizedanpageTokenuntuk mencantumkan lebih banyak hasil yang mirip dengan endpoint daftar lainnya dalam API.Gunakan parameter
filteruntuk memfilter aturan atau set aturan yang memiliki pengecualian yang diterapkan.
Menguji pengecualian menggunakan API
Endpoint ini menguji pengecualian terhadap deteksi dari aturan dan set aturan yang ditentukan, lalu memvalidasi efektivitas pengecualian dalam menekan deteksi yang tidak diinginkan. UI menggunakan deteksi 30 hari terakhir untuk pengujian.
Metode: POST
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:testFindingsRefinement
Ganti kode berikut:
REGION: Google Cloud Region untuk instance Google SecOps.
PROJECT_ID: Project ID Google Cloud Anda.
LOCATION: Lokasi instance Google SecOps (sering kali sama dengan region).
INSTANCE_ID: ID instance Google SecOps.
Contoh:
POST https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210:testFindingsRefinement
Isi permintaan:
{
"type": "DETECTION_EXCLUSION",
"query": "principal.hostname = \"altostrat.com\"",
"outcomeFilters": [
{
"outcome_variable": "ip",
"outcome_value": "127.0.01",
"outcome_filter_operator": "EQUAL",
},
{
"outcome_variable": "hostnames",
"outcome_value": "altostrat.com",
"outcome_filter_operator": "CONTAINS",
},
]
"interval": {
"start_time": {
"seconds": 1756684800, // Sep. 1 2025 00:00 UTC
},
"end_time": {
"seconds": 1759276800, // Oct. 1 2025 00:00 UTC
},
},
"detectionExclusionApplication": {
"curatedRuleSets": [
...curated rule set resource names
],
"curatedRules": [
...curated rule resource names
],
"rules": [
...rule resource names
],
}
}
Endpoint ini menguji pengecualian atas deteksi yang telah dibuat dalam aturan dan set aturan yang ditentukan dalam permintaan. Hal ini membantu menentukan seberapa efektif pengecualian dalam menekan deteksi yang seharusnya tidak dihasilkan. Sistem menggunakan deteksi 30 hari terakhir sebagai rentang waktu untuk menguji pengecualian.
Batasan
Semua pengecualian (dengan atau tanpa filter hasil) harus menentukan kolom
query. Untuk membuat pengecualian hanya denganoutcomeFilters, tentukan ekspresi regulermatch-all....other fields in FindingsRefinement query: "principal.hostname = /.*/" outcomeFilters: [ your outcome filters ]Ekspresi reguler cocok dengan nama host apa pun. Oleh karena itu, kueri ini cocok dengan semua deteksi. Oleh karena itu, pemfilteran yang efektif hanya ditentukan oleh filter hasil.
Pengecualian tidak mendukung konfigurasi time to live (TTL). Namun, Anda dapat membuat TTL satu kali dengan menghitung waktu habis masa berlaku tertentu dan menambahkan kondisi stempel waktu dalam definisi pengecualian. Misalnya, untuk menetapkan pengecualian agar berakhir pada akhir tahun, tentukan kueri sebagai berikut:
...other fields in FindingsRefinement query: "metadata.event_timestamp.seconds < 1767225600" // Jan 1 2026 00:00 UTC outcomeFilters: [your outcome filters]Contoh ini mengonfirmasi bahwa hanya deteksi yang dibuat oleh peristiwa dengan stempel waktu sebelum akhir tahun yang dihentikan.
Catatan: Hal ini mungkin tidak ditampilkan dengan benar di jendela Edit Pengecualian antarmuka pengguna karena hanya mendukung kolom
string.Aturan komposit: Jangan menerapkan pengecualian aturan secara langsung ke aturan komposit. Anda harus menerapkan pengecualian pada aturan dasar yang mendasarinya yang masuk ke aturan gabungan. Hal ini karena pengecualian aturan dievaluasi terhadap kolom UDM (seperti
principal.user.userid), tetapi aturan gabungan dipicu berdasarkan deteksi lain, bukan kolom UDM. Jika Anda menerapkan pengecualian aturan langsung ke aturan gabungan, pengecualian tidak akan cocok, dan peristiwa tidak akan dikecualikan.Untuk menemukan aturan dasar, Anda dapat memeriksa definisi aturan gabungan di konsol Google SecOps (di bagian Content Hub > Pendeteksian Terseleksi) dan meninjau bagian
events:dari logika YARA-L untuk mengidentifikasi nama aturan dasar.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.