SlideShare a Scribd company logo
1 of 27
безопасность клиентской части

                                                - xss
                                                - csrf
- цель атаки: пользователь, его браузер         - clickjacking
- доступность: веб-сайт открыт злоумышленнику   - фиксация сессии
- распространенность                            - расщепление запросов
                                                - открытый редирект
                                                ...



                                                                         2
XSS

      внедрение подконтрольного злоумышленником html-кода в контекст
      браузера пользователя


                - отраженная ( reflective )
                - сохраненная (stored)
                - на основе обьектной модели (DOM-based)




                                                                       3
XSS:reflective



                            url
                 attacker          user
                            url
                  user             TARGET
                            html
                  user             TARGET




                                            4
XSS:reflective:пример

                   http://site.com?username=’><script>payload</script>


                                        site.com:
          <input type=’text’ name=‘username’ value=’’><script>payload</script>’>




                                                                                   5
известные инциденты




               apache.org, 04.05.2010, xss + configuration error




                                                                   6
XSS:stored




             attacker          TARGET
                        url
             attacker           user
                        html
              user             TARGET




                                        7
XSS:stored:пример

                      POST site.com?addmsg
                    msg=<script>payload</script>

                     site.com/getmsg?id=1234
                       <div class=‘message’>
                       <script>payload</script>
                       </div>



                                                   8
известные инциденты




                      twitter.com, 2009.04,2010.09, xss worm




                                                               9
XSS: возможности



                   1. кража сессии
                   2. обход firewall/NAT
                   3. заражение вирусами, drive
                   by download)




                                                  10
XSS: пример векторов атаки

Цель: выполнение function() в контексте сайта site.com

  1. <script>a=param;</script>                http://site.com?param=1;function()

  2. <a href=‘http://param‘>                  http://site.com?param=’><script>function()</script>

  3. <img src=‘param’>                        http://site.com?param=crap’ onerror=‘function()

  4. <div style=’background-url: “param”;’>   http://site.com?param=javascript:function()


                                                                                                    11
XSS: защита

1. не использовать недоверенные данные в местах, в
которых санитизация в принципе невозможна.           <script>param</script>
                                                     <script src=‘param’>
                                                     <!-- param -->
                                                     <tag param>
                                                     <param>
                                                     <style>param</style>




                                                                              12
XSS: защита

1. не использовать недоверенные данные в местах, в   html:
которых санитизация в принципе невозможна.           <div>param</div>
2. санитизация данных в зависимости от места их      attribute value:
применения                                           <div class=‘param’>
                                                     javascript:
                                                     <script>a=‘param’;</script>
                                                     css style property:
                                                     <div style=‘background-url:’param’>
                                                     url:
                                                     <a href=‘param’>

                                                                                           13
XSS: защита

1. не использовать недоверенные данные в местах, в
которых санитизация в принципе невозможна.           - GET/POST/COOKIE
2. санитизация данных в зависимости от места их
применения:html,attribute,javascript,css,url         - storage
3. применение правил фильтрации ко всем источникам
пользовательских данных                              - json




                                                                         14
XSS: защита

1. не использовать недоверенные данные в местах, в
которых санитизация в принципе невозможна.
2. санитизация данных в зависимости от места их
применения:html,attribute,javascript,css,url
3. применение правил фильтрации ко всем источникам
пользовательских данных
5. флаг HttpOnly




                                                     15
пользовательский html

        Что делать, если необходимо использовать пользовательский контент:




                                                                             16
пользовательский html

        Что делать, если необходимо использовать пользовательский контент:

                        НЕ ДЕЛАЙТЕ ЭТОГО!




                                                                             17
пользовательский html

        Что делать, если необходимо использовать пользовательский контент:

            1. в iframe с отдельного домена
            2. whitelist тегов и аттрибутов
            3. пре/постмодерация
            4. желательно рассмотреть возможность “языка разметки”




                                                                             18
CSRF

       вызов функций сайта от лица аутентифицированного пользователя

                                                      evilsite
               EVILSITE                    attacker              user
        <html>
                                            user                 EVILSITE
        ...
        <img src=‘http://target/action’>    user                  TARGET
        ...
        </html>


                                                                            19
CSRF: защита



               1. Referer check
               2. использование security tokens   &   POST method
               3. challenge-response




                                                                    20
CLICKJACKING

evilsite, cursorjacking:   evilsite, likejacking:
cursor:url("img.png")      addEventListener(‘mousemove’...
                           +iframe




    OK            OK                OK


                                                             21
CLICKJACKING




               22
CLICKJACKING




               23
CLICKJACKING




...style='position:absolute;
left:0px;
top:0px;
z-index:10000;'...


                               24
CLICKJACKING: защита


                       1.X-Frame-Options: DENY header
                       2. css validation
                       3. challenge-response




                                                        25
ресурсы




          https://www.owasp.org
          http://code.google.com/p/browsersec/wiki/Main
          http://html5sec.org/
          http://www.mniemietz.de/demo/cursorjacking/cursorjacking.html




                                                                          26
Спасибо!
   Рабоволюк Ярослав
руководитель отдела И.Б.
  yaroslav@corp.mail.ru

More Related Content

What's hot

Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.
Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.
Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.revisium
 
XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.Дмитрий Бумов
 
Risspa domxss
Risspa domxssRisspa domxss
Risspa domxssyaevents
 
Безопасность Drupal сайтов
Безопасность Drupal сайтовБезопасность Drupal сайтов
Безопасность Drupal сайтовEugene Fidelin
 
как не заразить посетителей своего сайта All а.сидоров, п.волков
как не заразить посетителей своего сайта All   а.сидоров, п.волковкак не заразить посетителей своего сайта All   а.сидоров, п.волков
как не заразить посетителей своего сайта All а.сидоров, п.волковOntico
 
Выступление Ревизиум на ХостОбзор 2017
Выступление Ревизиум на ХостОбзор 2017Выступление Ревизиум на ХостОбзор 2017
Выступление Ревизиум на ХостОбзор 2017revisium
 
Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. ОсновыPositive Hack Days
 
Security testing
Security testingSecurity testing
Security testingMageCloud
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptPositive Hack Days
 
Тестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftТестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftDmitry Evteev
 
Информационная безопасность в аспекте веб-разработки
Информационная безопасность в аспекте веб-разработкиИнформационная безопасность в аспекте веб-разработки
Информационная безопасность в аспекте веб-разработкиE-Journal ICT4D
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...Mikhail Egorov
 
Безопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionAndrew Petukhov
 
Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Fwdays
 
А не поговорить ли нам о XSS!
А не поговорить ли нам о XSS!А не поговорить ли нам о XSS!
А не поговорить ли нам о XSS!SQALab
 
"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного
"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного
"На Стачку" - Взлом сайта: 5 стадий принятия неизбежногоrevisium
 
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...QAFest
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхDmitry Evteev
 

What's hot (19)

Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.
Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.
Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.
 
KazHackStan - "><script>alert()</script>
KazHackStan - "><script>alert()</script>KazHackStan - "><script>alert()</script>
KazHackStan - "><script>alert()</script>
 
XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.
 
Risspa domxss
Risspa domxssRisspa domxss
Risspa domxss
 
Безопасность Drupal сайтов
Безопасность Drupal сайтовБезопасность Drupal сайтов
Безопасность Drupal сайтов
 
как не заразить посетителей своего сайта All а.сидоров, п.волков
как не заразить посетителей своего сайта All   а.сидоров, п.волковкак не заразить посетителей своего сайта All   а.сидоров, п.волков
как не заразить посетителей своего сайта All а.сидоров, п.волков
 
Выступление Ревизиум на ХостОбзор 2017
Выступление Ревизиум на ХостОбзор 2017Выступление Ревизиум на ХостОбзор 2017
Выступление Ревизиум на ХостОбзор 2017
 
Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. Основы
 
Security testing
Security testingSecurity testing
Security testing
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScript
 
Тестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftТестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях Microsoft
 
Информационная безопасность в аспекте веб-разработки
Информационная безопасность в аспекте веб-разработкиИнформационная безопасность в аспекте веб-разработки
Информационная безопасность в аспекте веб-разработки
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
 
Безопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter edition
 
Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"
 
А не поговорить ли нам о XSS!
А не поговорить ли нам о XSS!А не поговорить ли нам о XSS!
А не поговорить ли нам о XSS!
 
"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного
"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного
"На Стачку" - Взлом сайта: 5 стадий принятия неизбежного
 
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
 

Similar to ярослав рабоволюк

Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)
Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)
Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)Kristina Pomozova
 
Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)
Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)
Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)defcon_kz
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...Ontico
 
[ONSEC ]XSS vs waf
[ONSEC ]XSS vs waf[ONSEC ]XSS vs waf
[ONSEC ]XSS vs wafd0znp
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волковkarina krew
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Где прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий ЗемсковГде прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий ЗемсковYandex
 
Ddоs практическое руководство к выживанию А.Лямин
Ddоs практическое руководство к выживанию А.ЛяминDdоs практическое руководство к выживанию А.Лямин
Ddоs практическое руководство к выживанию А.ЛяминHighLoad Lab.
 
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2GoQA
 
Pt devteev-risspa
Pt devteev-risspaPt devteev-risspa
Pt devteev-risspayaevents
 
Взломать Нельзя Защитить: как взламывают сайты и как их эффективно защищать
Взломать Нельзя Защитить: как взламывают сайты и как их эффективно защищатьВзломать Нельзя Защитить: как взламывают сайты и как их эффективно защищать
Взломать Нельзя Защитить: как взламывают сайты и как их эффективно защищатьrevisium
 
Web application security (RIT 2014, rus)
Web application security (RIT 2014, rus)Web application security (RIT 2014, rus)
Web application security (RIT 2014, rus)Maksim Kochkin
 
преодоление кроссдоменных ограничений средствами александр сергеев
преодоление кроссдоменных ограничений средствами   александр сергеевпреодоление кроссдоменных ограничений средствами   александр сергеев
преодоление кроссдоменных ограничений средствами александр сергеевMedia Gorod
 
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Ontico
 
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4rit2011
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодняDmitry Evteev
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NETPositive Hack Days
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложенияMaxim Krentovskiy
 

Similar to ярослав рабоволюк (20)

PT MIFI Labxss
PT MIFI LabxssPT MIFI Labxss
PT MIFI Labxss
 
PT MIFI Labxss
PT  MIFI LabxssPT  MIFI Labxss
PT MIFI Labxss
 
Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)
Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)
Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)
 
Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)
Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)
Безопасный кодинг. Хакеры нас не достанут (Максим “Arrim” Попов)
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
 
[ONSEC ]XSS vs waf
[ONSEC ]XSS vs waf[ONSEC ]XSS vs waf
[ONSEC ]XSS vs waf
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волков
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Где прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий ЗемсковГде прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий Земсков
 
Ddоs практическое руководство к выживанию А.Лямин
Ddоs практическое руководство к выживанию А.ЛяминDdоs практическое руководство к выживанию А.Лямин
Ddоs практическое руководство к выживанию А.Лямин
 
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
 
Pt devteev-risspa
Pt devteev-risspaPt devteev-risspa
Pt devteev-risspa
 
Взломать Нельзя Защитить: как взламывают сайты и как их эффективно защищать
Взломать Нельзя Защитить: как взламывают сайты и как их эффективно защищатьВзломать Нельзя Защитить: как взламывают сайты и как их эффективно защищать
Взломать Нельзя Защитить: как взламывают сайты и как их эффективно защищать
 
Web application security (RIT 2014, rus)
Web application security (RIT 2014, rus)Web application security (RIT 2014, rus)
Web application security (RIT 2014, rus)
 
преодоление кроссдоменных ограничений средствами александр сергеев
преодоление кроссдоменных ограничений средствами   александр сергеевпреодоление кроссдоменных ограничений средствами   александр сергеев
преодоление кроссдоменных ограничений средствами александр сергеев
 
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
 
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодня
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложения
 

More from kuchinskaya (20)

Kharkov
KharkovKharkov
Kharkov
 
Balashov
BalashovBalashov
Balashov
 
Zamyakin
ZamyakinZamyakin
Zamyakin
 
Panfilov
PanfilovPanfilov
Panfilov
 
Platov
PlatovPlatov
Platov
 
Rabovoluk
RabovolukRabovoluk
Rabovoluk
 
Smirnov dependency-injection-techforum(1)
Smirnov dependency-injection-techforum(1)Smirnov dependency-injection-techforum(1)
Smirnov dependency-injection-techforum(1)
 
Smirnov reverse-engineering-techforum
Smirnov reverse-engineering-techforumSmirnov reverse-engineering-techforum
Smirnov reverse-engineering-techforum
 
Zacepin
ZacepinZacepin
Zacepin
 
Zagursky
ZagurskyZagursky
Zagursky
 
Haritonov
HaritonovHaritonov
Haritonov
 
Chudov
ChudovChudov
Chudov
 
Bubnov
BubnovBubnov
Bubnov
 
A.pleshkov
A.pleshkovA.pleshkov
A.pleshkov
 
Zenovich
ZenovichZenovich
Zenovich
 
Romanenko
RomanenkoRomanenko
Romanenko
 
Perepelitsa
PerepelitsaPerepelitsa
Perepelitsa
 
