07 Апр, 2023

Пост-Ингрес (POSTGRES)

Penetration Testing as a service (PTaaS)

Tests security measures and simulates attacks to identify weaknesses.

POSTGRES расшифровывается как “Пост-Ингрес”. и представляет собой систему управления реляционными базами данных (СУБД), которая была первоначально разработана в Калифорнийском университете в Беркли в 1980-х годах как преемница базы данных Ingres. Это система с открытым исходным кодом, известная своей расширяемостью, надежностью и способностью обрабатывать сложные запросы и большие объемы данных. С тех пор POSTGRES превратилась в несколько различных систем управления базами данных с открытым исходным кодом, включая PostgreSQL, которая является одной из самых популярных и широко используемых СУБД в современном мире.

ПОСТГРЕС общие порты

5432/TCP: это порт по умолчанию, используемый PostgreSQL для прослушивания клиентских подключений. Это наиболее часто используемый порт для PostgreSQL, который используется как для локальных, так и для удаленных подключений.

5433/TCP: Это еще один TCP-порт, который может использоваться PostgreSQL для прослушивания клиентских подключений. Он используется реже, чем портвейн 5432 и обычно используется в качестве альтернативного порта, когда порт по умолчанию уже используется.

5432/UDP: это порт UDP, используемый PostgreSQL для трансляции информации о кластере базы данных. Он используется для обнаружения других узлов в кластере и обмена информацией о состоянии узлов.

Стандартные команды от неавторизованных пользователей

SELECT: Эта команда используется для извлечения данных из таблиц в базе данных. Если неавторизованный пользователь выполнит эту команду, он может получить конфиденциальную информацию из базы данных.

INSERT: Эта команда используется для вставки новых данных в таблицы базы данных. Если неавторизованный пользователь выполнит эту команду, он может вставить вредоносные данные в базу данных, что может поставить под угрозу целостность данных.

UPDATE: Эта команда используется для обновления существующих данных в таблицах базы данных. Если неавторизованный пользователь выполнит эту команду, он может иметь возможность изменять конфиденциальные данные в базе данных.

DELETE: Эта команда используется для удаления данных из таблиц в базе данных. Если неавторизованный пользователь выполнит эту команду, он может удалить важные данные из базы данных.

Инструменты для использования протокола ПОСТГРЕС

Ручные Инструменты:

  • pgAdmin: это популярный инструмент администрирования и управления PostgreSQL с открытым исходным кодом. Он предоставляет графический пользовательский интерфейс для управления базами данных PostgreSQL и администрирования.

  • psql: это инструмент командной строки для взаимодействия с базами данных PostgreSQL. Это позволяет пользователям выполнять команды SQL, создавать и изменять таблицы, а также управлять пользователями базы данных и разрешениями.

  • Navicat: это коммерческий инструмент управления базами данных, который поддерживает PostgreSQL, а также другие реляционные базы данных. Он предоставляет графический пользовательский интерфейс для управления базами данных PostgreSQL и их редактирования.

  • Дбивер: это бесплатный инструмент управления базами данных с открытым исходным кодом, который поддерживает PostgreSQL. Он предоставляет графический пользовательский интерфейс для управления и редактирования баз данных PostgreSQL, а также других реляционных баз данных.

  • DataGrip: это коммерческий инструмент управления базами данных, который поддерживает PostgreSQL, а также другие реляционные базы данных. Он предоставляет графический пользовательский интерфейс для управления базами данных PostgreSQL и их редактирования.

  • OmniDB: это бесплатный веб-инструмент управления базами данных с открытым исходным кодом, поддерживающий PostgreSQL. Он предоставляет графический пользовательский интерфейс для управления базами данных PostgreSQL и их редактирования.

  • HeidiSQL: это бесплатный инструмент управления базами данных с открытым исходным кодом, который поддерживает PostgreSQL, а также другие реляционные базы данных. Он предоставляет графический пользовательский интерфейс для управления базами данных PostgreSQL и их редактирования.

  • SQL Workbench/J: это бесплатный инструмент управления базами данных с открытым исходным кодом, который поддерживает PostgreSQL, а также другие реляционные базы данных. Он предоставляет графический пользовательский интерфейс для управления базами данных PostgreSQL и их редактирования.

  • PostgREST: это бесплатный веб-сервер с открытым исходным кодом, который автоматически генерирует RESTful API из схемы базы данных PostgreSQL. Это позволяет пользователям запрашивать базу данных с помощью HTTP-запросов.

  • pgBadger: это бесплатный анализатор журналов PostgreSQL с открытым исходным кодом, который генерирует отчеты о производительности и активности базы данных. Он дает представление о медленных запросах, ошибках и других проблемах с производительностью.

Автоматизированные инструменты:

  • pgTAP: это бесплатная платформа модульного тестирования с открытым исходным кодом для PostgreSQL. Это позволяет пользователям писать автоматизированные тесты для SQL-запросов и функций.

  • pg_regress: это инструмент регрессионного тестирования PostgreSQL, который позволяет пользователям запускать автоматические тесты для своей схемы базы данных и функций.

  • pg_prove: это инструмент командной строки для запуска автоматических тестов в базе данных PostgreSQL. Он поддерживает протокол Test Anything Protocol (TAP) для составления отчетов о тестировании.

  • pgbench: это инструмент сравнительного анализа для PostgreSQL, который позволяет пользователям моделировать рабочие нагрузки базы данных и измерять показатели производительности.

  • HammerDB: это бесплатный инструмент для сравнения баз данных с открытым исходным кодом, который поддерживает PostgreSQL, а также другие реляционные базы данных. Это позволяет пользователям моделировать рабочие нагрузки базы данных и измерять показатели производительности.

  • Apache JMeter: это бесплатный инструмент нагрузочного тестирования с открытым исходным кодом, который поддерживает PostgreSQL, а также другие базы данных. Это позволяет пользователям имитировать высокие нагрузки на базу данных и измерять показатели производительности.

  • Loader.io: это облачный инструмент нагрузочного тестирования, который поддерживает PostgreSQL, а также другие базы данных. Это позволяет пользователям имитировать высокие нагрузки на базу данных и измерять показатели производительности.

  • Tsung: это бесплатный распределенный инструмент нагрузочного тестирования с открытым исходным кодом, который поддерживает PostgreSQL, а также другие базы данных. Это позволяет пользователям моделировать высокие нагрузки на базу данных и измерять показатели производительности.

  • JDBC Load Tester: это коммерческий инструмент нагрузочного тестирования для PostgreSQL, а также других баз данных. Это позволяет пользователям моделировать высокие нагрузки на базу данных и измерять показатели производительности.

  • SQL Power Injector: это бесплатный инструмент тестирования SQL-инъекций с открытым исходным кодом, который поддерживает PostgreSQL, а также другие базы данных. Это позволяет пользователям тестировать базы данных на наличие уязвимостей и проблем безопасности.

Плагины для браузера:

  • Postman: это бесплатный инструмент тестирования API с открытым исходным кодом, который можно использовать для тестирования HTTP-запросов к PostgreSQL RESTful API.

  • RESTClient: это бесплатный плагин Firefox с открытым исходным кодом, который можно использовать для тестирования HTTP-запросов к PostgreSQL RESTful API.

  • Advanced REST Client: это бесплатный плагин Chrome с открытым исходным кодом, который можно использовать для тестирования HTTP-запросов к PostgreSQL RESTful API.

Последние пять известных CVE для ПОСТГРЕС

CVE-2022-46792 – Движок Hasura GraphQL до версии 2.15.2 неправильно обрабатывает авторизацию на уровне строк при обновлении многих API для серверных частей Postgres. Фиксированными версиями являются 2.10.2, 2.11.3, 2.12.1, 2.13.2, 2.14.1, и 2.15.2. (Версии до 2.10.0 не затронуты.)

CVE-2022-3971 – Уязвимость была обнаружена в matrix-appservice-irc до версии 0.35.1. Это было объявлено критическим. Эта уязвимость затрагивает неизвестный код файла src/datastore/postgres/PgDataStore.ts. Манипулирование аргументом roomIds приводит к SQL-инъекции. Обновление до версии 0.36.0 способно устранить эту проблему. Название патча - 179313a37f06b298150edba3e2b0e5a73c1415e7. Рекомендуется обновить затронутый компонент. VDB-213550 - это идентификатор, присвоенный этой уязвимости.

