URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 88062
[ Назад ]

Исходное сообщение
"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."

Отправлено opennews , 03-Янв-13 13:18 
Доступны (http://weblog.rubyonrails.org/2013/1/2/Rails-3-2-10--3-1-9--.../) для внепланового обновления корректирующие выпуски фреймворка Ruby on Rails 3.2.10, 3.1.9 и 3.0.18, в которых устранена опасная уязвимость (https://groups.google.com/forum/?fromgroups=#!topic/rubyonra...) (CVE-2012-5664). Уязвимость позволяет осуществить выполнение произвольного SQL-кода на сервере через передачу специально оформленного запроса к web-приложению, использующему интерфейс динамического поиска Active Record в сочетании с передачей переменной без явного преобразования типа (например, уязвимы приложения с кодом подобным Post.find_by_id(params[:id]), для защиты достаточно использовать явное преобразование в строку: Post.find_by_id(params[:id].to_s)). Обновление выпущено в экстренном порядке, так как в сети уже можно найти готовый эксплоит для осуществления атаки.

URL: https://groups.google.com/forum/?fromgroups=#!topic/rubyonra...
Новость: http://www.opennet.me/opennews/art.shtml?num=35748


Содержание

Сообщения в этом обсуждении
"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Аноним , 03-Янв-13 14:03 
В SQLAlchemy такого никогда не будет. Python рулит!

"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Аноним , 03-Янв-13 14:22 
Еще бы рулил куда надо )))

"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено all_glory_to_the_hypnotoad , 03-Янв-13 14:45 
правильно. Вся эта педерастия в виде ORM  не нужна

"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Crazy Alex , 03-Янв-13 16:34 
Точнее, в разумных пределах нужна. Смысл писать рутинный SQL когда он тривиально  генерируется. Другое дело, что если по уму - то: 1) SQL генерируется один раз; 2) есть способы написать его руками; 3) не выпендриваться и не делать ORM слишком умным, его задача - избавить от рутинного кода.

"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Аноним , 03-Янв-13 18:30 
> правильно. Вся эта педерастия в виде ORM  не нужна

Не вопрос. Используй SQLAlchemy Core как генератор SQL.


"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Аноним , 03-Янв-13 18:39 
> как генератор SQL.

Или как конструктор. Не знаю как точнее описать это. В Drupal-е начиная с 7 версии похожая штука есть.


"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Аноним , 03-Янв-13 17:44 
> В SQLAlchemy такого никогда не будет. Python рулит!

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

О чем это я? Да о том что вы лишний раз нам показали что поделия на питоне надо обходить за километр: как видим, на питоне программируют бакланы полагающие что крютой рантайм и крютой фреймворк заменяют разработчику мозги.


"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Аноним , 03-Янв-13 18:28 
> Да, тут в соседней ветке в питонистом moinmoin нашли аж выполнение левого
> кода через убер-баянный баг.

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

> на питоне программируют бакланы полагающие что крютой рантайм и крютой фреймворк
> заменяют разработчику мозги.

Не проецируй. Функционал SQLAlchemy видел? Не читал, но осуждаю?


"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено бедный буратино , 03-Янв-13 14:33 
Это уязвимость в active record, или уязвимость из-за обхода active record и "делания по-своему"?

"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Crazy Alex , 03-Янв-13 21:21 
Насколько я понимаю - из-за слишком богатого функционала. Хрен все мыслимые пути проверишь.

"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Аноним , 03-Янв-13 22:01 
> Насколько я понимаю - из-за слишком богатого функционала. Хрен все мыслимые пути
> проверишь.

Помолчи. Два кейворда в строковом значении проверить, прежде, чем кормить это в запрос, может даже дебил. Ты не понимаешь ни сути инъекции, ни реляционных субд в частности.


"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Crazy Alex , 04-Янв-13 01:25 
Это ты сути не понял. Ну придумают какой-то другой путь. Ничему попытки резать HTML-теги в своё время для получения "безопасного" подмножества не научили? Валидация по черным спискам дырява всегда.

Если уж на что там наезжать - так это на хранение чего-то, что десериализуется напрямую, в куках. Но - положились на HMAC и не вбили генерацию его секрета в дефолтное развертывание приложения. Ну и слишком вольная тактовка параметров всегда злом была. Былоб всё фиксировано - и нет проблем. В общем, вагон мелких и простительных огрехов удачно совпал.


"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Аноним , 04-Янв-13 11:52 
Интеллигентные люди в куки не кладут ничего критичного. По сути, авторизационные куки есть лишь квитанция, что имярек успешно прошел аутентификацию и имеет доступ к тому-то и тому-то.

Суть, однако, SQL-инъекции - в пропихивании через веб-форму подзапроса UNION с доступом к таблицам пользователей/паролей и эскалация прав в бакэндовой БД до суперпользовательских. С последующим выносом оттуда логинов и паролей пользователей.

И защита делается либо на стороне сервера приложений (проверяется либо посредством, скажем, GreenSQL или хардкодовой процедурой валидации значений на отсутствие SQL-кейвордов), либо на стороне самой БД, скажем, на уровне табличного интерфейса, обязательного при обращении к таблицам (как это сделано в Oracle).


"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено all_glory_to_the_hypnotoad , 03-Янв-13 14:44 
а что, в AR нет нативного эйскепинга контента?

"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Аноним , 03-Янв-13 15:08 
есть, если интересно патчи смотрите

"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Аноним , 03-Янв-13 22:02 
> есть, если интересно патчи смотрите

Это руками за секунды пишется. Если чо. Любым вменяемым девелопером. SQL-инъекции как методике атаки сто лет в обед.


"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено GentooBoy , 04-Янв-13 22:56 
И что дальше? переполнению буфера и стрека по боле будет летов.

"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено asdoooq , 03-Янв-13 20:15 
А в чём фишка-то? Рельсы, когда разбирают параметры, могут в качестве значения параметра создать не строку, а объект произвольного типа? Правильно я понял?

"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Crazy Alex , 03-Янв-13 21:30 
у рельсов там используется десериализация, из которой можно собрать что угодно. Друго дело, что там вполне разумно прикрылись подписью. Ключ для, которой, по идее, надо генерировать при каждом развертывании рельсового прииложения или предупреждат администратора, но этого не сделано во многих опенсорсных проектах.

"В Ruby on Rails устранена уязвимость, позволяющая осуществит..."
Отправлено Аноним , 04-Янв-13 11:54 
> у рельсов там используется десериализация, из которой можно собрать что угодно. Друго
> дело, что там вполне разумно прикрылись подписью. Ключ для, которой, по
> идее, надо генерировать при каждом развертывании рельсового прииложения или предупреждат
> администратора, но этого не сделано во многих опенсорсных проектах.

В опенсурсе тоже полно г@внокодеров, мнящих себя супер-пупер-мега-дупер-профессионалами.


"Тем, кому интересны детали"
Отправлено Аноним , 03-Янв-13 21:18 
http://blog.phusion.nl/2013/01/03/rails-sql-injection-vulner.../

Забавная дырка, да.


"Тем, кому интересны детали"
Отправлено Аноним , 04-Янв-13 20:07 
> But ActiveRecord also defines ways for the programmer to inject SQL fragments into the query

Так это же выходит не баг, это штатное поведение ActiveRecord.