Иногда возникает необходимость использовать клиент-серверное программное обеспечение, реализующее желаемую функциональность, но крайне уязвимое для SQL-инъекций.
В основном это веб-сайты, сетевые приложения и другие сервисы, доступ к которым открыт широкому кругу пользователей, включая злоумышленников.
По разным причинам не всегда можно предотвратить SQL-инъекции на уровне приложения — исходный код может быть закрыт, или, в случае с открытым исходным кодом, недостаточно знаний для внесения в него изменений, или эта операция является дорогостоящей.
.
GreenSQL — межсетевой экран или прокси-сервер для SQL-серверов — поможет обеспечить безопасность приложений в этом случае.
Сервис GreenSQL находится между вашим приложением и SQL-сервером, принимает SQL-запросы от приложения и в зависимости от степени его надежности либо перенаправляет их на целевой 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.
Логин/пароль по умолчанию admin/pwd
После авторизации вы попадаете на страницу статистики приложения.
Перейдите в раздел Система > Лицензия и укажите лицензионный ключ, который вы найдете в письме со ссылкой для скачивания (регистрация на сайт разработчика ).
Для начала вам необходимо создать прокси.
В бесплатной версии вы можете создать только один прокси.
Для создания перейдите в Базы данных > Создать прокси.
- Имя прокси — имя прокси для идентификации внутри GreenSQL
- Тип базы данных — тип защищаемой СУБД
- Имя пользователя и пароль — логин и пароль для авторизации в СУБД.
Не обязательно, но их указание помогает при дальнейшей настройке путем выбора объектов базы данных из списка, а не ввода их вручную.
- Фронтенд IP — на каком IP будет работать прокси (актуально в случае нескольких сетевых подключений на машине).
0.0.0.0 означает работу на всех сетевых интерфейсах
- Интерфейсный порт — на каком порту будет работать прокси.
Это порт, который вам нужно использовать в вашем приложении для подключения к СУБД.
- Имя внутреннего сервера — имя защищаемой СУБД.
Может быть что угодно, необходимое для идентификации внутри GreenSQL (пишу localhost)
- Внутренний IP-адрес — IP-адрес, на котором работает защищаемая СУБД (например, 127.0.0.1)
- Внутренний порт - порт, на котором работает защищенная СУБД (обычно для MySQL - 3306, для MSSQL - 1433, для PostgreSQL - 5432)
Теперь вам просто нужно установить правила работы прокси (Policy), чтобы начать использовать GreenSQL в своем приложении.
В принципе, уже на этом этапе вы можете попробовать настроить свое приложение для работы с GreenSQL, однако оно будет работать в «прозрачном» режиме.
- Тип правила — Тип правила (режим обучения, межсетевой экран базы данных, на основе риска).
В зависимости от того, какой тип выбран, поля для заполнения меняются.
- База данных — имя защищаемой базы данных в СУБД
- Прокси — прокси, к которому применяется правило
- IPS/IDS (режим) - является общим для всех типов правил.
- Нет IPS/IDS - не использовать автоматическое обнаружение атак
- Активная защита — блокировать потенциально опасные запросы
- Мониторинг — логировать и не блокировать потенциально опасные запросы
Суть теста в том, что с помощью Apache Bench было проведено несколько измерений с 400 попаданиями и 10 конкурентными запросами.
Результаты теста показаны на изображении.
GreenSQL поставляется с хорошей документацией по его использованию.
Здесь я не пытался это переводить, а лишь изложил общее назначение и настройки основного функционала программы.
Предыдущие версии GreenSQL (до 1.2, текущая — 1.5) распространялись по лицензии GPL. Официальные сайты www.greensql.com , www.greensql.net Теги: #greensql #MySQL #sql-инъекция #sql-инъекция #sql-прокси #sql
-
Блокнот – Советы По Умному Шопингу
19 Oct, 24 -
О Новых Моделях, Которые Спасают Нам Жизнь
19 Oct, 24 -
Миф О Суперязыке
19 Oct, 24 -
Оптимизация Цифровой Машины (Фсм)
19 Oct, 24