Mengumpulkan data Microsoft Windows AD

Dokumen ini menyertakan informasi berikut:

  • Arsitektur deployment dan langkah-langkah penginstalan, serta konfigurasi yang diperlukan yang menghasilkan log yang didukung oleh parser Chronicle untuk peristiwa Microsoft Windows Active Directory. Untuk mengetahui ringkasan penyerapan data Chronicle, lihat Penyerapan data ke Chronicle.
  • Informasi tentang cara parser memetakan kolom dalam log asli ke kolom Chronicle Unified Data Model.

Informasi dalam dokumen ini berlaku untuk parser dengan label penyerapan WINDOWS_AD. Label penyerapan mengidentifikasi parser mana yang menormalisasi data log mentah ke format UDM terstruktur.

Sebelum memulai

Diagram ini menggambarkan komponen dasar yang direkomendasikan dalam arsitektur deployment untuk mengumpulkan dan mengirim peristiwa Microsoft Windows ke Chronicle. Bandingkan informasi ini dengan lingkungan Anda untuk memastikan komponen tersebut diinstal. Setiap deployment pelanggan akan berbeda dari representasi ini dan mungkin lebih kompleks. Hal berikut diperlukan:

  • Semua sistem dalam arsitektur deployment dikonfigurasi dengan zona waktu UTC.
  • Skrip PowerShell dibuat dan dikonfigurasi pada setiap server Microsoft Windows AD untuk mengumpulkan data USER_CONTEXT dan ASSET_CONTEXT.
  • NXLog diinstal di setiap server Microsoft Windows AD untuk mengirim data ke server pusat Microsoft Windows atau Linux.
  • Forwarder Chronicle diinstal di server pusat Microsoft Windows atau Linux untuk meneruskan data log ke Chronicle.

    Arsitektur deployment

Meninjau perangkat dan versi yang didukung

Parser Chronicle mendukung log dari versi server Microsoft Windows berikut. Microsoft Windows Server dirilis dengan edisi berikut: Foundation, Essentials, Standard, dan Datacenter. Skema peristiwa untuk log yang dihasilkan oleh setiap edisi tidak berbeda.

  • Microsoft Windows Server 2019
  • Microsoft Windows Server 2016
  • Microsoft Windows Server 2012

Parser Chronicle mendukung log yang dikumpulkan oleh Community atau Enterprise Edition NXLog.

Meninjau jenis log yang didukung

Parser Chronicle akan mengurai dan menormalisasi data yang diambil dari User Context dan Asset Context. Alat ini mendukung log yang dibuat dengan teks bahasa Inggris dan tidak didukung dengan log yang dibuat dalam bahasa selain bahasa Inggris.

Mengonfigurasi server Microsoft Windows AD

