Menggunakan sensor berbasis eBPF untuk Microsoft Defender untuk Titik Akhir di Linux

Note

Mulai dari Defender for Endpoint pada Linux, versi 101.2408.0000, AuditD tidak lagi didukung sebagai penyedia kejadian tambahan. Untuk informasi selengkapnya, lihat FAQ - Transisi ke eBPF.

Filter Paket Berkeley yang diperluas (eBPF) untuk Microsoft Defender untuk Titik Akhir di Linux menyediakan data peristiwa tambahan untuk sistem operasi Linux. eBPF membantu mengatasi beberapa kelas masalah yang terlihat dengan penyedia peristiwa AuditD dan bermanfaat dalam bidang performa dan stabilitas sistem.

Manfaat utama meliputi:

  • Mengurangi kebisingan log terkait AuditD di seluruh sistem
  • Mengoptimalkan aturan event tingkat sistem yang sebelumnya menyebabkan konflik antaraplikasi
  • Pengurangan overhead untuk pemantauan kejadian file (pembacaan/pembukaan file)
  • Throughput laju peristiwa yang ditingkatkan dan jejak memori yang dikurangi
  • Performa yang dioptimalkan untuk konfigurasi tertentu

Cara kerja eBPF

Dengan eBPF, kejadian yang sebelumnya diperoleh dari penyedia kejadian AuditD kini berasal dari sensor eBPF. Ini membantu stabilitas sistem, meningkatkan pemanfaatan CPU dan memori, dan mengurangi penggunaan disk. eBPF membantu mengurangi kemungkinan konflik antar aplikasi karena tidak ada aturan kustom yang diperlukan. Data yang terkait dengan eBPF akan masuk ke file /var/log/microsoft/mdatp/microsoft_defender_core.log.

Selain itu, sensor eBPF menggunakan kemampuan kernel Linux tanpa memerlukan penggunaan modul kernel yang membantu meningkatkan stabilitas sistem.

Prasyarat sistem

Sensor eBPF memerlukan Defender for Endpoint di Linux versi agen 101.23082.0006 atau yang lebih baru. Pastikan endpoint Anda telah diperbarui ke versi agen yang didukung sebelum melanjutkan.

Sensor eBPF didukung pada distribusi minimum dan versi kernel berikut:

Distribusi Linux Versi distribusi Versi kernel
Ubuntu 16.04 4.15.0
Fedora 33 5.8.15
CentOS 7.6 3.10.0-957.10
SLES 15 5.3.18-18.47
RHEL 7.6 3.10.0-957.10
Debian 9.0 4.19.0
Oracle Linux RHCK 7.9 3.10.0-1160
Oracle Linux UEK 7.9 5.4
Amazon Linux 2 2 5.4.261-174.360
Rocky Linux 8 8.7 4.18.0-425
Rocky Linux 9 9.2 5.14.0-284
Alma Linux 8 8.4 4.18.0-305
Alma Linux 9 9.2 5.14.0-284

Note

Oracle Linux 8.8 dengan kernel versi 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 akan mengakibatkan kernel macet ketika eBPF diaktifkan sebagai penyedia subsistem tambahan. Versi kernel ini tidak boleh digunakan untuk mode eBPF. Lihat bagian Pemecahan Masalah dan Diagnostik untuk langkah-langkah mitigasi.

Mengaktifkan dan mengonfigurasi sensor eBPF

Sensor eBPF secara otomatis diaktifkan secara bawaan untuk semua pelanggan pada versi agen 101.23082.0006 dan yang lebih baru. Pelanggan perlu memperbarui ke versi yang didukung untuk mengalami fitur ini. Ketika sensor eBPF diaktifkan pada titik akhir, Defender untuk Titik Akhir di Linux memperbarui supplementary_events_subsystem ke ebpf.

Penyorotan subsistem ebpf dalam perintah health mdatp

Untuk mengaktifkan atau menonaktifkan penyedia peristiwa tambahan eBPF, jalankan perintah berikut:

sudo mdatp config ebpf-supplementary-event-provider --value [enabled/disabled]

