Menjalankan penelusuran untuk data konteks entity
Fitur Konteks Entitas dalam Penelusuran meningkatkan investigasi keamanan dan respons insiden dengan memungkinkan pengguna menelusuri dan melihat peristiwa konteks yang terkait dengan entitas dalam akun Google Security Operations mereka. Tidak seperti penelusuran yang terbatas pada skema peristiwa Model Data Terpadu (UDM) standar, fitur ini memenuhi kebutuhan untuk melakukan penelusuran di luar data peristiwa UDM, termasuk konteks entity UDM, dan memberikan insight yang lebih mendalam tentang insiden keamanan.
Manfaat utama
- Analis keamanan dan pemburu ancaman dapat membuat kueri informasi kontekstual tentang entitas.
- Membantu analisis akar masalah, perburuan ancaman, dan forensik.
- Pengguna dapat menjalankan penelusuran statistik pada konteks entity untuk memahami pola telemetri dan entity yang terpengaruh melalui analisis telemetri.
Menggunakan Konteks Entity di Penelusuran
Anda dapat menggunakan konteks entity untuk mendapatkan insight dari hasil penelusuran dengan cara berikut:
- Menelusuri menggunakan nama kolom entitas UDM: Buat kueri penelusuran Anda menggunakan nama kolom entitas UDM. Misalnya, untuk menemukan semua peristiwa konteks yang terkait dengan nama host tertentu, buat penelusuran menggunakan
graph.entity.hostname
. - Mengakses tab Ringkasan: Tab Ringkasan memberikan ringkasan tingkat tinggi tentang entitas yang ditemukan dalam penelusuran Anda, dengan memanfaatkan informasi dari kueri yang dimasukkan pengguna untuk menampilkan informasi. Halaman Ringkasan menampilkan informasi untuk jenis entitas, seperti
DOMAIN_NAME
,IP_ADDRESS
,ASSET
,USER
,FILE
,GROUP
, danRESOURCE
. - Menggunakan tab Entitas: Tab Entitas mencantumkan semua peristiwa konteks entitas yang diterima, termasuk subkomponen seperti Tren dari Waktu ke Waktu, Filter Snapshot, Agregasi, dan Peristiwa. Entitas dikategorikan ke dalam entitas berjangka waktu dan abadi, yang ditampilkan di tab terpisah.
- Melihat gabungan: Gabungan ditampilkan untuk kolom, mirip dengan penelusuran peristiwa UDM. Agregasi selanjutnya dikategorikan ke dalam jenis konteks: Konteks Entitas, Konteks Turunan, dan Konteks Global.
Kasus penggunaan: Memeriksa akun pengguna yang disusupi
Pertimbangkan skenario berikut: seorang analis keamanan perlu menyelidiki akun pengguna yang berpotensi disusupi (email@company.com). Ikuti langkah-langkah berikut untuk menyelidiki:
Identifikasi pengguna yang akunnya disusupi: Pemberitahuan menandai bahwa pengguna email@company.com telah diidentifikasi sebagai akun yang mencurigakan.
Kumpulkan informasi Konteks Entitas: Dapatkan data kontekstual tentang pengguna untuk memahami cakupan dan dampaknya.
Menjalankan kueri: Gunakan Konteks Entity di Penelusuran untuk menjalankan kueri berikut:
graph.entity.user.email_addresses = "email@company.com"
untuk mengambil informasi tentang pengguna.graph.entity.user.email_addresses = "email@company.com" AND graph.metadata.product_name = "Google Cloud Compute Context"
untuk memeriksa nama produk dan metadata lainnya.
Menganalisis Tab Ringkasan: Tab Ringkasan menampilkan ringkasan entitas untuk pengguna, termasuk:
- Periksa stempel waktu
First Seen Hour
danLast Seen Hour
.
- Periksa stempel waktu
- Tinjau Nama host, Alamat IP, dan Alamat MAC (jika tersedia).
- Periksa model hardware, platform OS, dan versi platform.
Periksa Tab Peristiwa: Lihat peristiwa terkait untuk pengguna ini, termasuk upaya login dan anomali.
Agregat Ulasan: Mengidentifikasi pola dan anomali dalam data konteks entity, yang didistribusikan ke Konteks Entity, Konteks Turunan, dan Konteks Global.
Contoh Penelusuran
Untuk menelusuri data konteks entity, gunakan nama kolom entity UDM dalam kueri penelusuran Anda:
graph.entity.hostname
graph.entity.ip = "8.8.8.8" and graph.metadata.entity_type = "ASSET"
Hasil penelusuran menampilkan informasi penting tentang entitas, termasuk:
- Metadata entity
- Metrik (
First Seen Hour
,Last Seen Hour
) - Relasi (
Entity
,Direction
,Entity_label
,Entity_type
,Relationship
) - Bergantung pada jenis entitas, kolom tertentu, seperti
Principal_ip
untuk aset,Mail_id
untuk pengguna,File_name
untuk hash/file, sertaDomain_name
danIP_address
untuk domain.
Contoh Konteks Entity dalam penelusuran
Bagian ini memberikan contoh praktis untuk membangun fitur Konteks Entitas UDM guna menganalisis statistik entitas.
Penelusuran statistik Entitas UDM
Untuk melihat jenis dan sumber konteks yang tersedia, jalankan penelusuran statistik Entitas UDM berikut di Penelusuran UDM:
graph.metadata.source_type = $sourceType
graph.metadata.entity_type = $entityType
match:
$sourceType, $entityType
outcome:
$total = count(graph.metadata.product_entity_id)
order:
$sourceType, $total desc
limit:
100
Pemilih Waktu menampilkan data aktif dalam Grafik Entitas, bukan saat data konteks dimasukkan.
Karena UDM Entity Search menggunakan antarmuka UDM Search standar, Anda dapat menggunakan fitur, seperti panel Agregasi (untuk melihat nilai teratas atau terbawah), tabel hasil, dan hasil yang diperluas dari Statistik UDM.
Contoh: Melihat ENTITY_TYPE
yang berbeda
Untuk memperluas Penelusuran Entitas UDM, Anda dapat menyertakan sumber log, namespace, dan array hasil untuk menampilkan ENTITY_TYPE
yang berbeda yang diamati, sebagai berikut:
graph.metadata.source_type = "ENTITY_CONTEXT"
$logType = strings.to_upper(graph.metadata.event_metadata.base_labels.log_types)
$namespace = strings.to_upper(graph.metadata.event_metadata.base_labels.namespaces)
match:
$logType, $namespace
outcome:
$total = count(graph.metadata.product_entity_id)
$entityTypes = array_distinct(graph.metadata.entity_type)
order:
$logType, $total desc
limit:
100
Contoh: Memperbaiki set entity Anda
Anda dapat menyaring kumpulan entity tertentu menggunakan fitur pergeseran Penelusuran UDM. Penyempurnaan ini kemudian menghasilkan kueri YARA-L seperti berikut:
graph.metadata.source_type = "ENTITY_CONTEXT"
$logType = strings.to_upper( graph.metadata.event_metadata.base_labels.log_types )
$namespace = strings.to_upper( graph.metadata.event_metadata.base_labels.namespaces )
AND strings.to_upper( graph.metadata.event_metadata.base_labels.log_types ) = "WINDOWS_AD"
AND strings.to_upper( graph.metadata.event_metadata.base_labels.namespaces ) = "ACME"
Konteks turunan
Google SecOps menyediakan jenis konteks turunan berikut:
- Stempel waktu
first_seen
danlast_seen
untuk setiapENTITY_TYPE
Prevalence
: Jumlah aset yang telah mengaksesENTITY_TYPE
tertentu
Stempel waktu First Seen Hour
dan Last Seen Hour
Google SecOps melakukan analisis statistik pada data yang masuk dan memperkaya rekaman konteks entitas dengan stempel waktu first_seen
dan last_seen
:
- Kolom
first_seen_hour
mencatat jam saat entitas pertama kali terlihat di lingkungan pelanggan. - Kolom
last_seen_hour
mencatat jam pengamatan terbaru entitas tersebut.
Pengguna dengan jam pertama kali terlihat dalam 7 hari terakhir:
graph.metadata.entity_type = "USER"
graph.entity.user.userid != ""
graph.entity.user.first_seen_time.hours >= timestamp.current_hours()-(86400 * 7)
Domain yang pertama kali terlihat dalam 7 hari terakhir:
graph.metadata.source_type = "DERIVED_CONTEXT"
graph.metadata.entity_type = "DOMAIN_NAME"
//optional, filter to only return FQDN
graph.entity.domain.name = /^([a-zA-Z0–9]([a-zA-Z0–9-]{0,61}[a-zA-Z0–9])?\.)+[a-zA-Z]{2,}$/
graph.entity.domain.first_seen_time.hours >= timestamp.current_hours()-(86400 * 7)
File (hash) yang diamati dalam 7 hari terakhir:
graph.metadata.source_type = "DERIVED_CONTEXT"
graph.metadata.entity_type = "FILE"
//graph.entity.file.md5 != ""
//graph.entity.file.sha1 != ""
graph.entity.file.sha256 != ""
graph.entity.file.first_seen_time.hours >= timestamp.current_hours() - (86400 * 7)
ENTITY_TYPE
mewakili hash FILE
, misalnya, entity.file.hash
.
Dalam objek hash
, jenisnya dapat berupa salah satu dari berikut:
md5
sha1
sha256
Untuk menelusuri hash tertentu, Anda dapat menjalankan Penelusuran Entitas UDM untuk jenis hash tertentu:
// This will search ENTITY, DERIVED, and GLOBAL Source Types
graph.metadata.entity_type = "FILE"
graph.entity.file.sha256 = "eb5db1feadda5351c3b8fc0770e9f4c173484df5dc4a785bd1bdce7806a9e498"
Alamat IP
ENTITY_TYPES
turunan dari IP_ADDRESS
dapat merepresentasikan entitas internal atau eksternal.
Penelusuran Statistik Entitas UDM berikut mengidentifikasi IP_ADDRESSES
yang baru-baru ini diamati dan menggunakan fungsi agregat (di bagian hasil) untuk menghitungnya menurut blok CIDR:
graph.metadata.source_type = "DERIVED_CONTEXT"
graph.metadata.entity_type = "IP_ADDRESS"
//note, for IP addresses the first seen is under artifact, not ip
graph.entity.artifact.first_seen_time.hours >= timestamp.current_hours()-(86400 * 7)
outcome:
$total = count(graph.metadata.product_entity_id)
$classA = sum(if(net.ip_in_range_cidr(graph.entity.ip, "10.0.0.0/8"),1,0))
$classB = sum(if(net.ip_in_range_cidr(graph.entity.ip, "172.16.0.0/12"),1,0))
$classC = sum(if(net.ip_in_range_cidr(graph.entity.ip, "192.168.0.0/16"),1,0))
$classD = sum(if(net.ip_in_range_cidr(graph.entity.ip, "224.0.0.0/4"),1,0))
// we shouldn't see results here…
$classE = sum(if(net.ip_in_range_cidr(graph.entity.ip, "240.0.0.0/4"),1,0))
$thisNetwork = sum(if(net.ip_in_range_cidr(graph.entity.ip, "0.0.0.0/8"),1,0))
$loopback = sum(if(net.ip_in_range_cidr(graph.entity.ip, "127.0.0.0/8"),1,0))
$linklocal = sum(if(net.ip_in_range_cidr(graph.entity.ip, "169.254.0.0/16"),1,0))
$benchmark = sum(if(net.ip_in_range_cidr(graph.entity.ip, "198.18.0.0/15"),1,0))
$cgnat = sum(if(net.ip_in_range_cidr(graph.entity.ip, "10.64.0.0/10"),1,0))
Untuk menyelidiki lebih lanjut rentang yang tidak biasa atau tidak terduga, Anda dapat menjalankan penelusuran Entitas UDM:
graph.metadata.source_type = "DERIVED_CONTEXT"
graph.metadata.entity_type = "IP_ADDRESS"
net.ip_in_range_cidr(graph.entity.ip, "198.18.0.0/15")
Prevalensi
Prevalensi selalu berjenis DERIVED_CONTEXT
.
Penelusuran Entitas UDM berikut mengidentifikasi nama domain yang jarang diamati. Domain ini secara khusus dikaitkan dengan paling banyak satu aset berbeda per hari, selama jangka waktu kueri (day_max = 1
), dan paling banyak satu aset berbeda selama 10 hari sebelumnya (rolling_max = 1
).
Pola ini berguna untuk mendeteksi domain dengan interaksi terbatas di seluruh lingkungan Anda:
graph.metadata.source_type = "DERIVED_CONTEXT"
graph.metadata.entity_type = "DOMAIN_NAME"
//optional, filter to only return specific TLDs where the FQDN is more than X characters
//graph.entity.domain.name = /^.{40,}\.(?:sx|cc|st|ac|lc|wd|vg|tv|cm|gd)$/
graph.entity.domain.prevalence.rolling_max = 1
graph.entity.domain.prevalence.day_max = 1
Atau, Anda dapat mengubahnya menjadi penelusuran Statistik Entitas UDM gabungan dan menggabungkan hasilnya:
graph.metadata.source_type = "DERIVED_CONTEXT"
graph.metadata.entity_type = "DOMAIN_NAME"
//optional, filter to only return FQDN
graph.entity.domain.name = /^.{40,}\.(?:sx|cc|st|ac|lc|wd|vg|tv|cm|gd)$/
$domain = graph.entity.domain.name
$length = strings.length(graph.entity.domain.name)
$tld = strings.extract_domain(graph.entity.domain.name)
graph.entity.domain.prevalence.day_max = 1
graph.entity.domain.prevalence.rolling_max = 1
match:
$domain, $tld, $length
limit:
10
Penelusuran kolom entitas UDM dasar
Berikut contoh tambahan penggunaan fitur Konteks Entitas di Penelusuran di Google SecOps, berdasarkan sumber yang tersedia:
graph.entity.hostname
graph.entity.ip = "8.8.8.8" and graph.metadata.entity_type = "ASSET"
principal.ip
principal.hostname="baz"
principal.ip="1.2.3.4"
network.dns.questions.name="youtube.com"
Membuat pivot dari kolom entity
Gunakan kolom entitas untuk melakukan pivot dan menjelajahi data terkait. Contoh kolom pivot meliputi:
network.email.to
network.email.cc
principal.process.file.fileMetadata.pe.importHash
principal.process.file.sha256
network.dns.questions.name
Memahami kolom dinamis
Sumber mereferensikan kolom terstruktur dinamis dengan awalan, seperti
additional
. Anda dapat menelusuri kolom ini dalam peristiwa UDM.
Pertimbangan kontrol akses
Batas 50 peristiwa diberlakukan pada data konteks global dan menghapus referensi ke kontrol akses.
Sumber berikut menyediakan dukungan konteks global:
- Safe Browsing
- Hubungan VirusTotal
- WHOIS
- Huruf Besar
- IOC Intelijen Open Source (
OPEN_SOURCE_INTEL_IOC
) - IoC Pelanggaran Aktif Mandiant (
MANDIANT_ACTIVE_BREACH_IOC
) - IoC Mandiant Fusion (
MANDIANT_FUSION_IOC
)
Batasan
- Batas Volume: Batas 1 juta pada hasil kumulatif untuk data berjangka waktu dan tanpa batas waktu.
- Data Konteks Global: Ada batas 50 baris untuk data konteks global sensitif seperti UPPERCASE_VT_PROTECTED, MANDIANT_ACTIVE_BREACH_IOC, MANDIANT_FUSION_IOC, dan VIRUS_TOTAL_CONNECTIONS, yang ditampilkan untuk pengguna dengan cakupan akses data global.
- Konsistensi Data: Data Terakhir Terlihat dapat tertunda hingga 2 jam. Entitas terkait mungkin hanya menampilkan sebagian entitas yang tercantum dalam suatu peristiwa.
Fitur yang tidak didukung:
- Pencarian terbalik pada kolom entitas, penelusuran kolom yang dikelompokkan, Prevalensi Rendah, dan HeatMap.
- Anda tidak dapat melakukan Gabungan antara konteks Entitas dan kueri Peristiwa.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.