4 серьезных уязвимости Greenplum и PostgreSQL за 2 последние года

обучение Greenplum курсы примеры для разработчиков, Greenplum для инженеров данных, Greenplum дата-инженер курсы обучение, Greenplum Arenadata DB курсы примеры обучение, обучение большим данным, Школа Больших Данных Учебный Центр Коммерсант

Недавно мы писали про устранение серьезной уязвимости PostgreSQL в свежем выпуске Greenplum 6.21.1. Продолжая тему cybersecurity, сегодня разберем другие значимые угрозы, которые были устранены в этой MPP-СУБД в 2022 и 2021 годах.

Угрозы безопасности Greenplum и PostgreSQL

Будучи основанной на объектно-реляционной СУБД PostgreSQL, что мы разбирали здесь, Greenplum подвержен многим ее уязвимостям. В частности, уязвимость CVE-2022-1552, связанная с тем, что автоочистка (Autovacuum), переиндексация (REINDEX), индексация (CREATE INDEX), обновление материализованного представления (REFRESH MATERIALIZED VIEW), CLUSTER и pg_amcheck и другие операции не использовали изолированную программную среду с ограничениями безопасности. Это приводило к тому, что привилегированный пользователь обслуживал объекты другого пользователя, а сами команды активировали соответствующие защиты слишком поздно или вообще не делали этого. В итоге злоумышленник, имеющий разрешение на создание невременных объектов хотя бы в одной схеме, мог выполнять произвольные функции SQL под учетной записью суперпользователя.

Эта уязвимость устранена в обновлении PostgreSQL и Greenplum. Альтернативой обновлению является отключение автоочистки и отказ от ручного запуска вышеперечисленных команд. Также придется отказаться от восстановления на основе вывода команды pg_dump. Впрочем, такое обходное решение может снизить производительность системы. Впрочем, если доверенный пользователь владеет целевым объектом, все указанные команды являются безопасными.

В 2022 году была обнаружена еще одна важная уязвимость PostreSQL, типичная для многих реляционных баз данных под названием SQL-инъекция, когда злоумышленник может внедрить в SQL-запрос вредонослный код. В частности, уязвимость CVE-2022-31197 связана с JDBC-драйвером PostgreSQL (PgJDBC), которая позволяет Java-программам подключаться к базе данных PostgreSQL, используя стандартный независимый код Java. Реализация PgJDBC-метода java.sql.ResultRow.refreshRow() не выполняет экранирование имен столбцов, поэтому имя вредоносного столбца, содержащее терминатор оператора, например, `;`, может привести к SQL-инъекции. Это чревато выполнением дополнительных SQL-команд от имени пользователя JDBC-приложения. Другие пользовательские приложения, которые не вызывают этот метод, не затрагиваются.

А пользовательское приложение, вызывающее метод java.sql.ResultRow.refreshRow(), подвергается воздействию уязвимости, если базовая база данных, к которой они обращаются через свое JDBC-приложение, находится под контролем злоумышленника. Атака требует, чтобы злоумышленник обманом заставил пользователя выполнить SQL-запрос для имени таблицы, имена столбцов которой будут содержать вредоносный SQL-код, и вызвать метод обновления строки для результирующей выборки (ResultSet). При этом пользователь JDBC-приложения и владелец схемы данных могут не совпадать. Поэтому приложение JDBC, которое выполняется от имени привилегированного пользователя, запрашивающего схемы базы данных, принадлежащие потенциально злонамеренным пользователям с меньшими привилегиями, будет уязвимо. В этой ситуации злоумышленник может создать схему данных, которая заставит приложение выполнять команды от имени привилегированного пользователя. Эта уязвимость будет устранена в версиях PostgreSQL 42.2.26 и 42.4.1, до которых рекомендуется обновиться. Примечательно, что других альтернатив обхода этой проблемы нет.

В ноябре 2021 года в версиях Greenplum до 5.28.14 и 6.17.0 выполнение определенных SQL-операторов приводило к сохранению конфиденциальной (учетной) информации в журналах базы данных. В итоге злоумышленник с доступом к журналам мог прочитать конфиденциальную (учетные данные) информацию о пользователях. Эта уязвимость CVE-2021-22030 отмечена средним уровнем серьезности и была оперативно устранена разработчиками MPP-СУБД.

Впрочем, в то же самое время была обнаружена еще одна важная уязвимость CVE-2021-22028 критического уровня. В версиях Greenplum до 5.28.6 и 6.14.0 была возможность обхода пути к файлу, приводящая к раскрытию информации из файловой системы. Благодаря этому злоумышленник мог читать из файловой системы и записывать информацию в нее. Как и предыдущая уязвимость, она была оперативно устранена выпуском патча, который нужно было установить пользователям.

Освойте администрирование и эксплуатацию Greenplum и Arenadata DB для эффективного хранения и аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://nvd.nist.gov/vuln/search/results?results_type=overview&query=Greenplum
  2. https://www.cve.org/CVERecord?id=CVE-2022-31197
  3. https://www.postgresql.org/support/security/CVE-2022-1552/
Поиск по сайту