Критическая уязвимость в Apache Ignite позволяет выполнять удаленный код

Apache Ignite – это платформа распределенной in-memory базы данных, которая позволяет быстро обрабатывать и хранить большие объемы данных. Однако недавно в платформе была обнаружена критическая уязвимость, обозначенная как CVE-2024-52577. Эта уязвимость может позволить злоумышленникам выполнять удаленный код (RCE). Уязвимость оценена в 9.8 баллов по шкале CVSS, что указывает на ее высокий уровень опасности.

Уязвимость затрагивает версии Apache Ignite от 2.6.0 до 2.16.x. Основная причина заключается в неправильном применении фильтров сериализации классов на серверных конечных точках. Злоумышленники могут создавать вредоносные payload-ы, содержащие сериализованные объекты, которые обходят проверки безопасности. Это позволяет выполнять произвольный код в процессе десериализации.

Уязвимость возникла из-за того, что Apache Ignite не применял конфигурации ObjectInputFilter, предназначенные для блокировки опасных классов во время десериализации. В результате злоумышленники могут получить полный контроль над системой, что ставит под угрозу целостность, конфиденциальность и доступность данных.

Для успешной атаки необходимо:

  1. Доступ к сети:
    Злоумышленник должен иметь доступ к конечным точкам Apache Ignite (например, REST API или бинарным протоколам).
  2. Наличие gadget-классов:
    В classpath сервера должны присутствовать библиотеки с уязвимыми методами сериализации (gadget-классы).

Меры по устранению уязвимости

  1. Обновление версии:
    Обновите Apache Ignite до версии 2.17.0. Для этого используйте команду Maven: mvn clean install -Dignite.version=2.17.0
  2. Ограничение доступа к сети:
    Ограничьте доступ к конечным точкам Apache Ignite с помощью брандмауэров или групп безопасности.
  3. Мониторинг логов:
    Регулярно проверяйте логи системы. Если обнаружены подозрительные попытки десериализации (например, неожиданная загрузка классов или сетевые подключения), немедленно примите меры.
  4. Проверка gadget-библиотек:
    Проверьте classpath сервера на наличие ненужных или уязвимых библиотек и удалите их.

Уязвимость CVE-2024-52577 вновь подчеркивает общие проблемы с сериализацией в Java. Эти проблемы впервые привлекли широкое внимание в 2015 году с обнаружением уязвимостей в Apache Commons Collections. Хотя в Java 9 были введены фильтры сериализации (JEP 290), неправильные настройки и конфигурации по-прежнему распространены.

Дополнительные рекомендации

  1. Проактивное управление обновлениями:
    Регулярно обновляйте системы и своевременно устанавливайте обновления безопасности.
  2. Стратегия «глубокой защиты» (Defense-in-Depth):
    Используйте многоуровневую стратегию защиты, включая ограничение доступа, шифрование данных и регулярные проверки.
  3. Обучение сотрудников:
    Проводите тренинги по кибербезопасности для сотрудников и информируйте их о новых угрозах.
  4. Тестирование на уязвимости:
    Регулярно проводите пентесты для выявления уязвимостей в системах.

Уязвимость CVE-2024-52577 в Apache Ignite делает системы уязвимыми для атак с удаленным выполнением кода. Для устранения этой уязвимости необходимо обновить Apache Ignite до версии 2.17.0, ограничить доступ к сети и регулярно проверять логи системы. Кроме того, важно учитывать общие проблемы с сериализацией в Java и применять стратегию «глубокой защиты».

Кибербезопасность – это постоянный процесс, требующий бдительности и обновлений. Организации, использующие Apache Ignite, могут защитить свои данные, следуя этим рекомендациям.

Перейти к содержимому