Menggunakan data Perlindungan Data Sensitif dalam analisis berbasis konteks

Didukung di:

Dokumen ini menunjukkan cara menggunakan data konteks entitas dari Perlindungan Data Sensitif dan sumber log tambahan untuk menambahkan pemahaman kontekstual tentang dampak dan cakupan potensi ancaman saat melakukan investigasi.

Kasus penggunaan yang dijelaskan dalam dokumen ini mendeteksi eksekusi file malicious oleh pengguna (Teknik MITRE ATT&CK T1204.002) dan apakah pengguna tersebut juga memiliki akses ke data sensitif di tempat lain di jaringan.

Contoh ini mengharuskan data berikut telah diserap dan dinormalisasi di Google Security Operations:

  • Data aktivitas pengguna menggunakan log jaringan dan EDR.
  • Hubungan resource dari sumber data seperti Analisis Google Cloud IAM.
  • Log Sensitive Data Protection yang berisi label tentang jenis dan sensitivitas data yang disimpan.

Google Security Operations harus dapat mengurai data mentah menjadi data peristiwa dan entity Unified Data Model (UDM).

Untuk informasi tentang cara menyerap data Perlindungan Data Sensitif ke Google Security Operations, lihat Mengekspor data Perlindungan Data Sensitif ke Google Security Operations.

Data Analisis Google Cloud IAM

Data log Analisis IAM Google Cloud dalam contoh ini mengidentifikasi pengguna di organisasi dan merekam hubungan yang dimiliki setiap pengguna dengan sistem lain di jaringan. Berikut adalah cuplikan log Analisis IAM yang disimpan sebagai data entity UDM. Tabel ini menyimpan informasi tentang pengguna, mikeross, yang mengelola tabel BigQuery bernama analytics:claim.patients.

metadata.vendor_name: "Google Cloud Platform"
metadata.product_name: "GCP IAM Analysis"
metadata.entity_type: "USER"
entity.user.userid: "mikeross"
relations[2].entity.resource.name: "analytics:claim.patients"
relations[2].entity.resource.resource_type: "TABLE"
relations[2].entity_type: "RESOURCE"
relations[2].relationship: "ADMINISTERS"

Data Sensitive Data Protection

Data log Perlindungan Data Sensitif dalam contoh ini menyimpan informasi tentang tabel BigQuery. Berikut adalah cuplikan log Perlindungan Data Sensitif yang disimpan sebagai kumpulan data entity UDM. Ini mewakili tabel BigQuery yang disebut analytics:claim.patients dengan label Predicted InfoType US_SOCIAL_SECURITY_NUMBER, yang menunjukkan bahwa tabel menyimpan nomor Jaminan Sosial Amerika Serikat.

metadata.vendor_name: "Google Cloud Platform"
metadata.product_name: "GCP DLP CONTEXT"
metadata.entity_type: "RESOURCE"
metadata.description: "RISK_HIGH"
entity.resource.resource_type: "TABLE"
entity.resource.resource_subtype: "BigQuery Table"
entity.resource.attribute.cloud.environment"GOOGLE_CLOUD_PLATFORM"
entity.resource.attribute.labels[0].key: "Sensitivity Score"
entity.resource.attribute.labels[0].value: "SENSITIVITY_HIGH"
entity.resource.attribute.labels[1].key: "Predicted InfoType"
entity.resource.attribute.labels[1].value: "US_SOCIAL_SECURITY_NUMBER"
entity.resource.product_object_id: "analytics:claim.patients"

Peristiwa proxy web

Peristiwa proxy web dalam contoh ini merekam aktivitas jaringan. Cuplikan berikut adalah log proxy web Zscaler yang disimpan sebagai data peristiwa UDM. Peristiwa ini merekam peristiwa download jaringan file yang dapat dieksekusi oleh pengguna dengan nilai userid mikeross dengan nilai received_bytes 514605.

metadata.log_type = "ZSCALER_WEBPROXY"
metadata.product_name = "NSS"
metadata.vendor_name = "Zscaler"
metadata.event_type = "NETWORK_HTTP"
network.http.response_code = 200
network.received_bytes = 514605
principal.user.userid = "mikeross"
target.url = "http://manygoodnews.com/dow/Client%20Update.exe"

Peristiwa EDR

Peristiwa EDR dalam contoh ini merekam aktivitas di perangkat endpoint. Cuplikan berikut adalah log EDR CrowdStrike Falcon yang disimpan sebagai data peristiwa UDM. Peristiwa ini merekam peristiwa jaringan yang melibatkan aplikasi Microsoft Excel dan pengguna dengan nilai userid mikeross.

metadata.log_type = "CS_EDR"
metadata.product_name = "Falcon"
metadata.vendor_name = "Crowdstrike"
metadata.event_type = "NETWORK_HTTP"
target.process.file.full_path = "\\Device\\HarddiskVolume1\\Program Files\\C:\\Program Files\\Microsoft Office\\Office16\\EXCEL.exe"
target.url = "http://manygoodnews.com/dow/Client%20Update.exe"
target.user.userid = "mikeross"

Perhatikan bahwa ada informasi umum di seluruh data ini, baik ID pengguna mikeross maupun nama tabel, analytics:claim.patients. Bagian berikutnya dalam dokumen ini menunjukkan cara nilai ini digunakan dalam aturan untuk menggabungkan data.

Aturan mesin deteksi dalam contoh ini

