The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

В Ruby on Rails устранена уязвимость, позволяющая осуществить подстановку SQL-кода

03.01.2013 12:33

Доступны для внепланового обновления корректирующие выпуски фреймворка Ruby on Rails 3.2.10, 3.1.9 и 3.0.18, в которых устранена опасная уязвимость (CVE-2012-5664). Уязвимость позволяет осуществить выполнение произвольного SQL-кода на сервере через передачу специально оформленного запроса (например, "/?id\\[limit\\]=1'") к web-приложению, использующему интерфейс динамического поиска Active Record в сочетании с передачей переменной без явного преобразования типа (например, уязвимы приложения с кодом подобным Post.find_by_id(params[:id]), для защиты достаточно использовать явное преобразование в строку: Post.find_by_id(params[:id].to_s)). Обновление выпущено в экстренном порядке, так как в сети уже можно найти готовый эксплоит для осуществления атаки.

  1. Главная ссылка к новости (https://groups.google.com/foru...)
  2. OpenNews: В Ruby on Rails повторно устранена возможность подстановки SQL-кода
  3. OpenNews: Критическая уязвимость в Ruby on Rails
  4. OpenNews: Релиз web-фреймворка Ruby on Rails 3.2
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/35748-rubyonrails
Ключевые слова: rubyonrails, ruby
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (22) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Аноним (-), 14:03, 03/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    В SQLAlchemy такого никогда не будет. Python рулит!
     
     
  • 2.5, Аноним (-), 14:22, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Еще бы рулил куда надо )))
     
     
  • 3.8, all_glory_to_the_hypnotoad (ok), 14:45, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    правильно. Вся эта педерастия в виде ORM  не нужна
     
     
  • 4.10, Crazy Alex (??), 16:34, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Точнее, в разумных пределах нужна. Смысл писать рутинный SQL когда он тривиально  генерируется. Другое дело, что если по уму - то: 1) SQL генерируется один раз; 2) есть способы написать его руками; 3) не выпендриваться и не делать ORM слишком умным, его задача - избавить от рутинного кода.
     
  • 4.17, Аноним (-), 18:30, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > правильно. Вся эта педерастия в виде ORM  не нужна

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

     
     
  • 5.18, Аноним (-), 18:39, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > как генератор SQL.

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

     
  • 2.13, Аноним (-), 17:44, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > В SQLAlchemy такого никогда не будет. Python рулит!

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

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

     
     
  • 3.16, Аноним (-), 18:28, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да, тут в соседней ветке в питонистом moinmoin нашли аж выполнение левого
    > кода через убер-баянный баг.

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

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

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

     

  • 1.6, бедный буратино (ok), 14:33, 03/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это уязвимость в active record, или уязвимость из-за обхода active record и "делания по-своему"?
     
     
  • 2.21, Crazy Alex (ok), 21:21, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Насколько я понимаю - из-за слишком богатого функционала. Хрен все мыслимые пути проверишь.
     
     
  • 3.26, Аноним (-), 22:01, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Насколько я понимаю - из-за слишком богатого функционала. Хрен все мыслимые пути
    > проверишь.

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

     
     
  • 4.33, Crazy Alex (??), 01:25, 04/01/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это ты сути не понял. Ну придумают какой-то другой путь. Ничему попытки резать HTML-теги в своё время для получения "безопасного" подмножества не научили? Валидация по черным спискам дырява всегда.

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

     
     
  • 5.35, Аноним (-), 11:52, 04/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Интеллигентные люди в куки не кладут ничего критичного. По сути, авторизационные куки есть лишь квитанция, что имярек успешно прошел аутентификацию и имеет доступ к тому-то и тому-то.

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

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

     

  • 1.7, all_glory_to_the_hypnotoad (ok), 14:44, 03/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а что, в AR нет нативного эйскепинга контента?
     
     
  • 2.9, Аноним (-), 15:08, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    есть, если интересно патчи смотрите
     
     
  • 3.27, Аноним (-), 22:02, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > есть, если интересно патчи смотрите

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

     
     
  • 4.39, GentooBoy (ok), 22:56, 04/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    И что дальше? переполнению буфера и стрека по боле будет летов.
     

  • 1.19, asdoooq (?), 20:15, 03/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А в чём фишка-то? Рельсы, когда разбирают параметры, могут в качестве значения параметра создать не строку, а объект произвольного типа? Правильно я понял?
     
     
  • 2.22, Crazy Alex (ok), 21:30, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    у рельсов там используется десериализация, из которой можно собрать что угодно. Друго дело, что там вполне разумно прикрылись подписью. Ключ для, которой, по идее, надо генерировать при каждом развертывании рельсового прииложения или предупреждат администратора, но этого не сделано во многих опенсорсных проектах.
     
     
  • 3.37, Аноним (-), 11:54, 04/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > у рельсов там используется десериализация, из которой можно собрать что угодно. Друго
    > дело, что там вполне разумно прикрылись подписью. Ключ для, которой, по
    > идее, надо генерировать при каждом развертывании рельсового прииложения или предупреждат
    > администратора, но этого не сделано во многих опенсорсных проектах.

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

     

  • 1.20, Аноним (-), 21:18, 03/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    http://blog.phusion.nl/2013/01/03/rails-sql-injection-vulnerability-hold-your

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

     
     
  • 2.38, Аноним (-), 20:07, 04/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > But ActiveRecord also defines ways for the programmer to inject SQL fragments into the query

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру