Mengumpulkan log audit Tanium

Didukung di:

Dokumen ini menjelaskan cara menyerap log audit Tanium ke Google Security Operations menggunakan Amazon S3 dengan kemampuan ekspor S3 native Tanium Connect. Parser mengekstrak log, yang awalnya menghapus banyak kolom default. Kemudian, pesan log diuraikan menggunakan grok dan filter json, dengan mengekstrak kolom seperti stempel waktu, IP perangkat, dan detail audit. Parser memetakan kolom yang diekstrak ini ke UDM, menangani berbagai jenis data dan logika bersyarat untuk mengisi kolom UDM yang sesuai berdasarkan keberadaan dan nilai atribut log audit Tanium tertentu.

Sebelum memulai

Pastikan Anda memenuhi prasyarat berikut:

  • Instance Google SecOps
  • Akses istimewa ke Tanium Connect dan Tanium Console
  • Akses istimewa ke AWS (S3, IAM)

Buat bucket Amazon S3

  1. Buka konsol Amazon S3.
  2. Jika diperlukan, Anda dapat mengubah Wilayah.
    • Dari panel navigasi, pilih Region tempat Anda ingin Tanium Audit logs berada.
  3. Klik Create Bucket.
    • Nama Bucket: Masukkan nama yang bermakna untuk bucket (misalnya, tanium-audit-logs).
    • Region: Pilih Region pilihan Anda (misalnya, us-east-1).
    • Klik Buat.

Buat pengguna IAM dengan akses penuh ke Amazon S3

  1. Buka IAM console.
  2. Klik Pengguna > Tambahkan pengguna.
  3. Masukkan nama pengguna (misalnya, tanium-connect-s3-user).
  4. Pilih Akses terprogram dan/atau Akses AWS Management Console sesuai kebutuhan.
  5. Pilih Sandi yang dibuat otomatis atau Sandi kustom.
  6. Klik Berikutnya: Izin.
  7. Pilih Lampirkan kebijakan yang ada secara langsung.
  8. Cari dan pilih kebijakan AmazonS3FullAccess untuk pengguna.
  9. Klik Berikutnya: Tanda.
  10. Klik Berikutnya: Tinjau.
  11. Klik Buat pengguna.
  12. Salin dan simpan ID Kunci Akses dan Kunci Akses Rahasia untuk referensi di masa mendatang.

Mengonfigurasi izin pada bucket Amazon S3

  1. Di Amazon S3 console, pilih bucket yang Anda buat sebelumnya.
  2. Klik Izin > Kebijakan bucket.
  3. Di Bucket Policy Editor, tambahkan kebijakan berikut:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::YOUR_ACCOUNT_ID:user/tanium-connect-s3-user"
          },
          "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:GetObject",
            "s3:ListBucket"
          ],
          "Resource": [
            "arn:aws:s3:::tanium-audit-logs",
            "arn:aws:s3:::tanium-audit-logs/*"
          ]
        }
      ]
    }
    
  4. Ganti variabel berikut:

    • Ubah YOUR_ACCOUNT_ID menjadi ID akun AWS Anda.
    • Ubah tanium-audit-logs menjadi nama bucket Anda yang sebenarnya jika berbeda.
    • Ubah tanium-connect-s3-user menjadi nama pengguna IAM Anda yang sebenarnya jika berbeda.
  5. Klik Simpan.

Mengonfigurasi Tanium Connect untuk ekspor S3

Membuat koneksi AWS S3 di Tanium Connect

  1. Login ke Tanium Console sebagai administrator.
  2. Buka Tanium Connect > Connections.
  3. Klik Buat Koneksi.
  4. Di bagian General Information, berikan detail konfigurasi berikut:
    • Nama: Masukkan nama deskriptif (misalnya, Tanium Audit to S3).
    • Deskripsi: Masukkan deskripsi yang bermakna (misalnya, Export Tanium audit logs to S3 for Google SecOps ingestion).
    • Aktifkan: Pilih untuk mengaktifkan koneksi.
    • Tingkat Log: Pilih Informasi (default) atau sesuaikan sesuai kebutuhan.

Mengonfigurasi sumber koneksi

  1. Di bagian Configuration, untuk Source, pilih Tanium Audit.
  2. Konfigurasi setelan sumber audit:
    • Hari Data Historis yang Diambil: Masukkan jumlah hari data audit historis yang akan diambil (misalnya, 7 untuk satu minggu).
    • Jenis Audit: Pilih jenis audit yang ingin Anda ekspor. Pilih dari:
      • Histori Tindakan: Tindakan yang dikeluarkan oleh operator konsol.
      • Authentication: Peristiwa autentikasi pengguna.
      • Konten: Perubahan dan modifikasi konten.
      • Grup: Perubahan grup komputer.
      • Paket: Aktivitas terkait paket.
      • Sensor: Modifikasi sensor.
      • Setelan Sistem: Perubahan konfigurasi sistem.
      • Pengguna: Aktivitas pengelolaan pengguna.

Mengonfigurasi tujuan AWS S3

  1. Untuk Destination, pilih AWS S3.
  2. Berikan detail konfigurasi berikut:
    • Nama Tujuan: Masukkan nama (misalnya, Google SecOps S3 Bucket).
    • Kunci Akses AWS: Masukkan ID Kunci Akses dari pengguna IAM yang dibuat sebelumnya.
    • AWS Secret Key: Masukkan Kunci Akses Rahasia dari pengguna IAM yang dibuat sebelumnya.
    • Nama Bucket: Masukkan nama bucket S3 Anda (misalnya, tanium-audit-logs).
    • Bucket Path: Opsional. Masukkan awalan jalur (misalnya, tanium/audit/).
    • Region: Pilih region AWS tempat bucket Anda berada (misalnya, us-east-1).

Mengonfigurasi format dan jadwal

  1. Di bagian Format, konfigurasikan format output:
    • Jenis Format: Pilih JSON.
    • Sertakan Header Kolom: Pilih apakah Anda ingin menyertakan header kolom.
    • Buat Dokumen: Batalkan pilihan opsi ini untuk mengirim data JSON mentah.
  2. Di bagian Schedule, konfigurasikan kapan koneksi berjalan:
    • Jenis Jadwal: Pilih Cron.
    • Ekspresi Cron: Masukkan ekspresi cron untuk ekspor reguler (misalnya, 0 */1 * * * untuk ekspor per jam).
    • Tanggal Mulai: Tetapkan tanggal mulai untuk jadwal.
  3. Klik Simpan Perubahan.

Menguji dan menjalankan koneksi

  1. Dari halaman Connect Overview, buka Connections.
  2. Klik koneksi yang Anda buat (Tanium Audit to S3).
  3. Klik Jalankan Sekarang untuk menguji koneksi.
  4. Konfirmasi bahwa Anda ingin menjalankan koneksi.
  5. Pantau status koneksi dan verifikasi bahwa log audit diekspor ke bucket S3 Anda.

Opsional: Buat pengguna & kunci IAM hanya baca untuk Google SecOps

  1. Buka Konsol AWS > IAM > Pengguna > Tambahkan pengguna.
  2. Klik Add users.
  3. Berikan detail konfigurasi berikut:
    • Pengguna: Masukkan secops-reader.
    • Jenis akses: Pilih Kunci akses – Akses terprogram.
  4. Klik Buat pengguna.
  5. Lampirkan kebijakan baca minimal (kustom): Pengguna > secops-reader > Izin > Tambahkan izin > Lampirkan kebijakan secara langsung > Buat kebijakan.
  6. Di editor JSON, masukkan kebijakan berikut:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::tanium-audit-logs/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::tanium-audit-logs"
        }
      ]
    }
    
  7. Tetapkan nama ke secops-reader-policy.

  8. Buka Buat kebijakan > cari/pilih > Berikutnya > Tambahkan izin.

  9. Buka Kredensial keamanan > Kunci akses > Buat kunci akses.

  10. Download CSV (nilai ini dimasukkan ke dalam feed).

Mengonfigurasi feed di Google SecOps untuk menyerap log Audit Tanium

  1. Buka Setelan SIEM > Feed.
  2. Klik + Tambahkan Feed Baru.
  3. Di kolom Nama feed, masukkan nama untuk feed (misalnya, Tanium Audit logs).
  4. Pilih Amazon S3 V2 sebagai Jenis sumber.
  5. Pilih Tanium Audit sebagai Jenis log.
  6. Klik Berikutnya.
  7. Tentukan nilai untuk parameter input berikut:
    • URI S3: s3://tanium-audit-logs/tanium/audit/ (sesuaikan jalur jika Anda menggunakan nama atau jalur bucket yang berbeda).
    • Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda.
    • Usia File Maksimum: Menyertakan file yang diubah dalam jumlah hari terakhir. Defaultnya adalah 180 hari.
    • ID Kunci Akses: Kunci akses pengguna dengan akses ke bucket S3 (dari pengguna hanya baca yang dibuat di atas).
    • Kunci Akses Rahasia: Kunci rahasia pengguna dengan akses ke bucket S3 (dari pengguna hanya baca yang dibuat di atas).
    • Namespace aset: Namespace aset.
    • Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini.
  8. Klik Berikutnya.
  9. Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
ActionId metadata.product_log_id Dipetakan langsung dari kolom ActionId.
ActionName security_result.action_details Dipetakan langsung dari kolom ActionName.
Approver additional.fields[Approver].value.string_value Dipetakan langsung dari kolom Approver.
Approver principal.user.userid Dipetakan dari kolom Approver jika Issuer tidak ada.
audit_name metadata.description Dipetakan langsung dari kolom audit_name.
audit_row_id additional.fields[audit_row_id].value.string_value Dipetakan langsung dari kolom audit_row_id.
audit_type additional.fields[audit_type].value.string_value Dipetakan langsung dari kolom audit_type.
authentication_type principal.user.attribute.labels[authentication_type].value Dipetakan langsung dari kolom authentication_type yang diekstrak dari kolom details.
Command principal.process.command_line Dipetakan langsung dari kolom Command setelah decoding URL.
creation_time target.resource.attribute.creation_time Dipetakan langsung dari kolom creation_time.
details network.session_id Diekstrak dari kolom details menggunakan penguraian nilai kunci.
details principal.user.attribute.labels[authentication_type].value Diekstrak dari kolom details menggunakan penguraian nilai kunci.
details principal.asset.ip, principal.ip Alamat IP diekstrak dari kolom details menggunakan parsing nilai kunci dan dipetakan ke principal.asset.ip dan principal.ip.
DistributeOver additional.fields[DistributeOver].value.string_value Dipetakan langsung dari kolom DistributeOver.
dvc_ip intermediary.hostname Dipetakan langsung dari kolom dvc_ip yang diekstrak dari pesan syslog.
dvc_ip observer.ip Dipetakan langsung dari kolom dvc_ip jika logstash.collect.host tidak ada.
Expiration additional.fields[Expiration].value.string_value Dipetakan langsung dari kolom Expiration.
host.architecture target.asset.hardware.cpu_platform Dipetakan langsung dari kolom host.architecture.
host.id target.asset.asset_id Dipetakan langsung dari kolom host.id, diawali dengan "Host ID:".
host.ip target.ip Dipetakan langsung dari kolom host.ip.
host.mac target.mac Dipetakan langsung dari kolom host.mac.
host.name target.hostname Dipetakan langsung dari kolom host.name jika host.hostname tidak ada.
host.os.kernel target.platform_patch_level Dipetakan langsung dari kolom host.os.kernel.
host.os.name additional.fields[os_name].value.string_value Dipetakan langsung dari kolom host.os.name.
host.os.version target.platform_version Dipetakan langsung dari kolom host.os.version.
InsertTime additional.fields[InsertTime].value.string_value Dipetakan langsung dari kolom InsertTime.
Issuer additional.fields[Issuer].value.string_value Dipetakan langsung dari kolom Issuer.
Issuer principal.user.userid Dipetakan langsung dari kolom Issuer jika ada.
last_modified_by principal.resource.attribute.labels[last_modified_by].value Dipetakan langsung dari kolom last_modified_by.
log.source.address principal.ip Alamat IP diekstrak dari kolom log.source.address dan dipetakan ke principal.ip.
log.source.address principal.port Port diekstrak dari kolom log.source.address.
logstash.collect.host observer.ip Dipetakan langsung dari kolom logstash.collect.host jika ada.
logstash.collect.timestamp metadata.collected_timestamp Dipetakan langsung dari kolom logstash.collect.timestamp.
logstash.ingest.timestamp metadata.ingested_timestamp Dipetakan langsung dari kolom logstash.ingest.timestamp.
logstash.irm_environment additional.fields[irm_environment].value.string_value Dipetakan langsung dari kolom logstash.irm_environment.
logstash.irm_region additional.fields[irm_region].value.string_value Dipetakan langsung dari kolom logstash.irm_region.
logstash.irm_site additional.fields[irm_site].value.string_value Dipetakan langsung dari kolom logstash.irm_site.
logstash.process.host intermediary.hostname Dipetakan langsung dari kolom logstash.process.host.
message dvc_ip, json_data, timestamp Diparsing menggunakan grok untuk mengekstrak dvc_ip, json_data, dan timestamp.
modification_time target.resource.attribute.last_update_time Dipetakan langsung dari kolom modification_time.
modifier_user_id principal.resource.attribute.labels[modifier_user_id].value Dipetakan langsung dari kolom modifier_user_id.
object_id target.resource.product_object_id Dipetakan langsung dari kolom object_id.
object_name target.resource.name Dipetakan langsung dari kolom object_name.
object_type_name target.resource.attribute.labels[object_type_name].value Dipetakan langsung dari kolom object_type_name.
PackageName additional.fields[PackageName].value.string_value Dipetakan langsung dari kolom PackageName.
SourceId additional.fields[SourceId].value.string_value Dipetakan langsung dari kolom SourceId.
StartTime additional.fields[StartTime].value.string_value Dipetakan langsung dari kolom StartTime.
Status security_result.action Dipetakan ke "BLOCK" jika Status adalah "Closed", "ALLOW" jika Status adalah "Open".
Status security_result.summary Dipetakan langsung dari kolom Status.
tanium_audit_type metadata.product_event_type Dipetakan langsung dari kolom tanium_audit_type.
timestamp metadata.event_timestamp Dipetakan langsung dari kolom timestamp yang diekstrak dari pesan syslog atau kolom message.
type additional.fields[type].value.string_value Dipetakan langsung dari kolom type.
type_name metadata.product_event_type Dipetakan langsung dari kolom type_name.
User principal.user.userid Dipetakan langsung dari kolom User. Ditentukan oleh logika parser berdasarkan keberadaan src_ip, has_target, dan has_user. Dapat berupa "NETWORK_CONNECTION", "USER_RESOURCE_ACCESS", "STATUS_UPDATE", atau "GENERIC_EVENT". Dikodekan secara permanen ke "TANIUM_AUDIT". Dikodekan secara permanen ke "cybersecurity". Dikodekan secara permanen ke "TANIUM_AUDIT".
@version metadata.product_version Dipetakan langsung dari kolom @version.
agent.ephemeral_id additional.fields[ephemeral_id].value.string_value Dipetakan langsung dari kolom agent.ephemeral_id.
agent.id observer.asset_id Dipetakan langsung dari kolom agent.id, dengan awalan "filebeat:".
agent.type observer.application Dipetakan langsung dari kolom agent.type.
agent.version observer.platform_version Dipetakan langsung dari kolom agent.version.
Comment security_result.description Dipetakan langsung dari kolom Comment.
host.hostname target.hostname Dipetakan langsung dari kolom host.hostname jika ada.
input.type network.ip_protocol Dipetakan ke "TCP" jika input.type adalah "tcp" atau "TCP".
syslog_severity security_result.severity Dipetakan ke "TINGGI" jika syslog_severity adalah "error" atau "warning", "SEDANG" jika "notice", "RENDAH" jika "information" atau "info".
syslog_severity security_result.severity_details Dipetakan langsung dari kolom syslog_severity.

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