безопасность клиентской части                                                - xss                                        ...
XSS      внедрение подконтрольного злоумышленником html-кода в контекст      браузера пользователя                - отраже...
XSS:reflective                            url                 attacker          user                            url       ...
XSS:reflective:пример                   http://site.com?username=’><script>payload</script>                               ...
известные инциденты               apache.org, 04.05.2010, xss + configuration error                                       ...
XSS:stored             attacker          TARGET                        url             attacker           user            ...
XSS:stored:пример                      POST site.com?addmsg                    msg=<script>payload</script>               ...
известные инциденты                      twitter.com, 2009.04,2010.09, xss worm                                           ...
XSS: возможности                   1. кража сессии                   2. обход firewall/NAT                   3. заражение ...
XSS: пример векторов атакиЦель: выполнение function() в контексте сайта site.com  1. <script>a=param;</script>            ...
XSS: защита1. не использовать недоверенные данные в местах, вкоторых санитизация в принципе невозможна.           <script>...
XSS: защита1. не использовать недоверенные данные в местах, в   html:которых санитизация в принципе невозможна.           ...
XSS: защита1. не использовать недоверенные данные в местах, вкоторых санитизация в принципе невозможна.           - GET/PO...
XSS: защита1. не использовать недоверенные данные в местах, вкоторых санитизация в принципе невозможна.2. санитизация данн...
пользовательский html        Что делать, если необходимо использовать пользовательский контент:                           ...
пользовательский html        Что делать, если необходимо использовать пользовательский контент:                        НЕ ...
пользовательский html        Что делать, если необходимо использовать пользовательский контент:            1. в iframe с о...
CSRF       вызов функций сайта от лица аутентифицированного пользователя                                                  ...
CSRF: защита               1. Referer check               2. использование security tokens   &   POST method              ...
CLICKJACKINGevilsite, cursorjacking:   evilsite, likejacking:cursor:url("img.png")      addEventListener(‘mousemove’...   ...
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         ...
ресурсы          https://www.owasp.org          http://code.google.com/p/browsersec/wiki/Main          http://html5sec.org...
Спасибо!   Рабоволюк Ярославруководитель отдела И.Б.  yaroslav@corp.mail.ru
ярослав рабоволюк
Upcoming SlideShare
Loading in …5
×

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

1,576 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
1,576
On SlideShare
0
From Embeds
0
Number of Embeds
976
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

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

×