Mengumpulkan log AWS Elastic MapReduce
Dokumen ini menjelaskan cara menyerap log AWS Elastic MapReduce (EMR) ke Google Security Operations. AWS EMR adalah platform big data native cloud yang memproses data dalam jumlah besar dengan cepat. Dengan mengintegrasikan log EMR ke Google SecOps, Anda dapat menganalisis aktivitas cluster dan mendeteksi potensi ancaman keamanan.
Sebelum Memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Pastikan Anda memiliki akses dengan hak istimewa ke AWS.
Mengonfigurasi bucket Amazon S3
- Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket
- Simpan Nama dan Region bucket untuk digunakan nanti.
- 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 file CSV untuk menyimpan Kunci Akses dan Kunci Akses Rahasia untuk digunakan nanti.
- Klik Selesai.
- Pilih tab Izin.
- Klik Tambahkan izin di bagian Kebijakan izin.
- Pilih Tambahkan izin.
- Pilih Lampirkan kebijakan secara langsung.
- Telusuri dan pilih kebijakan AmazonS3FullAccess dan CloudWatchLogsFullAccess.
- Klik Berikutnya.
- Klik Tambahkan izin.
Mengonfigurasi AWS EMR untuk Meneruskan Log
- Login ke AWS Management Console.
- Di kotak penelusuran, ketik EMR, lalu pilih Amazon EMR dari daftar layanan.
- Klik Cluster.
- Cari dan pilih cluster EMR yang ingin Anda aktifkan logging-nya.
- Klik Edit di halaman Cluster details.
- Di layar Edit Cluster, buka bagian Logging.
- Pilih Aktifkan logging.
- Tentukan bucket S3 tempat log akan disimpan.
- Tentukan URI S3 dalam format
s3://your-bucket-name/
(ini akan menyimpan semua log EMR di root bucket). - Pilih jenis log berikut:
Step logs
Application logs
YARN logs
System logs
HDFS Logs
(jika Anda menggunakan Hadoop)
- Klik Simpan.
Mengonfigurasi feed di Google SecOps untuk menyerap log AWS EMR
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Feed name, masukkan nama untuk feed (misalnya, AWS EMR Logs).
- Pilih Amazon S3 sebagai Source type.
- Pilih AWS EMR sebagai Jenis log.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
- Region: region tempat bucket Amazon S3 berada.
- S3 URI: URI bucket.
s3://your-log-bucket-name/
- Ganti
your-log-bucket-name
dengan nama bucket yang sebenarnya.
- Ganti
- URI adalah: pilih Direktori atau Direktori yang menyertakan subdirektori.
Opsi penghapusan sumber: pilih opsi penghapusan sesuai preferensi Anda.
Access Key ID: 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 akan diterapkan ke peristiwa dari feed ini.
Klik Berikutnya.
Tinjau konfigurasi feed baru Anda di layar Finalize, lalu klik Submit.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
app_id |
additional.fields[].key |
Nilai "APP" ditetapkan melalui parser |
app_id |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom APP dalam log mentah. |
app_name |
additional.fields[].key |
Nilai "APPNAME" ditetapkan melalui parser |
app_name |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom APPNAME dalam log mentah. |
blockid |
additional.fields[].key |
Nilai "blockid" ditetapkan melalui parser |
blockid |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom blockid dalam log mentah. |
bytes |
network.received_bytes |
Dipetakan langsung dari kolom bytes dalam log mentah, yang dikonversi menjadi bilangan bulat tanpa tanda tangan. |
cliID |
additional.fields[].key |
Nilai "cliID" ditetapkan melalui parser |
cliID |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom cliID dalam log mentah. |
cmd |
target.process.command_line |
Dipetakan langsung dari kolom cmd dalam log mentah. |
comp_name |
additional.fields[].key |
Nilai "COMP" ditetapkan melalui parser |
comp_name |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom COMP dalam log mentah. |
configuration_version |
additional.fields[].key |
Nilai "configuration_version" ditetapkan melalui parser |
configuration_version |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom configuration_version dalam log mentah, yang dikonversi menjadi string. |
containerID |
additional.fields[].key |
Nilai "containerID" ditetapkan melalui parser |
containerID |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom CONTAINERID dalam log mentah. |
description |
security_result.description |
Dipetakan langsung dari kolom description dalam log mentah. |
dfs.FSNamesystem.* |
additional.fields[].key |
Kunci dibuat dengan menggabungkan "dfs.FSNamesystem." dengan kunci dari data JSON. |
dfs.FSNamesystem.* |
additional.fields[].value.string_value |
Nilai dipetakan langsung dari nilai yang sesuai dalam objek JSON dfs.FSNamesystem , yang dikonversi menjadi string. |
duration |
additional.fields[].key |
Nilai "duration" ditetapkan melalui parser |
duration |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom duration dalam log mentah. |
duration |
network.session_duration.seconds |
Dipetakan langsung dari kolom duration dalam log mentah, yang dikonversi menjadi bilangan bulat. |
environment |
additional.fields[].key |
Nilai "environment" ditetapkan melalui parser |
environment |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom environment dalam log mentah. Diekstrak dari kolom ip_port menggunakan grok dan manipulasi string. Diekstrak dari kolom ip_port menggunakan grok dan manipulasi string, yang dikonversi menjadi bilangan bulat. |
event_type |
metadata.event_type |
Ditentukan oleh logika parser berdasarkan keberadaan informasi principal dan target . Dapat berupa NETWORK_CONNECTION , USER_RESOURCE_ACCESS , STATUS_UPDATE , atau GENERIC_EVENT . |
file_path |
target.file.full_path |
Dipetakan langsung dari kolom file_path dalam log mentah. |
host |
principal.hostname |
Dipetakan langsung dari kolom host dalam log mentah. |
host |
target.hostname |
Dipetakan langsung dari kolom host dalam log mentah. |
host_ip |
principal.ip |
Dipetakan langsung dari kolom host_ip dalam log mentah. |
host_port |
principal.port |
Dipetakan langsung dari kolom host_port dalam log mentah, yang dikonversi menjadi bilangan bulat. |
http_url |
target.url |
Dipetakan langsung dari kolom http_url dalam log mentah. |
index |
additional.fields[].key |
Nilai "index" ditetapkan melalui parser |
index |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom index dalam log mentah. |
kind |
metadata.product_event_type |
Dipetakan langsung dari kolom kind dalam log mentah. Nilai "AWS_EMR" ditetapkan melalui parser Nilai "AWS EMR" ditetapkan melalui parser Nilai "AMAZON" ditetapkan melalui parser |
offset |
additional.fields[].key |
Nilai "offset" ditetapkan melalui parser |
offset |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom offset dalam log mentah. |
op |
metadata.product_event_type |
Dipetakan langsung dari kolom op atau OPERATION dalam log mentah. |
proto |
network.application_protocol |
Diekstrak dari kolom http_url menggunakan grok, dikonversi ke huruf besar. |
puppet_version |
additional.fields[].key |
Nilai "puppet_version" ditetapkan melalui parser |
puppet_version |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom puppet_version dalam log mentah. |
queue_name |
additional.fields[].key |
Nilai "queue_name" ditetapkan melalui parser |
queue_name |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom queue_name dalam log mentah. |
report_format |
additional.fields[].key |
Nilai "report_format" ditetapkan melalui parser |
report_format |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom report_format dalam log mentah, yang dikonversi menjadi string. |
resource |
additional.fields[].key |
Nilai "resource" ditetapkan melalui parser |
resource |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom resource dalam log mentah. |
result |
security_result.action_details |
Dipetakan langsung dari kolom RESULT dalam log mentah. |
security_id |
additional.fields[].key |
Nilai "security_id" ditetapkan melalui parser |
security_id |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom security_id dalam log mentah. |
severity |
security_result.severity |
Dipetakan dari kolom severity dalam log mentah. INFO dipetakan ke INFORMATIONAL , WARN dipetakan ke MEDIUM . |
srvID |
additional.fields[].key |
Nilai "srvID" ditetapkan melalui parser |
srvID |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom srvID dalam log mentah. |
status |
additional.fields[].key |
Nilai "status" ditetapkan melalui parser |
status |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom status dalam log mentah. |
summary |
security_result.summary |
Dipetakan langsung dari kolom summary dalam log mentah. |
target_app |
target.application |
Dipetakan langsung dari kolom TARGET dalam log mentah. |
target_ip |
target.ip |
Dipetakan langsung dari kolom target_ip atau IP dalam log mentah. |
target_port |
target.port |
Dipetakan langsung dari kolom target_port dalam log mentah, yang dikonversi menjadi bilangan bulat. |
timestamp |
metadata.event_timestamp |
Dipetakan langsung dari kolom timestamp dalam log mentah, diuraikan sebagai stempel waktu ISO8601. |
timestamp |
event.timestamp |
Dipetakan langsung dari kolom timestamp dalam log mentah, diuraikan sebagai stempel waktu ISO8601. |
trade_date |
additional.fields[].key |
Nilai "trade_date" ditetapkan melalui parser |
trade_date |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom trade_date dalam log mentah. |
transaction_uuid |
additional.fields[].key |
Nilai "transaction_uuid" ditetapkan melalui parser |
transaction_uuid |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom transaction_uuid dalam log mentah. |
type |
additional.fields[].key |
Nilai "type" ditetapkan melalui parser |
type |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom type dalam log mentah. |
user |
target.user.userid |
Dipetakan langsung dari kolom USER atau ugi dalam log mentah. |
Perubahan
2023-12-19
- Perbaikan Bug: Memperbaiki hasil yang tidak stabil untuk pola Grok.
2023-10-30
- Parser yang baru dibuat.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.