Mengumpulkan log Uptycs EDR
Dokumen ini menjelaskan cara menyerap log Uptycs EDR ke Google Security Operations menggunakan Amazon S3. Parser mengubah log JSON mentah menjadi model data terpadu (UDM). Pertama-tama, kolom diekstrak dari JSON, pembersihan dan pengayaan data dilakukan, lalu informasi yang relevan dipetakan ke kolom UDM yang sesuai, dengan menangani berbagai jenis data dan kasus ekstrem untuk memastikan representasi yang akurat dan konsisten dalam skema UDM.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps
- Akses istimewa ke Uptycs
- Akses istimewa ke AWS (S3, IAM)
Mendapatkan prasyarat Uptycs
- Login ke Konsol Admin Uptycs.
- Buka Konfigurasi > Pengguna.
- Pilih pengguna Anda atau buat pengguna akun layanan.
- Klik User API key.
- Salin dan simpan detail berikut di lokasi yang aman:
- Kunci API
- Rahasia API
- Customer ID
- Domain API (berasal dari URL Uptycs Anda, misalnya,
mystack.uptycs.io)
Mengonfigurasi bucket AWS S3 dan IAM untuk Google SecOps
- Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket.
- Simpan Name dan Region bucket untuk referensi di masa mendatang (misalnya,
uptycs-telemetry-export). - Buat Pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
- Pilih Pengguna yang dibuat.
- Pilih tab Kredensial keamanan.
- Klik Create Access Key di bagian Access Keys.
- Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
- Klik Berikutnya.
- Opsional: Tambahkan tag deskripsi.
- Klik Create access key.
- Klik Download CSV file untuk menyimpan Access Key dan Secret Access Key untuk referensi di masa mendatang.
- Klik Done.
- Pilih tab Permissions.
- Klik Tambahkan izin di bagian Kebijakan izin.
- Pilih Tambahkan izin.
- Pilih Lampirkan kebijakan secara langsung.
- Cari kebijakan AmazonS3FullAccess.
- Pilih kebijakan.
- Klik Berikutnya.
- Klik Add permissions.
Mengonfigurasi kebijakan dan peran IAM untuk upload S3
- Di konsol AWS, buka IAM > Policies.
- Klik Buat kebijakan > tab JSON.
Masukkan kebijakan berikut:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutObjects", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::uptycs-telemetry-export/*" }, { "Sid": "AllowListBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::uptycs-telemetry-export" } ] }- Ganti
uptycs-telemetry-exportjika Anda memasukkan nama bucket yang berbeda.
- Ganti
Klik Berikutnya > Buat kebijakan.
Beri nama kebijakan
uptycs-s3-write-policy.Buka IAM > Pengguna.
Pilih pengguna yang dibuat untuk ekspor Uptycs.
Klik Add permissions > Attach policies directly.
Telusuri dan pilih
uptycs-s3-write-policy.Klik Berikutnya > Tambahkan izin.
Mengonfigurasi Uptycs Export Raw Telemetry
- Login ke Konsol Uptycs.
- Buka bagian konfigurasi ekspor.
- Konfigurasi tujuan ekspor S3.
- Berikan detail konfigurasi berikut:
- Jenis Ekspor: Pilih Telemetri Mentah.
- Tujuan: Pilih Amazon S3.
- Format: Pilih JSON.
- Bucket S3: Masukkan
uptycs-telemetry-export. - Awalan Jalur S3: Masukkan
telemetry/. - Region AWS: Pilih region bucket Anda.
- AWS Access Key ID: Masukkan Kunci Akses dari pengguna IAM.
- AWS Secret Access Key: Masukkan Secret Access Key.
- Jenis Acara: Pilih semua jenis telemetri yang diperlukan.
- Uji dan aktifkan ekspor.
Membuat pengguna IAM hanya baca untuk Google SecOps
- Buka Konsol AWS > IAM > Pengguna.
- Klik Add users.
- Berikan detail konfigurasi berikut:
- Pengguna: Masukkan
secops-reader. - Jenis akses: Pilih Kunci akses – Akses terprogram.
- Pengguna: Masukkan
- Klik Buat pengguna.
- Lampirkan kebijakan baca minimal (kustom): Pengguna > secops-reader > Izin > Tambahkan izin > Lampirkan kebijakan secara langsung > Buat kebijakan.
Di editor JSON, masukkan kebijakan berikut:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::uptycs-telemetry-export/*" }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::uptycs-telemetry-export" } ] }Tetapkan nama ke
secops-reader-policy.Buka Buat kebijakan > cari/pilih > Berikutnya > Tambahkan izin.
Buka Kredensial keamanan > Kunci akses > Buat kunci akses.
Download CSV (nilai ini dimasukkan ke dalam feed).
Mengonfigurasi feed di Google SecOps untuk menyerap log Uptycs
- Buka Setelan SIEM > Feed.
- Klik + Tambahkan Feed Baru.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
Uptycs EDR logs). - Pilih Amazon S3 V2 sebagai Jenis sumber.
- Pilih Uptycs EDR sebagai Jenis log.
- Klik Berikutnya.
- Tentukan nilai untuk parameter input berikut:
- URI S3:
s3://uptycs-telemetry-export/telemetry/ - 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.
- Kunci Akses Rahasia: Kunci rahasia pengguna dengan akses ke bucket S3.
- Namespace aset: Namespace aset.
- Label penyerapan: Label yang diterapkan ke peristiwa dari feed ini.
- URI S3:
- Klik Berikutnya.
- Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.
Tabel Pemetaan UDM
| Kolom log | Pemetaan UDM | Logika |
|---|---|---|
| osquery_raw_data.answer | read_only_udm.network.dns.answers.name | Nilai diambil dari osquery_raw_data.answer jika osquery_raw_data.answer tidak kosong. |
| osquery_raw_data.container_id | read_only_udm.metadata.product_log_id | Nilai diambil dari osquery_raw_data.container_id jika osquery_raw_data.container_id tidak kosong. |
| osquery_raw_data.local_address | read_only_udm.principal.ip | Nilai diambil dari osquery_raw_data.local_address jika osquery_raw_data.local_address tidak kosong dan merupakan alamat IP yang valid. |
| osquery_raw_data.local | read_only_udm.principal.ip | Jika tidak, nilai diambil dari osquery_raw_data.local jika osquery_raw_data.local tidak kosong dan merupakan alamat IP yang valid. |
| osquery_raw_data.local_port | read_only_udm.principal.port | Nilai diambil dari osquery_raw_data.local_port dan dikonversi menjadi bilangan bulat jika osquery_raw_data.local_port tidak kosong. |
| osquery_raw_data.md5 | read_only_udm.target.process.file.md5 | Nilai diambil dari osquery_raw_data.md5 jika osquery_raw_data.md5 tidak kosong. |
| osquery_raw_data.port | read_only_udm.target.port | Nilai diambil dari osquery_raw_data.port dan dikonversi menjadi bilangan bulat jika osquery_raw_data.port tidak kosong. |
| osquery_raw_data.question | read_only_udm.network.dns.questions.name | Nilai diambil dari osquery_raw_data.question jika osquery_raw_data.question tidak kosong. |
| osquery_raw_data.remote_address | read_only_udm.intermediary.ip | Nilai diambil dari osquery_raw_data.remote_address jika osquery_raw_data.remote_address tidak kosong. |
| osquery_raw_data.remote_port | read_only_udm.intermediary.port | Nilai diambil dari osquery_raw_data.remote_port dan dikonversi menjadi bilangan bulat jika osquery_raw_data.remote_port tidak kosong. |
| osquery_raw_data.type | read_only_udm.network.dns.questions.type | Nilai diambil dari osquery_raw_data.type dan dikonversi menjadi bilangan bulat jika osquery_raw_data.type tidak kosong. |
| osquery_raw_data.uid | read_only_udm.principal.user.userid | Nilai diambil dari osquery_raw_data.uid jika osquery_raw_data.uid tidak kosong dan tidak sama dengan "0". |
| osquery_raw_data.worker_instance_id | read_only_udm.principal.user.userid | Jika tidak, nilai diambil dari osquery_raw_data.worker_instance_id jika osquery_raw_data.worker_instance_id tidak kosong. |
| upt_asset_group_id | read_only_udm.principal.user.group_identifiers | Nilai diambil dari upt_asset_group_id jika upt_asset_group_id tidak kosong. |
| upt_asset_group_name | read_only_udm.principal.group.group_display_name | Nilai diambil dari upt_asset_group_name jika upt_asset_group_name tidak kosong. |
| upt_asset_id | read_only_udm.principal.asset.asset_id | String yang digabungkan "UPT ASSET ID:" dengan nilai upt_asset_id jika upt_asset_id tidak kosong. |
| upt_hash | read_only_udm.target.file.md5 | Semua kemunculan "-" diganti dengan "" di upt_hash. Kemudian, nilai ditetapkan ke read_only_udm.target.file.md5 jika upt_hash tidak kosong. |
| upt_hostname | read_only_udm.principal.hostname | Nilai diambil dari upt_hostname jika upt_hostname tidak kosong. |
| upt_resource_type | read_only_udm.target.resource.type | Nilai diambil dari upt_resource_type jika upt_resource_type tidak kosong. |
| upt_time | read_only_udm.metadata.event_timestamp.seconds | Nilai diambil dari upt_time jika upt_time tidak kosong. |
| read_only_udm.metadata.event_type | Nilai ditetapkan ke "PROCESS_LAUNCH" jika osquery_raw_data.pid tidak kosong. Nilai ditetapkan ke "NETWORK_DNS" jika osquery_raw_data.question tidak kosong. Nilai ditetapkan ke "GENERIC_EVENT" jika event_type kosong. | |
| read_only_udm.metadata.log_type | Nilai ditetapkan ke "UPTYCS_EDR". | |
| read_only_udm.metadata.product_name | Nilai ditetapkan ke "UPTYCS_EDR". | |
| read_only_udm.metadata.vendor_name | Nilai ditetapkan ke "UPTYCS". | |
| read_only_udm.network.application_protocol | Nilai ditetapkan ke "DNS" jika osquery_raw_data.question tidak kosong. | |
| read_only_udm.security_result.action | Nilai ditetapkan ke "ALLOW" jika osquery_raw_data.return_code sama dengan "SUCCESS" atau osquery_raw_data.success sama dengan "1". | |
| read_only_udm.target.process.command_line | Nilai diambil dari osquery_raw_data.cmdline jika osquery_raw_data.cmdline tidak kosong. | |
| read_only_udm.target.process.file.full_path | Nilai diambil dari osquery_raw_data.path jika osquery_raw_data.path tidak kosong. | |
| read_only_udm.target.process.parent_process | Nilai dibuat dengan melakukan iterasi pada array ancestor_list di osquery_raw_data.ancestor_list. Untuk setiap elemen dalam array, command_line, full_path file, dan pid diekstrak dan diformat ke dalam struktur JSON yang merepresentasikan rantai proses. | |
| read_only_udm.target.process.pid | Nilai diambil dari osquery_raw_data.pid jika osquery_raw_data.pid tidak kosong. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.