Uruchamianie OWASP ZAP na Githubie

Bezpieczeństwo

Loading

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
 
  1. Pierwszy element obraz dockerowy
  2. Następnie tworzymy step w którym uruchomimy nasz test
  3. Nazwa skryptu – która pokaże się w ramach naszej zakładki pipeline (ważne jak masz kilka testów / stepów)
  4. 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