Использование ZAP для тестирования RESTAPI - PullRequest
1 голос
/ 17 июня 2020

Мне любопытно, как можно использовать ZAP для тестирования RESTAPI в контексте безопасности API. Можно ли использовать только надстройку OpenAPI или есть другие (более эффективные) методы?

Ответы [ 2 ]

2 голосов
/ 17 июня 2020

Для этого есть FAQ по ZAP :) https://www.zaproxy.org/faq/how-can-you-use-zap-to-scan-apis/:

ZAP понимает такие форматы API, как JSON и XML, и поэтому может использоваться для сканирования API.

Обычно проблема заключается в том, как эффективно изучить API.

Существуют различные варианты:

  • Если ваш API имеет определение OpenAPI / Swagger, вы можете импортировать его, используя надстройка OpenAPI .
  • Если у вас есть список URL-адресов конечных точек, вы можете импортировать их с помощью надстройки Import, содержащих URL-адреса .
  • Если у вас есть регрессионные тесты для вашего API, вы можете проксировать их через ZAP.

Надстройки доступны на ZAP Marketplace.

Как только ZAP узнает об URL конечных точек он может сканировать их так же, как он сканирует веб-сайты на основе HTML.

Если у вас нет ничего из этого, отправьте сообщение в группу пользователей ZAP , объяснив, что вы пытаетесь это сделать и какие у вас проблемы.

Подробнее см. сообщение в блоге API сканирования с помощью ZAP .

0 голосов
/ 19 июня 2020

Также хорошей идеей является использование Fuzzer от OwaspZap.

Фаззинг позволяет инициировать неожиданное поведение сервера API, отправляя неверные запросы, неверно сформированные параметры и угадывая неопубликованные методы API.

Вы Здесь вы можете прочитать, что происходит фаззинг: https://owasp.org/www-community/Fuzzing

Это позволит вам фаззировать строку URL-адреса или отдельный параметр.

Для запуска фаззера вам необходимо:

  1. Щелкните правой кнопкой мыши запрос -> Атака -> Fuzz ..
  2. Выделите параметр, который хотите использовать, и нажмите кнопку «Добавить».
  3. Нажмите Добавить в новое окно полезной нагрузки, выберите соответствующий вариант и нажмите «Добавить полезную нагрузку».

Я бы порекомендовал выбрать параметры «файловых фаззеров» на шаге 3 и выбрать один из заранее определенных списков слов или экспортировать свой собственный . Вы можете использовать Seclists, чтобы найти кучу нечетких списков слов. Вот набор списков слов, предназначенных для фаззинга API https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content/api

Более того, OwaspZap позволяет выполнять тестирование API вручную, если вы знаете методологию. Здесь вы можете найти ссылки, относящиеся к безопасности REST:

https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html https://cheatsheetseries.owasp.org/cheatsheets/REST_Assessment_Cheat_Sheet.html

...