Melakukan penelusuran konteks entity

Didukung di:

Fitur Konteks Entity dalam Penelusuran meningkatkan investigasi keamanan dan respons insiden dengan memungkinkan pengguna menelusuri dan melihat peristiwa konteks yang terkait dengan entity dalam akun Google Security Operations mereka. Tidak seperti penelusuran yang terbatas pada skema peristiwa Model Data Terpadu (UDM) standar, fitur ini memenuhi kebutuhan untuk menelusuri 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 mengkueri informasi kontekstual tentang entity.
  • 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.

Anda dapat menggunakan konteks entity untuk mendapatkan insight dari hasil penelusuran dengan cara berikut:

  • Menelusuri menggunakan nama kolom entity UDM: Buat kueri penelusuran menggunakan nama kolom entity 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 umum tentang entitas yang ditemukan dalam penelusuran Anda, dengan memanfaatkan informasi dari kueri yang dimasukkan pengguna untuk menampilkan informasi. Halaman Overview menampilkan informasi untuk jenis entity, seperti DOMAIN_NAME, IP_ADDRESS, ASSET, USER, FILE, GROUP, dan RESOURCE.
  • Menggunakan tab Entity: Tab Entity mencantumkan semua peristiwa konteks entity yang diterima, termasuk subkomponen seperti Trend Over Time, Snapshot Filter, Aggregations, dan Events. Entitas dikategorikan menjadi entitas berbatas waktu dan tidak berbatas waktu, yang ditampilkan di tab terpisah.
  • Melihat agregat: Agregat ditampilkan untuk kolom, mirip dengan penelusuran peristiwa UDM. Agregasi dikategorikan lebih lanjut ke dalam jenis konteks: Konteks Entity, Konteks Turunan, dan Konteks Global.

Antarmuka hasil penelusuran Entity Context Graph

Antarmuka hasil penelusuran Entity Context Graph (ECG) menyediakan beberapa tab untuk membantu Anda menganalisis data konteks entity:

  • Tab Results: Menampilkan Timed Data dan Timeless Data.

    • Data Berwaktu: Menampilkan entity yang memiliki nilai untuk metadata.interval.end_time selama penyerapan.
    • Data Abadi: Menampilkan entity yang tidak memiliki nilai untuk metadata.interval.end_time.

    Antarmuka menampilkan entitas berjangka waktu atau entitas tanpa batas waktu, hingga jumlah hasil maksimum yang dikonfigurasi.

  • Tab Alerts: Menampilkan pemberitahuan apa pun yang terkait dengan entitas yang ditemukan dalam penelusuran.

  • Tab ringkasan: Menampilkan informasi tentang entitas dalam kueri penelusuran.

  • Grafik Aktivitas dari Waktu ke Waktu:

    • Menampilkan jumlah Entitas dan Konteks Entitas yang valid dalam setiap bucket waktu. Anda dapat menggunakan penggeser untuk memperbesar atau memperkecil rentang waktu.

    • Total entitas yang diubah: Entity Context Graph (ECG) menyimpan data dalam bucket waktu dalam masa berlakunya. Grafik ini juga menyalin data ini ke bucket waktu berikutnya, asalkan entitas tetap valid (berdasarkan end_time). Grafik ini diperbarui setiap kali properti entitas berubah di antara dua bucket waktu.

Kasus penggunaan: Menyelidiki 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:

  1. Mengidentifikasi pengguna yang disusupi: Notifikasi menandai pengguna email@company.com telah diidentifikasi sebagai akun yang mencurigakan.

  2. Mengumpulkan informasi Konteks Entitas: Dapatkan data kontekstual tentang pengguna untuk memahami cakupan dan dampaknya.

  3. Menjalankan kueri: Gunakan Entity Context in Search 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.
  4. Menganalisis Tab Ringkasan: Tab Ringkasan menampilkan ringkasan entitas untuk pengguna, termasuk:

    • Periksa stempel waktu First Seen Hour dan Last Seen Hour.
  • Tinjau Nama host, alamat IP, dan alamat MAC (jika tersedia).
  • Periksa model hardware, platform OS, dan versi platform.
  1. Periksa Tab Peristiwa: Lihat peristiwa terkait untuk pengguna ini, termasuk upaya login dan anomali.

  2. Agregat Peninjauan: Mengidentifikasi pola dan anomali dalam data konteks entity, yang didistribusikan ke dalam Konteks Entity, Konteks Turunan, dan Konteks Global.

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, serta Domain_name dan IP_address untuk domain.

