Mengumpulkan log IOC DHS

Parser Version: 1.0

Didukung di:

Dokumen ini menjelaskan cara menyerap log IOC Department of Homeland Security (DHS) ke Google Security Operations menggunakan Google Cloud Storage V2.

DHS mendistribusikan threat intelligence melalui program Automated Indicator Sharing (AIS), yang menyediakan indikator penyusupan seperti alamat IP, domain, URL, dan hash file berbahaya dalam format STIX/TAXII. Karena AIS mengirimkan data IOC sebagai paket STIX yang dapat didownload, Anda harus mengekspor file tersebut ke bucket Google Cloud Storage (GCS), lalu mengonfigurasi feed Google SecOps untuk menyerapnya.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Project Google Cloud dengan Cloud Storage API diaktifkan
  • Izin untuk membuat dan mengelola bucket GCS
  • Izin untuk mengelola kebijakan IAM di bucket GCS
  • Akun peserta aktif DHS AIS dengan akses ke server TAXII atau portal AIS
  • File kunci pribadi dan sertifikat klien AIS untuk autentikasi server TAXII

Buat bucket Google Cloud Storage

  1. Buka Konsol Google Cloud.
  2. Pilih project Anda atau buat project baru.
  3. Di menu navigasi, buka Cloud Storage > Buckets.
  4. Klik Create bucket.
  5. Berikan detail konfigurasi berikut:

    Setelan Nilai
    Beri nama bucket Anda Masukkan nama yang unik secara global (misalnya, dhs-ioc-logs)
    Location type Pilih berdasarkan kebutuhan Anda (Region, Dual-region, Multi-region)
    Location Pilih lokasi yang paling dekat dengan instance Google SecOps Anda (misalnya, us-central1)
    Kelas penyimpanan Standar (direkomendasikan untuk log yang sering diakses)
    Kontrol akses Seragam (direkomendasikan)
    Alat perlindungan Opsional: Aktifkan pembuatan versi objek atau kebijakan retensi
  6. Klik Create.

Mengonfigurasi ekspor otomatis data IOC DHS ke GCS

DHS mendistribusikan data IOC berformat STIX melalui server TAXII AIS-nya. Konfigurasi pipeline otomatis untuk menarik indikator sesuai jadwal dan menuliskannya langsung ke GCS.

Gunakan Cloud Build yang dipicu oleh Cloud Scheduler untuk menjalankan tugas dalam container yang mengambil paket STIX dari server TAXII AIS dan menuliskannya ke GCS.

  1. Simpan sertifikat dan kunci klien AIS di Secret Manager:

    1. Di GCP Console, buka Security > Secret Manager.
    2. Klik Buat Secret.
    3. Buat dua secret:
      • Name: ais-client-cert, Value: Isi file PEM sertifikat klien AIS Anda.
      • Name: ais-client-key, Value: Isi file PEM kunci pribadi klien AIS Anda.
  2. Buat akun layanan untuk tugas ekspor:

    1. Di Konsol GCP, buka IAM & Admin > Service Accounts.
    2. Klik Create Service Account.
    3. Berikan detail konfigurasi berikut:
      • Nama akun layanan: Masukkan dhs-ioc-export-sa
      • Deskripsi akun layanan: Masukkan Service account for automated DHS IOC export to GCS
    4. Klik Create and Continue.
    5. Tambahkan peran berikut:
      • Storage Object Admin (untuk menulis file ke GCS)
      • Cloud Build Editor (untuk menjalankan tugas Cloud Build)
      • Secret Manager Secret Accessor (untuk membaca sertifikat AIS)
    6. Klik Done.
  3. Buat file konfigurasi Cloud Build (cloudbuild.yaml):

    steps:
      - name: 'gcr.io/cloud-builders/gcloud'
        entrypoint: 'bash'
        args:
          - '-c'
          - |
            apt-get update && apt-get install -y curl
            # Retrieve AIS certificates from Secret Manager
            gcloud secrets versions access latest --secret=ais-client-cert > /tmp/ais-cert.pem
            gcloud secrets versions access latest --secret=ais-client-key > /tmp/ais-key.pem
            # Fetch IOC data from AIS TAXII server
            TIMESTAMP=$(date -u +%Y%m%d_%H%M%S)
            FROM=$(date -u -d '-60 minutes' +"%Y-%m-%dT%H:%M:%SZ")
            curl -s --cert /tmp/ais-cert.pem --key /tmp/ais-key.pem \
              -H "Accept: application/taxii+json;version=2.1" \
              "https://ais2.cisa.dhs.gov/taxii2/ais2/collections/${_COLLECTION_ID}/objects?added_after=$${FROM}" \
              -o /workspace/dhs_ioc_$${TIMESTAMP}.json
            # Upload to GCS
            gcloud storage cp /workspace/dhs_ioc_$${TIMESTAMP}.json \
              gs://${_BUCKET_NAME}/ioc-data/
            # Clean up certificates
            rm -f /tmp/ais-cert.pem /tmp/ais-key.pem
    substitutions:
      _BUCKET_NAME: 'dhs-ioc-logs'
      _COLLECTION_ID: 'YOUR_AIS_COLLECTION_ID'
    
  4. Buat tugas Cloud Scheduler untuk memicu build:

    1. Di Konsol GCP, buka Cloud Scheduler.
    2. Klik Create Job.
    3. Berikan detail konfigurasi berikut:

      Setelan Nilai
      Nama dhs-ioc-export-hourly
      Region Pilih region yang sama dengan bucket GCS Anda
      Frekuensi 0 * * * * (setiap jam)
      Zona Waktu UTC (direkomendasikan)
      Jenis target HTTP
      URL https://cloudbuild.googleapis.com/v1/projects/YOUR_PROJECT_ID/builds
      Metode HTTP POST
      Header otorisasi Tambahkan token OAuth
      Service account dhs-ioc-export-sa@YOUR_PROJECT_ID.iam.gserviceaccount.com
    4. Klik Create.

