Тестирование безопасности веб-сервисов на примере...
DESCRIPTION
Доклад Павла Смирнова на SQA Days-15. 18-19 апреля, 2014, Москва. www.sqadays.comTRANSCRIPT
![Page 1: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/1.jpg)
Тестирование безопасности веб-сервисов на примере WCF-сервисов
Ultra Light
![Page 2: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/2.jpg)
О чем речь
• Основные понятия о тестировании безопасности• Особенности поиска уязвимостей в
web сервисах (на примере wcf сервисов)
2 /18
![Page 3: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/3.jpg)
Как это все у «взрослых»
• Сертификации ПО– Для работы с платежами пластиковыми картами (PCI)– Для работы с правительственными структурами
• Сертификации профессионалов– CSTA– ISTQB Security Testing Expert Level (ожидается к 2015)
• Наборы инструментов • Отдельный недешевый сервис
3 /18
![Page 4: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/4.jpg)
Кому?
• Публичный сервис • Есть данные пользователей• On Demand – люди покупают
подписки. Если они считают, что есть опасность - они перестают это делать.
4 /18
![Page 5: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/5.jpg)
Зачем?
• Чтобы ограничить свободу действий потенциальным злодеям• Пусть выберут не вас • Это интересно и полезно знать
5 /18
![Page 6: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/6.jpg)
С чего можно начать
• Injections (A1)• XSS (A3)• Insecure Direct Object References (A4)
6 /18
![Page 7: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/7.jpg)
Was ist das?
• OWASP – некоммерческое объединение, накапливающее знания по тестированию безопасности.
• (A1) Injections – внедрение кода, который выполнится доверчивым интерпретатором.
• (A2) Access Control пропущен, т.к. это проблема не уровня сервиса, а выше.• (A3) XSS – «отложенная инъекция». Срабатывает в браузере в
момент обращения к ресурсу интерпретатором. (Не путать с Cross Site Request Forgery, A8)
• (A4) Insecure Direct Object References – лишняя информация в предупреждениях и эксепшенах позволяющая злоумышленнику получить информацию для усовершенствования атаки.
7 /18
![Page 8: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/8.jpg)
Веб сервисы
• Не имеют красивого пользовательского интерфейса в привычном виде
• Предоставляют доступ к функционалу приложения для сторонних разработчиков
• В случае WCF – широко используются и внутри приложения – часть работы за программиста делает фреймворк
8 /18
![Page 9: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/9.jpg)
Что с ними не так?
• SQL Injections через параметры методов – Метод с кучей параметров принимающий еще и sortField – направляет
его напрямую в базу.
• XSS– можно передать другому пользователю системы
«отравленный» объект. – Сообщение об ошибке может отображать (выполнять)
вредоносный код• Слишком информативные эксепшены и предупреждения• Все это может быть доступно по разным протоколам
9 /18
![Page 10: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/10.jpg)
SQL Injection
10 /18
![Page 11: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/11.jpg)
11 /18
![Page 12: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/12.jpg)
Где еще посмотреть
• Уровень детализации ошибок в сервисах:<behaviors>
<serviceBehaviors> <behavior name="Default">
<serviceDebug includeExceptionDetailInFaults="false"/> </behavior>
</serviceBehaviors></behaviors>
• Запрет встраивания страниц приложения в iframe. <system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
</system.webServer>
12 /18
![Page 13: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/13.jpg)
13 /18
![Page 14: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/14.jpg)
Jquery-плюшки для желающих
• Можно использовать, чтобы прикрепить в багу и не тратить время на воспроизведение.
• Что для этого достаточно знать:– Как встраивать скрипт в HTML– Общее представление о посылке http запросов– Основы гуглинга
14 /18
![Page 15: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/15.jpg)
Пример
• Послать/принять нужный запрос:
15 /18
![Page 16: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/16.jpg)
Fin
• Не стоит полагать, будто это что-то гарантирует. При желании, всегда найдутся умельцы покруче.
• Главное – знать меру. Не надо зарываться и тратить уйму времени.
• Помните – самолечение опасно, доверьтесь профессионалам. Если серьезные данные, то такое тестирование не подходит.
• Однако, это полезно знать тестировщику.
16 /18
![Page 17: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/17.jpg)
Инструменты:
• Acunetix – платный, крутой• Burp Suite - дешевле, крутой• QualysGuard – он-лайн сканер, не достанет за VPN• Firebug • Снифер (Fiddler, Wireshark и т.д.)• Jquery – бесплатно, крутой • WSDLMerge – склейка всех зависимостей wsdl
файла в единый wsdl
17 /18
![Page 18: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/18.jpg)
Ссылки:
• OWASP Top10 security risks, 2013(PDF): http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202013.pdf
• MSDN, How To: Prevent Cross-Site Scripting in ASP.NET - http://msdn.microsoft.com/en-us/library/ff649310.aspx
• WCF Security Guide (2008) - http://wcfsecurity.codeplex.com/ • WSDLMerge:
– bin: http://code.google.com/p/wsdlmerge/downloads/list – Help: http://code.google.com/p/wsdlmerge/wiki/Usage
Последний
/18
![Page 19: Тестирование безопасности веб-сервисов на примере WCF-сервисов](https://reader033.vdocuments.mx/reader033/viewer/2022052904/557f661dd8b42af1298b48e4/html5/thumbnails/19.jpg)
Смирнов ПавелDataArt
Skype: paul.n.smirnoffGoogle: paul.n.smirnoff