Mengumpulkan log AWS Security Hub
Dokumen ini menjelaskan cara menyerap log AWS Security Hub ke Google Security Operations. AWS Security Hub memberikan tampilan komprehensif tentang pemberitahuan dan temuan keamanan di seluruh akun AWS. Dengan mengirimkan temuan ini ke Google SecOps, Anda dapat menggunakan kemampuan Google SecOps untuk meningkatkan pemantauan dan deteksi ancaman.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps
- Akses istimewa ke AWS
Mengonfigurasi AWS IAM dan 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 CSV file untuk menyimpan Access Key dan Secret Access Key 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.
Membuat fungsi Lambda
- Login ke AWS Management Console.
- Buka Lambda.
- Klik Create Function, lalu pilih Author from Scratch.
- Berikan nama untuk fungsi Anda; misalnya,
SecurityHubToS3
. - Pilih Python 3.x untuk runtime.
Masukkan kode Lambda yang mengambil temuan dari EventBridge dan menuliskannya ke bucket S3 Anda:
import json import boto3 from datetime import datetime # Initialize the S3 client s3_client = boto3.client('s3') # S3 bucket where findings will be stored bucket_name = 'aws-security-hub-findings-stream' def lambda_handler(event, context): # Extract Security Hub findings from the event findings = event['detail']['findings'] # Generate a timestamp for the file name to avoid overwriting timestamp = datetime.now().strftime('%Y-%m-%dT%H-%M-%S') # Generate the S3 object key (file name) based on the timestamp object_key = f"security_hub_findings_{timestamp}.json" # Convert findings to JSON format findings_json = json.dumps(findings) # Upload the findings to S3 try: response = s3_client.put_object( Bucket=bucket_name, Key=object_key, Body=findings_json, ContentType='application/json' ) print(f"Successfully uploaded findings to S3: {response}") except Exception as e: print(f"Error uploading findings to S3: {e}") raise e return { 'statusCode': 200, 'body': json.dumps('Successfully processed findings') }
Tetapkan izin untuk Lambda dengan menambahkan peran IAM ke fungsi Lambda dengan kebijakan berikut:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::aws-security-hub-findings-stream/*" } ] }
Cara mengonfigurasi AWS Security Hub untuk meneruskan temuan dengan EventBridge
- Login ke AWS Management Console.
- Di kotak penelusuran, ketik dan pilih Security Hub dari daftar layanan.
- Klik Setelan.
- Di bagian Integrations, temukan EventBridge, lalu klik Enable.
- Di kotak penelusuran, ketik dan pilih EventBridge dari daftar layanan.
- Di konsol EventBridge, klik Rules > Create rule.
- Berikan konfigurasi Aturan berikut:
- Nama Aturan: Berikan nama deskriptif untuk aturan tersebut; misalnya, SendSecurityHubFindingsToS3.
- Sumber Peristiwa: Pilih Layanan AWS.
- Service Name: Pilih Security Hub.
- Event Type: Pilih Security Hub Findings.
- Tetapkan Target: Pilih Fungsi Lambda.
- Pilih fungsi Lambda yang baru saja Anda buat (
SecurityHubToS3
).
- Klik Buat.
Menyiapkan feed
Ada dua titik entri berbeda untuk menyiapkan feed di platform Google SecOps:
- Setelan SIEM > Feed
- Hub Konten > Paket Konten
Menyiapkan feed dari Setelan SIEM > Feed
Untuk mengonfigurasi beberapa feed untuk berbagai jenis log dalam rangkaian produk ini, lihat Mengonfigurasi beberapa feed.
Untuk mengonfigurasi satu feed, ikuti langkah-langkah berikut:
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Feed name, masukkan nama untuk feed; misalnya, AWS Security Hub Logs.
- Pilih Amazon S3 sebagai Jenis sumber.
- Pilih AWS Security Hub sebagai Jenis log.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
- Region: Region tempat bucket Amazon S3 berada.
- URI S3: URI bucket.
s3://your-log-bucket-name/
- Ganti
your-log-bucket-name
dengan nama sebenarnya bucket S3 Anda.
- Ganti
- URI adalah: Pilih Direktori atau Direktori yang menyertakan subdirektori, bergantung pada struktur bucket Anda.
Opsi penghapusan sumber: Pilih opsi penghapusan sesuai dengan preferensi penyerapan Anda.
ID Kunci Akses: Kunci akses pengguna dengan izin untuk membaca dari bucket S3.
Kunci Akses Rahasia: Kunci rahasia pengguna dengan izin untuk membaca dari 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 Selesaikan, lalu klik Kirim.
Menyiapkan feed dari Hub Konten
Tentukan nilai untuk kolom berikut:
- Region: Region tempat bucket Amazon S3 berada.
- URI S3: URI bucket.
s3://your-log-bucket-name/
- Ganti
your-log-bucket-name
dengan nama sebenarnya bucket S3 Anda.
- Ganti
- URI adalah: Pilih Direktori atau Direktori yang menyertakan subdirektori, bergantung pada struktur bucket Anda.
- Opsi penghapusan sumber: Pilih opsi penghapusan sesuai dengan preferensi penyerapan Anda.
ID Kunci Akses: Kunci akses pengguna dengan izin untuk membaca dari bucket S3.
Kunci Akses Rahasia: Kunci rahasia pengguna dengan izin untuk membaca dari bucket S3.
Opsi lanjutan
- Nama Feed: Nilai yang telah diisi otomatis yang mengidentifikasi feed.
- Jenis Sumber: Metode yang digunakan untuk mengumpulkan log ke Google SecOps.
- Namespace Aset: Namespace yang terkait dengan feed.
- Label Penyerapan: Label yang diterapkan ke semua peristiwa dari feed ini.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
account |
principal.group.product_object_id |
ID akun AWS yang terkait dengan temuan. |
configurationItem.ARN |
target.resource.id |
Amazon Resource Name (ARN) item konfigurasi. |
configurationItem.awsAccountId |
principal.user.userid |
ID akun AWS item konfigurasi. |
configurationItem.awsRegion |
target.asset.location.country_or_region |
Region AWS item konfigurasi. |
configurationItem.configuration.complianceType |
security_result.summary |
Jenis kepatuhan item konfigurasi. |
configurationItem.configuration.configRuleList[].complianceType |
security_result.summary |
Status kepatuhan untuk setiap aturan konfigurasi. |
configurationItem.configuration.configRuleList[].configRuleArn |
security_result.rule_id |
ARN aturan AWS Config. |
configurationItem.configuration.configRuleList[].configRuleId |
security_result.about.labels.configRuleId |
ID aturan AWS Config. |
configurationItem.configuration.configRuleList[].configRuleName |
security_result.rule_name |
Nama aturan AWS Config. |
configurationItem.configuration.privateIpAddress |
target.ip |
Alamat IP pribadi item konfigurasi. |
configurationItem.configuration.publicIpAddress |
target.ip |
Alamat IP publik item konfigurasi. |
configurationItem.configurationItemCaptureTime |
target.asset.attribute.creation_time |
Waktu pengambilan item konfigurasi, dikonversi menjadi stempel waktu. |
configurationItem.configurationItemStatus |
target.asset.attribute.labels.Configuration Item Status |
Status item konfigurasi. |
configurationItem.relationships[].resourceId |
target.asset.attribute.cloud.vpc.id |
ID resource dari resource terkait, digunakan untuk ID VPC jika cocok dengan vpc . |
configurationItem.resourceId |
target.resource.id |
ID resource item konfigurasi. |
configurationItem.resourceName |
target.resource.name |
Nama resource. |
configurationItem.resourceType |
target.resource.resource_subtype |
Jenis resource item konfigurasi. |
configurationItem.tags.Contact |
principal.user.user_display_name ATAU principal.user.email_addresses |
Detail kontak diekstrak dari tag, diuraikan untuk email dan nama pengguna. |
configurationItem.tags.OS /configurationItem.tags.Os |
target.asset.platform_software.platform |
Sistem operasi dari tag, dipetakan ke platform jika Windows atau Linux . |
configurationItemDiff.changeType |
metadata.event_type |
Jenis perubahan, dipetakan ke RESOURCE_WRITTEN atau RESOURCE_CREATION. |
detail.accountId |
principal.group.product_object_id |
ID akun AWS yang terkait dengan temuan. |
detail.actionDescription detail.actionName detail.description |
sec_result.description |
Deskripsi temuan. |
detail.findings[].AwsAccountId |
principal.group.product_object_id |
ID akun AWS yang terkait dengan temuan. |
detail.findings[].CompanyName detail.findings[].CreatedAt detail.findings[].Description |
sec_result.description |
Deskripsi temuan. |
detail.findings[].FindingProviderFields.Severity.Label |
sec_result.severity |
Label tingkat keparahan temuan, dikonversi menjadi huruf besar. |
detail.findings[].FindingProviderFields.Types[] detail.findings[].FirstObservedAt detail.findings[].GeneratorId detail.findings[].Id detail.findings[].LastObservedAt detail.findings[].ProductArn detail.findings[].ProductFields. |
Lihat di bawah | Berbagai kolom yang digunakan untuk kolom tambahan, informasi target, dan prinsipal. |
detail.findings[].ProductName detail.findings[].RecordState detail.findings[].Region |
target.location.name |
Region AWS tempat temuan berada. |
detail.findings[].Resources[].Details. |
Lihat di bawah | Detail tentang resource yang terlibat dalam temuan. |
detail.findings[].Resources[].Id |
target.resource.product_object_id |
ID resource. |
detail.findings[].Resources[].Partition detail.findings[].Resources[].Region |
target.location.name |
Region AWS dari resource. |
detail.findings[].Resources[].Tags detail.findings[].Resources[].Type |
target.resource.resource_type , target.resource.resource_subtype , metadata.event_type |
Jenis resource, digunakan untuk pemetaan jenis resource, subjenis, dan jenis peristiwa. |
detail.findings[].Sample detail.findings[].SchemaVersion detail.findings[].Severity.Label detail.findings[].SourceUrl detail.findings[].Title |
sec_result.summary |
Judul temuan. |
detail.findings[].Types[] detail.findings[].UpdatedAt detail.findings[].Workflow.Status detail.findings[].WorkflowState detail-type |
metadata.product_event_type |
Jenis detail peristiwa. |
id |
metadata.product_log_id |
ID acara. |
region |
target.location.name |
Region AWS tempat peristiwa terjadi. |
resources[] source time version (Parser Logic) |
metadata.event_timestamp |
Waktu pembuatan dari entri log asli, digunakan sebagai stempel waktu peristiwa. |
(Logika Parser) | metadata.log_type |
Tetapkan ke AWS_SECURITY_HUB . |
(Logika Parser) | metadata.product_name |
Tetapkan ke AWS Security Hub . |
(Logika Parser) | metadata.vendor_name |
Tetapkan ke AMAZON . |
(Logika Parser) | target.asset.attribute.cloud.environment |
Tetapkan ke AMAZON_WEB_SERVICES . |
(Logika Parser) | metadata.event_type |
Disetel ke USER_RESOURCE_ACCESS sebagai default jika tidak dipetakan dari Resources[].Type atau configurationItemDiff.changeType . Disetel ke STATUS_UPDATE jika configurationItems ada dan tidak ada jenis peristiwa lain yang disetel. Tetapkan ke RESOURCE_READ jika configurationItem atau configurationItems ada dan statusnya adalah OK atau ResourceDiscovered . Disetel ke RESOURCE_DELETION jika configurationItem atau configurationItems ada dan statusnya adalah ResourceDeleted . |
(Logika Parser) | metadata.description |
Tetapkan ke guardduty jika detail.findings[].ProductFields.aws/guardduty/service/serviceName ada. |
(Logika Parser) | target.asset.attribute.cloud.vpc.resource_type |
Tetapkan ke VPC_NETWORK jika configurationItems.relationships[].resourceId cocok dengan vpc . |
(Logika Parser) | target.resource.resource_type |
Disetel ke VIRTUAL_MACHINE jika configurationItem atau configurationItems ada. Disetel ke UNSPECIFIED jika tidak ada jenis resource lain yang ditetapkan. |
(Logika Parser) | target.asset.platform_software.platform |
Tetapkan ke WINDOWS atau LINUX berdasarkan keberadaan Windows atau (Linux|LINUX) dalam pesan untuk configurationItem . Untuk configurationItems , setel berdasarkan configItem.tags.OS atau configItem.tags.Os . |
(Logika Parser) | disambiguation_key |
Ditambahkan saat beberapa peristiwa dibuat dari satu entri log. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.