Содержание |
Apache Parquet — это эффективный колоночный формат хранения данных, ориентированный на использование в экосистеме Apache Hadoop. Особенностью Parquet является то, что он разделяет данные по столбцам, а не строкам, что позволяет достигнуть большей производительности при выполнении запросов к большим объёмам данных. Некоторые ключевые особенности Parquet:
- Сжатие. Формат поддерживает многие алгоритмы сжатия, такие как Snappy, Gzip и LZO. Это уменьшает требования к объёму хранилища и минимизирует количество данных, которые нужно читать с диска при запуске запросов;
- Метаданные. Файлы Parquet хранят метаданные и статистику столбцов, такие как минимальные и максимальные значения, типы данных и информацию об кодировке;
- Pushdown предиката. Эта функция позволяет двигателям запросов передавать фильтры на уровень хранилища. С её помощью Parquet даёт возможность пользователям пропускать чтение нерелевантных данных во время выполнения запроса;
- Типы данных. Parquet поддерживает примитивные типы данных (например, целое число, число с плавающей точкой, строка), а также может эффективно обрабатывать сложные структуры данных (например, массивы, карты, структуры) и продвинутые вложенные структуры данных
- Портативность. Файлы Parquet переносимы на многие другие платформы и языки, что упрощает обмен и совместное использование данных между разными системами.
Для работы с данными, представленными в этом стандарте используется Java-библиотека Apache Parquet Java.
История
2025: Обнаружена уязвимость в популярной Java-библиотеке, позволяющая захватить базы больших данных
НКЦКИ разослал предупреждение VULN-20250409.52[1] об обнаружении в начале апреля критической уязвимости в проекте с открытым кодом Apache Parquet Java. Сообщество разработчиков выпустило исправления, которые сотрудники центра рекомендуют оперативно установить «после оценки всех сопутствующих рисков».
Библиотека Apache Parquet Java предназначена для работы с помощью Java с файлами в формате Apache Parquet. Этот формат для эффективного хранения и обработки данных, который поддерживает высокопроизводительные методы сжатия, кодирования и массовой обработки сложных структур. Однако библиотека для работы с ним, которая написана на Java, имеет возможность так сформировать файл, что произойдет некорректная десериализация недоверенных данных. Это позволяет внешним злоумышленникам с помощью специально подготовленного файла, загруженного в соответствующую систему, исполнить посторонний код.
Уязвимость обнаружил исследователь безопасности из Amazon по имени Кейи Ли в версии библиотеки 1.15.0, а уязвимыми являются версии библиотеки с версии 1.8. Ошибка исправлена в версии 1.15.1. Опасность обнаруженной уязвимости оценивается как 10 из 10 по методике CVSS, поскольку она позволяет дистанционно исполнить код без необходимости взаимодействия с пользователем.
![]() | Формат Apache Parquet довольно востребован в России, особенно в сферах, где привычно обрабатывают большие объемы данных, — прокомментировали для TAdviser ситуацию Алексей Краснов, ведущий разработчик MD Audit. — Его ценят за высокую эффективность и совместимость с популярными инструментами аналитики, например, Hadoop и Spark. Злоумышленники могут воспользоваться этой брешью для выполнения произвольного кода на атакуемой системе. Последствия могут быть крайне неприятными — от потери контроля над системой до утечки конфиденциальной информации или заражения вредоносными программами. Эксплуатируется достаточно просто — через отправку специально сформированных данных. | ![]() |
Впрочем, далеко не все компании используют такие инструменты как Hadoop и Spark, поэтому в целом среди корпоративных информационных систем доля использования этой библиотеки может оказаться достаточно низкой.
![]() | Библиотека Apache Parquet Java не сильно распространена в России, — считает Даниил Чернов, автор продукта Solar appScreener. — Она используется только в аналитических системах, основные пользователи - это финтех-сервисы, телеком-операторы и, в меньшей степени, ритейл. Ключевая защита в этом случае - это своевременное обновление зависимостей и контроль цепочек поставок софта с помощью платформ для анализа кода. Также рекомендуем применять SCA-инструменты в автоматическом режиме для проверки безопасности библиотек, которые используют разработчики в ПО. | ![]() |
Его же данные по распространению подтверждает и эксперты компании BI.Zone. Однако сами системы больших данных, которые подвержены указанной уязвимости, обычно содержат много ценной информации.
![]() | По данным BI.Zone TDR, уязвимость не является распространенной, уязвимые хосты встречаются в инфраструктуре редко, — поделился своими данными с читателями TAdviser Павел Блинников, руководитель группы исследования уязвимостей компании BI.Zone. — Уязвимости подвержены фреймворки для работы с большими данными: Spark, Flink, Hadoop. Кроме того, уязвимы любые приложения, поддерживающие формат файлов Apache Parquet. Массовая атака с использованием уязвимости такого типа маловероятна, так как чаще всего уязвимый функционал доступен только после авторизации на сервере. Однако при наличии у атакующего такого доступа, полученного с помощью другой уязвимости или некорректной конфигурации сервера, такая атака становится возможной. | ![]() |
Фактически это означает, что уязвимость может быть использована для целенаправленной атаки на системы обработки больших данных, поэтому всем компаниям, которые имеют у себя в инфраструктуре подобные решения, стоит проверить их как на обновление всех компонент, так и на эффективность их защиты, чтобы иметь возможность своевременно заметить эксплуатацию уязвимости и отреагировать.
![]() | Уязвимость затронула многие версии библиотеки, начиная с 1.8, а безопасная версия 1.15.1 была выпущена только в апреле, — напомнил читателям TAdviser Сергей Смирнов, руководитель кластера DevSecOps платформы «Сфера». — Тем не менее, для реализации массовой атаки злоумышленникам потребуется информация о конкретных продуктах и конфигурациях, что существенно усложняет задачу. Однако в случае наличия таких данных или инсайдерской информации возможны масштабные инциденты. Для защиты от эксплуатации уязвимости в первую очередь необходимо обеспечить контроль и мониторинг используемых версий. Задача может быть автоматизирована с помощью инструментов для композиционного анализа. Во-вторых, следует использовать специализированные решения, которые автоматически анализируют компонентный состав собранных образов продукта и выявляют небезопасные элементы. | ![]() |
Фактически это означает внедрение полноценных DevSecOps-конвейеров, которые проводили бы в автоматическом режиме проверки всех зависимостей и выявляли бы появление в них уязвимых компонент.
![]() | Защита от уязвимостей в библиотеках с открытым кодом требует комплексного подхода на всех этапах жизненного цикла разработки программного обеспечения, – порекомендовал читателям TAdviser Сергей Матусевич, директор по развитию ИИ и веб-технологий компании Artezio. – Во-первых, необходимо внедрить строгий процесс управления зависимостями, который включает в себя документирование всех используемых библиотек, их версий и лицензий. Во-вторых, критически важно использовать инструменты автоматического сканирования уязвимостей. Существуют как коммерческие, так и открытые решения для этой задачи. Например, OWASP Dependency-Check, Snyk, Sonatype Nexus IQ Server. В-третьих, я настоятельно рекомендую создать процесс оперативного реагирования на уязвимости. Необходимо отслеживать бюллетени безопасности, в том числе от НКЦКИ и иметь четкий план действий при обнаружении критических уязвимостей в используемых компонентах. | ![]() |