Uruchamianie OWASP ZAP na Githubie to kolejny wpis w którym chcemy Wam pokazać możliwości narzędzia i jego wykorzystania w codziennej pracy. Jest to kolejny z wpisów w którym przedstawiamy Wam możliwość integracji kolejnego narzędzia z Githubem.
Czym jest OWASP ZAP
OWASP ZAP (Zed Attack Proxy) – darmowe narzędzie służące do testowania bezpieczeństwa aplikacji webowych, rozwijana w ramach grupy OWASP (Open Web Application Security Project). Narzędzie jest proste w instalacji i przydatne w trakcie Waszego procesu testowania.
Tworzenie pliku .yml
Chcąc uruchamiać testy z poziomu Githuba nasze testy będą opierać się o stworzenie pliku *.yml, który będzie naszym centrum dowodzenia i zarządzania. Do uruchomienia naszych testów konieczne będzie:
- runner na Githubie (domyślny – wystarczy)
- obraz dockerowy OWASP ZAP – dostępne na hub.docker.com.
I. Najprostsza wersja
W naszym projekcie testowym tworzymy plik *.yml a następnie uzupełniamy go w najprostszy sposób:
name: OWASP ZAP Scan - Web
on:
workflow_dispatch:
jobs:
security-scan:
runs-on: ubuntu-latest
container:
image: softwaresecurityproject/zap-stable
options: --user root
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up permissions
run: chmod -R 777 /__w
- name: Create Working Directory
run: mkdir -p /zap/wrk
- name: Run ZAP Baseline Scan
run: zap-baseline.py -t https://example-page.pl
- Pierwszy element obraz dockerowy
- Następnie tworzymy step w którym uruchomimy nasz test
- Nazwa skryptu – która pokaże się w ramach naszej zakładki pipeline (ważne jak masz kilka testów / stepów)
- W ramach skryptu w ostatnim czasie trzeba wymusić roota – aby uruchomić OWASPa na środowisku Githubowym.
II. Skany więcej niż jednej strony
W ramach naszych testów może zachodzić konieczność tworzenia faz egzekucji testów.
name: OWASP ZAP Scan - Web
on:
workflow_dispatch:
jobs:
security-scan:
runs-on: ubuntu-latest
container:
image: softwaresecurityproject/zap-stable
options: --user root
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up permissions
run: chmod -R 777 /__w
- name: Create Working Directory
run: mkdir -p /zap/wrk
- name: Run ZAP Baseline Scan
run: zap-baseline.py -t https://example-page.pl/
security-scan2:
runs-on: ubuntu-latest
container:
image: softwaresecurityproject/zap-stable
options: --user root
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up permissions
run: chmod -R 777 /__w
- name: Create Working Directory
run: mkdir -p /zap/wrk
- name: Run ZAP Baseline Scan
run: zap-baseline.py -t https://example-page2.pl/
III. Raporty i artefakty
Jeżeli chcesz możesz generować i potem zapisywać swój raport. Dzięki temu będziesz mógł analizować dokładniej wyniki, lub przedstawiać je innym w formie graficznej.
name: OWASP ZAP Scan - Web
on:
workflow_dispatch:
jobs:
security-scan:
runs-on: ubuntu-latest
container:
image: softwaresecurityproject/zap-stable
options: --user root
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up permissions
run: chmod -R 777 /__w
- name: Create Working Directory
run: mkdir -p /zap/wrk
- name: Run ZAP Baseline Scan
run: zap-baseline.py -t https://example-page.pl -g gen.conf -I -r report.html
- name: Copy report to Artifact Directory
run: cp /zap/wrk/report.html report.html
- name: Upload Report as Artifact
uses: actions/upload-artifact@v4
with:
name: ZAP-Report
path: report.html
Schedules
Jeżeli chcemy tak przygotowane testy w ramach naszego repozytorium, możemy uruchamiać cyklicznie. Z pomocą przychodzi nam Github i
on:
schedule:
- cron: '0 0 * * *' # Codziennie o północy UTC
Rozwiązanie to jest korzystne, gdyż dzięki niemu możemy wykorzystywać możliwości OWASP ZAP bez naszego ręcznego uruchamiania.
Podsumowanie
Artykuł Uruchamianie OWASP ZAP na Githubie to kolejny wpis w ramach którego prezentujemy Wam możliwości integracji narzędzi z Githubem. Ponadto wpis ten tworzony jest w ramach szerzenia wiedzy z zakresu security. Zapraszamy na inne wpisy związane z Security.