The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

13.08.2016 22:48  Уязвимость в системе мониторинга Zabbix

В обновлениях системы мониторинга Zabbix 2.2.14 и 3.0.4 устранена уязвимость, позволяющая выполнить SQL-код в СУБД и добиться выполнения произвольных команд на сервере и отслеживаемых хостах. В частности, через SQL-запрос можно получить права администратора Zabbix, который в зависимости от конфигурации может выполнять команды на хостах, отслеживаемых в Zabbix. Проблема вызвана недостаточной проверкой допустимых значений параметра toggle_ids при обращении к странице latest.php. Атака возможна со стороны аутентифицированного пользователя или при включении гостевого входа без пароля.

  1. Главная ссылка к новости (http://seclists.org/fulldisclo...)
  2. OpenNews: Выпуск системы мониторинга Zabbix 3.0
  3. OpenNews: Выпуск системы мониторинга Zabbix 2.4
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: zabbix
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, A.Stahl (ok), 23:46, 13/08/2016 [ответить] [показать ветку] [···]    [к модератору]
  • +34 +/
    Лес. Зима. Вечер.
    Подходит toggle_ids к latest.php, стучит и спрашивает: "А кто в скриптике живёт?"
    А из latest.php ему отвечают: "Я Заббикс, за процессами слежу в этом скриптике сижу! А ты кто?"
    -- А я Случайный Запрос, toggle_ids не донёс. Можно я с тобой поживу, SQL-код в СУБД пропихну?
    -- Ну заходи, будем вместе жить, процессы сторожить.
    И жили они долго и счастливо до самого kill -9!
     
     
  • 2.2, Аноним (-), 00:31, 14/08/2016 [^] [ответить]    [к модератору]
  • +/
    > kill -9

    Слишком добрый!!!  Требую продолжения!!!

     
     
  • 3.5, Аноним (-), 02:49, 14/08/2016 [^] [ответить]    [к модератору]
  • +/
    Alt-sysrq-b тебе в помощь. В мультиках это обычно так: ты стоишь себе такой, ла-ла-ла. И тут на тебя падает рояль с тридцатого этажа.
     
  • 1.3, XoRe (ok), 00:36, 14/08/2016 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    Похоже, ветка 2.4.х не подвержена атаке
     
     
  • 2.10, Andrey Mitrofanov (?), 12:07, 14/08/2016 [^] [ответить]    [к модератору]
  • +/
    > Похоже, ветка 2.4.х не подвержена атаке

    Я тебе больще скажу: похоже, и 2.0.18 не подвержена. Ср.:

    2016-07-22 [Zabbix-announce] Zabbix 3.0.4 and 2.2.14 released
      --https://sourceforge.net/p/zabbix/mailman/message/35237249/

    2016-04-20 [Zabbix-announce] Zabbix 2.0.17, 2.2.12, 2.4.8 and 3.0.2 released
      --https://sourceforge.net/p/zabbix/mailman/message/35027668/

    Зато LTS такая LTS. http://www.zabbix.com/life_cycle_and_release_policy.php

    2.0, видимо, выпкстили до введения ярлыка TLS... На картинках его не рисуют: плохо для продаж.

     
  • 1.4, Аноним (-), 00:44, 14/08/2016 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Две недели назад у меня отключили сервер мониторинга на публичном IP Якобы за р... весь текст скрыт [показать]
     
     
  • 2.8, Michael Shigorin (ok), 11:16, 14/08/2016 [^] [ответить]    [к модератору]  
  • –5 +/
    > Что это было?

    Просто к сведению -- в альте версию 3.0.4 собрали ещё несколько раньше, так что могло быть и оно: http://packages.altlinux.org/ru/p8/srpms/zabbix

     
     
  • 3.9, Andrew (??), 11:40, 14/08/2016 [^] [ответить]    [к модератору]  
  • +3 +/
    В альте собрали на 3 дня позже, чем пакеты под Ubuntu и Centos, которые появились на оффсайте 22-го числа.
     
  • 1.7, YetAnotherOnanym (ok), 08:47, 14/08/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Мда... в 2016 году пыхеры так и не освоили санитизацию запросов.
     
     
  • 2.11, Аноним (-), 17:37, 14/08/2016 [^] [ответить]    [к модератору]  
  • +/
    Google вбросил им как это нужно реализовать https://wiki.php.net/rfc/sql_injection_protection
     
     
  • 3.12, Аноним (-), 22:57, 14/08/2016 [^] [ответить]     [к модератору]  
  • –1 +/
    Легко реализуется путем NoSQL баз Извините, но SQL слишком много всего умеет В... весь текст скрыт [показать]
     
     
  • 4.13, Мяут (ok), 23:15, 14/08/2016 [^] [ответить]    [к модератору]  
  • +1 +/
    > Легко реализуется путем NoSQL баз.

    Тот же MongoDB имеет язык запросов основанный на JSON. Думаю уже набралось немало умников, которые эти самые запросы шлют из клентского жаваскрипта. Так что проблема отнюдь не в языке запросов.

     
     
  • 5.16, Аноним (-), 03:54, 15/08/2016 [^] [ответить]     [к модератору]  
  • –1 +/
    А если у меня база простая как валенок, понимающая только key и value ассоцииров... весь текст скрыт [показать]
     
     
  • 6.18, www2 (??), 07:47, 15/08/2016 [^] [ответить]    [к модератору]  
  • +/
    >Оно чисто технически не имеет никаких языков запросов через которые ты бы мог у меня выполнить код. Как самый максимум ты может быть положишь какой-то мусор в базу лишний раз. Это, конечно, свинство, но намного менее неприятное :)

    Товарищ, потише. Думайте, прежде чем говорить. Здесь именно это и происходит - в базу кладут "какой-то мусор". Только, вот беда, Zabbix штатно позволяет выполнять команды локально или через Zabbix-агентов, если это разрешено в их конфигах. В результате в базу можно положить не только "какой-то мусор", но и так называемые "действия", который как раз и позволяют выполнять произвольные команды на Zabbix-сервере или через Zabbix-агентов.

    Смена одного хранилища на другое тут не помогла бы. Проблема только в недостаточной валидации данных в веб-интерфейсе, написанном на PHP.

     
  • 6.19, КО (?), 07:54, 15/08/2016 [^] [ответить]    [к модератору]  
  • +/
    >>А если у меня база простая как валенок, понимающая только key и value ассоциированный с ним

    То где-то есть программа реализующая логику в которой значения из базы - операнд.
    Ну и далее эта программа и стрельнет. А будет ли это в СуБД или в браузере у клиента выполнится вдруг неожиданный javascipt пришедший из доверенной базы - уже детали. :)

     
  • 6.24, angra (ok), 09:37, 15/08/2016 [^] [ответить]    [к модератору]  
  • +/
    Просто у тебя хакерское воображение отсутсвует как таковое. Тут пару дней назад пробегала новость о использовании redis для взлома сервера. Поинтересуйся деталями, они есть по ссылкам. Откроешь для себя новый мир, где подстановка "мусорного" ключ->значение достаточна для взлома. И никакого SQL или выполнения кода со стороны БД.
     
  • 4.14, Аноним (-), 23:48, 14/08/2016 [^] [ответить]    [к модератору]  
  • +/
    https://mariadb.com/sites/default/files/MaxScaleSecuritySolution-100615_600px.
     
     
  • 5.17, Аноним (-), 03:57, 15/08/2016 [^] [ответить]     [к модератору]  
  • –2 +/
    Отличный пример того как сначала люди создают себе проблемы зачем-то научив баз... весь текст скрыт [показать]
     
     
  • 6.20, www2 (??), 07:57, 15/08/2016 [^] [ответить]    [к модератору]  
  • +/
    >> https://mariadb.com/sites/default/files/MaxScaleSecuritySolution-100615_600px.
    > Отличный пример того как сначала люди создают себе проблемы. зачем-то научив базу
    > выполнять код

    Ты уверен, что база выполняет какой-то там код? СУБД выполняет запросы. Если базу попросить выполнить DROP DATABASE, а права пользователя разрешают ему это сделать, то чья это проблема? Всякие хранилища ключ-значение тоже выполняют запросы. Можно вставить туда значение, можно прочитать, можно удалить. Если попросят удалить и имеют на это право, то это проблема базы? Если попросят вставить что-то нежелательное, то это проблема базы? Это проблема приложения. Оно должно следить за тем, что просит сделать СУБД.

     
     
  • 7.26, Аноним (-), 12:07, 15/08/2016 [^] [ответить]     [к модератору]  
  • +/
    Формально, можно было бы разнести DDL и DML, да и в принципе любовь WEB MySQL ... весь текст скрыт [показать]
     
     
  • 8.33, www2 (??), 11:50, 16/08/2016 [^] [ответить]    [к модератору]  
  • +/
    Честно говоря, я не понимаю о ком вы. Разработчики Zabbix нигде не делают alter table add column. Разве что при миграции на новую версию.

    Иногда структуру базы данных бывает нужно менять. И довольно часто делать это нужно над имеющимися данными, а не экспортом и реимпортом в новую структуру. Так что DDL плохому танцору мешают, а хорошему - нет. Не нравится - учётную запись можно ограничить так, чтобы никаких alter table. Чтобы учётная запись могла только select, insert, update и delete.

     
  • 6.25, angra (ok), 09:40, 15/08/2016 [^] [ответить]    [к модератору]  
  • +/
    Болезный, ты где на картинке увидел код? Если для тебя where это код, то настоятельно советую сменить профессию.

     
  • 4.27, DeadLoco (ok), 12:29, 15/08/2016 [^] [ответить]    [к модератору]  
  • +/
    SQL умеет столько, сколько нужно для работы с множествами. А что большинство ниасиляторов использует РСУБД в качестве индексированого кеша - это проблемы ниасиляторов.

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

     
  • 1.15, Аноним (-), 00:36, 15/08/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Что ни придумают, лишь бы Nagios не пользоваться(
     
     
  • 2.21, www2 (??), 08:03, 15/08/2016 [^] [ответить]    [к модератору]  
  • –2 +/
    В Nagios есть NRPE и это его основное назначение - выполнять команды, которые попросит сервер мониторинга. Zabbix позволяет выполнять команды на удалённом узле, но по умолчанию эта функция отключена, потому как хватает штатных возможностей агента и UserParameter. Выполнять вообще-вообще произвольные команды - это очень редкий случай.

    Да, в Zabbix можно настроить выполнение команды без перезапуска всего сервера мониторинга, просто зайдя в веб-интерфейс и указав, где и какую команду нужно выполнять. В Nagios после правки конфига нужно перезапускать весь сервер. Кушайте сами.

     
     
  • 3.23, PavelR (??), 08:19, 15/08/2016 [^] [ответить]    [к модератору]  
  • +/
    >В Nagios после правки конфига нужно перезапускать весь сервер. Кушайте сами.

    Хороший вброс, но у вас "нипалучилось".

     
     
  • 4.28, www2 (??), 12:32, 15/08/2016 [^] [ответить]    [к модератору]  
  • +/
    Вброс или не вброс, но кушайте сами. Меня Zabbix устраивает вполне. В "ём" есть сложные выражения для триггеров, графики, оповещения, действия, API, разграничение доступа. Ядро умеет очень много. В Nagios что ни надо замониторить, всё внешним плагином делается, который может только сказать хорошо или плохо сейчас. Предыдущее состояние в плагине взять неоткуда. Попробуйте в вашем нагиосе сделать триггер "если среднее значение на хосте A за сутки больше, чем 10% от среднего значения на хосте Б за час, то проблема". Своё хранилище придётся придумывать для хранения данных предыдущих опросов.
     
     
  • 5.34, PavelR (??), 12:27, 16/08/2016 [^] [ответить]    [к модератору]  
  • +/
    > Вброс или не вброс, но кушайте сами. Меня Zabbix устраивает вполне.

    Устраивает - пользуйтесь.

    >В Nagios после правки конфига нужно перезапускать весь сервер.

    А вот гнать чушь про ПО, которым вы не пользуетесь - не надо.

     
  • 2.22, www2 (??), 08:13, 15/08/2016 [^] [ответить]    [к модератору]  
  • +/
    Вот вам вбросик: https://www.opennet.ru/opennews/art.shtml?num=22285
     
  • 2.31, XoRe (ok), 14:38, 15/08/2016 [^] [ответить]    [к модератору]  
  • +/
    > Что ни придумают, лишь бы Nagios не пользоваться(

    Чет я не находил, чтобы nagios мог получать 500 новых значений в секунду.
    А вот zabbix с таким спокойно справляется.

     
     
  • 3.36, anonimous (?), 06:31, 17/08/2016 [^] [ответить]    [к модератору]  
  • +/
    Это Поллер Zabbix'a за тебя решил.

    Частая ошибка Заббистов, в том что они вначале пробуют мониторинг на слабом железе,
    и Там где Nagios\Icinga2 начинают задыхаться - Zabbix адаптируеться. Итого Zabbix - победиль!

    Дело в том что Icinga2 ( nagios лучше таки выкидывать ) - как то все равно на твое железо.
    Указал ты ей, например, мониторить раз в секунду 500 хостов, где у каждого 500 метрик, - она и будет запускать их каждую секунду. Т.е. 500*500=250000 в секунду. Ну а справиться ли? Зависит от железа. Сервер может вообще зависнуть к х*.

    Хотим офигенный мониторинг, покупаем для него офигенное железо.

    Про всякие там триггреры, где "на одном хосте то, на другом это - непорядок" - пишем в Graphite. ( Icinga2 + Graphite ) Ну а для graphite много приложений умеющих работать с его базой разными функциями и оповещать заодно.

    В целом, сравнивать zabbix и icinga2, тоже самое как сравнивать США и Советский Союз в период разгара холодной войны.

     
  • 1.29, www2 (??), 12:35, 15/08/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Я посмотрел на эту уязвимость. Не знаю, почему, но у меня на 2.4.0 выдаёт такую ошибку:
    Error in query [INSERT INTO profiles (profileid, userid, idx, value_int, type, idx2) VALUES (800800175701336, 1001000000000075, 'web.latest.toggle', '1', 2, 1);select * from users (1=1)] [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select * from users (1=1)' at line 1]

    Ну то есть этот дописанный сбоку запрос не выполняется. Пробовал что-нибудь придумать, как этим воспользоваться. Вставить вместо числа результат из подзапроса, например, или какой-нибудь union изобразить. Ничего не придумал. Может быть фантазия бедная, но сдаётся мне, что проблема преувеличена.

    На 3.0.0 выдаёт:
    Zabbix получил некорректный запрос.
    Детали
    Операция не может быть выполнена из-за несанкционированного запроса.
    Операция не может быть выполнена из-за несанкционированного запроса.
    Операция не может быть выполнена из-за несанкционированного запроса.
    Закрыть

    Проблем нашли, да. А как её эксплуатировать - не придумали. Ну или у выполнявших какое-то другое программное окружение. Может PHP другой.

     
  • 1.30, Коля (ok), 12:54, 15/08/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    заббикс имеет такой дикий говнокод в фронтэнде на пхп, что волосы под мышками становятся дыбом. Этот невинный баг баловство. Там и покруче вещи накопать можно, если нужно.
     
  • 1.32, Alex Emergy (?), 10:38, 16/08/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Очень даже не плохо. Панель сделана в духе Windows 7-10. Только непорадовало, что нет индикации, что приложение запущено.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor