БЕЗОПАСНОСТЬ ВЕБ-ПРИЛОЖЕНИЙ                        Starter Edition, part II                                               ...
Содержание               Broken cookies               Broken HTTPS               Broken UI (UI redressing)               А...
Broken cookies             ✓ Нужны для реализации сессий (сеансов)             ✓ Де-факто используются для аутентификации ...
Broken cookies: scoping             ✓        Атрибут domain отсутствует             ✓        Атрибут domain присутствует и...
Broken HTTPS             ✓ Открытые сети в массы                 ➡ доступны инструменты для пассивного прослушивания трафи...
Broken HTTPS             ✓ Как делать правильно:                 ➡ cookies помечать флагом secure (и httponly!)           ...
Broken UI             ✓ Предпосылки:                 ➡ HTML: iframe                 ➡ js: возможность динамически менять р...
Broken UI             ✓ Защита приложения:                 ➡ Рекомендуется: X-Frame-Options: deny/sameorigin              ...
XML и XXE             ✓ XML - де-факто стандартный транспорт на прикладном уровне                      (XML-RPC, SOAP)    ...
XML и XXE             ✓ Что можно сделать:                 ➡ считывать локальные файлы <!ENTITY xxe SYSTEM "file:///etc/pa...
Broken Defense             ✓ “Свое мнение” у каждого браузера                 ➡ пример с cookies и IE, AntiXSS фильтры, Co...
Спасибо за внимание!                                     Вопросы?               Twitter: @p3tand               Blog: https...
Upcoming SlideShare
Loading in …5
×

2012 09-27-risspa-web-pt2

6,351 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
6,351
On SlideShare
0
From Embeds
0
Number of Embeds
5,333
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2012 09-27-risspa-web-pt2

  1. 1. БЕЗОПАСНОСТЬ ВЕБ-ПРИЛОЖЕНИЙ Starter Edition, part II Петухов АндрейWednesday, November
  2. 2. Содержание Broken cookies Broken HTTPS Broken UI (UI redressing) Атаки класса XXE Broken Defense (WAF, browser security and other)Wednesday, November
  3. 3. Broken cookies ✓ Нужны для реализации сессий (сеансов) ✓ Де-факто используются для аутентификации запросов ✓ Формат Set-Cookie: <name>=<value>[; <name>=<value>]... [; expires=<date>][; domain=<domain_name>] [; path=<some_path>] [; secure][; httponly] ✓ Scoping: cookie SoP != DOM SoP ➡ Не ограничены портом и протоколом (cookie с http://example.com/ уйдут на https://example.com:8080/) ➡ Трудно ограничить домен ➡ Протокол можно ограничить флагом secure ✓ Read more: http://code.google.com/p/browsersec/wiki/Part2#Same- origin_policy_for_cookiesWednesday, November
  4. 4. Broken cookies: scoping ✓ Атрибут domain отсутствует ✓ Атрибут domain присутствует и содержит wildcard ✓ Атрибут domain присутствует и содержит адрес (warning!) ✓ См. таблицу (взята из The Tangled Web) ✓ Что все это значит? ➡ есть сайт site.com с авторизацией ➡ есть сайт bar.site.com либо под нашим контролем, либо с XSS => p0wned!Wednesday, November
  5. 5. Broken HTTPS ✓ Открытые сети в массы ➡ доступны инструменты для пассивного прослушивания трафика ➡ доступны инструменты для MiTM ✓ Основные угрозы для критичных приложений ➡ перехват учетных данных ➡ перехват cookies, которые аутентифицируют запросы ✓ Сайты защищаются от угроз с помощью HTTPS ✓ Пользователи открытых сетей защищаются, работая с критичными сайтами в открытых сетях только по HTTPS ✓ Этого не достаточно! ✓ Заблуждение: “если я не открываю через открытую сеть сайт, мои учетные данные и cookies в сохранности”. Fail. ✓ Пример перехвата: http://www.youtube.com/watch?v=Bf8pziDavfQWednesday, November
  6. 6. Broken HTTPS ✓ Как делать правильно: ➡ cookies помечать флагом secure (и httponly!) ➡ использовать HTTP Strict Transport Security (https://developer.mozilla.org/en- US/docs/Security/HTTP_Strict_Transport_Security)Wednesday, November
  7. 7. Broken UI ✓ Предпосылки: ➡ HTML: iframe ➡ js: возможность динамически менять размеры и положения элементов, навешивать и снимать обработчики событий, менять курсор ➡ CSS: свойство opacity, свойство cursor ✓ В общем случае атака называется UI Redressing и имеет много видов: clickjacking, strokejacking, cursorjacking, likejacking ✓ Почитать: ➡ Кратко: http://podlipensky.com/2012/07/clickjacking-explained/ ➡ Полно: UI Redressing: Attacks and Countermeasures Revisited ✓ Демо: ➡ http://digitalbreed.com/clickjacking-demo/facebook.php ➡ http://podlipensky.com/2012/08/cursor-spoofing-cursorjacking/Wednesday, November
  8. 8. Broken UI ✓ Защита приложения: ➡ Рекомендуется: X-Frame-Options: deny/sameorigin ➡ Не рекомендуется: frame-busting code (см. “Busting frame busting: a study of clickjacking vulnerabilities at popular sites”) ✓ Защита клиента ➡ NoScript (технология ClearClick)Wednesday, November
  9. 9. XML и XXE ✓ XML - де-факто стандартный транспорт на прикладном уровне (XML-RPC, SOAP) ✓ Документы: правильные и действительные ✓ Парсеры: ➡ обычные и валидирующие (DTD и XML Schema) ➡ реально распространены: libxml, msxml и xerces ✓ Сущности: ➡ внешние и внутренние ➡ валидирующий парсер обязан разрешить внешнюю сущность, а невалидирующий - по желанию ➡ реально многие парсеры по умолчанию всегда разрешают внешние сущностиWednesday, November
  10. 10. XML и XXE ✓ Что можно сделать: ➡ считывать локальные файлы <!ENTITY xxe SYSTEM "file:///etc/passwd"> ➡ DoS <!ENTITY dos SYSTEM "/dev/zero"> ➡ сканировать DMZ- сегмент <!ENTITY scan SYSTEM "192.168.1.1C$"> или <!ENTITY scan SYSTEM "http://10.0.0.1:22/"> ➡ отправлять произвольные (почти) запросы (SSRF) <!ENTITY ssrf SYSTEM "http://internalhost/admin?p=value"> Hint: вместо http можно использовать любой поддерживаемый протокол! Больше в статье SSRF vs. Business-critical applications: XXE tunneling in SAP ✓ Защита: dbf.setFeature("http://xml.org/sax/features/external-general-entities", false); dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false); dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);Wednesday, November
  11. 11. Broken Defense ✓ “Свое мнение” у каждого браузера ➡ пример с cookies и IE, AntiXSS фильтры, Content Sniffing ➡ недавняя история с багами Оперы; 4lulz http://rutracker.org/ forum/viewtopic.php?t=4228361 ✓ WAF не защищает от атак без синтаксических аномалий (т.е. не injection-атак) ➡ black-listing vs white-listing ➡ black-listing учитывает особенности атак, white - защищаемого приложения ➡ не injection-атаки (например, атаки на уязвимости авторизации) не вызывают синтаксических аномалий ➡ не injection-атаки используют особенности приложенийWednesday, November
  12. 12. Спасибо за внимание! Вопросы? Twitter: @p3tand Blog: https://andrepetukhov.wordpress.com/ Email: andrew.petukhov@internalsecurity.ru Видео лекций: https://www.youtube.com/playlist? list=PL2173C4AB816E4F3F Must read: “The Tangled Web” by Michal ZalewskiWednesday, November

×