Уязвимости и атаки на Web-приложения, общепринятые классификации уязвимостей. Ошибки, допускаемые разработчиками при создании клиентской и серверной частей Web-приложения, их возможные последствия и методы выявления и устранения. Примеры из практики. Обзор специализированных средств защиты Web-приложений: Web Application Firewall (WAF). Стоит ли полагаться на WAF?
Методология выявления уязвимостей в Web-приложениях, в частности, с использованием различных средств автоматического анализа.
38. Уязвимость типа «Межсайтовое выполнение сценариев» web- сервер 1. fuzzing, поиск уязвимости 2. Передача «заряженной» ссылки : http://web/?search=secureweb"><script>...</script> 3. Переход по ссылке
39. Уязвимость типа «Межсайтовое выполнение сценариев» web- сервер 1. fuzzing, поиск уязвимости 2. Передача «заряженной» ссылки : http://web/?search=secureweb"><script>...</script> 3. Переход по ссылке 4. Выполнение исполняемого кода в браузере пользователя
40. Уязвимость типа «Межсайтовое выполнение сценариев» web- сервер 1. fuzzing, поиск уязвимости 2. Передача «заряженной» ссылки : http://web/?search=secureweb"><script>...</script> 3. Переход по ссылке 4. Выполнение исполняемого кода в браузере пользователя 5. Например, передача w eb-сессии (cookies) 6. Работа с w eb-приложением от имени атакованного пользователя
41.
42.
43. Уязвимости web -приложений Статистика уязвимостей web- приложений Positive Technologies за 2008 год ( Whitebox Sites %) - http://www.ptsecurity.ru/analytics.asp
63. Уязвимость типа «Динамическая п одделка HTTP- запросов » 1. Отправка ссылки пользователю : http://bonus/bonus.htm Интернет-банк ( ibanking ) Узел, управляемый атакующим ( bonus ) 2. Пользователь авторизуется в Интернет-банке (используется защита от CSRF на основе токена)
64. Уязвимость типа «Динамическая п одделка HTTP- запросов » 1. Отправка ссылки пользователю : http://bonus/bonus.htm Интернет-банк ( ibanking ) Узел, управляемый атакующим ( bonus ) 2. Пользователь авторизуется в Интернет-банке (используется защита от CSRF на основе токена) 3. Переходит по ссылке http://bonus/bonus.htm
65. Уязвимость типа «Динамическая п одделка HTTP- запросов » 1. Отправка ссылки пользователю : http://bonus/bonus.htm Интернет-банк ( ibanking ) Узел, управляемый атакующим ( bonus ) 2. Пользователь авторизуется в Интернет-банке (используется защита от CSRF на основе токена) 3. Переходит по ссылке http://bonus/bonus.htm 4. На основе полученного Referer подгружается картинка : http://ibanking/action?account=12345&amount=500&for=54321& token=765234 5 . Атака завершена
66.
67.
68.
69.
70. Уязвимость типа « Anti DNS Pinning » Контролируемый web- сервер www.hack.example (1.1.1.1) MS Project Server 192.168.0.1 Прочие 1. Пользователь обращается к внешнему web- серверу Контролируемый DNS- сервер hack.example Контролируемый web- сервер any.name Cisco SDM 192.168.0.2
71. Уязвимость типа « Anti DNS Pinning » MS Project Server 192.168.0.1 Прочие 2 . Полученный сценарий java-script , например, через 2 секунды делает повторное обращение Контролируемый DNS- сервер hack.example Контролируемый web- сервер any.name 3. Атакующий блокирует доступ к web- серверу Cisco SDM 192.168.0.2 Контролируемый web- сервер www.hack.example (1.1.1.1)
72. Уязвимость типа « Anti DNS Pinning » MS Project Server 192.168.0.1 Прочие 4. Происходит повторное разрешение имени www.hack.example Контролируемый DNS- сервер hack.example Контролируемый web- сервер any.name 5. www.hack.example IN A 192.168.0.1 Cisco SDM 192.168.0.2 Контролируемый web- сервер www.hack.example (1.1.1.1)
73. Уязвимость типа « Anti DNS Pinning » MS Project Server 192.168.0.1 Прочие 6 . Браузер посылает запрос на 192.168.0.1 : GET / HTTP/1.1 Host: www.hack.example … Контролируемый DNS- сервер hack.example Контролируемый web- сервер any.name 5. www.hack.example IN A 192.168.0.1 Cisco SDM 192.168.0.2 Контролируемый web- сервер www.hack.example (1.1.1.1)
74. Уязвимость типа « Anti DNS Pinning » Cisco SDM 192.168.0.2 MS Project Server 192.168.0.1 Прочие Контролируемый DNS- сервер hack.example Контролируемый web- сервер any.name 7. Образуется полноценный канал для работы с внутренним ресурсом Контролируемый web- сервер www.hack.example (1.1.1.1)
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87. Что такое WAF http:// server /?id=6329&print=Y Нас атакуют! Ахтунг!!! WAF Webserver http:// server /?id=5351 http:// server /?id=8234 http:// server /? id=“><script>... http:// server /?id=1+union+select... http:// server /? id=/../../../etc/passwd Нормализация данных Decode HTML entities (e.g. c, ", ª) Escaped characters (e.g. , 01, AA, AABB) Null byte string termination ... Поиск сигнатуры /(sel)(ect.+fr)(om)/is /(uni)(on.+sel)(ect)/is ...
96. Практика обхода WAF: HTTP Parameter Pollution (HPP) Технология / Среда Интерпретация параметров Пример ASP.NET/IIS Склеивание через запятую par1=val1,val2 ASP/IIS Склеивание через запятую par1=val1,val2 PHP/APACHE Последний параметр результирующий par1=val2 PHP/Zeus Последний параметр результирующий par1=val2 JSP, Servlet/Apache Tomcat Первый параметр результирующий par1=val1 JSP,Servlet/Oracle Application Server 10g Первый параметр результирующий par1=val1 JSP,Servlet/Jetty Первый параметр результирующий par1=val1 IBM Lotus Domino Первый параметр результирующий par1=val1 IBM HTTP Server Последний параметр результирующий par1=val2 mod_perl,libapeq2/Apache Первый параметр результирующий par1=val1 Perl CGI/Apache Первый параметр результирующий par1=val1 mod_perl,lib???/Apache Первый параметр результирующий par1=val1 mod_wsgi (Python)/Apache Возвращается массив ARRAY(0x8b9058c) Pythin/Zope Первый параметр результирующий par1=val1 IceWarp Возвращается массив ['val1','val2'] AXIS 2400 Последний параметр результирующий par1=val2 Linksys Wireless-G PTZ Internet Camera Склеивание через запятую par1=val1,val2 Ricoh Aficio 1022 Printer Последний параметр результирующий par1=val2 webcamXP Pro Первый параметр результирующий par1=val1 DBMan Склеивание через две тильды par1=val1~~val2