| Authors: | Тарас Иващенко aka oxdef (oxdef.info) |
|---|---|
| Date: | 2011-12-03 |
| Copyright: | This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License |
Досмотрел все слайды и вайтпеперы с очередной хакерской конфы? Не тут-то было! Криптоатака на ASP.NET, SDLC от Adobe, IBM и Microsoft, CTF, веб-сервисы под прицелом - добро пожаловать на, пожалуй лучшую, конференцию по веб-безопасности в Европе. Попробую рассказать тебе как это было.
Если для тебя слова XSS, CSRF, SQLi, Click-Jacking и тому подобное что-то да значат, то ты наверняка слышал и о таких организациях, как OWASP и WASC. Они выполняют во многом похожие миссии и давай поговорим про первую из них.
The Open Web Application Security Project (OWASP) - открытое сообщество и одноимённая некоммерческая организация, целью которого, в глобальном масштабе сделать так, что бы было больше безопасных веб-приложений. Это достигается с помощью публикации различного рода документов, охватывающих все аспекты разработки и тестирования веб-приложений. Наиболее известным примером такого документа является список 10 наиболее критичных рисков безопасности веб-приложений - OWASP Top10. Если ты, так же как и я, увлечён поиском веб-уязвимостей, то тебе будет интересно почитать OWASP Testing Guide (ссылку на доку ищи в WWW). Так же в рамках сообщества разрабатывается большое число утилит, среди них популярные прокси для анализа HTTP-трафика WebScarab и Zed Attack Proxy, мощный набор правил для WAF ModSecurity, обучающее основам веб-уязвимостей окружение WebGoat и многое другое ты сможешь найти на оффициальной странице сообщества.
Логотип OWASP
Но вернёмся к конфереции :) AppSec Europe 2011 является самым главным событием OWASP и, имхо, самым главным событием для веб-безопасников в Европе. OWASP AppSec стартовал ещё в 2004 году в США и 2005 году в Европе и вырос в серию ежегодных конференций "под единым флагом" по всему миру, включая теже штаты и обе Америки вообще, Европу, Азию, Австралию и Израиль. Местом проведения европейского отделения в этом году стала столица Ирландии Дублин и самый мощный университет этой страны Тринити-колледж (Дублинский университет). Мероприятие проходило 4 дня (с 7 по 11 июля), первые из которых были отданы на тренинги, вторые же два - докладам. Тренинги как всегда кусались ценами и я решил в этом году обойтись без них. Кстати само по себе участие в конференции тоже стоит денег, но если ты участник сообщества OWASP, то тебе полагается скидка в 50 евро! :)
Доклады были разделены на 3 параллельные секции, среди которых не всегда удавалось однозначно выбрать наиболее интересный доклад и приходилось чем-то жертвовать (это обычное дело с параллельными секциями):
К слову сказать, конференция получилась достаточно представительной. Среди спикеров можно было увидеть как представителей известных компаний, организаций: Fortify/HP, Adobe, IBM, Verizon, Microsoft, так и просто интересных людей. К сожалению я на этом мероприятии в этот раз был только в качестве слушателя, мучившего спикеров вопросами :)
Итак день первый начался для меня с доклада Дэвида Стабли (David Stubley) из 7 Elements Ltd на модную нынче тему и непаханное поле для троллинга - APT :) APT в данном случае - это вовсе не пакетный менеджер, как могли бы подумать поклонники Debian GNU/Linux. APT есть Advanced Persistent Thread или "постоянная продвинутая угроза" (хотя и "целенаправленная угроза" на слух чуть получше буквального перевода). Иными словами, когда даже установив все обновления безопасности, закрыв все порты на файерволле и заблокировов все социальные сети, ты всё равно чувствуешь, что сделано недостаточно, и что "пробьют" если надо будет, если закажут. Радуйтесь менеджеры по продажам ИБ решений (наш продукт защищает даже от APT!) и трепещите директоры по безопасности крупнейших (и не очень) компаний - APT идёт! :) Дэвид кратко рассказал о том, как он понимает APT, о нашумевших последних случаях, которые так или иначе ассоциируют с этим термином. Все мы помним и про Аврору, и про ключики RSA. При этом, видимо для ещё большего устрашения, на одном из слайдов присутствовал фрагмент работы Метасплоита с уже набившей всем оскомину ms08_067. Но финале всё таки прозвучал правильный посыл:
"This should all be driven by a clear business need and understanding of the risk environment and the organisational risk management structure."
Атакуем веб-сервисы!
"Как стать админом Твиттера: введение в атаки на современные веб-сервисы" Андреса Фалкенберга (Andreas Falkenberg) из Рурского университета. Стало сюрпризом то, что на самом деле в докладе рассматривалась гипотетическая атака, а вовсе не реальный случай :( Это конечно расстроило, но тем неменее само по себе выступление получилось интересным и было посвящено атакам на веб-сервисы (в частности программные интерфейсы популярных облычных сервисов), предоставляющих SOAP-интерфейс. И конкретно на механизм защиты XML Signature путём обёртки подписанных XML-объектов, которые адресуются по id, в другие плюс вставка уже своей команды. Получается, что для серверной части подписанная команда проходит нормально валидацию, при этом выполнится совсем другая, подсунутая злоумшленником! Доклад получился достаточно живым и стал одним из наиболее интересных с технической точки зрения на конференции.
XML-подпись - вовсе не новая фишка и служит для проверки целостности принятых сообщений и полной либо частичной аутентификации XML-документов. Стандарт цифровой подписи XML-Signature Syntax and Processing (XMLDSIG) разработан консорциумом W3C в далёком 2002 году и сейчас доступен как RFC 3275. SSL/TLS конечно тоже обеспечивают целостность данных, но только на время передачи сообщения по защищённому каналу. Иногда этого недостаточно либо сложноприменимо. XML-подпись сама по себе представляет набор XML-элементов ds:Signature, которые могут быть добавлены к основному XML-сообщению и позволяют получателю удостовериться, что оно не было изменено по дороге и пришло от достоверного источника. XML-подпись получила особенно широкое распространение в безопасности веб-сервисов для подписывания SOAP-сообщений:
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Header>
<wsse:Security
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext">
...
<ds:Signature>
...
<ds:SignedInfo>
<ds:Reference URI='#Body'>
...
</ds:Reference>
...
<ds:SignedInfo>
...
</ds:Signature>
...
</wsse:Security>
</SOAP:Header>
<SOAP:Body Id='Body'>
...
</SOAP:Body>
</SOAP:Envelope>
В данном случае подписано тело (Id='Body') сообщения.
Фрагмент доклада про их успехи в интеграции контролов безопасности в SDLC от IBM
Неожиданно интересным получился доклад, а также секция вопросов и ответов после него, от Марка Кросби (Mark Crosbie) из гиганта IBM про их опыт интеграции контролов безопасности в цикл разработки программного обеспечения. Что, если раздать разработчикам веб-приложений преднастроенные сканеры уязвимостей и попробывать заинтересовать их вопросами безопасности таким образом? Начнут ли они писать более безопасный код? А что, если устроить целое состязание в шуточной форме? Чувствуется, что в IBM в отделе безопасности эксперементируют с мотивацией разработчиков и даже пытаются подходить к этому с юмором и высокой долей оригинальности :) SDLC был вообще популярной темой на конференции, правда не всегда это было на благо и в итоге было достаточно много "пустых" спонсорских докладов.
Замыкал первый день конференции для меня немного скучный доклад "Основы Питона для тестировщиков веб-приложений" от Джастина Сирла(Justin Searle) из InGuardians Inc. "Почему скучный?", - спросишь ты? Очень просто, сейчас уже мало кого можно удивить знанием Питона, и он, имхо, уже перинимает звание языка номер один для пентестера у могущественного Перла. А коль ты пентестер веб-приложений и заинтересовался Питоном, то библиотеки urllib/httplib ты уже наверняка расковырял и знаешь хорошо! Так что посвящать этому целый доклад немного странно. Лишь в конце доклада стало немного интереснее, когда Джастин презентовал свой проект pycit, который представляет собой набор шаблонов на Питоне для веб-тестинга. Что бы не писать каждый раз один и тот же код, ты можешь просто взять готовый шаблон, по-быстрому подправить его немного и готово. К сожалению, проект судя по активности в SVN подзаброшен.
На второй день я таки решил поучаствовать в CTF, который проходил в рамках конференции. На самом деле это был скорее HackQuest с набором баллов за пройденные задания, чем CTF в чистом виде. В самом начале само собой шли простые этапы, в основном с подстановкой необходимых значений в HTTP-заголовки запроса и просто нахождением нужных флагов в различных местах исходных кодов. Чем дальше, тем конечно сложнее. К сожалению (да-да, именно так :), в этом квесте я наталкнулся на одну из самых больших проблем на этой конференции, а именно очень малое количество электических розеток (кстати английского типа, так что пришлось искать переходник). Так что, как только я добрался до первой десятки по баллам, мой ноут ушёл спать.
Помнишь я писал, что докладов про SDL на конференции был представлено даже избыточно? Более того, часто доклады про успехи в безопасности SDL были изрядно нашпигованы маркетинговым трешем. Примером этого были выступления Джанне Уусилехто (Janne Uusilehto) из Nokia и парней из Microsoft. Красивые графики и клипарты, слова о киберпреступности и о том, какие безопасные продукты стремятся производить компании. К слову сказать, к вебу данные презентации отношения мало имели. Microsoft умудрились вообще вставить пропагдистскую часть про то, какие они теперь открытые и дружат с опенсорсом. Я нормально отношусь к этим компаниям, но тут они могли вполне и более интересные и уместные доклады подготовить.
"Новые стандарты и приходящие технологии в безопасности браузера" от Тобиаса Гондрома (Tobias Gondrom) из рабочей группы Специальной комиссии интернет-разработок (IETF). Получился хороший обзор средств безопасности, так или иначе связанных с веб-браузером:
Про большинство из них ты уже наверняка наслышан, остановлюсь лишь на HSTS. Атака SSL-stripping известна уже достаточно давно. Напомню, она заключается в том, что исходя из того, что веб-браузер жертвы не знает, что с конкретным сайтом можно взаимодействовать строго по HTTPS, злоумышленник пропуская трафик жертвы через свой хост (например, с помощью атаки ARP-spoofing), заменяет все https-ссылки на обычные http. Таким образом трафик до него приходит в открытом виде, а уже от хоста злоумышленника до сайта создаётся полноценное SSL-соединение. HTTP Strict Transport Security (HSTS) как раз и позволяет веб-приложению явным образом сказать веб-браузеру, что работа с ним должна идти строго по HTTPS. Делается это отправкой в HTTPS-ответе специального заголовка::
Strict-Transport-Security: max-age=15768000; includeSubDomains
В данном случае веб-приложение просит веб-браузер в течение 15768000 секунд обращаться к нему строго по HTTPS, включая субдомены.
Одно из самых достойных технических выступлений подготовил Дэн Корнелл (Dan Cornell) из Denim Group. Он практически препорировал мобильное приложение на примере iOS и Android-платформ с указанием на фишки каждой из них. Какие утилиты можно использовать для бинарного анализа мобильного приложения, что интересного хранится в конфигах и к чему может привести SQL-инъекция в мобильном приложении - всё это Дэн рассказал, сопровождая примерами и юмором. Одной из основных идей доклада стала атака на мобильное приложение через его же зарегистрированный в системе контент-хэндлер:
<iframe src="the_scheme://stuff?param=PAYLOAD" />
Получается интересная атака на стыке веба и мобильного мира. Мобильные приложения, ровно как и "мобильное всё", сейчас конечно же на взлете популярности, так что стоит обратить внимание на этот не совсем "вебовский" доклад.
Достаточно интересным получился доклад Джастина Кларке (Justin Clarke) из Gotham Digital Science о практическом аспекте криптоатак на веб-приложения. На криптографии базируется огромный костяк технологий информационной безопасности. Но криптография - весьма непростая наука и не редко разработчики ошибаются при собственной реализации алгоритмов либо при неправильном использовании существющих. Это и постарался рассказать Джастин. Криптографическая тема обычно не из самых захватывающих, особенно когда ты не криптопанк, но тут после демонстрации того, как с помощью padding-криптоатаки получилось вытащить содержимое конфига дотнетовского приложения, стало гораздо увлекательнее :) Не обошли стороной и генераторы случайных чисел и риски, связанные с их необдуманным использованием (вспоминается отличная статья "Неслучайные числа" http://www.xakep.ru/magazine/xa/119/058/1.asp ). Это выступление я бы назвал одним из самых интересных на конференции. Обязательно посмотри слайды на сайте конференции.
Джастин пытается на пальцах объяснить суть атаки "Oracle Padding"
Айран Эванс (Arian Evans) из знаменитой Whitehat Security - "вот так через хитрозакрученную .... оно и работает"
У этого чувака можно было достать кучу атрибутики
Обедали мы прямо "по-спартански". Все столовые были закрыты, поэтому накрыли прямо в музее...
Пара слов о месте проведения конференции. Тринити-колледж превзошёл ожидания. Мало того, что это хорошо оснащённое учебное заведение, которое входит в Дублинский университет, так ещё и насквозь пропитанное историей. Шутка ли, он был основан в 1592 году Королевой Елизаветой I! Очень сильно надеюсь, что и в России универы приблизятся когда-нибудь по условиям для обучения к подобным вузам.
Дублин красив, много пабов и гиннеса :)
В заключении хочу сказать, что конференция удалась! Несмотря на малое количество и не всегда высокий уровень технических докладов, и даже не смотря на весьма специфичную ирландскую погоду :) Новые знакомства и общение с интересными людьми на ИБ и не только темы с лихвой эти недостатки компенсировали. Надеюсь, что в следующем году в Греции всё-таки приму участие в конфе уже как спикер.