Langkah-langkah untuk mengonfigurasi server Microsoft Windows AD dalam arsitektur deployment:

  1. Konfigurasikan semua sistem dengan zona waktu UTC.
  2. Di setiap server Microsoft Windows Active Directory, buat dan konfigurasi skrip PowerShell untuk mengumpulkan data log ke dalam file output. NXLog membaca file {i>output<i} dan mengirim data ke server pusat Microsoft Windows atau Linux.
  3. Membuat skrip Powershell. Lihat contoh berikut. Ubah nilai $OUTPUT_FILENAME ke lokasi tempat file output harus ditulis. File ini akan dibaca oleh NXLog. Data harus disimpan dalam format JSON. Setel encoding ke utf8. Gunakan parameter -Filter, bukan parameter -LDAPFilter saat memanggil cmdlet Get-ADUser dan Get-ADComputer.

    # Set the location where the log file will be written
    $OUTPUT_FILENAME="<Path_of_the_output_file>"
    
    If (Test-Path -Path $OUTPUT_FILENAME) { Remove-Item -path $OUTPUT_FILENAME -ErrorAction SilentlyContinue}
    
    # USER_CONTEXT: Gets all Active Directory users and their properties.
    Get-ADUser -Filter * -properties samAccountName | % { Get-ADUser $_.SamAccountName -properties * | ConvertTo-JSON -compress | Out-File -encoding utf8 $OUTPUT_FILENAME -Append }
    
    # ASSET_CONTEXT: Gets all Active Directory assets and their properties.
    Get-ADComputer -Filter * -properties samAccountName | % { Get-ADComputer $_.SamAccountName -properties * | ConvertTo-JSON -compress | Out-File -encoding utf8 $OUTPUT_FILENAME -Append }
    
  4. Buat tugas berulang yang menjalankan skrip untuk mengambil dan menulis data ke file output.

    1. Buka aplikasi Task Scheduler.
    2. Klik Create task.
    3. Masukkan nama dan deskripsi tugas.
    4. Pilih kotak centang Jalankan dengan hak istimewa tertinggi untuk memastikan semua data telah diambil.
    5. Di tab Triggers, tentukan kapan Anda ingin mengulangi tugas.
    6. Di tab Action, tambahkan tindakan baru dan berikan jalur file tempat skrip disimpan.
  5. Instal Agen NXLog di setiap server Microsoft Windows Active Directory. Aplikasi ini meneruskan log ke server pusat Microsoft Windows atau Linux. Ikuti dokumentasi NXLog.

  6. Buat file konfigurasi untuk setiap instance NXLog. Gunakan modul im_file NXLog untuk membaca dari file dan mengurai baris ke dalam kolom. Gunakan modul om_tcp untuk meneruskan data ke server pusat Microsoft Windows atau Linux.

    Berikut adalah contoh konfigurasi NXLog. Ganti nilai <hostname> dan <port> dengan informasi tentang Microsoft Windows atau Server Linux pusat tujuan. Di bagian <Input in_adcontext> dan properti File, tambahkan jalur file log output yang ditulis oleh skrip Powershell. Selalu tetapkan DirCheckInterval dan PollInterval. Jika ini tidak ditentukan, NXLog akan membuat polling untuk file setiap 1 detik.

    define ROOT C:\Program Files\nxlog
    define ADCONTEXT_OUTPUT_DESTINATION_ADDRESS <hostname>
    define ADCONTEXT_OUTPUT_DESTINATION_PORT <port>
    
    Moduledir   %ROOT%\modules
    CacheDir    %ROOT%\data
    Pidfile     %ROOT%\data\nxlog.pid
    SpoolDir    %ROOT%\data
    LogFile     %ROOT%\data\nxlog.log
    
    <Input in_adcontext>
        Module im_file
        File "<Path_of_the_output_file>"
        DirCheckInterval 3600
        PollInterval 3600
    </Input>
    
    <Output out_chronicle_adcontext>
        Module  om_tcp
        Host    %ADCONTEXT_OUTPUT_DESTINATION_ADDRESS%
        Port    %ADCONTEXT_OUTPUT_DESTINATION_PORT%
    </Output>
    
    <Route ad_context_to_chronicle>
        Path in_adcontext => out_chronicle_adcontext
    </Route>
    
  7. Mulai layanan NXLog di setiap sistem.

Konfigurasikan server Microsoft Windows atau Linux pusat

Lihat artikel Menginstal dan mengonfigurasi forwarder di Linux atau Menginstal dan mengonfigurasi forwarder di Microsoft Windows untuk mengetahui informasi cara menginstal dan mengonfigurasi forwarder.

  1. Mengonfigurasi sistem dengan zona waktu UTC.
  2. Instal forwarder Chronicle di server Microsoft Windows atau Linux pusat.
  3. Konfigurasi penerusan Chronicle untuk mengirim log ke Chronicle. Berikut adalah contoh konfigurasi Forwarder.

      - syslog:
          common:
            enabled: true
            data_type: WINDOWS_AD
            batch_n_seconds: 10
            batch_n_bytes: 1048576
          tcp_address: 0.0.0.0:10518
          connection_timeout_sec: 60
    

Referensi pemetaan kolom: kolom log perangkat ke kolom UDM

Bagian ini menjelaskan cara parser memetakan kolom log asli ke kolom Model Data Terpadu.

Log Konteks Pengguna

Kolom NXLog Kolom UDM
GivenName entity.entity.user.first_name
Surname entity.entity.user.last_name
SamAccountName entity.entity.user.userid
SID.Value entity.entity.user.windows_sid
ObjectClass If the value is user,
entity.metadata.entity_type is set to USER
ObjectGuid If the ObjectGuid log field value is not empty, then the ObjectGuid log field is mapped to the entity.entity.user.product_object_id UDM field.
Else, If the objectGUID log field value is not empty, then the objectGUID log field is mapped to the entity.entity.user.product_object_id UDM field.
Else, If the ObjectGUID log field value is not empty, then the ObjectGUID log field is mapped to the entity.entity.user.product_object_id UDM field.
objectGUID If the ObjectGuid log field value is not empty, then the ObjectGuid log field is mapped to the entity.entity.user.product_object_id UDM field.
Else, If the objectGUID log field value is not empty, then the objectGUID log field is mapped to the entity.entity.user.product_object_id UDM field.
Else, If the ObjectGUID log field value is not empty, then the ObjectGUID log field is mapped to the entity.entity.user.product_object_id UDM field.
ObjectGUID If the ObjectGuid log field value is not empty, then the ObjectGuid log field is mapped to the entity.entity.user.product_object_id UDM field.
Else, If the objectGUID log field value is not empty, then the objectGUID log field is mapped to the entity.entity.user.product_object_id UDM field.
Else, If the ObjectGUID log field value is not empty, then the ObjectGUID log field is mapped to the entity.entity.user.product_object_id UDM field.
AccountExpirationDate entity.entity.user.account_expiration_time
badPwdCount entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value
CanonicalName entity.entity.administrative_domain
City entity.entity.user.personal_address.city
Company entity.entity.user.company_name
Country entity.entity.user.personal_address.country_or_region
Department entity.entity.user.department
Description entity.metadata.description
DisplayName entity.entity.user.user_display_name
EmailAddress entity.entity.user.email_addresses
EmployeeID entity.entity.user.employee_id
HomeDirectory entity.entity.file.full_path
HomePage entity.entity.url
HomePhone entity.entity.user.phone_numbers
LastBadPasswordAttempt entity.entity.user.last_bad_password_attempt_time
lastLogoff entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value
lastLogon entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value
LastLogonDate entity.entity.user.last_login_time
Manager Values for GUID, SAMAccountname, SID all mapped to different UDM fields:
- SID is stored in manager.windows_sid
- Distinguished name (i.e. value in first CN) is stored in manager.user_display_name
- GUID,SamAccountName is stored in manager.userid
MemberOf The following fields in the first occurrence of CN are set:
entity.relations.entity.group.group_display_name
entity.relations.entity_type set to GROUP
entity.relations.relationship set t0 MEMBER
entity.relations.direction set to UNIDIRECTIONAL
MobilePhone entity.entity.user.phone_numbers
Office entity.entity.user.office_address.name
PasswordExpired entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value
PasswordLastSet entity.entity.user.last_password_change_time
PasswordNeverExpires entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value
PasswordNotRequired entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value
PrimaryGroup Following fields are set:
- entity.relations.entity.group.group_display_name
- entity.relations.entity_type set to GROUP
- entity.relations.relationship set to MEMBER
- entity.relations.direction set to UNIDIRECTIONAL
ServicePrincipalNames entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value
State entity.entity.user.personal_address.state
StreetAddress entity.entity.user.personal_address.name
Title entity.entity.user.title
whenCreated entity.user.attribute.creation_time
AccountLockoutTime entity.entity.user.account_lockout_time

Log Konteks Aset

Kolom NXLog Kolom UDM
DNSHostName entity.entity.asset.hostname
SamAccountName entity.entity.asset.asset_id
SID.Value entity.entity.user.windows_sid
ObjectClass If the value is computer, entity.metadata.entity_type set to ASSET
ObjectGuid If the ObjectGuid log field value is not empty, then the ObjectGuid log field is mapped to the entity.entity.asset.product_object_id UDM field.
Else, If the ObjectGUID log field value is not empty, then the ObjectGUID log field is mapped to the entity.entity.asset.product_object_id UDM field.
ObjectGUID If the ObjectGuid log field value is not empty, then the ObjectGuid log field is mapped to the entity.entity.asset.product_object_id UDM field.
Else, If the ObjectGUID log field value is not empty, then the ObjectGUID log field is mapped to the entity.entity.asset.product_object_id UDM field.
AccountExpirationDate entity.entity.user.account_expiration_time
badPwdCount entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value
CanonicalName entity.entity.administrative_domain
countryCode entity.entity.asset.location.country_or_region
Description entity.entity.metadata.description
HomePage entity.entity.url
IPv4Address entity.entity.asset.ip
IPv6Address entity.entity.asset.ip
LastBadPasswordAttempt entity.entity.user.last_bad_password_attempt_time
lastLogoff entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value
lastLogon entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value
LastLogonDate entity.entity.user.last_login_time
Location entity.entity.asset.location.name
ManagedBy The following fields are set:

entity.entity.user.user_display_name
entity.relations.entity_type set to USER
entity.relations.relationship set to ADMINISTERS
entity.relations.direction set to UNIDIRECTIONAL
ObjectCategory entity.entity.asset.category
OperatingSystem If the name contains Windows, entity.entity.asset.platform_software.platform field is set to WINDOWS.
OperatingSystemServicePack entity.entity.asset.platform_software.platform_patch_level
OperatingSystemVersion The field entity.entity.asset.platform_software.platform_version is set to %{OperatingSystem} - %{OperatingSystemVersion}
PasswordExpired entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value
PasswordLastSet entity.entity.user.last_password_change_time
PasswordNeverExpires entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value
PasswordNotRequired entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value
PrimaryGroup The following fields are set:
- entity.relations.entity.group.group_display_name
- entity.relations.entity_type set to GROUP
- entity.relations.relationship set to MEMBER
- entity.relations.direction set to UNIDIRECTIONAL
ServicePrincipalNames entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value
whenChanged entity.entity.asset.attribute.last_update_time
whenCreated entity.entity.asset.attribute.creation_time
AccountLockoutTime entity.entity.user.account_lockout_time