Opsi 2: VM Compute Engine dengan cron (alternatif)

Jika Cloud Build tidak tersedia, gunakan VM Compute Engine kecil dengan cron job untuk menarik data IoC dan menulis ke GCS.

  1. Membuat VM Compute Engine:

    1. Di GCP Console, buka Compute Engine > VM instances.
    2. Klik Create instance.
    3. Pilih jenis mesin kecil (misalnya, e2-micro).
    4. Di bagian Identity and API access, pilih akun layanan dengan peran Storage Object Admin.
    5. Klik Create.
  2. Gunakan SSH untuk mengakses VM dan buat skrip ekspor (/opt/dhs-ioc/export.sh):

    #!/usr/bin/env bash
    set -euo pipefail
    
    TAXII_URL="https://ais2.cisa.dhs.gov/taxii2"
    API_ROOT="ais2"
    COLLECTION_ID="YOUR_AIS_COLLECTION_ID"
    CERT="/etc/ais/client-cert.pem"
    KEY="/etc/ais/client-key.pem"
    BUCKET="dhs-ioc-logs"
    
    TIMESTAMP=$(date -u +%Y%m%d_%H%M%S)
    FROM=$(date -u -d '-60 minutes' +"%Y-%m-%dT%H:%M:%SZ")
    
    curl -s --cert "$CERT" --key "$KEY" \
      -H "Accept: application/taxii+json;version=2.1" \
      "${TAXII_URL}/${API_ROOT}/collections/${COLLECTION_ID}/objects?added_after=${FROM}" \
      -o "/tmp/dhs_ioc_${TIMESTAMP}.json"
    
    gcloud storage cp "/tmp/dhs_ioc_${TIMESTAMP}.json" "gs://${BUCKET}/ioc-data/"
    rm -f "/tmp/dhs_ioc_${TIMESTAMP}.json"
    
  3. Buat agar skrip dapat dieksekusi dan jadwalkan dengan cron:

    chmod +x /opt/dhs-ioc/export.sh
    (crontab -l ; echo "0 * * * * /opt/dhs-ioc/export.sh >> /var/log/dhs-ioc-export.log 2>&1") | crontab -
    

Mengambil akun layanan Google SecOps

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed (misalnya, DHS IOC Feed).
  5. Pilih Google Cloud Storage V2 sebagai Source type.
  6. Pilih Department of Homeland Security sebagai Log type.
  7. Klik Get Service Account.
  8. Email akun layanan yang unik akan ditampilkan, misalnya:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  9. Salin alamat email ini untuk digunakan di langkah berikutnya.