Atau, Anda dapat menonaktifkan penyedia peristiwa tambahan eBPF dengan mengatur ebpfSupplementaryEventProvider ke disabled dalam file mdatp_managed.json:

{
    "features": {
        "ebpfSupplementaryEventProvider": "disabled"
    }
}

Untuk contoh file JSON terperinci, lihat Mengatur preferensi untuk Microsoft Defender untuk Titik Akhir di Linux.

Important

Jika Anda menonaktifkan eBPF atau dalam peristiwa eBPF tidak didukung pada kernel tertentu, penyedia peristiwa tambahan beralih ke Netlink. Semua operasi proses akan tetap berjalan lancar, tetapi Anda mungkin kehilangan kejadian tertentu yang terkait dengan file dan soket yang seharusnya dapat ditangkap oleh eBPF.

Anda juga dapat memeriksa status eBPF (diaktifkan/dinonaktifkan) di titik akhir linux Anda menggunakan perburuan tingkat lanjut di Portal Microsoft Defender. Langkah-langkahnya adalah sebagai berikut:

  1. Buka portal Pertahanan Microsoft dan masuk.

  2. Di panel navigasi, buka Berburu>Perburuan Tingkat Lanjut.

  3. Di bawah Perburuan tingkat lanjut, buka Pengelolaan Kerentanan Defender.

  4. Jalankan kueri berikut: DeviceTvmInfoGathering.

  5. Di output, di kolom Bidang tambahan , pilih Perlihatkan lainnya, lalu cari STATUS EBPF: true.

Mode AuditD yang tidak dapat diubah

Untuk pelanggan yang menggunakan AuditD dalam mode yang tidak dapat diubah, reboot diperlukan pasca pengaktifan eBPF untuk menghapus aturan audit yang ditambahkan oleh Microsoft Defender untuk Titik Akhir. Persyaratan ini adalah batasan dalam mode AuditD yang tidak dapat diubah, yang membekukan file aturan dan melarang pengeditan/penimpaan. Boot ulang menghapus aturan audit Microsoft Defender untuk Titik Akhir yang tidak dapat dihapus saat AuditD dalam mode yang tidak dapat diubah.

Setelah dimulai ulang, tampilkan daftar aturan AuditD saat ini untuk mengonfirmasi bahwa aturan audit Defender for Endpoint telah berhasil dihapus:

% sudo auditctl -l

Output dari perintah sebelumnya seharusnya tidak menampilkan aturan apa pun maupun aturan apa pun yang ditambahkan oleh pengguna. Jika aturan tidak dihapus, lakukan langkah-langkah berikut untuk menghapus file aturan audit:

  1. Beralih ke mode ebpf.

  2. Hapus file /etc/audit/rules.d/mdatp.rules.

  3. Reboot komputer.

Pemecahan Masalah dan Diagnostik

Anda dapat memeriksa status kesehatan agen dengan menjalankan mdatp perintah kesehatan. Untuk memverifikasi bahwa versi kernel Anda memenuhi persyaratan sensor eBPF yang tercantum dalam Prasyarat sistem, periksa versi kernel saat ini dengan menjalankan perintah berikut:

uname -a

Masalah yang Diketahui

