Как использовать ZAP для сканирования заголовка безопасности HTTP? - PullRequest
0 голосов
/ 25 сентября 2018

Мы хотим интегрировать python / ZAPv2 в наш SDLC, иногда нам нужно только использовать ZAP для проверки заголовка безопасности, такого как флаг HttpOnly в Set-Cookie, заголовок CSP и т. Д. *

IGoogle много, и найти, может быть, политика ZAP может помочь нам ... но есть очень ограниченный документ о том, как самостоятельно определить политику zap и как вызвать API для вызова самоопределяемой политики в библиотеке ZAPv2

Может ли какой-нибудь документ / советы / идеи помочь мне ...?спасибо!

1 Ответ

0 голосов
/ 25 сентября 2018

Проверки заголовков безопасности, как правило, реализуются в виде правил пассивного сканирования (поэтому, если вы используете трафик паука или прокси, вы можете получить результаты для них).Вот некоторая информация о программной настройке «политики» пассивного сканирования.

Повторное использование моего ответа отсюда: Экспорт / импорт правил пассивного сканирования OWASP ZAP


Там уже открыт билетчтобы объединить обработку активного / пассивного сканирования в едином интерфейсе типа политики: https://github.com/zaproxy/zaproxy/issues/3870. Если вы действительно заинтересованы в этом, вы можете поддержать его на BountySource (https://www.bountysource.com/issues/49047644-improved-active-passive-rules-management) и посмотреть, не привлекает ли это внимание / действие.

Другой вариант, с которым вы можете пойти - это создать быстрый скрипт, который использует веб-API ZAP для применения «политики» правила пассивного сканирования. Соответствующие конечные точки включают в себя: pscan / view / scanners /, pscan / action / disableAllScanners/, pscan / action / enableScanners /. Вот пример на python:

from zapv2 import ZAPv2 as zap
import time

apikey = "apikey12345" #Your apikey
z = zap(apikey=apikey, proxies={"http": "http://127.0.0.1:8080", "https": "http://127.0.0.1:8080"})
time.sleep(2) #Might need to be longer depending on your machine and if ZAP is already running or not

print "Disabling all passive scan rules.."

z.pscan.disable_all_scanners()

scanners = z.pscan.scanners

for scanner in scanners:
    print scanner.get("id") + " : " + scanner.get("enabled") + " : " + scanner.get("name")

to_enable = "10020,10021,10062" #Customize as you see fit
print "\nEnabling specific passive scan rules..[" + to_enable +"]"

z.pscan.enable_scanners(to_enable)

print "\nListing enabled passive scan rules.."

scanners2 = z.pscan.scanners

for scanner in scanners2:
    if (scanner.get("enabled") == "true"):
        print scanner.get("id") + " : " + scanner.get("enabled") + " : " + scanner.get("name")

Наконец, вы можете настроить ZAP в одной системе, а затем скопировать этот config.xml в другие системы при необходимости.

...