Contoh aturan ini mendeteksi eksekusi file berbahaya oleh pengguna (Teknik MITRE ATT&CK T1204.002.

Aturan ini menetapkan skor risiko yang lebih tinggi ke deteksi saat pengguna juga memiliki akses ke data sensitif di tempat lain di jaringan. Aturan ini menghubungkan informasi berikut:

  • Aktivitas pengguna, seperti download atau peluncuran file yang dapat dieksekusi.
  • Hubungan antara resource, misalnya hubungan pengguna dengan tabel BigQuery.
  • Adanya informasi sensitif dalam resource yang dapat diakses pengguna, misalnya, jenis data yang disimpan dalam tabel BigQuery.

Berikut adalah deskripsi setiap bagian dalam contoh aturan.

  • Bagian events menentukan pola data yang dicari oleh aturan dan mencakup hal berikut:

    • Grup 1 dan Grup 2 mengidentifikasi peristiwa jaringan dan EDR yang menangkap download data dalam jumlah besar atau file yang dapat dieksekusi yang juga terkait dengan aktivitas di aplikasi Excel.
    • Grup 3 mengidentifikasi data tempat pengguna yang diidentifikasi dalam peristiwa jaringan dan EDR juga memiliki izin ke tabel BigQuery.
    • Grup 4 mengidentifikasi kumpulan data Perlindungan Data Sensitif untuk tabel BigQuery yang dapat diakses pengguna.

    Setiap grup ekspresi menggunakan variabel $table_name atau variabel $user untuk menggabungkan data yang terkait dengan pengguna dan tabel database yang sama.

  • Di bagian outcome, aturan membuat variabel $risk_score dan menetapkan nilai berdasarkan sensitivitas data dalam tabel. Dalam hal ini, validator akan memeriksa apakah data diberi label dengan infoType Sensitive Data Protection US_SOCIAL_SECURITY_NUMBER.

    Bagian outcome juga menetapkan variabel tambahan seperti $principalHostname dan $entity_resource_name. Variabel ini ditampilkan dan disimpan dengan deteksi, sehingga saat melihatnya di Google Security Operations, Anda juga dapat menampilkan nilai variabel sebagai kolom.

  • Bagian condition menunjukkan bahwa pola mencari semua data UDM yang ditentukan di bagian events.

  rule high_risk_user_download_executable_from_macro {
 meta:
   author = "Google Cloud Security Demos"
   description = "Executable downloaded by Microsoft Excel from High Risk User"
   severity = "High"
   technique = "T1204.002"

 events:
   //Group 1. identify a proxy event with suspected executable download
   $proxy_event.principal.user.userid = $user
   $proxy_event.target.url =  /.*\.exe$/ or
   $proxy_event.network.received_bytes > 102400

   //Group 2. correlate with an EDR event indicating Excel activity
   $edr_event.target.user.userid  = $user
   $edr_event.target.process.file.full_path = /excel/ nocase
   $edr_event.metadata.event_type = "NETWORK_HTTP"

   //Group 3. Use the entity to find the permissions
   $user_entity.graph.entity.user.userid = $user
   $user_entity.graph.relations.entity.resource.name = $table_name

   //Group 4. the entity is from Cloud DLP data
   $table_context.graph.entity.resource.product_object_id = $table_name
   $table_context.graph.metadata.product_name = "GCP DLP CONTEXT"

 match:
    $user over 5m

 outcome:
   //calculate risk score
   $risk_score = max(
       if( $table_context.graph.entity.resource.attribute.labels.value = "US_SOCIAL_SECURITY_NUMBER", 80)
       )
   $technique = array_distinct("T1204.002")
   $principalHostname = array_distinct($proxy_event.principal.hostname)
   $principalIp = array_distinct($proxy_event.principal.ip)
   $principalMac = array_distinct($proxy_event.principal.mac)
   $targetHostname = array_distinct($proxy_event.target.hostname)
   $target_url = array_distinct($proxy_event.target.url)
   $targetIp = array_distinct($proxy_event.target.ip)
   $principalUserUserid =  array_distinct($proxy_event.principal.user.userid)
   $entity_resource_name = array_distinct($table_context.graph.entity.resource.name)

condition:
   $proxy_event and $edr_event and $user_entity and $table_context
}

Tentang deteksi

Jika Anda menguji aturan terhadap data yang ada dan aturan tersebut mengidentifikasi pola aktivitas yang ditentukan dalam definisi, aturan tersebut akan menghasilkan deteksi. Panel Detection menampilkan deteksi yang dihasilkan setelah menguji aturan. Panel Detection juga menampilkan data peristiwa dan entity yang menyebabkan aturan membuat deteksi. Dalam contoh ini, data berikut ditampilkan:

  • Entitas UDM Analisis Google Cloud IAM
  • Entitas UDM Perlindungan Data Sensitif
  • Peristiwa UDM proxy web Zscaler
  • Peristiwa UDM CrowdStrike Falcon EDR

Di panel Detection, pilih data peristiwa atau entity untuk melihat detailnya.

Deteksi juga menyimpan variabel yang ditentukan di bagian outcome aturan. Untuk menampilkan variabel di panel Detection, pilih Columns, lalu pilih satu atau beberapa nama variabel dari menu Columns. Kolom yang dipilih akan muncul di panel Detection.

Langkah selanjutnya

Untuk menulis aturan kustom, lihat Ringkasan bahasa YARA-L 2.0.

Untuk membuat analisis kontekstual kustom, lihat Membuat analisis kontekstual

Untuk menggunakan analisis ancaman standar, lihat Menggunakan deteksi pilihan Google Security Operations.