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 та їх редагування.

  • DBeaver: це безкоштовний інструмент управління базами даних з відкритим вихідним кодом, який підтримує 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, і може використовуватися в різних додатках, від веб-розробки до аналітики і сховища даних.

Інші Послуги

Готові до безпеки?

зв'язатися з нами