Перейти к содержимому

Фотография

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


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 soleksenko2702

soleksenko2702

    Постоянный участник

  • Members
  • PipPipPip
  • 193 сообщений
  • ФИО:Олексенко Сергей

Отправлено 30 марта 2012 - 11:21

Всем привет.

Занимаюсь тестированием веб-сервиса.
Стал вопрос о безопасности. Никогда таким не занимался, поэтому интересует все.
Подскажите пожалуйста что можно почитать по этому вопросу, какие инструменты использовать и т.д.
  • 0

#2 owasp

owasp

    Активный участник

  • Members
  • PipPip
  • 87 сообщений

Отправлено 01 апреля 2012 - 17:44

Веб-сервисы бывают очень разные.
В зависимости от способа реализации, от типа аутентификации надо подбирать свои инструменты.

Есть широко-используемые инструменты, как soapui (см. soapui.sourceforge.net или http://www.soapui.org/ ). В целом это не инструмент для тестирования безопасности (для нагрузочного тестирования), но можно посылать запросы и смотреть ответы.

Для тех же целей использовал другой инструмент на Java - webscarab (см. https://www.owasp.or...x.php/Webscarab )

Но сейчас больше нравится способ с написанием своего клиента. Это как модульное тестирование, только модульный тест специфичный (на безопасность) и его пишет программист отдела тестирования, а не отдела разработки. Способ долгий. Но иногда не обойтись готовыми инструментами. Например, используется KerberOS, NTLM, или ещё что-либо, что не поддерживается инструментом тестирования, и нельзя отключить KerberOS на сервере.
Или есть в системе есть веб-сервис, но он для внутреннего использования приложения, послать запрос извне сложно (сделать всё, чтобы не так нельзя было сделать). Или можно, но явно проще написать на стороне сервера html/jаvasсript страничку, которая будет принимать и выполнять тесты, посылая запросы к json-веб-сервису ($.ajax({type: "POST", ... })), а результат выполнения смотреть в консоли Firebug или в Fiddler2 (так проще сделать, чем руками вставлять в каждый запрос soapiu или webscarab идентификатор сеанса, получаемый отдельно - тут надо будет просто авторизоваться в приложении, перейти на тестовую страницу и активировать тесты для данного пользователя).

Ещё существует фаззинг. Но так и не попробовал ни один из готовых инстурментов для фаззинга именно веб-сервисов. Как обычно, не было на это времени. Вот если писать свой модульный тест на безопасность, то там как раз и выполняется фаззинг (но упрощённый, по сравнению со специализированными инстурментами).

А как тестировать?
Проверить на отсутствие важнейших уязвимостей: http://cwe.mitre.org/top25/
А также проверить безопасность бизнес-логики (различные хитрые права доступа, наследование прав, неявные параметры работы).

Также, особенно, если разработчики сами так не сделали, то надо прогнать исходники через статический сканер, пускай он поставит маячки - где вероятна SQL-инъекция, где XSS, где явное отсутствие проверки результата выполнения вызываемой функции, ...
Бывает, что исходники доступны только разработчиками. В случае Python/PHP это не проблема. В случае с .NET и Java - тоже не большая проблема, декомпилировать и прогнать через анализатор получится (как раз выполнится текст на возможность декомпиляции важных участков кода). И даже VisualBasic с Delphi сносно декомпилируются в ряде случаев, но тут лучше официально попросить исходники.
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных