SlideShare a Scribd company logo
Тестирование безопасности веб-
сервисов на примере WCF-
сервисов
Ultra Light
О чем речь
• Основные понятия о тестировании
безопасности
• Особенности поиска уязвимостей в
web сервисах (на примере wcf
сервисов)
2 /18
Как это все у
«взрослых»
• Сертификации ПО
– Для работы с платежами пластиковыми картами (PCI)
– Для работы с правительственными структурами
• Сертификации профессионалов
– CSTA
– ISTQB Security Testing Expert Level (ожидается к 2015)
• Наборы инструментов
• Отдельный недешевый сервис
3 /18
Кому?
• Публичный сервис
• Есть данные пользователей
• On Demand – люди покупают
подписки. Если они считают, что
есть опасность - они перестают это
делать.
4 /18
Зачем?
• Чтобы ограничить свободу действий
потенциальным злодеям
• Пусть выберут не вас
• Это интересно и полезно знать
5 /18
С чего можно начать
• Injections (A1)
• XSS (A3)
• Insecure Direct Object References (A4)
6 /18
Was ist das?
• OWASP – некоммерческое объединение, накапливающее знания
по тестированию безопасности.
• (A1) Injections – внедрение кода, который выполнится
доверчивым интерпретатором.
• (A2) Access Control пропущен, т.к. это проблема не уровня сервиса, а
выше.
• (A3) XSS – «отложенная инъекция». Срабатывает в браузере в
момент обращения к ресурсу интерпретатором. (Не путать с Cross
Site Request Forgery, A8)
• (A4) Insecure Direct Object References – лишняя информация в
предупреждениях и эксепшенах позволяющая злоумышленнику
получить информацию для усовершенствования атаки.
7 /18
Веб сервисы
• Не имеют красивого пользовательского
интерфейса в привычном виде
• Предоставляют доступ к функционалу
приложения для сторонних разработчиков
• В случае WCF
– широко используются и внутри приложения
– часть работы за программиста делает фреймворк
8 /18
Что с ними не так?
• SQL Injections через параметры методов
– Метод с кучей параметров принимающий еще и sortField –
направляет его напрямую в базу.
• XSS
– можно передать другому пользователю системы
«отравленный» объект.
– Сообщение об ошибке может отображать (выполнять)
вредоносный код
• Слишком информативные эксепшены и
предупреждения
• Все это может быть доступно по разным протоколам
9 /18
SQL Injection
10 /18
11 /18
Где еще посмотреть
• Уровень детализации ошибок в сервисах:
<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
13 /18
Jquery-плюшки для
желающих
• Можно использовать, чтобы прикрепить в
багу и не тратить время на воспроизведение.
• Что для этого достаточно знать:
– Как встраивать скрипт в HTML
– Общее представление о посылке http запросов
– Основы гуглинга
14 /18
Пример
• Послать/принять нужный запрос:
15 /18
Fin
• Не стоит полагать, будто это что-то гарантирует.
При желании, всегда найдутся умельцы покруче.
• Главное – знать меру. Не надо зарываться и
тратить уйму времени.
• Помните – самолечение опасно, доверьтесь
профессионалам. Если серьезные данные, то
такое тестирование не подходит.
• Однако, это полезно знать тестировщику.
16 /18
Инструменты:
• Acunetix – платный, крутой
• Burp Suite - дешевле, крутой
• QualysGuard – он-лайн сканер, не достанет за VPN
• Firebug
• Снифер (Fiddler, Wireshark и т.д.)
• Jquery – бесплатно, крутой 
• WSDLMerge – склейка всех зависимостей wsdl файла в
единый wsdl
17 /18
Ссылки:
• OWASP Top10 security risks, 2013(PDF):
http://owasptop10.googlecode.com/files/OWASP%20To
p%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
Смирнов Павел
DataArt
Skype: paul.n.smirnoff
Google: paul.n.smirnoff

More Related Content

More from SQALab

Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
SQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
SQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
SQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
SQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
SQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
SQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
SQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
SQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
SQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
SQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
SQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
SQALab
 
Истинная сила тестировщика - информация
Истинная сила тестировщика - информацияИстинная сила тестировщика - информация
Истинная сила тестировщика - информация
SQALab
 
Автоматизация тестирования встроенного ПО
Автоматизация тестирования встроенного ПОАвтоматизация тестирования встроенного ПО
Автоматизация тестирования встроенного ПО
SQALab
 
Правильный подход к составлению профиля нагрузочного тестирования
Правильный подход к составлению профиля нагрузочного тестированияПравильный подход к составлению профиля нагрузочного тестирования
Правильный подход к составлению профиля нагрузочного тестирования
SQALab
 
Sustainable Test Automation: Collaborate within Team
Sustainable Test Automation: Collaborate within TeamSustainable Test Automation: Collaborate within Team
Sustainable Test Automation: Collaborate within Team
SQALab
 
Test Data Preparation: Tips and Tricks
Test Data Preparation: Tips and TricksTest Data Preparation: Tips and Tricks
Test Data Preparation: Tips and Tricks
SQALab
 