CVE-2022-35942 – Неправильная проверка входных данных в фильтре обратной связи `содержит` может привести к произвольной SQL-инъекции. Когда расширенному свойству фильтра `contains` разрешено интерпретироваться соединителем Postgres, можно вводить произвольный SQL, который может повлиять на конфиденциальность и целостность данных, хранящихся в подключенной базе данных. Патч был выпущен в версии 5.5.1. Это влияет на пользователей, которые выполняют любое из следующих действий: – Подключаются к базе данных через источник данных с параметром `allowExtendedProperties: true` ИЛИ – Используют методы CRUD соединителя напрямую ИЛИ – Используют другие методы соединителя для интерпретации фильтра обратной связи. Пользователи, которые не могут выполнить обновление, должны выполнить следующее, если применимо: – Удалить параметр источника данных `allowExtendedProperties: true` - Добавить параметр источника данных `allowExtendedProperties: false` – При переходе непосредственно к функциям соединителя вручную очистите пользовательский ввод для фильтра обратной связи `содержит` заранее.

CVE-2022-34434 – Облачная мобильность для Dell Storage версии 1.3.0 и более ранних версий содержит уязвимость неправильного управления доступом в базе данных Postgres. Субъект угрозы, имеющий корневой доступ либо к vApp, либо к контейнерным версиям Cloud Mobility, потенциально может воспользоваться этой уязвимостью, что приведет к изменению или удалению таблиц, которые требуются для многих основных функций облачной мобильности. Эксплуатация может привести к нарушению целостности и доступности обычной функциональности приложения облачной мобильности.

CVE-2022-31625 – В версиях PHP 7.4.x ниже 7.4.30, 8.0.x ниже 8.0.20 и 8.1.x ниже 8.1.7 при использовании расширения базы данных Postgres предоставление недопустимых параметров параметризованному запросу может привести к попытке PHP освободить память, используя неинициализированные данные в качестве указателей. Это может привести к уязвимости RCE или отказу в обслуживании.

Полезная информация

– PostgreSQL - это система управления реляционными базами данных с открытым исходным кодом (RDBMS), которая работает на всех основных операционных системах и совместима с ACID с 2001 года.

– PostgreSQL - это база данных OLTP общего назначения, которая хорошо подходит для управления такими протоколами, как электронная коммерция, CRM и финансовые книги. Соответствие требованиям SQL и оптимизатор запросов также делают его полезным для анализа данных общего назначения. 

– PostgreSQL имеет мощные дополнения, такие как популярный PostGIS geospatial database extender. 

– Доступно множество веб-сайтов, предлагающих учебные ресурсы для PostgreSQL, включая PGTune, онлайн-инструмент, который помогает создавать конфигурации для PostgreSQL на основе максимальной производительности для данной конфигурации оборудования. 

– PostgreSQL изначально назывался POSTGRES и был нацелен на добавление наименьшего количества функций, необходимых для поддержки нескольких типов данных. В 1996 году он был переименован в PostgreSQL, чтобы проиллюстрировать свою поддержку языка запросов SQL. PostgreSQL по-прежнему обычно сокращается как Postgres.

– PostgreSQL поддерживается обширным рынком решений "Программное обеспечение как услуга" (SaaS), используемых для запуска Postgres в облаке и локально.

Известные баннеры

PostgreSQL 11.9 на x86_64-apple-darwin19.4.0, скомпилированный Apple clang версии 12.0.0 (clang-1200.0.32.29), 64-разрядный

PostgreSQL 13.2 на x86_64-pc-linux-gnu, скомпилированный gcc (Ubuntu 9.3.0-17ubuntu1~ 20.04) 9.3.0

PostgreSQL 12.5 на x86_64-pc-linux-gnu, скомпилированный gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-разрядный

PostgreSQL 10.15, скомпилированный Visual C++ build 1914, 64-разрядный

PostgreSQL 9.6.22 на x86_64-pc-linux-gnu, скомпилированный gcc (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.12) 5.4.0, 64-разрядный

Книги для учебы ПОСТГРЕС

PostgreSQL: Запущен, 3-е издание автор : Регина О. Вто и Лео С. Hsu – Эта книга представляет собой практическое руководство по PostgreSQL, которое охватывает все - от установки и настройки до сложных тем, таких как репликация и разделение. Она включает в себя реальные примеры и советы по оптимизации производительности. Авторы получили положительные отзывы за их четкий стиль написания и глубокое знание PostgreSQL.

Освоение PostgreSQL 12 автор Ханс-Юрген Шениг – Эта книга представляет собой всеобъемлющее руководство по PostgreSQL, которое охватывает такие темы, как моделирование данных, оптимизация запросов и безопасность. Он предназначен для пользователей среднего и продвинутого уровня и включает практические примеры и упражнения. Автор является известным экспертом по PostgreSQL и получил положительные отзывы за свои четкие объяснения и полезные примеры.

PostgreSQL: Введение и концепции автор: Брюс Момджян – Эта книга представляет собой подробное введение в PostgreSQL, которое охватывает такие темы, как SQL, типы данных и управление транзакциями. Он предназначен как для начинающих, так и для опытных пользователей и включает практические примеры и упражнения. Автор является основным автором PostgreSQL и получил положительные отзывы за свои четкие объяснения и понимание внутренней работы базы данных.

Практический PostgreSQL Джон К. Уорсли и Джошуа Д. Дрейк – Эта книга представляет собой практическое руководство по PostgreSQL, которое охватывает такие темы, как моделирование данных, SQL и администрирование. Она включает в себя реальные примеры и советы по оптимизации производительности. Авторы получили положительные отзывы за их четкий стиль письма и практические советы.

Поваренная книга по администрированию PostgreSQL 11, 2-е издание Саймон Риггс и Джанни Чолли – Эта книга представляет собой сборник рецептов для задач администрирования PostgreSQL, таких как резервное копирование и восстановление, репликация и настройка производительности. Она включает практические примеры и советы по решению распространенных проблем. Авторы получили положительные отзывы за их четкие объяснения и полезные примеры.

Список полезной нагрузки для ПОСТГРЕС

  • Объект JSON, содержащий данные, которые должны быть вставлены или обновлены в базе данных.

  • Строка значений, разделенных запятыми (CSV), представляющих данные, которые будут вставлены или обновлены в базе данных.

  • Инструкция SQL, которая выполняет определенное действие с базой данных, например операцию ВСТАВКИ, ОБНОВЛЕНИЯ или УДАЛЕНИЯ.

  • Запрос GraphQL, который определяет данные, которые должны быть извлечены из базы данных.

  • Двоичная полезная нагрузка, такая как изображение или файл, которая будет сохранена в базе данных.

  • Полезная нагрузка сообщения в пользовательском формате, в зависимости от конкретных требований приложения, использующего базу данных.

Смягчение последствий

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

  2. PostgreSQL позволяет настроить детализированный контроль доступа с использованием ролей и разрешений. Назначая роли пользователям и предоставляя им соответствующие разрешения, вы можете ограничить доступ к конфиденциальным данным и предотвратить несанкционированные изменения.

  3. PostgreSQL поддерживает шифрование SSL / TLS, которое шифрует данные при передаче между клиентом и сервером. Включение SSL / TLS может помочь снизить риск подслушивания и атак "человек посередине".

  4. Параметризованные запросы помогают предотвратить атаки с использованием SQL-инъекций, отделяя SQL-код от предоставленных пользователем данных. Это может помочь снизить риск выполнения вредоносного кода и кражи данных.

  5. Мониторинг ваших журналов PostgreSQL и активности базы данных может помочь вам обнаружить подозрительное поведение и потенциальные атаки. Вы можете использовать такие инструменты, как аудит PostgreSQL, для мониторинга активности базы данных и файлов журналов на предмет подозрительных событий.

Заключение

PostgreSQL это мощная и универсальная система управления реляционными базами данных с открытым исходным кодом, которая предлагает широкий спектр функций и возможностей. Он известен своей надежностью, масштабируемостью и робастностью и широко используется разработчиками, аналитиками данных и предприятиями всех размеров. PostgreSQL поддерживает множество языков программирования, включая SQL, Python и Java, и может использоваться в различных приложениях, от веб-разработки до аналитики и хранилища данных.

Другие Услуги

Готовы к безопасности?

Связаться с нами