Aracılığıyla paylaş


Linux'ta Uç Nokta için Microsoft Defender için eBPF tabanlı algılayıcı kullanma

Şunlar için geçerlidir:

Linux üzerinde Uç Nokta için Microsoft Defender için genişletilmiş Berkeley Paket Filtresi (eBPF), Linux işletim sistemleri için ek olay verileri sağlar. eBPF denetlenmeye alternatif bir teknoloji olarak kullanılabilir çünkü eBPF, denetlenen olay sağlayıcısında görülen çeşitli sorunların ele alınmasına yardımcı olur ve performans ve sistem kararlılığı alanlarında faydalıdır.

Başlıca avantajlar şunlardır:

  • Sistem genelinde denetimle ilgili günlük gürültüsü azaltıldı
  • Sistem genelinde iyileştirilmiş olay kuralları, aksi takdirde uygulamalar arasında çakışmaya neden olur
  • Dosya olayı (dosya okuma/açma) izleme için ek yük azaltıldı
  • Geliştirilmiş olay hızı aktarım hızı ve azaltılmış bellek ayak izi
  • Belirli yapılandırmalar için iyileştirilmiş performans

eBPF nasıl çalışır?

eBPF ile daha önce denetlenen olay sağlayıcısından alınan olaylar artık eBPF algılayıcısından akıyor. Bu, sistem kararlılığı konusunda yardımcı olur, CPU ve bellek kullanımını geliştirir ve disk kullanımını azaltır. Ayrıca, eBPF etkinleştirildiğinde, denetimle ilgili tüm özel kurallar ortadan kaldırılır ve bu da uygulamalar arasındaki çakışma olasılığını azaltmaya yardımcı olur. eBPF ile ilgili veriler /var/log/microsoft/mdatp/microsoft_defender_core.log dosyasında oturum açar.

Ayrıca eBPF algılayıcısı, sistem kararlılığını artırmaya yardımcı olan bir çekirdek modülü kullanılmasına gerek kalmadan Linux çekirdeğinin özelliklerini kullanır.

Not

eBPF denetimle birlikte kullanılırken, denetim yalnızca kullanıcı oturum açma olayları için kullanılır ve bu olayları herhangi bir özel kural olmadan yakalar ve bunları otomatik olarak akışa alır. Denetimin gelecek sürümlerde aşamalı olarak kaldırılacağını unutmayın.

Sistem önkoşulları

Linux üzerinde Uç Nokta için Microsoft Defender eBPF algılayıcısı aşağıdaki en düşük dağıtım ve çekirdek sürümlerinde desteklenir:

Linux Dağıtımı Dağıtım sürümü Çekirdek sürümü
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

Not

Çekirdek sürümü 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 olan Oracle Linux 8.8, eBPF tamamlayıcı alt sistem sağlayıcısı olarak etkinleştirildiğinde çekirdek kilitlenmesiyle sonuçlanır. Bu çekirdek sürümü eBPF modu için kullanılmamalıdır. Risk azaltma adımları için Sorun Giderme ve Tanılama bölümüne bakın.

eBPF kullanma

eBPF algılayıcısı, "101.23082.0006" ve üzeri aracı sürümleri için varsayılan olarak tüm müşteriler için otomatik olarak etkinleştirilir. Müşterilerin özelliği deneyimlemek için desteklenen bir sürüme güncelleştirmeleri gerekir. EBPF algılayıcısı bir uç noktada etkinleştirildiğinde, Linux'ta Uç Nokta için Defender supplementary_events_subsystem ebpf olarak güncelleştirilir.

mdatp health komutunda ebpf alt sistemi vurgusu

eBPF'yi el ile devre dışı bırakmak istiyorsanız aşağıdaki komutu çalıştırabilirsiniz:

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

mdatp_managed.json dosyasını da güncelleştirebilirsiniz:

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

Ayrıntılı örnek json dosyası için bağlantıya bakın - Linux'ta Uç Nokta için Microsoft Defender tercihlerini ayarlama.

Önemli

eBPF'yi devre dışı bırakırsanız ek olay sağlayıcısı yeniden denetlenmeye geçer. eBPF'nin etkinleştirilmemesi veya belirli bir çekirdekte desteklenmemesi durumunda, otomatik olarak denetime geri döner ve denetlenen tüm özel kuralları korur.

Ayrıca, Microsoft Defender Portalı'nda gelişmiş avcılığı kullanarak linux uç noktalarınızda eBPF'nin (etkin/devre dışı) durumunu de kontrol edebilirsiniz. Adımlar aşağıdaki gibidir:

  1. Microsoft Defender portalına gidin ve oturum açın.

  2. Gezinti bölmesinde, Tehdit AvcılığıGelişmiş avcılığı'na> gidin.

  3. Gelişmiş avcılık bölümündeDefender Güvenlik Açığı Yönetimi'ne gidin.

  4. Aşağıdaki sorguyu çalıştırın: DeviceTvmInfoGathering.

  5. Çıktıdaki Ek alanlar sütununda Daha fazla göster'i seçin ve EBPF DURUMU: true ifadesini arayın.

Denetlenen sabit modu

Sabit modda denetlenen müşteriler için, Uç Nokta için Microsoft Defender tarafından eklenen denetim kurallarını temizlemek için eBPF etkinleştirildiğinde yeniden başlatma gerekir. Bu gereksinim, kural dosyasını donduran ve düzenlemeyi/üzerine yazmayı yasaklayan sabit denetim modundaki bir sınırlamadır. Bu sorun yeniden başlatma işlemiyle çözülür.

Yeniden başlatma sonrasında, denetim kurallarının temizlenip temizlenmediğini denetlemek için aşağıdaki komutu çalıştırın:

% sudo auditctl -l

Önceki komutun çıktısı hiçbir kural veya kullanıcı tarafından eklenen kuralları göstermemelidir. Kuralların kaldırılmadığı durumlarda, denetim kuralları dosyasını temizlemek için aşağıdaki adımları uygulayın:

  1. ebpf moduna geçin.
  2. dosyasını /etc/audit/rules.d/mdatp.ruleskaldırın.
  3. Makineyi yeniden başlatın.

Sorun Giderme ve Tanılama

Sistem durumu komutunu çalıştırarak aracı sistem mdatp durumunu de kontrol edebilirsiniz. Linux'ta Uç Nokta için Defender için eBPF algılayıcısının, aşağıdaki komut satırını kullanarak geçerli çekirdek sürümünü denetleyerek desteklendiğinden emin olun:

uname -a

Bilinen Sorunlar

  1. SAP ile RHEL 8.1 sürümünde eBPF'nin etkinleştirilmesi çekirdek paniğine neden olabilir. Bu sorunu azaltmak için aşağıdaki adımlardan birini uygulayabilirsiniz:

    • RHEL 8.1'den daha yüksek bir dağıtım sürümü kullanın.
    • RHEL 8.1 sürümünü kullanmanız gerekiyorsa denetim moduna geçin.
  2. Oracle Linux 8.8'in çekirdek sürümü 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 ile kullanılması çekirdek paniğine neden olabilir. Bu sorunu azaltmak için aşağıdaki adımlardan birini uygulayabilirsiniz:

    • EBPF'yi tamamlayıcı alt sistem sağlayıcısı olarak kullanmak istiyorsanız Oracle Linux 8.8'de 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 daha yüksek veya daha düşük bir çekirdek sürümü kullanın. Oracle Linux için en düşük çekirdek sürümü RHCK 3.10.0 ve Oracle Linux UEK 5.4'dür.
    • Aynı çekirdek sürümünü kullanmanız gerekiyorsa denetim moduna geçin
sudo mdatp config  ebpf-supplementary-event-provider  --value disabled

Aşağıdaki iki veri kümesi olası sorunların analiz edilmesine ve en etkili çözüm seçeneklerinin belirlenmesine yardımcı olur.

  1. Aşağıdaki yönergeleri kullanarak istemci çözümleyici aracından bir tanılama paketi toplayın: Linux üzerinde Uç Nokta için Microsoft Defender performans sorunlarını giderme.

  2. Uç Nokta için Defender yüksek kaynakları kullanırken aşağıdaki yönergeleri kullanarak bir hata ayıklama tanılama paketi toplayın: Linux kaynaklarında Uç Nokta için Microsoft Defender.

Performans sorunlarını giderme

Uç noktalarınızda Microsoft Defender tarafından artan kaynak tüketimi görüyorsanız CPU/Bellek kullanımının çoğuna neden olan işlemi/bağlama noktasını/dosyaları tanımlamak önemlidir. Ardından gerekli dışlamaları uygulayabilirsiniz. Olası AV dışlamalarını uyguladıktan sonra wdavdaemon (üst işlem) kaynakları kullanmaya devam ediyorsa en üst sistem çağrı sayısını almak için ebpf-statistics komutunu kullanın:

sudo mdatp diagnostic  ebpf-statistics
Output
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

Önceki çıkışta stress-ng'nin çok sayıda olay oluşturan en önemli işlem olduğunu ve performans sorunlarına neden olabileceğini görebilirsiniz. Büyük olasılıkla stress-ng kimliği 82 olan sistem çağrısını oluşturuyordur. Bu işlemin dışlanması için Microsoft ile bir bilet oluşturabilirsiniz. Gelecek geliştirmelerin bir parçası olarak gelecekte, bu tür dışlamaları sizin tarafınızda uygulamak için daha fazla denetime sahip olursunuz.

Denetlenen dışlamalar eBPF'ye geçirilemiyor veya kopyalanamaz. Gürültülü günlükler, çekirdek paniği, gürültülü syscall'lar gibi yaygın endişeler zaten eBPF tarafından dahili olarak ele alınmaktadır. Başka dışlamalar eklemek isterseniz, gerekli dışlamaların uygulanmasını sağlamak için Microsoft'a ulaşın.

Ayrıca bkz.