Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
kubernetes-log4j-cve-2021-44228-node-agent — Kubernetes DaemonSet, который развёртывает hotpatch на уровне JVM для устранения уязвимости Log4j2 CVE-2021-44228 путём отключения JNDI-запросов во всех контейнерах и JVM хоста. | Kitploit
Инструменты/GitHubGitHub/aws-samples/kubernetes-log4j-cve-2021-44228-node-agent
Сканеры уязвимостейБезопасность контейнеровАнализ уязвимостейБезопасность облачных средDevSecOpsРеагирование на ИнцидентыArchived
GitHubaws-samples/kubernetes-log4j-cve-2021-44228-node-agent

kubernetes-log4j-cve-2021-44228-node-agent

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Kubernetes DaemonSet, который развёртывает hotpatch на уровне JVM для устранения уязвимости Log4j2 CVE-2021-44228 путём отключения JNDI-запросов во всех контейнерах и JVM хоста.

Репозиторий
2163 лет назадЕщё не проверено

!!!! УВЕДОМЛЕНИЕ ОБ УСТАРЕВАНИИ !!!!

Этот проект устаревает, как указано ниже.

  • 2023-01-01 - Этот репозиторий больше не будет обновляться
  • 2023-04-01 - Этот репозиторий будет окончательно признан устаревшим

Проект перестанет принимать сообщения об ошибках и не будет обновляться с 2023-01-01. После этой даты проект не будет поддерживаться, и новые выпуски или артефакты, связанные с ним, создаваться не будут.

Репозиторий проекта будет окончательно архивирован (переведен в режим только для чтения) с 2023-04-01.

Как указано в оригинальной документации проекта, он всегда задумывался как временная мера для помощи пользователям Kubernetes и предоставлял лишь частичное смягчение угрозы безопасности от Log4j2 CVE-2021-44228 и CVE-2021-45046. Настоятельно рекомендуется всем пользователям Log4j обновиться до исправленной версии проекта, чтобы полностью устранить любой риск, связанный с этими CVE.

Что, если я всё ещё хочу использовать это?

Артефакты выпуска, связанные с последним релизом, останутся постоянно доступными для потребителей этого проекта, которые продолжают развертывать его в своих средах Kubernetes. В частности, манифест DaemonSet и образ контейнера из ECR Public останутся доступными после устаревания, но больше не будут поддерживаться или обновляться.

Apache Log4j2 CVE-2021-44228 агент узла

AWS разработала RPM, который выполняет горячее исправление на уровне JVM, отключающее JNDI-запросы из библиотеки Log4j2, смягчая Log4j2 CVE-2021-44228 и CVE-2021-45046.

Apache Log4j2 CVE-2021-44228 агент узла — это проект с открытым исходным кодом, созданный командой Kubernetes в AWS. Он предназначен для работы в качестве DaemonSet и смягчения воздействия Log4j2 CVE-2021-44228, которое затрагивает приложения, использующие Apache Log4j2 версии < 2.15.0 при обработке входных данных из ненадёжных источников. Запуск этого DeamonSet исправит JVM, работающие как в контейнерах, так и на хосте.

Что он делает: На каждом рабочем узле будет установлена запись в cron, которая запускает процесс поиска запущенных JVM и внедряет агент, смягчающий уязвимость Log4J2. Все JVM, включая те, что работают в контейнерах, будут исправлены таким образом. В настоящее время процесс горячего исправления настроен на запуск каждые 30 минут с 15-минутным разбросом. Эффективный интервал может варьироваться от 15 до 45 минут между запусками.

Примечание: Дополнительную информацию об уязвимости Log4j2 и ответных мерах AWS можно найти в Бюллетене безопасности AWS.

Примечание: 20.04.22 образ (v0.0.16) был обновлён последним исправлением для Amazon Linux 1 и 2. Если вы установили предыдущую версию этого DaemonSet и она всё ещё работает, вам следует повторно применить файл daemonset.yaml для установки последней версии RPM. Если исправление log4j вам больше не нужно, удалите DaemonSet и деинсталлируйте RPM, так как старые версии RPM (< 1.1-16) имели уязвимость, которая могла позволить злоумышленнику выйти из контейнера и получить доступ к базовому хосту.

