Презентация способов обхода XSS фильтров на BlackHat

BlackHatЕжегодно проводимая конференция BlackHat является одним из самых значимых событий в сфере информационной безопасности. В этом году эксперты из множества стран собрались в Лас Вегасе, чтобы показать и обсудить результаты своих исследований. Разумеется, не обошли стороной веб-безопасность – наиболее интересное выступление дали Эдуардо Вела (Eduardo Vela) и Дэвид Линдсэй (David Lindsay) на тему реализации XSS-атак в условиях WAF. Были затронуты практически все самые известные программные продукты, связанные с защитой от XSS как на стороне сервера, так и клиента: PHP-IDS, Mod_Security, XSSFilter в IE8, NoScript. Наиболее слабым оказался Mod_Security, поэтому авторы доклада рекомендуют использовать PHP-IDS вместо него. XSSFilter, изначально неспособный защитить от всех типов XSS (по словам разработчиков из MS в силу производительности браузера), также был повержен несколькими новыми XSS-векторами. На уровне клиента докладчики посоветовали использовать Firefox+NoScript, хотя и для последнего были найдены способы обхода. Ознакомиться с материалами выступления можно на сайте одного из авторов. Презентация получилась немалой – более 100 страниц. Много внимания уделено новым XSS-векторам, некоторые из которых просто поражают воображение. Только взгляните:

(É=[Å=[],µ=!Å+Å][µ[È=-~-~++Å]+({}+Å) [Ç=!!Å+µ,ª=Ç[Å]+Ç[+!Å],Å]+ª])() [µ[Å]+µ[Å+Å]+Ç[È]+ª](Å)

($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''
+$)[_/_]+$_[+$])])()[__[_/_]+__[_+~$]+$_[_]+$$](_/_)

За этим, казалось бы, беспорядочным набором символов кроется всем известный javascript:alert(1);. Кроме того, показаны примеры XSS, которые могут возникнуть в будущем с внедрением HTML5, а также уязвимость в PHP-функции utf8_decode(), позволяющая эксплуатировать неправильную обработку UTF-8. В целом, доклад, если не инновационный с точки зрения способов обхода, то уж точно приносящий много пищи для размышления, как разработчикам, так и взломщикам.

XSS Rays – браузер как сканер XSS

Небезызвестный Gareth Heyes сегодня опубликовал свою новую утилиту для сканирования сайтов на наличие XSS. Особенность его разработки заключается в том, что процесс сканирования производится браузером атакующего при помощи javascript. Алгоритм довольно прост: javascript-код рекурсивно собирает все ссылки и формы со страниц сайта и проводит различные тесты, используя встроенную базу векторов. XSS Rays способен совершать кроссдоменные вызовы благодаря использованию тэгов iframe вместо AJAX. Для логирования результатов сканеру требуется локальный веб-сервер с PHP. Реализация сканера в контексте браузера, по словам разработчика, способствует повышению точности и качества конечного результата, хотя ложные срабатывания не исключены. Для использования XSS Rays необходимо лишь открыть страницу http://localhost/XSS_Rays/helpers/bookmarklet.html и сохранить ссылку в закладки. Сканирование сайта производится по клику на букмарклет и нажатию на CTRL+SHIFT+X.
XSS Rays

Активная XSS на FeedBurner

Feedburner.com – один из самых популярных среди блогеров сервисов для управления RSS-фидами. Доверие к feedburner вызывает тот факт, что этот сервис был приобретен Google и в настоящее время находится во владении интернет-гиганта. Тем не менее, у сервиса есть проблемы с безопасностью, в чем я недавно убедился. Просматривая статистику своего блога на feedburner.com, неожиданно получил javascript алерт с содержимым своих Cookie. Сначала я подумал, что это какие-то неаккуратные тесты разработчиков, однако, просмотрев исходный код страницы, обнаружил алерт в том месте, где выводилась информация о Referer пользователей, посетивших сайт. Видимо кто-то специально обратился к моему блогу с <script>alert(document.cookie)</script> в Referer, но не подозревая, что в статистике Feedburner этот HTTP-заголовок не фильтруется.
feedburnerxss
Уязвимость имеет место в статистике посещений сайта, однако для ведения этой статистики администратору необходимо установить специальный JS-код в исходник своего блога. Таким образом, XSS подвержены только те пользователи сервиса, у которых данная опция включена.
feedburner
Пока уязвимость не устранили, рекомендую блогерам снять на время галку с этого пункта. Учитывая, что это возможно неединственная уязвимость на фидбернере, также советую воспользоваться плагином NoScript для Firefox.