Osipov
OsipovOsipov
Osipov
 
Kubasov
KubasovKubasov
Kubasov
 
Kalugin balashov
Kalugin balashovKalugin balashov
Kalugin balashov
 

ярослав рабоволюк

  • 1.
  • 2. безопасность клиентской части - xss - csrf - цель атаки: пользователь, его браузер - clickjacking - доступность: веб-сайт открыт злоумышленнику - фиксация сессии - распространенность - расщепление запросов - открытый редирект ... 2
  • 3. XSS внедрение подконтрольного злоумышленником html-кода в контекст браузера пользователя - отраженная ( reflective ) - сохраненная (stored) - на основе обьектной модели (DOM-based) 3
  • 4. XSS:reflective url attacker user url user TARGET html user TARGET 4
  • 5. XSS:reflective:пример http://site.com?username=’><script>payload</script> site.com: <input type=’text’ name=‘username’ value=’’><script>payload</script>’> 5
  • 6. известные инциденты apache.org, 04.05.2010, xss + configuration error 6
  • 7. XSS:stored attacker TARGET url attacker user html user TARGET 7
  • 8. XSS:stored:пример POST site.com?addmsg msg=<script>payload</script> site.com/getmsg?id=1234 <div class=‘message’> <script>payload</script> </div> 8
  • 9. известные инциденты twitter.com, 2009.04,2010.09, xss worm 9
  • 10. XSS: возможности 1. кража сессии 2. обход firewall/NAT 3. заражение вирусами, drive by download) 10
  • 11. XSS: пример векторов атаки Цель: выполнение function() в контексте сайта site.com 1. <script>a=param;</script> http://site.com?param=1;function() 2. <a href=‘http://param‘> http://site.com?param=’><script>function()</script> 3. <img src=‘param’> http://site.com?param=crap’ onerror=‘function() 4. <div style=’background-url: “param”;’> http://site.com?param=javascript:function() 11
  • 12. XSS: защита 1. не использовать недоверенные данные в местах, в которых санитизация в принципе невозможна. <script>param</script> <script src=‘param’> <!-- param --> <tag param> <param> <style>param</style> 12
  • 13. XSS: защита 1. не использовать недоверенные данные в местах, в html: которых санитизация в принципе невозможна. <div>param</div> 2. санитизация данных в зависимости от места их attribute value: применения <div class=‘param’> javascript: <script>a=‘param’;</script> css style property: <div style=‘background-url:’param’> url: <a href=‘param’> 13
  • 14. XSS: защита 1. не использовать недоверенные данные в местах, в которых санитизация в принципе невозможна. - GET/POST/COOKIE 2. санитизация данных в зависимости от места их применения:html,attribute,javascript,css,url - storage 3. применение правил фильтрации ко всем источникам пользовательских данных - json 14
  • 15. XSS: защита 1. не использовать недоверенные данные в местах, в которых санитизация в принципе невозможна. 2. санитизация данных в зависимости от места их применения:html,attribute,javascript,css,url 3. применение правил фильтрации ко всем источникам пользовательских данных 5. флаг HttpOnly 15
  • 16. пользовательский html Что делать, если необходимо использовать пользовательский контент: 16
  • 17. пользовательский html Что делать, если необходимо использовать пользовательский контент: НЕ ДЕЛАЙТЕ ЭТОГО! 17
  • 18. пользовательский html Что делать, если необходимо использовать пользовательский контент: 1. в iframe с отдельного домена 2. whitelist тегов и аттрибутов 3. пре/постмодерация 4. желательно рассмотреть возможность “языка разметки” 18
  • 19. CSRF вызов функций сайта от лица аутентифицированного пользователя evilsite EVILSITE attacker user <html> user EVILSITE ... <img src=‘http://target/action’> user TARGET ... </html> 19
  • 20. CSRF: защита 1. Referer check 2. использование security tokens & POST method 3. challenge-response 20
  • 21. CLICKJACKING evilsite, cursorjacking: evilsite, likejacking: cursor:url("img.png") addEventListener(‘mousemove’... +iframe OK OK OK 21
  • 25. CLICKJACKING: защита 1.X-Frame-Options: DENY header 2. css validation 3. challenge-response 25
  • 26. ресурсы https://www.owasp.org http://code.google.com/p/browsersec/wiki/Main http://html5sec.org/ http://www.mniemietz.de/demo/cursorjacking/cursorjacking.html 26
  • 27. Спасибо! Рабоволюк Ярослав руководитель отдела И.Б. yaroslav@corp.mail.ru