Примечание: Версия 1.3-5 устраняет ALAS2-2022-1806 и ALAS-2022-1601. См. статью Amazon Linux "log4j hotpatch" <1.3-5 local privilege escalation to root для получения дополнительной информации.

Инструкция по установке

  1. Примените манифест:
root@kitploit:~
kubectl apply -f https://raw.githubusercontent.com/aws-samples/kubernetes-log4j-cve-2021-44228-node-agent/main/daemonset.yaml
  1. Проверьте журналы одного или нескольких подов вашего DaemonSet.

Выборочная проверка одного пода:

root@kitploit:~
kubectl get pods -l job=node-patch-installer -n node-configuration-daemonset
root@kitploit:~
kubectl logs <pod-name> -c node-patch-installer -n node-configuration-daemonset

или получите подтверждение для каждого узла:

root@kitploit:~
kubectl logs -l job=node-patch-installer -c node-patch-installer -n node-configuration-daemonset | grep 'installed'

Если установка прошла успешно, последняя строка в файле журнала будет содержать installed and verified, иначе будет записана ошибка.

Соображения

  • Этот проект задуман как временная мера по смягчению последствий до тех пор, пока вы не сможете обновить зависимость Log4j2 во всех своих Java-приложениях на Kubernetes как минимум до версии Log4j 2.15.0. Не полагайтесь на этот агент как на долгосрочное решение. Этот инструмент может помочь вам снизить риск, когда обновление зависимостей невозможно немедленно.
  • DaemonSet поддерживается на Amazon Linux (AL), Amazon Linux 2 (AL2) и дистрибутивах Debian Linux, таких как Ubuntu. Bottlerocket не поддерживается, так как не включает оболочку или менеджер пакетов. Если вы используете log4j на Bottlerocket, уязвимость CVE будет устранена с помощью Hotdog.
  • Поскольку DaemonSet не работают на AWS Fargate, любые поды, работающие на Fargate в кластерах Amazon EKS, не будут исправлены этим агентом.
  • При частоте выполнения по умолчанию (30 минут) агент лучше подходит для долгоживущих контейнеров.
  • RPM работает только со следующими дистрибутивами Java:
    • Credo
    • Corretto
    • OpenJDK
  • Если ваши рабочие узлы находятся в изолированной среде без доступа в Интернет, вы можете извлечь образ из ECR и отправить его в частный реестр. Кроме того, вы можете изменить Makefile в каталоге образа, чтобы собрать и отправить результирующий образ в свой частный реестр. Отредактируйте spec.template.spec.initContainers.image в файле daemonset.yaml, указав новый URI:тег образа, затем примените манифест к своему кластеру.

О CVE-2021-44228

Apache Log4j2 < 2.15.0, функции JNDI, используемые в конфигурации, сообщениях журнала и параметрах, не защищают от управляемых атакующим LDAP и других конечных точек, связанных с JNDI. Атакующий, который может контролировать сообщения журнала или их параметры, может выполнить произвольный код, загруженный с LDAP-серверов, если включена подстановка сообщений. Начиная с версий Log4j2 < 2.15.0 это поведение было отключено по умолчанию. Полные сведения можно найти в бюллетене CVE.

Дополнительную информацию об уязвимости Log4j2 можно найти в Бюллетене безопасности AWS.

Как это работает

AWS разработала RPM, который выполняет горячее исправление на уровне JVM, отключающее JNDI-запросы из библиотеки Log4j2, смягчая проблему Log4j2 для JVM на хосте, а также для JVM, работающих в контейнерах. Этот проект упаковывает RPM в виде Kubernetes DaemonSet.

После установки на каждом рабочем узле запускается процесс, который ищет запущенные JVM и внедряет агент в JVM для смягчения уязвимости Log4j2. Агент пытается исправить метод lookup() всех загруженных экземпляров org.apache.logging.log4j.core.lookup.JndiLookup, чтобы безусловно возвращать строку Patched JndiLookup::lookup(). Это предназначено для устранения уязвимости удаленного выполнения кода CVE-2021-44228 в Log4j2 без перезапуска Java-процесса.

По умолчанию этот процесс настроен на запуск каждые 30 минут и добавит уровень защиты в кластерах, где приложения ещё не исправлены обновлённой зависимостью Log4j2.

Более подробную информацию о горячем исправлении можно найти в блоге AWS open source.

Образ контейнера размещён в aws-containers публичном репозитории ECR.

Скачать инструмент