Налаштування DAST (Dynamic Application Security Testing) для сайту

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування DAST (Dynamic Application Security Testing) для сайту
Середня
~3-5 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

DAST: динамічне тестування безпеки додатку

DAST (Dynamic Application Security Testing) тестує робочий додаток — атакує як зовнішній зловмисник. Знаходить вразливості, які SAST не бачить: неправильна конфігурація сервера, runtime-вразливості, проблеми з аутентифікацією.

OWASP ZAP

# Baseline scan: швидка перевірка (5-10 хвилин)
docker run --rm \
  -v $(pwd)/reports:/zap/wrk:rw \
  ghcr.io/zaproxy/zaproxy:stable \
  zap-baseline.py \
  -t https://staging.mysite.com \
  -r zap-baseline-report.html \
  -J zap-baseline-report.json \
  -l WARN  # Тільки WARNING і вище

# Full scan: активне сканування (30-60 хвилин)
docker run --rm \
  -v $(pwd)/reports:/zap/wrk:rw \
  ghcr.io/zaproxy/zaproxy:stable \
  zap-full-scan.py \
  -t https://staging.mysite.com \
  -r zap-full-report.html \
  -J zap-full-report.json

# API scan: тестування за OpenAPI специфікацією
docker run --rm \
  -v $(pwd)/reports:/zap/wrk:rw \
  ghcr.io/zaproxy/zaproxy:stable \
  zap-api-scan.py \
  -t https://api.staging.mysite.com/openapi.json \
  -f openapi \
  -r zap-api-report.html

GitHub Actions: ZAP у CI/CD

# .github/workflows/dast.yml
name: DAST

on:
  push:
    branches: [main]
  schedule:
    - cron: '0 2 * * 1'  # Щотижнево о 2:00

jobs:
  zap-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Start application
        run: |
          docker compose -f docker-compose.test.yml up -d
          sleep 30  # Очікуємо запуску

      - name: Run ZAP Baseline Scan
        uses: zaproxy/[email protected]
        with:
          target: http://localhost:3000
          rules_file_name: .zap/rules.tsv
          cmd_options: '-a'  # Активне сканування

      - name: Upload ZAP report
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: zap-report
          path: report_html.html

      - name: Stop application
        if: always()
        run: docker compose -f docker-compose.test.yml down
# .zap/rules.tsv: налаштування правил (WARN/IGNORE/FAIL)
# rule_id  action  reason
10017      WARN    # X-Frame-Options header — попередження
10038      WARN    # Content Security Policy — попередження
40012      FAIL    # Cross Site Scripting — критично
40018      FAIL    # SQL Injection — критично
90011      IGNORE  # Charset mismatch — ігноруємо

Nuclei: сканування за шаблонами CVE

# Встановлення
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# Оновлення шаблонів
nuclei -update-templates

# Сканування на критичні вразливості
nuclei -u https://staging.mysite.com \
  -severity critical,high \
  -tags cve,owasp \
  -o nuclei-results.txt \
  -json-export nuclei-results.json

# Сканування за категорією
nuclei -u https://staging.mysite.com \
  -tags sqli,xss,ssrf,rce \
  -rate-limit 50 \
  -timeout 10

Burp Suite: ручне тестування

# Burp Suite API: запуск scan через REST API
import requests

BURP_API = "http://localhost:1337/v0.1"

# Створюємо новий scan
response = requests.post(f"{BURP_API}/scan", json={
    "urls": ["https://staging.mysite.com"],
    "scope": {
        "include": [{"rule": "https://staging.mysite.com/.*"}],
    },
    "scan_configurations": [
        {"name": "Crawl and Audit - Balanced"}
    ]
})

scan_id = response.json()["task_id"]
print(f"Scan ID: {scan_id}")

DAST для API: правила

DAST особливо важлива для API:

  • Тестування авторизації: доступ до чужих ресурсів (IDOR)
  • Injection через всі input points
  • Business logic flaws (обхід обмежень)
# Платформа для API security testing
# OWASP ZAP + Postman Collection
zap-cli --port 8090 start
zap-cli --port 8090 open-url https://api.staging.mysite.com
zap-cli --port 8090 spider https://api.staging.mysite.com
zap-cli --port 8090 active-scan https://api.staging.mysite.com
zap-cli --port 8090 report -o api-security-report.html -f html

DAST проводиться на staging-середовищі, не на production. Активне сканування створює навантаження і може змінювати дані.

Налаштування DAST pipeline з ZAP у GitHub Actions — 1–2 робочих дні.