CSRF у вас дома

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

Как ни странно, в выдаче гугла нашелся еще один умный дом с таким же веб-интерфейсом. Автор предположил, что каждый раз, когда гуглбот проходил по ссылке, в доме включался или выключался свет =)

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

С наступающим!

Методы обхода httpOnly

httpOnly – это дополнительный флаг для HTTP-заголовка Set-Cookie, который указывает на запрет чтения/записи данных Cookie посредством JavaScript, отсюда и название: Cookie доступны только через протокол HTTP. Использование httpOnly позволяет веб-разработчикам установить собственную политику безопасности в отношении доступа к Cookie из среды браузера, что по замыслу разработчиков из Microsoft должно помочь в борьбе против XSS-уязвимостей. Однако обойти ограничения httpOnly довольно просто…

Read more »

Защита от CSRF

csrfCSRF является одной из самых распространенных уязвимостей в современных веб-приложениях. Это связано с недооценкой разработчиками степени угрозы CSRF-атак, что выражается в недостаточных мерах защиты против CSRF или вообще в полном их отсутствии. На самом деле, эффективно обезопасить свое веб-приложение от CSRF совсем не сложно: уже достаточно давно практикуется универсальный способ, о котором я хотел бы рассказать в этом посте. Кроме того, будут затронуты уже готовые реализации этого приема: CSRFx и csrf-magic.

Read more »

Site Security Policy: новое слово в web-безопасности

Не так давно один из представителей группы по безопасности из компании Mozilla, а именно Brandon Sterne объявил о начале разработки специального механизма для браузера FireFox, который будет регулировать поведение веб-содержимого и политику его ограничения в среде браузера. Идея об ограничении содержимого впервые была предложена в блоге Robert «RSnake» Hansen, известного специалиста по web-безопасности. Его мысли были быстро подхвачены и развиты сотрудниками из Mozilla Security Team. В итоге общая концепция воплотилась в Site Security Policy, о котором я сегодня и хотел бы рассказать.

Read more »

XSS через DOM

Всем известны два типа XSS:

  • Пассивные XSS (reflected или Type 1 XSS) – переданные данные отражаются в HTML-коде страницы только для конкретного пользователя
  • Активные XSS (persistent или Type 2 XSS) – постоянные XSS; злонамеренные данные хранятся на сервере – все пользователи сайта могут быть подвержены данной атаке

Однако далеко не всем известен еще один тип XSS, а именно межсайтовый скриптинг через DOM (DOM-based или Type 0 (3) XSS). Объектная модель документа (DOM) является формой отображения иерархии HTML (а также XML) для JavaScript. XSS-атаки через DOM возможны благодаря недостаточной обработке на уровне JavaScript таких объектов DOM, как document.URL, document.location, document.referrer и некоторых других. Принципиальным отличием данного типа XSS является тот факт, что данные вообще не встраиваются в HTML-код. Несомненно, это вызывает определенные трудности для систем IDS в плане выяления фактов атак и эффективной фильтрации входящих данных, так как уязвимость заключена не на стороне серверных скриптов, а прямо в JavaScript-коде. Read more »

NoScript: мощная XSS-защита для Firefox

Если в Internet Explorer только ожидаются новые XSS-фильтры, то пользователи Firefox уже больше года имеют возможность эффективно защитить себя от различного рода межсайтовых атак, используя плагин NoScript. Данное расширение действительно заслуживает похвал, так как отлично справляется с XSS, CSRF и другими атаками. Также плагин способен блокировать Java, Flash, MS Silverlight и другие потенциально опасные компоненты веб-страниц. NoScript имеет поддержку списка разрешенных сайтов (aka whitelist), а также возможность создания исключений XSS-защиты, задаваемых в формате регулярных выражений.
Плагин входит в десятку самых популярных на сайте addons.mozzila.org.

«Существует ли браузер безопаснее, чем Firefox? Да, это Firefox с NoScript»

Скачать

Безопасность в Internet Explorer 8

Вчера на официальном блоге Microsoft Internet Explorer были опубликованы сведения, касающиеся новых мер, направленных на повышение безопасности восьмой версии популярного браузера. Похоже, что разработчики IE всерьез занялись данным вопросом, – по крайней мере описание всех изменений в модели безопасности браузера выглядит внушительно =) В этом посте я затрону лишь самые любопытные на мой взгляд новшества.

Read more »

Следующая страница »