The OpenNET Project / Index page

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

Уязвимости в ingress-nginx, позволяющие скомпрометировать кластеры Kubernetes

06.11.2023 08:48

В развиваемом проектом Kubernetes ingress-контроллере ingress-nginx выявлены три уязвимости, позволяющие в конфигурации по умолчанию получить доступ к настройкам объекта Ingress, в которых, среди прочего, хранятся и учётные данные для обращения к серверам Kubernetes, позволяющие получить привилегированный доступ к кластеру. Проблемы проявляются только в ingress-контроллере ingress-nginx от проекта Kubernetes и не затрагивает контроллер kubernetes-ingress, развиваемый разработчиками NGINX.

Ingress-контроллер выступает в роли шлюза и используется в Kubernetes для организации доступа из внешней сети к сервисам внутри кластера. Контроллер ingress-nginx является наиболее популярным и применяет сервер NGINX для организации проброса обращений к кластеру, маршрутизации внешних запросов и балансировки нагрузки. Проект Kubernetes предоставляет базовые ingress-контроллеры для AWS, GCE и nginx, последний из которых никак не связан с контроллером kubernetes-ingress, сопровождением которого занимается компания F5/NGINX.

Уязвимости CVE-2023-5043 и CVE-2023-5044 позволяют выполнить свой код на сервере с правами процесса ingress-контроллера, используя для его подстановки параметры "nginx.ingress.kubernetes.io/configuration-snippet" и "nginx.ingress.kubernetes.io/permanent-redirect". Среди прочего, полученные права доступа позволяют извлечь токен, применяемый для аутентификации на уровне управления кластером. Уязвимость CVE-2022-4886 позволяет обойти проверку файловых путей, используя директиву log_format.

Первые две уязвимости проявляются только в выпусках ingress-nginx до версии 1.9.0, а последняя - до версии 1.8.0. Для осуществления атаки злоумышленник должен иметь доступ к конфигурации ingress-объекта, например, в многопользовательских кластерах Kubernetes, пользователям в которых предоставляется возможность создания объектов в своём пространстве имён.

  1. Главная ссылка к новости (https://www.nginx.com/blog/whi...)
  2. OpenNews: В Kubernetes 1.13 устранена критическая уязвимость, позволяющая поднять свои привилегии
  3. OpenNews: Критическая уязвимость в http-сервере Nginx
  4. OpenNews: Уязвимость в WebDAV модуле nginx
  5. OpenNews: Root-уязвимость из-за некорректных настроек в пакете nginx для Debian и Ubuntu
  6. OpenNews: Уязвимость конфигураций Nginx с некорректными настройками блока alias
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/60055-kubernetes
Ключевые слова: kubernetes, nginx
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (29) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Tron is Whistling (?), 09:26, 06/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Красиво. Ждём новых утечек из облачков. Особенно там, где любят nginx.
     
     
  • 2.3, Аноним (3), 09:37, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Облака хмурые ожидаются обильные дожди из данных.
     
     
  • 3.14, Аноним (14), 13:18, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Темна вода во облацех.
     
  • 2.4, Самый умный из вас (?), 09:50, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Но сначала ждём ingress-angie
     
     
  • 3.6, Аноним (14), 11:51, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Есть ингресс "Контур". Это более посконно, чем какой-то там angie.
     
  • 2.5, Аноним (14), 11:50, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Красиво. Ждём новых утечек из облачков. Особенно там, где любят nginx.

    Это где такие?
    Держать nginx с modsecurity и скриптами на lua, которые позволяют не очень сильно лажать при обновлении списка апстримов - это дофига дорого и накладно. А бизнес деньги считать умеет.
    Поэтому практически все облачные кубики нынче идут с кастомным ингресс-контроллером от вендора, обычно на базе envoy.

    Не говоря уже о том, что про "дыру" с возможностью подставлять куски конфига в проекте говорят уже года два. Но и не убирают ее полностью, потому что гибкости настроек средствами ingress часто не хватает, а пытаться реализовать поверх nginx gateway api - психов нет.

     
     
  • 3.7, Аноним (14), 11:55, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Не говоря уже о том, что про "дыру" с возможностью подставлять куски конфига в проекте говорят уже года два.

    А, понятно. По ссылке - типовой наброс от F5 (разработчика конкурирующего ингресса), которые рвут баян, пытаясь поднять себе прибыли.

     
     
  • 4.8, похнапоха. (?), 12:12, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Ну хочешь пользоваться дырявой версией, только чтоб не кормить F5 - пользуйся дырявой, твои юзеры скажут тебе спасибо, что не накормил корпорастов.
     
  • 3.9, пох. (?), 12:35, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Держать nginx с modsecurity и скриптами на lua

    да откуда такой уродец возьмется? И как он работать будет, это ж п-ц тормоз. Сказали вам - ingres-nginx, вот его и ставим побыстрому, девляпляпляпляпляп! cubectl apply прям с raw.гитхап.помойку.цоп (все бандерлоги так делают - это инструкция непосредственно k8s)

    Нет там никакого модсекьюрити и быть не может - кто его должен настраивать, отлаживать, следить за актуальностью правил, ты что-ли? А ну веслай быстрей!

    > Не говоря уже о том, что про "дыру" с возможностью подставлять куски конфига в проекте говорят
    > уже года два.

    но вставлять куски конфига надо, поэтому дыра всегда будет с нами.

    > Поэтому практически все облачные кубики нынче идут с кастомным ингресс-контроллером от вендора

    А у вендора не такие же веслатели, а какие-то другие, ога.

    Ну хорошо если им случайно первым попался envoy...хотя стоп...тоже нет.

     
     
  • 4.13, Аноним (14), 13:16, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > да откуда такой уродец возьмется? И как он работать будет, это ж п-ц тормоз. Сказали вам - ingres-nginx

    Иногда лучше жевать, чем говорить.
    ingress-nginx - и есть тот уродец с modsecurity и lua.

    Кстати, о том, что там вообще есть modsecurity, счастливые пользователи случайно узнали пару лет назад, когда оно начало дико течь по памяти из-за бага в этом модуле.

     
     
  • 5.15, пох. (?), 13:53, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    оно не включено ж пока сам не попросишь.

    > Кстати, о том, что там вообще есть modsecurity, счастливые пользователи случайно узнали пару лет
    > назад, когда оно начало дико течь по памяти из-за бага в этом модуле.

    выключеном?!

     
  • 5.22, пох. (?), 17:19, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    сподвигся все ж глянуть исходники - не, enable-modsecurity надо вручную включить догадаться.
    Иначе не только не включается, а даже и не загружается. Хз как оно при этом могло что-то портить.

    А вот lua таки да.

     
  • 3.17, rmh (?), 14:06, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >Держать nginx с modsecurity и скриптами на lua, которые позволяют не очень сильно лажать при обновлении списка апстримов - это дофига дорого и накладно

    Это Apisix называется. Хорошая штука.

    Кастомный ингресс-контроллер от вендора обычно мало чего умеет.

     
     
  • 4.28, Аноним (28), 07:26, 08/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да и Kong-gateway - это тот же nginx обмазанный lua-скриптами
     

  • 1.2, Аноним (3), 09:34, 06/11/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –4 +/
     

  • 1.11, Аноним (11), 12:49, 06/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    самая важная фраза написана в конце:
    "Для осуществления атаки злоумышленник должен иметь доступ к конфигурации ingress-объекта"
     
     
  • 2.16, пох. (?), 13:57, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > самая важная фраза написана в конце:
    > "Для осуществления атаки злоумышленник должен иметь доступ к конфигурации ingress-объекта"

    позвал аутсорсера пилить какой-нибудь очень нужный и полезный вебчяяятик, дал ему отдельное пространство, поскольку оно никак вообще не связано с основным сервисом, и забыл про него. А оно - вот... тем более что аутсорсер тоже модный парниша и все свои наработки держит на гитхапе и гитляпе, прям с токенами и паролями от всей инфраструктуры, инфраструктурка жеж in cococode, my ass!

    А независимый кластер каждому васяну с чятиком не только лишь все могут себе позволить.

     
     
  • 3.18, A7exius (?), 14:19, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    если такой бардак в организации и лайфциклах учеток\проектов, то тут ничего не спасёт, рано или поздно придется огребать
     
     
  • 4.19, пох. (?), 14:55, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ну у тебя-то в подвальчике конечно нет бардака.

     
     
  • 5.20, Sw00p aka Jerom (?), 15:26, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ничего, девляпс и прод на разных куберах поставят :)
     
     
  • 6.21, пох. (?), 16:03, 06/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    unreal жеж - cocococontinuous desintegration жеж (или как там ее?)

    разные куски прода в разных кластерах - только потому что изоляция, которая вообще говоря предусмотрена и именно для этого и неймспейсы - как обычно не изоляция? Ну оооок, давайте не будем им мешать и просто понаблюдаем за ними. Только гуаноупорный плащик поправьте и капюшончик пониже надвиньте, а то сейчас ваше недоверие лопнет и забрызгает вот... меня и товарищей прессу.

     
  • 3.25, Легивон (?), 11:46, 07/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >А независимый кластер каждому васяну с чятиком не только лишь все могут себе позволить.

    Это верно... для обычных легаси инфраструктур, которые так любят специалисты в свитере с оленем с сальными волосами и кусками вчеравшей недоеденой еды в слипшейся бороде (впрочем возможно это и не еда). И их можно понять, ведь это и правда трудно пройтись руками/мышковазюком и безошибочно воссоздать штук 200 сущностей во всевозможных консольках и "оснастках".
    В девопс же мире все просто. Надо кластер - взял готовые тераформ шаблоны, подставил хостнеймы и катанул. И поверх этого еще катанул ансиблом kubespray, так же практически без изменений от базового шаблона.
    Я именно так и катаю, только у меня шаблоны тераформа генерируются из ансибла, а помимо kubespray ансиблом качу еще базовые k8s сервисы: ingress, prometheus, vector. У меня 4 проекта и 10 кластеров (и это еще мало, просто на все не хватает времени, вот например собираюсь для безопасности вынести все задачи сборки образов в отдельный кластер с kata containers, чтобы не пересекаться с инфраструктурой на которой люди могут выполнять код). ЧЯДН?

     
     
  • 4.27, Аноним (27), 20:08, 07/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ЧЯДН?

    Пользуешься ансиблом и тратишь время на то, что называется non-differentiating work. Создание k8s кластера — это пара вызовов API, скучно до зевоты. Городить ради этого какую-то кодогенерацию на, прямо скажем, весьма убогом инструментарии типа ансибла — занятие для операторов высоконагруженных локалхостов. То, что тебе этим в проде приходится заниматься весьма печально.

     
     
  • 5.30, пох. (?), 20:36, 08/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > То, что тебе этим в проде приходится заниматься весьма печально.

    "чатыре прожекта" (и куча ансибельного мусора присыпанного тераформом) это такой себе, знаешь, "прод".

     
     
  • 6.33, Легивон (?), 17:18, 09/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А что хороший прод по твоему? Инструкция как правильно делать мышковозюк из 500 шагов?
     
  • 5.35, Легивон (?), 17:30, 09/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ты, дядя, давай посуществу и без общих фраз.
    Чем мой запуск ансибла + тераформ принципиально отличается от запуска eks cli (Или че ты там запускаешь. Давно этой оверпрайснутой помоечкой не пользовался. Помню года 4 назад, голый БЕЗ НОД eks кластер стоил 200$ в месяц. А в хецнере за такие деньги можно было взять 3 машины уровня 8 ядер / 16 гигов). Это считай такое же дергание 2 "апишек". Что не так то? АПИшка не проприетарная и не вендорлокнутая? Плохо что я не плачу твоему господину Безосу?
     
  • 4.29, пох. (?), 20:34, 08/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > В девопс же мире все просто. Надо кластер - взял готовые тераформ шаблоны, подставил хостнеймы и
    > катанул.

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

    Ну ок. Только учти что когда-то кто-то может и проверить счета от aws.

     
     
  • 5.34, Легивон (?), 17:21, 09/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если не использовать aws и/или православные духоскрепные "селектелы", а вместо них использовать собственное железо - то ресурсы не дорогие.
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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