Ketahui masalah yang diketahui berikut saat menggunakan sensor eBPF di Linux:

  1. Peringatan: Pada RHEL 8.1 dengan SAP, mengaktifkan eBPF dapat menyebabkan kepanikan kernel. Sebelum mengaktifkan eBPF pada konfigurasi ini, lakukan salah satu langkah mitigasi berikut:

    • Gunakan versi distro yang lebih tinggi dari RHEL 8.1.
    • Beralih ke mode AuditD jika Anda perlu menggunakan versi RHEL 8.1.
  2. Menggunakan Oracle Linux 8.8 dengan kernel versi 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 dapat mengakibatkan kernel panik. Untuk mengurangi masalah ini, Anda dapat mengambil salah satu langkah berikut:

    • Gunakan versi kernel yang lebih tinggi atau lebih rendah dari 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 di Oracle Linux 8.8 jika Anda ingin menggunakan eBPF sebagai penyedia subsistem tambahan. Versi kernel minimum untuk Oracle Linux adalah RHCK 3.10.0 dan Oracle Linux UEK adalah 5.4.

    • Beralih ke mode AuditD jika Anda perlu menggunakan versi kernel yang sama

      sudo mdatp config  ebpf-supplementary-event-provider  --value disabled
      
    • Dua set data berikut membantu menganalisis potensi masalah dan menentukan opsi resolusi yang paling efektif.

      1. Kumpulkan paket diagnostik dari alat penganalisis klien dengan menggunakan instruksi berikut: Memecahkan masalah performa untuk Microsoft Defender untuk Titik Akhir di Linux.

      2. Kumpulkan paket diagnostik debug saat Defender for Endpoint menggunakan sumber daya tinggi dengan mengikuti petunjuk berikut: Sumber daya Microsoft Defender untuk Titik Akhir di Linux.

  3. Sistem macet pada Oracle Linux 7.9 yang menjalankan Defender for Linux saat Ksplice digunakan untuk penambalan kernel secara langsung.

    • Penambalan instalasi otomatis Ksplice hanya menambahkan tugas cron ke endpoint.
    • Untuk mengurangi masalah hang, Anda dapat membuat pekerjaan cron yang pertama-tama akan menghentikan layanan mdatp, menerapkan patching berbasis ksplice, lalu memulai layanan.
    • Karena penerapan patch pada kernel hanya berlangsung beberapa detik, hal ini tidak akan menimbulkan risiko keamanan yang besar.

Pemecahan masalah performa

Jika Anda melihat peningkatan konsumsi sumber daya oleh Microsoft Defender pada perangkat endpoint Anda, penting untuk mengidentifikasi proses/titik pemasangan/file yang paling banyak menggunakan CPU dan memori. Anda kemudian dapat menerapkan pengecualian yang diperlukan. Setelah menerapkan kemungkinan pengecualian antivirus, jika wdavdaemon (proses induk) masih menggunakan sumber daya, gunakan perintah statistik ebpf untuk mendapatkan jumlah panggilan sistem teratas:

sudo mdatp diagnostic  ebpf-statistics

Contoh output berikut menunjukkan statistik eBPF yang dikumpulkan selama interval pemantauan 20 detik, termasuk jalur file teratas, proses inisiator, dan ID panggilan sistem:

Monitor 20 seconds
Top file paths:
/var/log/microsoft/mdatp/microsoft_defender.log : 10
/var/log/microsoft/mdatp/rotated/microsoft_defender.log00001 : 2
/var/log/microsoft/mdatp/rotated/microsoft_defender.log : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374993 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374991 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374989 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374987 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374985 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374983 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374981 : 1

Top initiator paths:
/usr/bin/stress-ng : 50000
/opt/microsoft/mdatp/sbin/wdavdaemon : 13

Top syscall ids:
82 : 1699333
90 : 10
87 : 3

Dalam output mdatp diagnostic ebpf-statistics, stress-ng adalah proses utama yang menghasilkan sejumlah besar event dan dapat mengakibatkan masalah kinerja. Kemungkinan besar stress-ng sedang menghasilkan panggilan sistem dengan ID 82. Anda dapat mengajukan tiket ke Microsoft agar proses ini dikecualikan.

Pengecualian yang diterapkan ke AuditD tidak dapat dimigrasikan atau disalin ke eBPF. Masalah umum seperti log yang berisik, kernel panic, dan panggilan sistem yang berisik sudah ditangani secara internal oleh eBPF. Jika Anda ingin menambahkan pengecualian lebih lanjut, maka hubungi Microsoft untuk menerapkan pengecualian yang diperlukan.

FAQ - Transisi ke eBPF

1. Mengapa Anda harus mempertimbangkan untuk pindah ke eBPF?

