LINUX.ORG.RU

GreenSQL-FW 1.2.0

 , , ,


0

0

Вышел релиз GreenSQL-FW 1.2.0 — SQL-прокси-сервера, обеспечивающего защиту от атак типа «SQL-инъекция» на различные приложения, использующие базы данных MySQL и PostgreSQL, в частности, на системы управления контентом (CMS).

В версии 1.2.0 добавлена штатная поддержка PostgreSQL, а также значительно изменен пользовательский интерфейс.

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

  • Обучение — система анализирует проходящий через нее SQL-трафик и формирует белые списки разрешенных запросов.
  • IDS (Intrusion Detection System) — система анализирует трафик, выявляет потенциально опасные запросы и заносит их в логи.
  • IPS (Intrusion Prevention System) — система блокирует потенциально опасные запросы.
  • Активная защита — пропускаются только запросы, соответствующие шаблонам белого списка.

Для выявления потенциально опасных запросов используются следующие методы:

  • Проверка по шаблонам — позволяет блокировать запросы, изменяющие структуру базы, выполняющие административные команды, и т.п. Разумеется, список этих шаблонов легко настраивается.
  • Расчет степени риска — для каждого запроса оценивается показатель риска, повышающийся от таких факторов, как наличие в запросе комментариев, тавтологий (... OR 1=1) и т.п. Запросы с уровнем риска, превышающим заданное значение, блокируются.

Управление GreenSQL осуществляется через веб-интерфейс (скриншоты).

Для скачивания доступны не только исходный код, но и готовые пакеты под наиболее популярные серверные дистрибутивы — Debian и CentOS, а также под Ubuntu и Fedora.

>>> Подробности

★★★★

Проверено: maxcom ()
Последнее исправление: Klymedy (всего исправлений: 1)

Я никогда не буду делать сайты на php/perl, оно мне надо?

anonymous
()

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

AnDoR ★★★★★
()
Ответ на: комментарий от AnDoR

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

А что поделать, если быдло почти всегда в большинстве...
В том числе и среди кодеров.

Костыль конечно, но решетообразность нынешних цмсок уже поперек горла встала :(

nnz ★★★★
() автор топика

Не проще ли вместо этого костыля, создающего новые проблемы взамен старых, прекратить использовать AdHoc SQL и заменить его на binary binding? При использовании binary binding применение SQL inject сиильно затруднено илии вообще невозможно.

Конечно, это требует изменений в самих продуктах, но это намного более надежный и менее проблематичный способ. Это, кстати, относится к любым базам данных, позволяющим binary binding.

HappySquirrel
()
Ответ на: комментарий от HappySquirrel

>При использовании binary binding применение SQL inject сиильно затруднено илии вообще невозможно.

Если даже в Drupal binding - революционное новшество, не запланированное даже в 7, о чём говорить...

Pilat
()

Странный способ борьбы с кривыми руками и вывернутыми мозгами. Ненужный костыль, в общем. Закапывайте.

AngryElf ★★★★★
()
Ответ на: комментарий от AngryElf

>Drupal - быдлоCMSка для быдлосайтов, не надо её приводить как эталон.

Для некоторых всё быдло. С такими неприятно общаться.

Pilat
()

проще один раз натравить на приложение сканер таких инжекшнов, пофиксать там где не досмотрели, и жить себе счастливо.

sql-инъекция, 2010, смишно.

volh ★★
()
Ответ на: комментарий от HappySquirrel

> Конечно, это требует изменений в самих продуктах, но это намного более надежный и менее проблематичный способ. Это, кстати, относится к любым базам данных, позволяющим binary binding.

вот вроде и есть понимание, что неправильно все мерять своей линейкой. А все равно без предложений «Довайте соберем всех хороших и поубиваем плохих» никуда.

Syncro ★★★★★
()

Just use ORMs and stateful frameworks

yoghurt ★★★★★
()
Ответ на: комментарий от Syncro

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

volh ★★
()

Да, забавный костыль. Прям для любителей MyISAM и PHP.

xpahos ★★★★★
()
Ответ на: комментарий от AngryElf

>Ты исходники друпала видел?

Видел, и схему базы даже нарисовал однажды, но это ничего не значит. Lib.Rus.Ec на друпале и работает, несмотря на досы.

Pilat
()

Неужели, это где-то используется... ) В моём ещё незарелизенном движке вообще слой абстракции меж пхп и мускулем. ) А все запросы передаются через массивы ключ/значение. ) Кстати, никто не знает универсального драйвера Бд на пхп с качественным кодом? ))

PGArchangel
()
Ответ на: комментарий от PGArchangel

Неужели, это где-то используется... ) В моём ещё незарелизенном движке вообще слой абстракции меж пхп и мускулем. ) А все запросы передаются через массивы ключ/значение. ) Кстати, никто не знает универсального драйвера Бд на пхп с качественным кодом? ))

SQL-Alchemy

xpahos ★★★★★
()
Ответ на: комментарий от PGArchangel

Драйвер БД в принципе не может быть универсальным. Вообще посмотрите как устроен Hibernate - сразу появится масса мыслей, почему MySQL и PostgreSQL не могут одинаково использоваться.

Pilat
()

Система защиты от криворукого кодера?

naryl ★★★★★
()
Ответ на: комментарий от shutty

> У меня один знакомый профессор уже лет 20 пишет нереляционную БД. Никак не допишет. Аркадич, это вы?

Ханс-Карстен Даль дописал... Теперь продаёт, от 22000 евро за копию...

Есть и подешевле, и даже свободные, но у них ЯОД и ЯМД пожиже...

Orlusha ★★★★
()

Проще переменные привязки использовать для защиты от sql injection. А с такой штукой все может внезапно отвалиться при работающем проекте - потому что новая фитча стала использовать 'потенциально' опасный запрос.

skwish ★★
()
Ответ на: комментарий от Pilat

Отсюда вопрос. Насколько помню, для Oracle парсинг SQL запроса влечет за собой мелкие но глобальные блокировки в SGA. То есть использование переменных привязки способствует масштабируемости - множество пользователей выполняют один и тот же уже распарсенный запрос с разными привязками. Скорость так же может сильно возрастать за счет того, что в OLTP системах парсинг занимает существенное время от времени выполнения самого запроса.

Насколько это справедливо для MySQL и PostgreSQL?

skwish ★★
()
Ответ на: комментарий от skwish

> Насколько это справедливо для MySQL и PostgreSQL?

Как миниму, еще более справедливо :-)

no-dashi ★★★★★
()

У знакомого чувака стойка стоит в офисе, набитая HP DL380. Грит, там виртхостинг на Drupal. Далее с6503, далее ASA+AIP. Хозяин богодельни на audi q7 приезжает на работу пить чай и админов 3,14здить. Прийдите к нему в своем зеленом растянутом свитере и черкизонских кросовках abidac, расскажите, что Drupal говно.

anonymous
()
Ответ на: комментарий от anonymous

>админов 3,14здить

А вот это правильно. Не понимаешь бизнес-процессов - не лезь с советами.

anonymous
()
Ответ на: комментарий от HappySquirrel

> Не проще ли вместо этого костыля, создающего новые проблемы взамен старых, прекратить использовать AdHoc SQL и заменить его на binary binding? При использовании binary binding применение SQL inject сиильно затруднено илии вообще невозможно.

Конечно, это требует изменений в самих продуктах, но это намного более надежный и менее проблематичный способ. Это, кстати, относится к любым базам данных, позволяющим binary binding.

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

AlexKiriukha ★★★★
()
Ответ на: комментарий от anonymous

Модеры, капча пропускает произвольные коды вместо одного нужного. Не вполне произвольные, конечно, но две-три буквы можно неправильно ввести.

anonymous
()
Ответ на: комментарий от anonymous

а если прислать к нему бравых ребят с железными мускулами и татуировками лямбды на предплечьях?

то-то.

volh ★★
()
Ответ на: комментарий от anonymous

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

volh ★★
()
Ответ на: комментарий от volh

то он с ними договорится быстрее, чем ты, и еще неизвестно, кто огребет.

капча romes vey, введу comes vey

anonymous
()
Ответ на: комментарий от volh

Тогда есть смысл посадить на капчу распарсивание вот этих самых sql-запросов. И два варианта: пропустить/не пропустить. Вот так и составим базу данных с образцами кривых запросов, которые можно потом просто отфильтровывать прямо в момент написания быдлосайтов.

anonymous
()
Ответ на: комментарий от anonymous

фигли договариваться, когда «пхп говно» каленым железом на жопе выжигают. поздняк метаться.

volh ★★
()
Ответ на: комментарий от volh

Да просто же. Сервер запоминает все запросы (и пока что пропускает на выполнение) и складывает их для проверки в емкости со свежей капчей. Оттуда они по одному выдаются для проверки анонимусу, и если будет слишком много ответов «не пропускать», то в дело вступает байес-фильтр.

Кстати, и вообще можно проверять что угодно на предмет годности/негодности.

anonymous
()
Ответ на: комментарий от anonymous

Можно, например, банить анона по IP силами коллектива модераторов, а не единолично Шаманом. Во имя Великой Справедливости, а не Безнравственного и Грубого Произвола.

anonymous
()
Ответ на: комментарий от anonymous

>Оттуда они по одному выдаются для проверки анонимусу, и если будет слишком много ответов «не пропускать», то в дело вступает байес-фильтр.

Ну да, только байесовский фильтр тут уже не нужен)

Кстати, и вообще можно проверять что угодно на предмет годности/негодности.


Признайся, ты репетировал это перед зеркалом.

volh ★★
()
Ответ на: комментарий от volh

Ээээ... Как ты узнал? Да, я репетировал. Это у меня от стеснительности, иначе облажаюсь.

А почему байес вдруг станет не нужным? Запросы-то же не прекратятся?

anonymous
()
Ответ на: комментарий от Pilat

Если даже в Drupal binding - революционное новшество, не запланированное даже в 7, о чём говорить...


Хе-хе.
Целлюлит, вместо «признак обжорства и лени» с серьезным видом называют вторичным половым признаком.
А sql-инъекция, видимо станет «признаком полноценной СУБД», а не неграмотности и, опять-же, лени.

scott_tiger ★★★
()

Как говорил господин Бернштейн, если данные начинают интерпретировать, начинаются проблемы.

Если не использовать гененацию sql запросов, а только статические запросы с параметрами, начего не пролезет и запросы будут работать как надо.

shanechko
()
Ответ на: комментарий от Davidov

Binary binding

>> binary binding

Где почитать?

Вообще-то много где. Стандарт ODBC, например. Или описание CLI любой базы в разделе prepared statements.

Для любимого #####программерами MySQL здесь:

http://dev.mysql.com/doc/refman/5.0/en/c-api-prepared-statement-datatypes.html

Для PostgreSQL - здесь:

http://www.postgresql.org/docs/8.1/interactive/sql-prepare.html

HappySquirrel
()
Ответ на: комментарий от AlexKiriukha

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

Не переучивать, а учить. Заново. В нормальных продуктах SQL injection выжгли каленым железом еще до 2000г, когда оно стало популярным, если не раньше. Если за посследние 9 лет эти люди ничему не научились - гнать их самих и выкидывать их продукты.

HappySquirrel
()
Ответ на: комментарий от HappySquirrel

не очень поятно, каким образом можно выжечь SQL injection, если любая страница, это фактически прямая передача параметров от пользователя в шаблон запроса.

Одна ошибка и запрос меняется.

AVL2 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.