Mengumpulkan log SFTP VanDyke VShell

Didukung di:

Dokumen ini menjelaskan cara menyerap log SFTP VanDyke VShell ke Google Security Operations menggunakan Bindplane dengan Syslog atau Amazon S3 dengan pengirim log. Parser mengubah log mentah menjadi format UDM terstruktur. Alat ini menangani format JSON dan SYSLOG, mengekstrak kolom yang relevan seperti alamat IP, port, dan detail peristiwa, serta melengkapi data dengan informasi kontekstual seperti detail platform dan tingkat keparahan keamanan.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Akses istimewa ke server atau konsol pengelolaan VanDyke VShell
  • Untuk Opsi 1: Host Windows 2016 atau yang lebih baru atau Linux dengan systemd untuk agen Bindplane
  • Untuk Opsi 2: Akun AWS dengan akses S3 dan NXLog/Fluent Bit di server VShell

Opsi 1: Integrasi melalui Bindplane dan Syslog

Opsi ini menyediakan streaming log real-time dengan latensi minimal dan direkomendasikan untuk sebagian besar deployment.

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

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

Instal agen Bindplane di sistem operasi Windows atau Linux Anda sesuai dengan petunjuk berikut.

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 mengirimkannya ke Google SecOps

  1. Akses file konfigurasi:

    1. Cari 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_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: YOUR_CUSTOMER_ID
        endpoint: malachiteingestion-pa.googleapis.com
        # Custom log type - requires parser extension
        log_type: 'VANDYKE_SFTP'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.
    • Ganti <customer_id> dengan ID pelanggan yang sebenarnya.
    • Ganti /path/to/ingestion-authentication-file.json dengan jalur tempat file autentikasi disimpan di bagian Mendapatkan file autentikasi penyerapan Google SecOps.
    • Untuk TCP, bukan UDP, ganti udplog dengan tcplog.

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 penerusan Syslog di VanDyke VShell

Untuk VShell di Windows

  1. Login ke VShell Control Panel.
  2. Buka setelan Logging.
  3. Konfigurasi logging syslog jarak jauh:
    • Aktifkan logging ke server syslog jarak jauh.
    • Alamat server: Masukkan alamat IP agen Bindplane.
    • Port: Masukkan 514 (atau port yang Anda konfigurasi).
    • Protocol: Pilih UDP (atau TCP jika dikonfigurasi).
    • Grup pesan: Pilih Koneksi, Autentikasi, SFTP, FTPS, HTTPS, Error, Peringatan, dan Informasi.
  4. Klik Terapkan > Oke.

Untuk VShell di Linux/macOS

  1. Edit file vshelld_config (biasanya /etc/vshell/vshelld_config).
  2. Konfigurasikan parameter berikut:

    SyslogFacility LOG_LOCAL3
    LogLevel INFO
    
  3. Konfigurasi syslog sistem Anda untuk meneruskan LOG_LOCAL3 ke agen BindPlane:

    • Edit /etc/rsyslog.conf atau /etc/syslog-ng/syslog-ng.conf.
    • Tambahkan: local3.* @bindplane-agent-ip:514 (untuk UDP) atau local3.* @@bindplane-agent-ip:514 (untuk TCP).
  4. Mulai ulang layanan VShell dan layanan syslog:

    sudo systemctl restart vshelld
    sudo systemctl restart rsyslog
    

Opsi 2: Integrasi melalui AWS S3

Opsi ini berguna untuk lingkungan yang memerlukan pengarsipan log atau tempat penerusan syslog langsung tidak memungkinkan. Perhatikan bahwa hal ini memerlukan pengirim log di server VShell karena AWS Lambda tidak dapat mengakses file lokal.

Mengonfigurasi bucket AWS S3 dan IAM untuk Google SecOps

  1. Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket.
  2. Simpan Name dan Region bucket untuk referensi di masa mendatang (misalnya, vandyke-sftp-logs).
  3. Buat Pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
  4. Pilih Pengguna yang dibuat.
  5. Pilih tab Kredensial keamanan.
  6. Klik Create Access Key di bagian Access Keys.
  7. Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
  8. Klik Berikutnya.
  9. Opsional: Tambahkan tag deskripsi.
  10. Klik Create access key.
  11. Klik Download CSV file untuk menyimpan Access Key dan Secret Access Key untuk referensi di masa mendatang.
  12. Klik Done.
  13. Pilih tab Permissions.
  14. Klik Tambahkan izin di bagian Kebijakan izin.
  15. Pilih Tambahkan izin.
  16. Pilih Lampirkan kebijakan secara langsung.
  17. Cari kebijakan AmazonS3FullAccess.
  18. Pilih kebijakan.
  19. Klik Berikutnya.
  20. Klik Add permissions.

Menginstal dan Mengonfigurasi Log Shipper di VShell Server

Pilih salah satu opsi berikut berdasarkan sistem operasi Anda:

Opsi A: Menggunakan NXLog (Windows)

  1. Download dan instal NXLog Community Edition dari nxlog.co.
  2. Edit C:\Program Files\nxlog\conf\nxlog.conf:

    <Extension json>
        Module      xm_json
    </Extension>
    
    <Extension syslog>
        Module      xm_syslog
    </Extension>
    
    <Input vshell_log>
        Module      im_file
        File        "C:\\Program Files\\VanDyke Software\\VShell\\Log\\VShell.log"
        SavePos     TRUE
    
        <Exec>
            # Parse VShell log format
            if $raw_event =~ /^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) "(.*)"$/
            {
                $EventTime = $1;
                $Protocol = $2;
                $EventType = $3;
                $SessionID = $4;
                $ClientIP = $5;
                $ClientPort = $6;
                $Username = $7;
                $Filename = $9;
                $BytesDown = $10;
                $BytesUp = $11;
                $ServerIP = $14;
                $ServerPort = $15;
                $EventMessage = $16;
    
                # Convert to JSON
                to_json();
            }
        </Exec>
    </Input>
    
    <Output s3>
        Module      om_exec
        Command     C:\scripts\upload_to_s3.ps1
        Args        %FILEPATH%
    </Output>
    
    <Route vshell_to_s3>
        Path        vshell_log => s3
    </Route>
    
  3. Buat skrip PowerShell C:\scripts\upload_to_s3.ps1:

    param([string]$FilePath)
    
    $bucket = "vandyke-sftp-logs"
    $key = "vshell/$(Get-Date -Format 'yyyy/MM/dd/HH')/$(Get-Date -Format 'yyyyMMddHHmmss').json"
    
    # Batch logs
    $logs = Get-Content $FilePath | ConvertFrom-Json
    $jsonLines = $logs | ForEach-Object { $_ | ConvertTo-Json -Compress }
    $content = $jsonLines -join "`n"
    
    # Upload to S3
    Write-S3Object -BucketName $bucket -Key $key -Content $content -ProfileName default
    
  4. Buat profil kredensial AWS:

    Set-AWSCredential -AccessKey YOUR_ACCESS_KEY -SecretKey YOUR_SECRET_KEY -StoreAs default
    
    1. Jadwalkan skrip PowerShell agar berjalan setiap 5 menit menggunakan Task Scheduler.

Opsi B: Menggunakan Fluent Bit (Linux)

  1. Instal Fluent Bit:

    curl https://raw.githubusercontent.com/fluent/fluent-bit/master/install.sh | sh
    
  2. Konfigurasi /etc/fluent-bit/fluent-bit.conf:

    [SERVICE]
        Flush        5
        Daemon       On
        Log_Level    info
    
    [INPUT]
        Name              tail
        Path              /var/log/vshell/vshell.log
        Parser            vshell_parser
        Tag               vshell.*
        Refresh_Interval  5
        Mem_Buf_Limit     10MB
    
    [PARSER]
        Name        vshell_parser
        Format      regex
        Regex       ^(?<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) (?<protocol>\S+) (?<event_type>\S+) (?<session_id>\S+) (?<client_ip>\S+) (?<client_port>\S+) (?<username>\S+) (?<dash>\S+) (?<filename>\S+) (?<bytes_down>\S+) (?<bytes_up>\S+) (?<field1>\S+) (?<field2>\S+) (?<server_ip>\S+) (?<server_port>\S+) "(?<event_message>[^"]*)"
    
    [OUTPUT]
        Name                  s3
        Match                 vshell.*
        bucket                vandyke-sftp-logs
        region                us-east-1
        use_put_object        On
        total_file_size       5M
        upload_timeout        10s
        compression           gzip
        s3_key_format         /vshell/%Y/%m/%d/%H/%{hostname}_%{uuid}.json.gz
    
  3. Konfigurasi kredensial AWS:

    export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY
    export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY
    
  4. Mulai Fluent Bit:

    sudo systemctl enable fluent-bit
    sudo systemctl start fluent-bit
    

Mengonfigurasi feed di Google SecOps untuk menyerap log VanDyke VShell

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Di kolom Nama feed, masukkan nama untuk feed (misalnya, VanDyke VShell SFTP logs).
  4. Pilih Amazon S3 V2 sebagai Jenis sumber.
  5. Pilih VanDyke SFTP sebagai Log type (kustom).
  6. Klik Berikutnya.
  7. Tentukan nilai untuk parameter input berikut:
    • URI S3: s3://vandyke-sftp-logs/vshell/