Greensql: Защита Sql-Серверов От Инъекций

Иногда возникает необходимость использовать клиент-серверное программное обеспечение, реализующее желаемую функциональность, но крайне уязвимое для SQL-инъекций.

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

По разным причинам не всегда можно предотвратить SQL-инъекции на уровне приложения — исходный код может быть закрыт, или, в случае с открытым исходным кодом, недостаточно знаний для внесения в него изменений, или эта операция является дорогостоящей.

.

GreenSQL — межсетевой экран или прокси-сервер для SQL-серверов — поможет обеспечить безопасность приложений в этом случае.

Сервис GreenSQL находится между вашим приложением и SQL-сервером, принимает SQL-запросы от приложения и в зависимости от степени его надежности либо перенаправляет их на целевой SQL-сервер, либо отклоняет.

GreenSQL: защита SQL-серверов от инъекций

GreenSQL поддерживает СУБД Microsoft SQL 2000/2005/2008, MySQL 4.x/5.x, PostgreSQL 7.x/8.x и является кроссплатформенным.

Официально поддерживаемые платформы включают Microsoft Windows Server 2003/2008, Ubuntu, CentOS. Поддерживаются 32- и 64-битные системы.

Что касается стоимости, то существует несколько модификаций программы – бесплатная Express, Lite и Pro с помесячной оплатой.

Основное отличие платной версии от бесплатной, если не учитывать техническую поддержку и автоматические обновления, — это возможность изменять запросы на лету и работать с защищенными SSL-соединениями.

Каждая версия GreenSQL поддерживает несколько режимов работы.

На основе риска – IPS/IDS реализует базовый алгоритм выявления потенциально опасных SQL-запросов.

Те.

GreenSQL выполняет семантический анализ запроса и по косвенным признакам определяет степень его достоверности.

Расчет степени опасности проводится с учетом следующих параметров:

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

    ПОКАЗАТЬ ТАБЛИЦЫ, ПОКАЗАТЬ СОЗДАТЬ ТАБЛИЦУ

  • операции сравнения, которые всегда возвращают TRUE, например, 1=1, поле=поле
  • комментарии внутри запроса
  • использование OR в запросе
  • операции над таблицами, содержащими личную информацию, например, пользователи, аккаунты, платежи
  • отправка в запросе пустого пароля, например, passw='', pwd='', passw=''
Необходимые заблокированные запросы можно добавить в белый список.

Брандмауэр базы данных — режим активной защиты, который разрешает только запросы, находящиеся в белом списке.

Режим обучения — режим обучения, во время которого все запросы (вернее, шаблоны запросов) включаются в белый список.

Таким образом, в режиме обучения вы можете запустить свое приложение через хвост и гриву, чтобы оно собрало базу «чистых» запросов, а затем включить «боевой» режим с блокировкой всех неизвестных запросов (Database Firewall + Активная защита).



Настройки программы

GreenSQL работает как служба (демон).

Управление настройками осуществляется через веб-интерфейс, расположенный по адресу 127.0.0.1 :5000.

GreenSQL: защита SQL-серверов от инъекций

Логин/пароль по умолчанию admin/pwd После авторизации вы попадаете на страницу статистики приложения.

Перейдите в раздел Система > Лицензия и укажите лицензионный ключ, который вы найдете в письме со ссылкой для скачивания (регистрация на сайт разработчика ).



GreenSQL: защита SQL-серверов от инъекций

Для начала вам необходимо создать прокси.

В бесплатной версии вы можете создать только один прокси.

Для создания перейдите в Базы данных > Создать прокси.



GreenSQL: защита SQL-серверов от инъекций

  • Имя прокси — имя прокси для идентификации внутри GreenSQL
  • Тип базы данных — тип защищаемой СУБД
  • Имя пользователя и пароль — логин и пароль для авторизации в СУБД.

    Не обязательно, но их указание помогает при дальнейшей настройке путем выбора объектов базы данных из списка, а не ввода их вручную.

  • Фронтенд IP — на каком IP будет работать прокси (актуально в случае нескольких сетевых подключений на машине).

    0.0.0.0 означает работу на всех сетевых интерфейсах

  • Интерфейсный порт — на каком порту будет работать прокси.

    Это порт, который вам нужно использовать в вашем приложении для подключения к СУБД.

  • Имя внутреннего сервера — имя защищаемой СУБД.

    Может быть что угодно, необходимое для идентификации внутри GreenSQL (пишу localhost)

  • Внутренний IP-адрес — IP-адрес, на котором работает защищаемая СУБД (например, 127.0.0.1)
  • Внутренний порт - порт, на котором работает защищенная СУБД (обычно для MySQL - 3306, для MSSQL - 1433, для PostgreSQL - 5432)
Как только прокси будет создан, он будет запущен на указанном порту.

Теперь вам просто нужно установить правила работы прокси (Policy), чтобы начать использовать GreenSQL в своем приложении.

В принципе, уже на этом этапе вы можете попробовать настроить свое приложение для работы с GreenSQL, однако оно будет работать в «прозрачном» режиме.



GreenSQL: защита SQL-серверов от инъекций

  • Тип правила — Тип правила (режим обучения, межсетевой экран базы данных, на основе риска).

    В зависимости от того, какой тип выбран, поля для заполнения меняются.

  • База данных — имя защищаемой базы данных в СУБД
  • Прокси — прокси, к которому применяется правило
  • IPS/IDS (режим) - является общим для всех типов правил.

    • Нет IPS/IDS - не использовать автоматическое обнаружение атак
    • Активная защита — блокировать потенциально опасные запросы
    • Мониторинг — логировать и не блокировать потенциально опасные запросы
Теперь вы можете попробовать настроить свое приложение для использования GreenSQL. Производительность Тест производительности взят с официального сайта Веб-сайт ГринSQL .

Суть теста в том, что с помощью Apache Bench было проведено несколько измерений с 400 попаданиями и 10 конкурентными запросами.

Результаты теста показаны на изображении.



GreenSQL: защита SQL-серверов от инъекций

GreenSQL поставляется с хорошей документацией по его использованию.

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

Предыдущие версии GreenSQL (до 1.2, текущая — 1.5) распространялись по лицензии GPL. Официальные сайты www.greensql.com , www.greensql.net Теги: #greensql #MySQL #sql-инъекция #sql-инъекция #sql-прокси #sql

Вместе с данным постом часто просматривают: