OWASP ZAP: активный сканер в непрерывной интеграции

Попытка использовать ZAP (2.4.3) в настройке непрерывной интеграции (CI). Я могу запускать ZAP как демон, запускать все мои тесты Selenium (на Java), используя ZAP в качестве прокси, а затем иметь возможность использовать REST api, вызывая htmlreport, чтобы получить окончательный отчет пассивного сканера. Это нормально работает, но я хотел бы также использовать активный сканер.

Использование активного сканера в CI несколько раз упоминается в документации ZAP, но мы не нашли ни одного рабочего примера или учебника по этому поводу ... существует ли какое-либо?

Я хотел бы добиться чего-то вроде: Запускать Active Scanner на всех страницах, посещаемых пакетом регрессии Selenium, после того, как он закончит работу.

Попытка взглянуть на REST api ZAP, но в основном это недокументировано:

https://github.com/zaproxy/zaproxy/wiki/ApiGen_Index

В идеале было бы неплохо иметь что-то вроде:

  • Запускать активное сканирование асинхронно для всех посещенных URL
  • Опрос, чтобы проверить, завершен ли запуск активного сканирования

В REST api кажется, что есть что-то связанное, но:

  • ascan/scan требуется вводить URL. Можно позвонить core/urls, чтобы узнать, что посетили тесты Selenium, но как установить правильную аутентификацию (учетные данные для ведения журнала)? Что делать, если важен порядок посещения URL-адресов? Что, если страница доступна только с определенными учетными данными?
  • есть ascan/scanAsUser, но неясно, как contextId и userId могут быть получены из ZAP. Обременительным обходным путем было бы изменить тесты Selenium для записи на диск URL-адресов, которые они посещают, и учетных данных для ведения журнала / пароля, которые они используют, а затем, когда все тесты будут завершены, для чтения с диска такой информации для вызова ZAP. Есть ли способ попроще?

person arcuri82    schedule 07.01.2016    source источник


Ответы (1)


Хорошо, так что здесь много вопросов :)

ZAP обычно сканирует иерархию URL-адресов, например все, что находится в верхней части https://www.example.com/app. URL уровня вашего приложения. Мы как бы предполагаем, что вы знаете, что это будет;)

Обработка аутентификации нетривиальна, см. https://github.com/zaproxy/zaproxy/wiki/FAQformauth

Вызов ascan / status возвращает завершенный%

Вы можете найти группу пользователей ZAP http://groups.google.com/group/zaproxy-users лучше для такого рода вопросов. Но да, нам нужно улучшить документацию по API: /

Ваше здоровье,

Саймон (руководитель проекта ZAP)

person Simon Bennetts    schedule 07.01.2016
comment
Благодарю. Я разместил его на groups.google.com/forum/#! topic / zaproxy-users / y2MHYEOr-HQ с дополнительными вопросами - person arcuri82; 08.01.2016