Mengumpulkan log Cisco IOS

Didukung di:

Dokumen ini menjelaskan cara menyerap log Cisco Internetwork Operating System (IOS) ke Google Security Operations menggunakan agen Bindplane. Parser mengubah pesan syslog mentah menjadi format terstruktur yang sesuai dengan Model Data Terpadu (UDM). Pertama-tama, alur ini melakukan inisialisasi dan mengekstrak kolom menggunakan pola grok berdasarkan format syslog Cisco IOS yang umum. Kemudian, alat ini memetakan kolom yang diekstrak ke kolom UDM yang sesuai, mengategorikan peristiwa, dan memperkaya data dengan konteks tambahan sebelum akhirnya menghasilkan log terstruktur dalam format UDM.

Sebelum memulai

  • Pastikan Anda memiliki instance Google SecOps.
  • Pastikan Anda menggunakan Windows 2016 atau yang lebih baru, atau host Linux dengan systemd.
  • Jika berjalan di balik proxy, pastikan port firewall terbuka.
  • Pastikan Anda memiliki akses dengan hak istimewa ke Cisco IOS.

Mendapatkan file autentikasi penyerapan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Proses Transfer. Simpan file dengan aman di sistem tempat Bindplane akan diinstal.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Profil.
  3. Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.

Menginstal agen Bindplane

Penginstalan Windows

  1. Buka Command Prompt atau PowerShell sebagai administrator.
  2. Jalankan perintah berikut:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Penginstalan Linux

  1. Buka terminal dengan hak istimewa root atau sudo.
  2. Jalankan perintah berikut:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Referensi penginstalan tambahan

Mengonfigurasi agen Bindplane untuk menyerap Syslog dan mengirim ke Google SecOps

  1. Akses file konfigurasi:

    1. Temukan file config.yaml. Biasanya, file ini berada di direktori /etc/bindplane-agent/ di Linux atau di direktori penginstalan di Windows.
    2. Buka file menggunakan editor teks (misalnya, nano, vi, atau Notepad).
  2. Edit file config.yaml sebagai berikut:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: CISCO_IOS
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.

  4. Ganti <customer_id> dengan ID pelanggan yang sebenarnya.

  5. Perbarui /path/to/ingestion-authentication-file.json ke jalur tempat file autentikasi disimpan di bagian Mendapatkan file autentikasi penyerapan Google SecOps.

Mulai ulang agen Bindplane untuk menerapkan perubahan

  • Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:

    sudo systemctl restart bindplane-agent
    
  • Untuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Mengonfigurasi Syslog di Cisco IOS

  1. Login ke Cisco IOS.
  2. Tingkatkan hak istimewa dengan memasukkan perintah berikut:

    enable
    
  3. Beralih ke mode konfigurasi dengan memasukkan perintah berikut:

    conf t
    
  4. Masukkan perintah berikut:

    logging host <bindplane-server-ip> transport <tcp/udp> port <port-number>
    logging source-interface <interface>
    
    • Ganti <bindplane-server-ip> dengan alamat IP agen Bindplane, dan <port-number> dengan port yang dikonfigurasi.
    • Ganti <tcp/udp> dengan protokol pemrosesan yang dikonfigurasi di agen Bindplane; misalnya, udp.
    • Ganti <interface> dengan ID antarmuka Cisco.
  5. Tetapkan tingkat prioritas dengan memasukkan perintah berikut:

    logging trap Informational 
    logging console Informational 
    logging severity Informational
    
  6. Tetapkan fasilitas syslog:

    logging facility syslog
    
  7. Simpan dan keluar.

  8. Konfigurasikan setelan agar tetap ada setelah mulai ulang dengan memasukkan perintah berikut:

    copy running-config startup-config
    

Tabel Pemetaan UDM

Kolom log Pemetaan UDM Logika
AcsSessionID network.session_id Nilai diambil dari kolom AcsSessionID.
AcctRequest-Flags security_result.summary Nilai diambil dari kolom AcctRequest-Flags.
AcctRequest-Flags security_result.action Jika AcctRequest-Flags berisi Start, tetapkan ke ALLOW. Jika AcctRequest-Flags berisi Stop, tetapkan ke BLOCK.
AuthenticationIdentityStore additional.fields.key = AuthenticationIdentityStore, value = AuthenticationIdentityStore Nilai diambil dari kolom AuthenticationIdentityStore.
AuthenticationMethod additional.fields.key = AuthenticationMethod, value = AuthenticationMethod Nilai diambil dari kolom AuthenticationMethod.
AuthenticationStatus security_result.summary Nilai diambil dari kolom AuthenticationStatus.
Authen-Method security_result.detection_fields.key = Authen-Method, value = Authen-Method Nilai diambil dari kolom Authen-Method.
Authen-Method extensions.auth.type Jika Authen-Method berisi TacacsPlus, tetapkan ke TACACS.
AVPair_priv-lvl security_result.detection_fields.key = AVPair_priv-lvl, value = AVPair_priv-lvl Nilai diambil dari kolom AVPair_priv-lvl.
AVPair_start_time additional.fields.key = AVPair_start_time, value = AVPair_start_time Nilai diambil dari kolom AVPair_start_time.
AVPair_task_id additional.fields.key = AVPair_task_id, value = AVPair_task_id Nilai diambil dari kolom AVPair_task_id.
AVPair_timezone additional.fields.key = AVPair_timezone, value = AVPair_timezone Nilai diambil dari kolom AVPair_timezone.
auditid metadata.product_log_id Nilai diambil dari kolom auditid.
cisco_facility Tidak dipetakan ke objek IDM.
cisco_message metadata.description Nilai diambil dari kolom cisco_message.
cisco_mnemonic security_result.rule_name Nilai diambil dari kolom cisco_mnemonic.
cisco_severity security_result.severity Dipetakan ke berbagai tingkat keparahan berdasarkan nilai: 0: NOTIFIKASI, 1: KRITIS, 2: TINGGI, 3: ERROR, 4: SEDANG, 5: RENDAH, 6: INFORMASI, 7: INFORMASI.
cisco_severity security_result.severity_details Dipetakan ke detail tingkat keparahan yang berbeda berdasarkan nilai: 0: System unusable, 1: Immediate action needed, 2: Critical condition, 3: Error condition, 4: Warning condition, 5: Normal but significant condition, 6: Informational message only, 7: Appears during debugging only.
cisco_tag metadata.product_event_type Nilai diambil dari kolom cisco_tag.
cisco_tag metadata.event_type Dipetakan ke berbagai jenis peristiwa berdasarkan nilai: SYS-6-LOGGINGHOST_STARTSTOP, TRACK-6-STATE, SYS-3-LOGGINGHOST_FAIL, CRYPTO-4-IKMP_NO_SA, HA_EM-3-FMPD_ACTION_NOTRACK, HA_EM-3-FMPD_ERROR: GENERIC_EVENT; IPSEC-3-REPLAY_ERROR, CRYPTO-4-RECVD_PKT_INV_SPI, IPSEC-3-HMAC_ERROR, FW-6-DROP_PKT, SEC-6-IPACCESSLOGP: NETWORK_UNCATEGORIZED; CRYPTO-4-IKMP_BAD_MESSAGE, CRYPTO-6-IKMP_NOT_ENCRYPTED, CRYPTO-6-IKMP_MODE_FAILURE: STATUS_UNCATEGORIZED; SYS-5-CONFIG_I: USER_UNCATEGORIZED.
ClientLatency additional.fields.key = ClientLatency, value = ClientLatency Nilai diambil dari kolom ClientLatency.
CmdSet additional.fields.key = CmdSet, value = CmdSet Nilai diambil dari kolom CmdSet.
perintah principal.process.command_line Nilai diambil dari kolom perintah.
CPMSessionID additional.fields.key = CPMSessionID, value = CPMSessionID Nilai diambil dari kolom CPMSessionID.
deskripsi metadata.description Nilai diambil dari kolom deskripsi.
DestinationIPAddress target.asset.ip Nilai diambil dari kolom DestinationIPAddress.
DestinationIPAddress target.ip Nilai diambil dari kolom DestinationIPAddress.
DestinationPort target.port Nilai diambil dari kolom DestinationPort.
Device_IP_Address principal.asset.ip Nilai diambil dari kolom Device_IP_Address.
Device_IP_Address principal.ip Nilai diambil dari kolom Device_IP_Address.
Device_Type additional.fields.key = Device_Type, value = Device_Type Nilai diambil dari kolom Device_Type.
dst_ip target.asset.ip Nilai diambil dari kolom dst_ip.
dst_ip target.ip Nilai diambil dari kolom dst_ip.
dst_port target.port Nilai diambil dari kolom dst_port.
dst_user target.user.userid Nilai diambil dari kolom dst_user.
EnableFlag security_result.detection_fields.key = EnableFlag, value = EnableFlag Nilai diambil dari kolom EnableFlag.
IdentityGroup additional.fields.key = IdentityGroup, value = IdentityGroup Nilai diambil dari kolom IdentityGroup.
IdentitySelectionMatchedRule security_result.detection_fields.key = IdentitySelectionMatchedRule, value = IdentitySelectionMatchedRule Nilai diambil dari kolom IdentitySelectionMatchedRule.
intermediary_host intermediary.hostname Nilai diambil dari kolom intermediary_host.
intermediary_ip intermediary.ip Nilai diambil dari kolom intermediary_ip.
IPSEC additional.fields.key = IPSEC, value = IPSEC Nilai diambil dari kolom IPSEC.
ISEPolicySetName extensions.auth.type Jika ISEPolicySetName berisi Tacacs, tetapkan ke TACACS.
IsMachineAuthentication additional.fields.key = IsMachineAuthentication, value = IsMachineAuthentication Nilai diambil dari kolom IsMachineAuthentication.
IsMachineIdentity security_result.detection_fields.key = IsMachineIdentity, value = IsMachineIdentity Nilai diambil dari kolom IsMachineIdentity.
Lokasi additional.fields.key = Location, value = Location Nilai diambil dari kolom Lokasi.
MatchedCommandSet additional.fields.key = MatchedCommandSet, value = MatchedCommandSet Nilai diambil dari kolom MatchedCommandSet.
pesan Tidak dipetakan ke objek IDM.
metadata_event_type metadata.event_type Nilai diambil dari kolom metadata_event_type. Jika kosong atau GENERIC_EVENT, tetapkan ke NETWORK_UNCATEGORIZED jika principal_mid_present dan target_mid_present bernilai benar, USER_UNCATEGORIZED jika principal_userid_present bernilai benar, STATUS_UPDATE jika principal_mid_present bernilai benar, atau GENERIC_EVENT jika tidak. Jika Layanan berisi Login, tetapkan ke USER_LOGIN jika principal_userid_present, principal_mid_present, dan target_mid_present bernilai benar, atau USER_UNCATEGORIZED jika principal_userid_present bernilai benar.
Model_Name additional.fields.key = Model_Name, value = Model_Name Nilai diambil dari kolom Model_Name.
Nama additional.fields.key = Name, value = Name Nilai diambil dari kolom Nama.
Network_Device_Profile additional.fields.key = Network_Device_Profile, value = Network_Device_Profile Nilai diambil dari kolom Network_Device_Profile.
NetworkDeviceGroups additional.fields.key = NetworkDeviceGroups, value = NetworkDeviceGroups Nilai diambil dari kolom NetworkDeviceGroups.
NetworkDeviceName principal.asset.hostname Nilai diambil dari kolom NetworkDeviceName.
NetworkDeviceName principal.hostname Nilai diambil dari kolom NetworkDeviceName.
NetworkDeviceProfileId principal.resource.product_object_id Nilai diambil dari kolom NetworkDeviceProfileId.
pid principal.process.pid Nilai diambil dari kolom pid.
Port principal.resource.attribute.labels.key = Port, value = Port Nilai diambil dari kolom Port.
Tingkat Hak Istimewa security_result.detection_fields.key = Privilege-Level, value = Privilege-Level Nilai diambil dari kolom Privilege-Level.
product_event_type metadata.product_event_type Nilai diambil dari kolom product_event_type.
Protokol additional.fields.key = Protocol, value = Protocol Nilai diambil dari kolom Protocol.
protokol network.application_protocol Jika protokol adalah HTTPS, tetapkan ke HTTPS.
protokol network.ip_protocol Jika protokol adalah TCP atau UDP, tetapkan ke nilai protokol huruf besar.
alasan security_result.summary Nilai diambil dari kolom alasan.
region principal.location.country_or_region Nilai diambil dari kolom region.
Remote-Address target.asset.ip Nilai diambil dari kolom Remote-Address setelah memvalidasinya sebagai alamat IP.
Remote-Address target.ip Nilai diambil dari kolom Remote-Address setelah memvalidasinya sebagai alamat IP.
RequestLatency security_result.detection_fields.key = RequestLatency, value = RequestLatency Nilai diambil dari kolom RequestLatency.
Respons additional.fields.key = Response, value = Response Nilai diambil dari kolom Respons.
SelectedAccessService security_result.action_details Nilai diambil dari kolom SelectedAccessService.
SelectedAuthenticationIdentityStores security_result.detection_fields.key = SelectedAuthenticationIdentityStores, value = SelectedAuthenticationIdentityStores Nilai diambil dari kolom SelectedAuthenticationIdentityStores.
SelectedCommandSet additional.fields.key = SelectedCommandSet, value = SelectedCommandSet Nilai diambil dari kolom SelectedCommandSet.
Layanan additional.fields.key = Service, value = Service Nilai diambil dari kolom Layanan.
Service-Argument additional.fields.key = Service-Argument, value = Service-Argument Nilai diambil dari kolom Service-Argument.
tingkat keseriusan, security_result.severity Jika keparahan berisi Notice, tetapkan ke INFORMASI.
Software_Version additional.fields.key = Software_Version, value = Software_Version Nilai diambil dari kolom Software_Version.
source_facility principal.asset.hostname Nilai diambil dari kolom source_facility.
source_facility principal.hostname Nilai diambil dari kolom source_facility.
src_ip principal.asset.ip Nilai diambil dari kolom src_ip.
src_ip principal.ip Nilai diambil dari kolom src_ip.
src_mac principal.mac Nilai diambil dari kolom src_mac setelah mengganti . dengan :.
src_port principal.port Nilai diambil dari kolom src_port.
src_user_id principal.user.userid Nilai diambil dari kolom src_user_id. Jika kosong, ambil nilai dari kolom Pengguna. Jika masih kosong, ambil nilai dari kolom StepData_9.
src_user_name principal.user.user_display_name Nilai diambil dari kolom src_user_name.
Langkah additional.fields.key = Step, value = Step Nilai diambil dari kolom Langkah.
StepData_10 principal.asset.hostname Nilai diambil dari kolom StepData_10.
StepData_10 principal.hostname Nilai diambil dari kolom StepData_10.
StepData_13 security_result.summary Nilai diambil dari kolom StepData_13.
StepData_14 security_result.detection_fields.key = StepData_14, value = StepData_14 Nilai diambil dari kolom StepData_14.
StepData_15 security_result.detection_fields.key = StepData_15, value = StepData_15 Nilai diambil dari kolom StepData_15.
StepData_20 security_result.detection_fields.key = StepData_20, value = StepData_20 Nilai diambil dari kolom StepData_20.
StepData_21 security_result.detection_fields.key = StepData_21, value = StepData_21 Nilai diambil dari kolom StepData_21.
StepData_3 additional.fields.key = StepData_3, value = StepData_3 Nilai diambil dari kolom StepData_3.
StepData_4 security_result.detection_fields.key = StepData_4, value = StepData_4 Nilai diambil dari kolom StepData_4.
StepData_6 security_result.detection_fields.key = StepData_6, value = StepData_6 Nilai diambil dari kolom StepData_6.
StepData_7 security_result.detection_fields.key = StepData_7, value = StepData_7 Nilai diambil dari kolom StepData_7.
StepData_8 security_result.detection_fields.key = StepData_8, value = StepData_8 Nilai diambil dari kolom StepData_8.
StepData_9 principal.user.userid Nilai diambil dari kolom StepData_9 jika kolom src_user_id dan User kosong.
target_host target.asset.hostname Nilai diambil dari kolom target_host.
target_host target.hostname Nilai diambil dari kolom target_host.
timestamp metadata.event_timestamp Nilai diambil dari kolom stempel waktu setelah menghapus spasi tambahan dan mengurai tanggal.
TotalAuthenLatency additional.fields.key = TotalAuthenLatency, value = TotalAuthenLatency Nilai diambil dari kolom TotalAuthenLatency.
ts metadata.event_timestamp Nilai diambil dari kolom ts setelah mengurai tanggal.
Jenis security_result.category_details Nilai diambil dari kolom Jenis.
Pengguna principal.user.userid Nilai diambil dari kolom Pengguna jika src_user_id kosong.
UserType additional.fields.key = UserType, value = UserType Nilai diambil dari kolom UserType.
metadata.vendor_name Tetapkan ke CISCO.
metadata.product_name Tetapkan ke CISCO_IOS.
metadata.log_type Tetapkan ke CISCO_IOS.