9 кругов Ада: антипаттерны UI-Автоматизации
9 кругов Ада: антипаттерны UI-Автоматизации9 кругов Ада: антипаттерны UI-Автоматизации
9 кругов Ада: антипаттерны UI-Автоматизации
SQALab
 
The secrets in game testing
The secrets in game testingThe secrets in game testing
The secrets in game testing
SQALab
 

More from SQALab (20)

Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 
Истинная сила тестировщика - информация
Истинная сила тестировщика - информацияИстинная сила тестировщика - информация
Истинная сила тестировщика - информация
 
Автоматизация тестирования встроенного ПО
Автоматизация тестирования встроенного ПОАвтоматизация тестирования встроенного ПО
Автоматизация тестирования встроенного ПО
 
Правильный подход к составлению профиля нагрузочного тестирования
Правильный подход к составлению профиля нагрузочного тестированияПравильный подход к составлению профиля нагрузочного тестирования
Правильный подход к составлению профиля нагрузочного тестирования
 
Sustainable Test Automation: Collaborate within Team
Sustainable Test Automation: Collaborate within TeamSustainable Test Automation: Collaborate within Team
Sustainable Test Automation: Collaborate within Team
 
Test Data Preparation: Tips and Tricks
Test Data Preparation: Tips and TricksTest Data Preparation: Tips and Tricks
Test Data Preparation: Tips and Tricks
 
9 кругов Ада: антипаттерны UI-Автоматизации
9 кругов Ада: антипаттерны UI-Автоматизации9 кругов Ада: антипаттерны UI-Автоматизации
9 кругов Ада: антипаттерны UI-Автоматизации
 
The secrets in game testing
The secrets in game testingThe secrets in game testing
The secrets in game testing
 

Тестирование безопасности веб-сервисов на примере WCF-сервисов

  • 1. Тестирование безопасности веб- сервисов на примере WCF- сервисов Ultra Light
  • 2. О чем речь • Основные понятия о тестировании безопасности • Особенности поиска уязвимостей в web сервисах (на примере wcf сервисов) 2 /18
  • 3. Как это все у «взрослых» • Сертификации ПО – Для работы с платежами пластиковыми картами (PCI) – Для работы с правительственными структурами • Сертификации профессионалов – CSTA – ISTQB Security Testing Expert Level (ожидается к 2015) • Наборы инструментов • Отдельный недешевый сервис 3 /18
  • 4. Кому? • Публичный сервис • Есть данные пользователей • On Demand – люди покупают подписки. Если они считают, что есть опасность - они перестают это делать. 4 /18
  • 5. Зачем? • Чтобы ограничить свободу действий потенциальным злодеям • Пусть выберут не вас • Это интересно и полезно знать 5 /18
  • 6. С чего можно начать • Injections (A1) • XSS (A3) • Insecure Direct Object References (A4) 6 /18
  • 7. Was ist das? • OWASP – некоммерческое объединение, накапливающее знания по тестированию безопасности. • (A1) Injections – внедрение кода, который выполнится доверчивым интерпретатором. • (A2) Access Control пропущен, т.к. это проблема не уровня сервиса, а выше. • (A3) XSS – «отложенная инъекция». Срабатывает в браузере в момент обращения к ресурсу интерпретатором. (Не путать с Cross Site Request Forgery, A8) • (A4) Insecure Direct Object References – лишняя информация в предупреждениях и эксепшенах позволяющая злоумышленнику получить информацию для усовершенствования атаки. 7 /18
  • 8. Веб сервисы • Не имеют красивого пользовательского интерфейса в привычном виде • Предоставляют доступ к функционалу приложения для сторонних разработчиков • В случае WCF – широко используются и внутри приложения – часть работы за программиста делает фреймворк 8 /18
  • 9. Что с ними не так? • SQL Injections через параметры методов – Метод с кучей параметров принимающий еще и sortField – направляет его напрямую в базу. • XSS – можно передать другому пользователю системы «отравленный» объект. – Сообщение об ошибке может отображать (выполнять) вредоносный код • Слишком информативные эксепшены и предупреждения • Все это может быть доступно по разным протоколам 9 /18
  • 12. Где еще посмотреть • Уровень детализации ошибок в сервисах: <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
  • 14. Jquery-плюшки для желающих • Можно использовать, чтобы прикрепить в багу и не тратить время на воспроизведение. • Что для этого достаточно знать: – Как встраивать скрипт в HTML – Общее представление о посылке http запросов – Основы гуглинга 14 /18
  • 16. Fin • Не стоит полагать, будто это что-то гарантирует. При желании, всегда найдутся умельцы покруче. • Главное – знать меру. Не надо зарываться и тратить уйму времени. • Помните – самолечение опасно, доверьтесь профессионалам. Если серьезные данные, то такое тестирование не подходит. • Однако, это полезно знать тестировщику. 16 /18
  • 17. Инструменты: • Acunetix – платный, крутой • Burp Suite - дешевле, крутой • QualysGuard – он-лайн сканер, не достанет за VPN • Firebug • Снифер (Fiddler, Wireshark и т.д.) • Jquery – бесплатно, крутой  • WSDLMerge – склейка всех зависимостей wsdl файла в единый wsdl 17 /18
  • 18. Ссылки: • OWASP Top10 security risks, 2013(PDF): http://owasptop10.googlecode.com/files/OWASP%20To p%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