Memberikan izin IAM ke akun layanan Google SecOps

Akun layanan Google SecOps memerlukan peran Storage Object Viewer di bucket GCS Anda.

  1. Buka Cloud Storage > Buckets.
  2. Klik nama bucket Anda (misalnya, dhs-ioc-logs).
  3. Buka tab Izin.
  4. Klik Grant access.
  5. Berikan detail konfigurasi berikut:
    • Add principals: Tempel email akun layanan Google SecOps (misalnya, chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com).
    • Tetapkan peran: Pilih Storage Object Viewer.
  6. Klik Simpan.

Mengonfigurasi feed Google SecOps

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed (misalnya, DHS IOC Feed).
  5. Pilih Google Cloud Storage V2 sebagai Source type.
  6. Pilih Department of Homeland Security sebagai Log type.
  7. Klik Berikutnya.
  8. Tentukan nilai untuk parameter input berikut:

    • URL bucket penyimpanan: Masukkan URI bucket GCS:

      gs://dhs-ioc-logs/ioc-data/
      
      • Ganti dhs-ioc-logs dengan nama bucket GCS Anda.
      • Ganti ioc-data dengan jalur awalan yang dikonfigurasi.
    • Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda:

      • Jangan pernah: Tidak pernah menghapus file apa pun setelah transfer (direkomendasikan untuk pengujian).
      • Hapus file yang ditransfer dan direktori kosong: Menghapus file dan direktori kosong setelah transfer berhasil.

    • Usia File Maksimum: Sertakan file yang diubah dalam beberapa hari terakhir (defaultnya adalah 180 hari).

    • Namespace aset: Namespace aset.

    • Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini.

  9. Klik Berikutnya.

  10. Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
entity.application Nama atau ID aplikasi
observable_id entity.asset.asset_id ID aset
object_id entity.asset.product_object_id ID objek produk
hash_value entity.file.md5 Hash MD5 file
hash_value entity.file.sha1 Hash SHA1 file
hash_value entity.file.sha256 Hash SHA256 file
file_size entity.file.size Ukuran file dalam byte
fuzzy_hash_value entity.file.ssdeep Hash SSDEEP file
file_path entity.file.full_path Jalur file lengkap
ip_address_value entity.ip Alamat IP
country entity.location.country_or_region Negara atau region
administrativeArea entity.location.state Negara bagian atau provinsi
port entity.port Nomor port
file_name_label entity.resource.attribute.labels Label atribut untuk resource
url entity.url URL
organisationInfo entity.user.department Departemen
email_address, email entity.user.email_addresses Alamat email
organisationName entity.user.userid ID Pengguna
ioc.domain_and_ports.domain Nama domain
indicator_type, confidence_value ioc.feed_name Nama feed
ip_address_value, target_ip ioc.ip_and_ports.ip_address Alamat IP
port ioc.ip_and_ports.ports Port
description, desc1, ttp_description metadata.description Deskripsi
entity_type metadata.entity_type Jenis entitas
start_time metadata.interval.start_time Waktu mulai interval
object_id metadata.product_entity_id ID entity produk
sightings_count_label metadata.source_labels Label sumber
security_result_data, ttp_security_result metadata.threat Informasi ancaman
metadata.vendor_name Nama vendor atau perusahaan
metadata.product_name Nama produk
address_label, subject_label, file_label security_result.about.labels Label tentang hasil keamanan
indicator_type security_result_data.category_details Detail kategori
desc1 security_result_data.description Deskripsi
confidence_value security_result_data.severity Tingkat keparahan
host, domain_name target.hostname Nama host target
target_ip target.ip Alamat IP target
domain_name target.url URL Target
malware_category ttp_security_result.category_details Detail kategori untuk TTP
ttp_id_label ttp_security_result.detection_fields Kolom deteksi untuk TTP
ttp_description ttp_security_result.description Deskripsi untuk TTP
ttp_summary ttp_security_result.summary Ringkasan untuk TTP

Log Perubahan

Melihat Log Perubahan untuk parser ini

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