Perubahan

2025-02-11

Peningkatan:

  • Menambahkan dukungan untuk format log syslog baru.

2025-01-23

Peningkatan:

  • Menambahkan dukungan untuk format log syslog baru.

2025-01-02

Peningkatan:

  • Menambahkan dukungan untuk format log syslog baru.

2024-12-27

Peningkatan:

  • Menambahkan dukungan untuk format log syslog baru.

2024-11-25

Peningkatan:

  • Menambahkan pola Grok untuk mengurai log baru.
  • Nama host yang dipetakan di header syslog ke intermediary.hostname dari target.hostname.

2024-11-19

Peningkatan:

  • Menambahkan dukungan untuk format log syslog baru.

2024-10-28

Peningkatan:

  • Menambahkan pola Grok untuk mengurai log baru.

2024-10-24

Peningkatan:

  • Menambahkan pola Grok untuk mengurai log baru.

2024-10-01

Peningkatan:

  • Menambahkan pola Grok untuk mengurai log baru.

2024-07-04

Peningkatan:

  • Menambahkan dukungan untuk pola log syslog baru.

2024-04-02

Peningkatan:

  • Menambahkan pola Grok baru untuk mengurai jenis log baru.
  • Memetakan kolom baru ke kolom UDM yang sesuai.

2023-10-04

Peningkatan:

  • Menambahkan pola Grok baru untuk mengurai jenis log baru.
  • Memetakan source_facility ke principal.hostname.

2023-08-11

Peningkatan:

  • Memetakan intermediary.ip saat pesan berisi HOST=.
  • Memetakan principal.user.userid saat pesan berisi User:.
  • Memetakan principal.process.command_line saat pesan berisi command:.
  • Memetakan target.user.userid saat pesan berisi username.
  • Memetakan metadata.event_type ke metadata.event_type yang lebih spesifik.

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