Menyerap pesan Syslog dan CEF ke Microsoft Sentinel dengan Agen Azure Monitor

Artikel ini menjelaskan cara menggunakan Syslog melalui AMA dan Common Event Format (CEF) melalui konektor AMA untuk memfilter dan menyerap pesan Syslog dengan cepat, termasuk yang ada di Common Event Format (CEF), dari komputer Linux dan dari perangkat dan appliance jaringan dan keamanan. Untuk mempelajari selengkapnya tentang konektor data ini, lihat Syslog melalui AMA dan Common Event Format (CEF) melalui konektor AMA untuk Microsoft Sentinel.

Prasyarat

Sebelum memulai, Anda harus mengonfigurasi sumber daya dan izin yang sesuai yang dijelaskan di bagian ini.

Prasyarat Microsoft Azure Sentinel

  • Anda harus mengaktifkan solusi Microsoft Sentinel yang sesuai—Syslog dan/atau Format Peristiwa Umum. Untuk informasi selengkapnya, lihat Menemukan dan mengelola konten di luar kotak Microsoft Azure Sentinel.

  • Akun Azure Anda harus memiliki peran kontrol akses berbasis peran Azure (Azure RBAC) berikut:

    Peran bawaan Cakupan Alasan
    - Kontributor Komputer Virtual
    - Azure Koneksi ed Machine
       Administrator Sumber Daya
  • Mesin virtual
  • Virtual Machine Scale Sets
  • Server dengan Azure Arc yang diaktifkan
  • Untuk menyebarkan agen
    Peran apa pun yang menyertakan tindakan
    Microsoft.Resources/penyebaran/*
  • Langganan
  • Grup sumber daya
  • Aturan pengumpulan data yang ada
  • Untuk menyebarkan templat Azure Resource Manager
    Kontributor Pemantauan
  • Langganan
  • Grup sumber daya
  • Aturan pengumpulan data yang ada
  • Untuk membuat atau mengedit aturan pengumpulan data

Prasyarat penerus log

Jika Anda mengumpulkan pesan dari penerus log, prasyarat tambahan berikut berlaku:

  • Anda harus memiliki VM Linux yang ditunjuk (Penerus log Anda) untuk mengumpulkan log.

  • Jika penerus log Anda bukan komputer virtual Azure, penerus log harus memiliki agen Azure Arc Koneksi ed Machine yang terinstal di dalamnya.

  • VM penerus log Linux harus menginstal Python 2.7 atau 3. Gunakan perintah python --version atau python3 --version untuk memeriksa. Jika menggunakan Python 3 pastikan diatur sebagai perintah default pada komputer, atau jalankan skrip di bawah ini dengan perintah 'python3' alih-alih 'python'.

  • Penerus log harus syslog-ng mengaktifkan daemon atau rsyslog .

  • Untuk persyaratan ruang untuk penerus log Anda, lihat Tolok Ukur Performa Agen Azure Monitor. Anda juga dapat meninjau posting blog ini, yang mencakup desain untuk penyerapan yang dapat diskalakan.

  • Sumber log Anda (perangkat keamanan dan appliance Anda) harus dikonfigurasi untuk mengirim pesan log mereka ke daemon Syslog penerus log alih-alih ke daemon Syslog lokal mereka.

Hindari duplikasi penyerapan data

Menggunakan fasilitas yang sama untuk pesan Syslog dan CEF dapat mengakibatkan duplikasi penyerapan data antara tabel CommonSecurityLog dan Syslog.

Untuk menghindari skenario ini, gunakan salah satu metode berikut:

  • Jika perangkat sumber memungkinkan konfigurasi fasilitas target: Pada setiap komputer sumber yang mengirim log ke penerus log dalam format CEF, edit file konfigurasi Syslog untuk menghapus fasilitas yang digunakan untuk mengirim pesan CEF. Dengan cara ini, fasilitas yang dikirim di CEF juga tidak akan dikirim di Syslog. Pastikan bahwa setiap DCR yang Anda konfigurasikan pada langkah berikutnya menggunakan fasilitas yang relevan untuk CEF atau Syslog masing-masing.

    Untuk melihat contoh cara mengatur DCR untuk menyerap pesan Syslog dan CEF dari agen yang sama, buka aliran Syslog dan CEF di DCR yang sama nanti di artikel ini.

  • Jika mengubah fasilitas untuk appliance sumber tidak berlaku: Gunakan transformasi waktu penyerapan untuk memfilter pesan CEF dari aliran Syslog untuk menghindari duplikasi, seperti yang ditunjukkan pada contoh kueri di bawah ini. Data akan dikirim dua kali dari komputer pengumpul ke ruang kerja.

    source |
    where ProcessName !contains "CEF"
    

Mengonfigurasi keamanan komputer

Pastikan untuk mengonfigurasi keamanan mesin sesuai dengan kebijakan keamanan organisasi Anda. Misalnya, Anda dapat mengonfigurasi jaringan untuk menyelaraskan dengan kebijakan keamanan jaringan perusahaan dan mengubah port dan protokol di daemon agar sesuai dengan kebutuhan Anda. Untuk meningkatkan konfigurasi keamanan komputer Anda, amankan VM Anda di Azure, atau tinjau praktik terbaik ini untuk keamanan jaringan.

Jika perangkat Anda mengirim log Syslog dan CEF melalui TLS (karena, misalnya, penerus log Anda berada di cloud), Anda perlu mengonfigurasi daemon Syslog (rsyslog atau syslog-ng) untuk berkomunikasi di TLS:

Menyiapkan konektor data

Pilih tab yang sesuai untuk melihat instruksi untuk syslog atau CEF.

Menyiapkan Syslog melalui konektor AMA

Proses penyiapan untuk Syslog melalui konektor AMA memiliki dua bagian:

  1. Instal Agen Azure Monitor dan buat Aturan Pengumpulan Data (DCR).

  2. Jika Anda mengumpulkan log dari komputer lain menggunakan penerus log, jalankan skrip "penginstalan" pada penerus log untuk mengonfigurasi daemon Syslog untuk mendengarkan pesan dari komputer lain, dan untuk membuka port lokal yang diperlukan.

Menginstal AMA dan membuat Aturan Pengumpulan Data (DCR)

Anda dapat melakukan langkah ini dengan salah satu dari dua cara:

  • Sebarkan dan konfigurasikan Syslog melalui AMA atau Common Event Format (CEF) melalui konektor data AMA di portal Microsoft Azure Sentinel. Dengan penyiapan ini, Anda dapat membuat, mengelola, dan menghapus DCR per ruang kerja. AMA akan diinstal secara otomatis pada VM yang Anda pilih dalam konfigurasi konektor.
    —ATAU—
  • Kirim permintaan HTTP ke API Penyerapan Log. Dengan penyiapan ini, Anda dapat membuat, mengelola, dan menghapus DCR. Opsi ini lebih fleksibel daripada portal. Misalnya, dengan API, Anda dapat memfilter berdasarkan tingkat log tertentu, di mana dengan UI, Anda hanya dapat memilih tingkat log minimum. Kelemahannya adalah Anda harus menginstal Agen Azure Monitor secara manual pada penerus log sebelum membuat DCR.

Pilih tab yang sesuai di bawah ini untuk melihat instruksi untuk setiap cara.

Buka halaman konektor dan mulai wizard DCR

  1. Buka portal Microsoft Azure dan navigasikan ke layanan Microsoft Azure Sentinel.

  2. Pilih Konektor data dari menu navigasi

  3. Ketik Syslog di kotak Pencarian . Dari hasilnya, pilih Syslog melalui konektor AMA .

  4. Pilih Buka halaman konektor pada panel detail.

  5. Di area Konfigurasi, pilih +Buat aturan pengumpulan data.

    Cuplikan layar memperlihatkan CEF melalui halaman konektor AMA.

  6. Di tab Dasar :

    • Ketik nama DCR.
    • Pilih langganan Anda.
    • Pilih grup sumber daya tempat Anda ingin menemukan DCR Anda.

    Cuplikan layar memperlihatkan detail DCR di tab Dasar.

  7. Pilih Berikutnya: Sumber Daya>.

Menentukan sumber daya (mesin virtual)

Di tab Sumber Daya , pilih komputer tempat Anda ingin menginstal AMA—dalam hal ini, mesin penerus log Anda. (Jika penerus log Anda tidak muncul dalam daftar, mungkin agen Azure Koneksi ed Machine tidak terinstal.)

  1. Gunakan filter atau kotak pencarian yang tersedia untuk menemukan VM penerus log Anda. Anda dapat memperluas langganan dalam daftar untuk melihat grup sumber dayanya, dan grup sumber daya untuk melihat VM-nya.

  2. Pilih VM penerus log yang ingin Anda instal AMA-nya. (Kotak centang akan muncul di samping nama VM saat Anda mengarahkan mouse ke atasnya.)

    Cuplikan layar memperlihatkan cara memilih sumber daya saat menyiapkan DCR.

  3. Tinjau perubahan Anda dan pilih Berikutnya: Kumpulkan >.

Pilih fasilitas dan tingkat keparahan dan buat DCR

Catatan

Menggunakan fasilitas yang sama untuk pesan Syslog dan CEF dapat mengakibatkan duplikasi penyerapan data. Pelajari cara menghindari duplikasi penyerapan data.

  1. Di tab Kumpulkan , pilih tingkat log minimum untuk setiap fasilitas. Saat Anda memilih tingkat log, Microsoft Sentinel mengumpulkan log untuk tingkat yang dipilih dan tingkat lainnya dengan tingkat keparahan yang lebih tinggi. Misalnya, jika Anda memilih LOG_ERR, Microsoft Azure Sentinel mengumpulkan log untuk tingkat LOG_ERR, LOG_CRIT, LOG_ALERT, dan LOG_EMERG .

    Cuplikan layar memperlihatkan cara memilih tingkat log saat menyiapkan DCR.

  2. Tinjau pilihan Anda dan pilih Berikutnya: Tinjau + buat.

  3. Di tab Tinjau dan buat , pilih Buat.

    Cuplikan layar memperlihatkan cara meninjau konfigurasi DCR dan membuatnya.

  • Konektor akan menginstal Agen Azure Monitor pada komputer yang Anda pilih saat membuat DCR Anda.

  • Anda akan melihat pemberitahuan dari portal Azure saat DCR dibuat dan agen diinstal.

  • Pilih Refresh pada halaman konektor untuk melihat DCR yang ditampilkan dalam daftar.

Contoh bagian fasilitas dan tingkat log

Tinjau contoh pengaturan tingkat fasilitas dan log ini. Bidang name menyertakan nama filter.

Untuk penyerapan pesan CEF, nilai untuk "streams" harus bukan "Microsoft-CommonSecurityLog""Microsoft-Syslog".

Contoh ini mengumpulkan peristiwa dari cron, , daemon, local3local0dan uucp fasilitas, dengan Warningtingkat log , , Error, CriticalAlert, dan Emergency :

    "dataSources": {
      "syslog": [
        {
        "name": "SyslogStream0",
        "streams": [
          "Microsoft-Syslog"
        ],
        "facilityNames": [ 
          "cron",
          "daemon",
          "local0",
          "local3", 
          "uucp"
        ],
        "logLevels": [ 
          "Warning", 
          "Error", 
          "Critical", 
          "Alert", 
          "Emergency"
        ]
      }
    ]
  }
Aliran Syslog dan CEF di DCR yang sama

Contoh ini menunjukkan bagaimana Anda dapat mengumpulkan pesan Syslog dan CEF dalam DCR yang sama.

Lihat Menghindari duplikasi penyerapan data sebelumnya dalam artikel ini untuk informasi selengkapnya tentang langkah-langkah yang harus diambil saat menyerap pesan Syslog dan CEF menggunakan agen tunggal dan DCR.

DCR mengumpulkan pesan peristiwa CEF untuk:

  • Fasilitas authpriv dan mark dengan Infotingkat log , , NoticeWarning, Error, CriticalAlert, dan Emergency
  • Fasilitas daemon dengan Warningtingkat log , , CriticalError, Alert, dan Emergency

Ini mengumpulkan pesan peristiwa Syslog untuk:

  • , kern, local0local5, dan news fasilitas dengan Criticaltingkat log , Alert, dan Emergency
  • Fasilitas mail dan uucp dengan Emergency tingkat log
    "dataSources": {
      "syslog": [
        {
          "name": "CEFStream1",
          "streams": [ 
            "Microsoft-CommonSecurityLog"
          ],
          "facilityNames": [ 
            "authpriv", 
            "mark"
          ],
          "logLevels": [
            "Info",
            "Notice", 
            "Warning", 
            "Error", 
            "Critical", 
            "Alert", 
            "Emergency"
          ]
        },
        {
          "name": "CEFStream2",
          "streams": [ 
            "Microsoft-CommonSecurityLog"
          ],
          "facilityNames": [ 
            "daemon"
          ],
          "logLevels": [ 
            "Warning", 
            "Error", 
            "Critical", 
            "Alert", 
            "Emergency"
          ]
        },
        {
          "name": "SyslogStream3",
          "streams": [ 
            "Microsoft-Syslog"
          ],
          "facilityNames": [ 
            "kern",
            "local0",
            "local5", 
            "news"
          ],
          "logLevels": [ 
            "Critical", 
            "Alert", 
            "Emergency"
          ]
        },
        {
          "name": "SyslogStream4",
          "streams": [ 
            "Microsoft-Syslog"
          ],
          "facilityNames": [ 
            "mail",
            "uucp"
          ],
          "logLevels": [ 
            "Emergency"
          ]
        }
      ]
    }

Jalankan skrip "penginstalan"

Skrip "instalasi" sebenarnya tidak menginstal apa pun, tetapi mengonfigurasi daemon Syslog pada penerus log Anda dengan benar untuk mengumpulkan log.

  1. Dari halaman konektor, salin baris perintah yang muncul di bawah Jalankan perintah berikut untuk menginstal dan menerapkan pengumpul CEF: dengan memilih ikon salin di sampingnya.

    Cuplikan layar baris perintah pada halaman konektor.

    Anda juga dapat menyalinnya dari sini:

    sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python Forwarder_AMA_installer.py
    
  2. Masuk ke mesin penerus log tempat Anda baru saja menginstal AMA.

  3. Tempelkan perintah yang Anda salin di langkah terakhir untuk meluncurkan skrip penginstalan.
    Skrip mengonfigurasi rsyslog daemon atau syslog-ng untuk menggunakan protokol yang diperlukan dan memulai ulang daemon. Skrip membuka port 514 untuk mendengarkan pesan masuk dalam protokol UDP dan TCP. Untuk mengubah pengaturan ini, lihat file konfigurasi daemon Syslog sesuai dengan jenis daemon yang berjalan pada komputer:

    • Rsyslog: /etc/rsyslog.conf
    • Syslog-ng: /etc/syslog-ng/syslog-ng.conf

    Catatan

    Untuk menghindari skenario Disk Penuh di mana agen tidak dapat berfungsi, kami sarankan Anda mengatur syslog-ng konfigurasi atau rsyslog untuk tidak menyimpan log yang tidak diperlukan. Skenario Disk Penuh mengganggu fungsi AMA yang diinstal. Baca selengkapnya tentang RSyslog atau Syslog-ng.

Menguji konektor

  1. Untuk memvalidasi bahwa daemon syslog berjalan pada port UDP dan bahwa AMA mendengarkan, jalankan perintah ini:

    netstat -lnptv
    

    Anda akan melihat rsyslog daemon atau syslog-ng mendengarkan di port 514.

  2. Untuk mengambil pesan yang dikirim dari pencatat atau perangkat yang tersambung, jalankan perintah ini di latar belakang:

    tcpdump -i any port 514 -A -vv &
    
  3. Setelah Anda menyelesaikan validasi, kami sarankan Anda menghentikan tcpdump: Ketik fg lalu pilih Ctrl+C.

  4. Untuk mengirim pesan demo, lakukan salah satu hal berikut:

    • Gunakan utilitas netcat. Dalam contoh ini, utilitas membaca data yang diposting melalui echo perintah dengan tombol baris baru dimatikan. Utilitas kemudian menulis data ke port 514 UDP di localhost tanpa batas waktu. Untuk menjalankan utilitas netcat, Anda mungkin perlu menginstal paket tambahan.

      echo -n "<164>CEF:0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time" | nc -u -w0 localhost 514
      
    • Gunakan pencatat. Contoh ini menulis pesan ke local 4 fasilitas, pada tingkat Warningkeparahan , ke port 514, pada host lokal, dalam format CEF RFC. Bendera -t dan --rfc3164 digunakan untuk mematuhi format RFC yang diharapkan.

      logger -p local4.warn -P 514 -n 127.0.0.1 --rfc3164 -t CEF "0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time"
      
  5. Untuk memverifikasi bahwa konektor diinstal dengan benar, jalankan skrip pemecahan masalah dengan salah satu perintah ini:

    • Untuk log CEF, jalankan:

       sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef
      
    • Untuk log Cisco Adaptive Security Appliance (ASA), jalankan:

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --asa
      
    • Untuk log Cisco Firepower Threat Defense (FTD), jalankan:

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --ftd