Contoh Konteks Entity dalam penelusuran

Bagian ini memberikan contoh praktis untuk memanfaatkan fitur Konteks Entity UDM guna menganalisis statistik entity.

Untuk melihat sumber dan jenis konteks yang tersedia, jalankan penelusuran statistik Entity 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

Time Picker menampilkan data aktif dalam Entity Graph, bukan saat data konteks diserap.

Karena Penelusuran Entity UDM menggunakan antarmuka Penelusuran UDM standar, Anda dapat menggunakan fitur, seperti panel Agregasi (untuk melihat nilai teratas atau terbawah), tabel hasil, dan hasil yang diperluas Statistik UDM.

Contoh: Melihat ENTITY_TYPE yang berbeda

Untuk memperluas Penelusuran Entity 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: Menyempurnakan set entity Anda

Anda dapat menyaring kumpulan entity tertentu menggunakan fitur pivot 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 dan last_seen untuk setiap ENTITY_TYPE
  • Prevalence: Jumlah aset yang telah mengakses ENTITY_TYPE tertentu

Stempel waktu First Seen Hour dan Last Seen Hour

Google SecOps melakukan analisis statistik pada data yang masuk dan memperkaya data konteks entity dengan stempel waktu first_seen dan last_seen:

  • Kolom first_seen_time mencatat jam saat entity pertama kali terlihat di lingkungan pelanggan.
  • Kolom last_seen_time mencatat jam pengamatan terbaru dari entity tersebut.

Pengguna dengan jam pertama kali terlihat dalam 7 hari terakhir:

graph.metadata.source_type = "DERIVED_CONTEXT"
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 yang diberikan:

// 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 mewakili entity internal atau eksternal.

Penelusuran Statistik Entity UDM berikut mengidentifikasi IP_ADDRESSES yang baru-baru ini diamati dan menggunakan fungsi agregat (di bagian hasil) untuk menghitungnya berdasarkan 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 maksimal satu aset berbeda per hari, selama periode waktu kueri (day_max = 1), dan maksimal 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 Entity 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 entity UDM dasar

Berikut adalah contoh tambahan penggunaan fitur Entity Context in Search 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"

Melakukan pivot dari kolom entity

Gunakan kolom entity untuk melakukan pivot dan mempelajari data terkait. Contoh kolom pivot mencakup:

  • 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

Sistem menerapkan batas 50 peristiwa pada data konteks global. Pengguna Global dan Tercakup dapat melihat data.

Sumber berikut menyediakan data konteks global:

Data konteks global Tempat pengguna dapat melihat atau berinteraksi dengan data ini Siapa yang dapat melihatnya
Safe Browsing - Search
- Aturan
Semua pengguna
Hubungan VirusTotal - Search
- Aturan
Semua pengguna
WHOIS - Search
- Aturan
Semua pengguna
Huruf Besar - Search
- Aturan
Semua pengguna
IOC Intel Open Source (OPEN_SOURCE_INTEL_IOC) - Search
- Aturan
Semua pengguna
Mandiant Fusion IoC (MANDIANT_FUSION_IOC) - Penelusuran
- Aturan
- Ancaman Baru
Semua pengguna

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 yang sensitif, seperti UPPERCASE_VT_PROTECTED, MANDIANT_FUSION_IOC, dan VIRUS_TOTAL_CONNECTIONS.
  • Konsistensi data: Data terakhir dilihat dapat tertinggal hingga 2 jam. Entitas terkait hanya dapat menampilkan sebagian entitas yang tercantum dalam suatu peristiwa.
  • Fitur yang tidak didukung:

    • Pencarian balik pada kolom entity, penelusuran kolom yang dikelompokkan, Prevalensi Rendah, dan HeatMap.
    • Anda tidak dapat menggabungkan kueri konteks Entity dan Event.

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