Mengumpulkan log AWS Elastic Load Balancing
Dokumen ini menjelaskan cara mengumpulkan log AWS Elastic Load Balancing dengan menyiapkan feed Google Security Operations. Parser mengonversi log menjadi format UDM. Fungsi ini menggunakan pola grok untuk mengekstrak kolom dari pesan berformat CEF dan non-CEF, memetakan kolom tersebut ke kolom UDM, dan menangani berbagai transformasi data, termasuk logika spesifik untuk kolom HTTP, TLS, dan terkait keamanan. Fungsi ini juga melakukan pemrosesan bersyarat berdasarkan keberadaan atau format kolom tertentu untuk memastikan representasi UDM yang akurat.
Sebelum memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Pastikan Anda memiliki akses dengan hak istimewa ke AWS.
Mengonfigurasi AWS Elastic Load Balancing
- Aktifkan logging akses untuk mengirim Log Akses ke bucket penyimpanan S3.
- Buat Amazon Simple Queue Service (SQS) dan lampirkan ke bucket penyimpanan S3.
Mengonfigurasi bucket Amazon S3
- Login ke konsol AWS.
- Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket
- Simpan Nama bucket (misalnya,
elb-logs
) dan Region 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.
- Klik Berikutnya.
- Klik Tambahkan izin.
Mengonfigurasi AWS Elastic Load Balancer untuk Mengaktifkan Log Akses
- Login ke AWS Management Console.
- Telusuri dan pilih EC2.
- Pilih Load balancer di menu navigasi.
- Pilih load balancer yang ingin Anda aktifkan logging-nya.
- Di tab Description, scroll ke Attributes.
- Klik Edit atribut.
- Aktifkan Log akses dengan memilih Aktifkan.
- Pilih bucket S3 yang dibuat sebelumnya (misalnya,
elb-logs
). - Opsional: tetapkan Awalan Log untuk memudahkan identifikasi log (misalnya,
elb/access-logs/
). - Klik Simpan.
Mengonfigurasi feed di Google SecOps untuk menyerap log AWS Elastic Load Balancer
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Feed name, masukkan nama untuk feed (misalnya, AWS Elastic Load Balancer Logs).
- Pilih Amazon S3 sebagai Source type.
- Pilih AWS Elastic Load Balancer sebagai Log type.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
- Region: region tempat bucket Amazon S3 berada.
- S3 URI: URI bucket.
s3:/BUCKET_NAME
- Ganti
BUCKET_NAME
dengan nama bucket yang sebenarnya.
- Ganti
- URI adalah: pilih JENIS URI sesuai dengan konfigurasi aliran log (File tunggal | Direktori | 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 |
---|---|---|
actions_executed |
security_result.action |
Jika actions_executed adalah "waf,forward" atau "waf,redirect", tetapkan ke "ALLOW". Jika actions_executed adalah "waf", tetapkan ke "BLOCK". |
chosen_cert_arn |
principal.user.attribute.labels |
Jika chosen_cert_arn berisi "session", petakan nilainya ke security_result.description . Jika tidak, buat label dengan kunci "ARN" dan nilai sebagai chosen_cert_arn , lalu tambahkan ke array principal.user.attribute.labels . |
chosen_cert_arn |
security_result.description |
Jika chosen_cert_arn berisi "session", petakan nilainya ke kolom ini. |
client_ip |
principal.asset.ip |
Dipetakan secara langsung. |
client_ip |
principal.ip |
Dipetakan secara langsung. |
client_port |
principal.port |
Dipetakan secara langsung. |
classification |
security_result.rule_name |
Dipetakan langsung jika tidak kosong atau "-". |
classification_reason |
security_result.summary |
Dipetakan langsung jika tidak kosong atau "-". |
Customer (CEF) |
principal.user.user_display_name |
Dipetakan langsung dari kolom CEF. |
data |
Berbagai | Diurai menggunakan pola grok untuk mengekstrak beberapa kolom. Lihat baris lain untuk pemetaan tertentu. |
data.act (CEF) |
security_result.action_details |
Dipetakan langsung dari kolom CEF. |
data.app (CEF) |
principal.application |
Dipetakan langsung dari kolom CEF. |
data.ccode (CEF) |
principal.location.country |
Dipetakan langsung dari kolom CEF. |
data.cicode (CEF) |
principal.location.city |
Dipetakan langsung dari kolom CEF. |
data.cn1 (CEF) |
network.http.response_code |
Dipetakan langsung dari kolom CEF. |
data.cpt (CEF) |
principal.port |
Dipetakan langsung dari kolom CEF. |
data.cs1Label (CEF) |
additional.fields |
Membuat pasangan nilai kunci dengan kunci "Cap Support" dan nilai dari cs1Label . |
data.cs2Label (CEF) |
additional.fields |
Membuat pasangan nilai kunci dengan kunci "Dukungan JavaScript" dan nilai dari cs2Label . |
data.cs3Label (CEF) |
additional.fields |
Membuat pasangan nilai kunci dengan kunci "Dukungan CO" dan nilai dari cs3Label . |
data.cs4Label (CEF) |
additional.fields |
Membuat pasangan nilai kunci dengan kunci "VID" dan nilai dari cs4Label . |
data.cs5Label (CEF) |
additional.fields |
Membuat pasangan nilai kunci dengan kunci "clappsig" dan nilai dari cs5Label . |
data.cs6Label (CEF) |
additional.fields |
Membuat pasangan nilai kunci dengan kunci "clapp" dan nilai dari cs6Label . |
data.cs7Label (CEF) |
additional.fields |
Membuat pasangan nilai kunci dengan kunci "latitude" dan nilai dari cs7Label . |
data.deviceExternalId (CEF) |
about.asset.asset_id |
Digunakan sebagai bagian dari ID aset: Incapsula.SIEMintegration:deviceExternalId . |
data.deviceFacility (CEF) |
principal.location.region |
Dipetakan langsung dari kolom CEF. |
data.dproc (CEF) |
target.process.command_line |
Dipetakan langsung dari kolom CEF. |
data.dst_ip |
target.asset.ip |
Dipetakan secara langsung. |
data.dst_ip |
target.ip |
Dipetakan secara langsung. |
data.dst_port |
target.port |
Dipetakan secara langsung. |
data.elb |
target.resource.id |
Dipetakan secara langsung. |
data.fileId (CEF) |
security_result.detection_fields |
Membuat pasangan nilai kunci dengan kunci "fileId" dan nilai dari fileId . |
data.in (CEF) |
network.received_bytes |
Dipetakan langsung dari kolom CEF. |
data.request (CEF) |
target.url |
Dipetakan langsung dari kolom CEF. |
data.requestClientApplication (CEF) |
network.http.user_agent |
Dipetakan langsung dari kolom CEF. |
data.requestMethod (CEF) |
network.http.method |
Dipetakan langsung dari kolom CEF. |
data.severity (CEF) |
security_result.severity |
Dipetakan ke RENDAH jika tingkat keparahannya 0. |
data.sip (CEF) |
principal.asset.ip |
Dipetakan langsung dari kolom CEF. |
data.sip (CEF) |
principal.ip |
Dipetakan langsung dari kolom CEF. |
data.siteid (CEF) |
security_result.detection_fields |
Membuat pasangan nilai kunci dengan kunci "siteid" dan nilai dari siteid . |
data.sourceServiceName (CEF) |
principal.application |
Dipetakan langsung dari kolom CEF. |
data.spt (CEF) |
principal.port |
Dipetakan langsung dari kolom CEF. |
data.src (CEF) |
principal.ip |
Dipetakan langsung dari kolom CEF. |
data.suid (CEF) |
principal.user.userid |
Dipetakan langsung dari kolom CEF. |
data.ver (CEF) |
network.tls.version |
Bagian versi diekstrak menggunakan grok dan dipetakan. |
data.ver (CEF) |
network.tls.cipher |
Bagian cipher diekstrak menggunakan grok dan dipetakan. |
data.xff (CEF) |
principal.ip |
Dipetakan langsung dari kolom CEF. |
domain_name |
principal.administrative_domain |
Dipetakan secara langsung. |
http_method |
network.http.method |
Dipetakan secara langsung. |
log_type |
metadata.log_type |
Dipetakan secara langsung. |
message |
Berbagai | Diurai menggunakan pola grok untuk mengekstrak beberapa kolom. Lihat baris lain untuk pemetaan tertentu. |
received_bytes |
network.received_bytes |
Dipetakan secara langsung. |
redirect_url |
network.application_protocol |
Jika redirect_url dimulai dengan "http", protokol akan diekstrak dan dipetakan. |
redirect_url |
target.asset.hostname |
Jika redirect_url dimulai dengan "http", nama host akan diekstrak dan dipetakan. |
redirect_url |
target.hostname |
Jika redirect_url dimulai dengan "http", nama host akan diekstrak dan dipetakan. |
redirect_url |
target.port |
Jika redirect_url dimulai dengan "http", port akan diekstrak dan dipetakan. |
request_creation_time |
metadata.collected_timestamp |
Dipetakan langsung setelah penguraian tanggal. |
request_processing_time |
security_result.detection_fields |
Membuat pasangan nilai kunci dengan kunci "request_processing_time" dan nilai dari kolom ini. |
response_processing_time |
security_result.detection_fields |
Membuat pasangan nilai kunci dengan kunci "response_processing_time" dan nilai dari kolom ini. |
sent_bytes |
network.sent_bytes |
Dipetakan secara langsung. |
ssl_cipher |
network.tls.cipher |
Dipetakan secara langsung. |
ssl_protocol |
network.tls.version |
Dipetakan secara langsung. |
target_group_arn |
target.group.group_display_name |
Dipetakan secara langsung. |
target_processing_time |
security_result.detection_fields |
Membuat pasangan nilai kunci dengan kunci "target_processing_time" dan nilai dari kolom ini. |
target_status_code |
target.labels |
Membuat label dengan kunci "target_status_code" dan nilai dari kolom ini, lalu menambahkannya ke array target.labels . |
time |
metadata.event_timestamp |
Dipetakan langsung setelah penguraian tanggal. |
trace_id |
metadata.product_log_id |
Dipetakan langsung setelah menghapus "Root=". |
url |
network.http.referral_url |
Dipetakan secara langsung. |
user_agent |
network.http.user_agent |
Dipetakan secara langsung. |
(Parser) | metadata.event_type |
Tetapkan ke "NETWORK_HTTP" jika ID mesin utama dan target ada, "STATUS_UPDATE" jika hanya ID mesin utama yang ada, "GENERIC_EVENT" jika tidak ada IP target, nama host, atau IP tujuan, dan "NETWORK_HTTP" jika tidak. |
(Parser) | metadata.product_name |
Tetapkan ke "AWS Elastic Load Balancer". |
(Parser) | metadata.vendor_name |
Tetapkan ke "AMAZON". |
Perubahan
2024-03-22
- Menambahkan pola Grok baru untuk mendukung pola log JSON baru.
- Menambahkan dukungan untuk log pola CEF.
- Memetakan "dst_ip" ke "target.ip".
- Memetakan "dst_port" ke "target.port".
- Memetakan "sip" ke "principal.ip".
- Memetakan "request_processing_time", "target_processing_time", "siteid", "fileId", dan "response_processing_time" ke "security_result.detection.fields".
- Pemetaan yang diselaraskan untuk "principal.ip" dan "principal.asset.ip".
- Pemetaan yang diselaraskan untuk "target.ip" dan "target.asset.ip".
- Pemetaan yang diselaraskan untuk "target.hostname" dan "target.asset.hostname".
- Memetakan "cipher" ke "network.tls.cipher".
- Memetakan "version" ke "network.tls.version".
- Memetakan "Customer" ke "principal.user.user_display_name".
2022-05-27
- Peningkatan - Mengubah nilai yang disimpan di metadata.product_name menjadi 'AWS Elastic Load Balancer'.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.