Menggunakan data Perlindungan Data Sensitif dalam analisis kontekstual

Dokumen ini menunjukkan cara menggunakan data konteks entity 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 berbahaya oleh pengguna (MITRE ATT&CK Technique 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 Chronicle:

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

Chronicle harus dapat mengurai data mentah menjadi data peristiwa dan entity Model Data Terpadu (UDM).

Untuk mengetahui informasi tentang cara menyerap data Perlindungan Data Sensitif ke dalam Chronicle, lihat Mengekspor data Perlindungan Data Sensitif ke Chronicle.

Mendapatkan data dalam contoh ini

Data Analisis Google Cloud IAM

Data log Analisis Google Cloud IAM dalam contoh ini mengidentifikasi pengguna dalam organisasi dan mencatat hubungan yang dimiliki setiap pengguna dengan sistem lain di jaringan tersebut. Berikut adalah cuplikan log Analisis IAM yang disimpan sebagai catatan entitas UDM. Library 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 Perlindungan Data Sensitif

Data log Perlindungan Data Sensitif dalam contoh ini menyimpan informasi tentang tabel BigQuery. Berikut adalah cuplikan log Perlindungan Data Sensitif yang disimpan sebagai data entity UDM. Ini mewakili tabel BigQuery bernama analytics:claim.patients dengan label Predicted InfoType US_SOCIAL_SECURITY_NUMBER, yang menunjukkan bahwa tabel tersebut 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. Fungsi ini menangkap peristiwa download jaringan dari 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 menangkap aktivitas pada perangkat endpoint. Cuplikan berikut adalah log EDR CrowdStrike Falcon yang disimpan sebagai data peristiwa UDM. Fungsi 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 dan nama tabel, analytics:claim.patients. Bagian berikutnya dalam dokumen ini menunjukkan cara nilai tersebut digunakan dalam aturan untuk menggabungkan data.

Aturan mesin deteksi dalam contoh ini

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

Aturan ini menetapkan skor risiko yang lebih tinggi ke deteksi ketika 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 antar-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 aturan dan menyertakan 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 dalam aplikasi Excel.
    • Grup 3 mengidentifikasi data yang diidentifikasi pengguna dalam peristiwa jaringan dan EDR juga memiliki izin ke tabel BigQuery.
    • Grup 4 mengidentifikasi data Perlindungan Data Sensitif untuk tabel BigQuery yang dapat diakses pengguna.

    Setiap grup ekspresi menggunakan variabel $table_name atau variabel $user untuk menggabungkan record 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, fitur akan memeriksa apakah data diberi label dengan infoType Perlindungan Data Sensitif US_SOCIAL_SECURITY_NUMBER.

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

  • Bagian condition menunjukkan bahwa pola tersebut 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 akan menghasilkan deteksi. Gambar 1 menunjukkan panel Detection dan deteksi yang dihasilkan setelah menguji aturan. Panel Detection juga menampilkan catatan peristiwa dan entity yang menyebabkan aturan membuat deteksi. Dalam contoh ini, data berikut ditampilkan:

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

Anda dapat melihat contoh cuplikan data log ini di bagian sebelumnya, Tentang data sumber.

Deteksi yang ditampilkan oleh aturan

Gambar 1. Deteksi yang ditampilkan oleh aturan

Di panel Deteksi, pilih data peristiwa atau entitas untuk melihat detailnya. Gambar 2 menampilkan tampilan log proxy web Zscaler yang diperluas.

Lihat detail peristiwa dalam deteksi

Gambar 2. Lihat detail acara

Deteksi juga menyimpan variabel yang ditentukan di bagian outcome dalam 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 Deteksi. Gambar 3 menampilkan menu Columns dengan variabel risk_score dan technique dipilih. Kolom ini juga muncul di panel Deteksi.

Menampilkan variabel dalam deteksi

Gambar 3. Menampilkan variabel sebagai kolom

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 yang telah ditetapkan sebelumnya, baca artikel Menggunakan deteksi pilihan Chronicle.