Filter Paket Berkeley yang diperluas (eBPF) untuk Microsoft Defender untuk Titik Akhir di Linux berfungsi sebagai alternatif yang efisien untuk AuditD dan mengatasi berbagai tantangan yang terkait dengan penyedia peristiwa AuditD sambil memberikan keuntungan signifikan dalam hal performa dan stabilitas sistem. Beberapa manfaat utama meliputi -

  • Performa: eBPF secara signifikan meningkatkan performa dengan mengurangi overhead pada sumber daya sistem dibandingkan dengan AuditD.

  • Efisiensi Sumber Daya: eBPF menggunakan lebih sedikit sumber daya, yang membantu menjaga stabilitas sistem bahkan dalam kondisi beban yang berat.

  • Skalabilitas: Arsitektur eBPF lebih dapat diskalakan, menjadikannya pilihan yang lebih baik untuk lingkungan dengan beban kerja yang berkembang atau kompleks.

  • Teknologi Modern: eBPF mewakili teknologi modern dan maju yang selaras dengan perkembangan kernel Linux di masa depan, memastikan dukungan jangka panjang yang lebih baik.

2. Bagaimana Cara Terus Menggunakan AuditD?

Jika Anda lebih suka terus menggunakan AuditD:

  • Versi yang Didukung: Anda dapat tetap menggunakan Defender for Endpoint di Linux versi 101.24072.0000, yang akan mendukung AuditD selama masa berlaku build tersebut, yaitu sekitar sembilan bulan. Ini memberikan periode transisi yang memadai untuk merencanakan perpindahan Anda ke eBPF. Tanggal kedaluwarsa dapat diperiksa dengan menjalankan perintah mdatp health di server Linux.

  • Rencana Jangka Panjang: Meskipun tetap menggunakan build 101.24072.0000 adalah salah satu opsi, kami merekomendasikan agar Anda merencanakan transisi ke eBPF dalam periode ini untuk memastikan Anda memperoleh manfaat dari peningkatan keamanan dan kinerja terbaru serta tetap mendapatkan dukungan berkelanjutan.

Meski demikian, rekomendasi kami adalah merencanakan peralihan ke penggunaan eBPF sebagai penyedia peristiwa utama.

3. Apa yang Terjadi Jika eBPF Tidak Didukung dalam Beberapa Skenario?

Dalam kasus di mana eBPF tidak didukung:

  • Netlink Fallback: Sistem beralih kembali menggunakan penyedia peristiwa Netlink. Meskipun Netlink terus mengambil peristiwa proses (misalnya, exec, , exit, forkgid, atau tid), netlink tidak mendukung peristiwa terkait sistem file (misalnya, rename, unlink) atau peristiwa soket.

  • Dampak: Workload Anda tidak akan terganggu, tetapi Anda mungkin melewatkan peristiwa tertentu yang terkait dengan file dan soket yang seharusnya dapat ditangkap oleh eBPF.

4. Bagaimana Cara Mengelola Pengecualian dengan Versi yang Diperbarui?

Berikut adalah beberapa alasan umum untuk menempatkan pengecualian untuk AuditD:

  • Performa karena beberapa syscall atau proses menghasilkan banyak kebisingan

  • Kernel Panic, ada kalanya banyak syscalls khususnya panggilan jaringan/filesystem mengakibatkan kepanikan kernel.

  • Log berisik, di mana log audit menggunakan ruang disk. Pelanggan menempatkan pengecualian untuk proses yang bising untuk mengurangi ukuran log.

Sementara itu, dengan eBPF, dua kasus penggunaan pertama merupakan kandidat untuk dimigrasikan. Log tidak lagi menjadi masalah dengan eBPF. Untuk dua kasus penggunaan pertama, Anda dapat memilih dari opsi berikut:

5. Apa yang Harus Saya Lakukan jika Ada Masalah?

  • Hubungi Dukungan: Jika Anda mengalami masalah selama atau setelah transisi Anda ke eBPF, hubungi dukungan teknis untuk mendapatkan bantuan. Kami berkomitmen untuk memastikan transisi yang lancar dan tersedia untuk membantu menyelesaikan tantangan apa pun yang mungkin Anda hadapi.

  • Saluran Dukungan: Anda dapat menghubungi dukungan melalui portal Microsoft Defender. Selain itu, pangkalan pengetahuan dan forum komunitas kami adalah sumber daya yang berharga untuk memecahkan masalah umum.

Untuk informasi selengkapnya tentang pemecahan masalah dan manajemen sumber daya untuk Defender untuk Titik Akhir di Linux, lihat artikel berikut ini: