Skip to content

Repository files navigation

GUARDAPI PLATFORM FOR AUTOMATED API VULNERABILITY TESTING

Сайт проекта - защитапи.рф

Этот архив предназначен для мгновенного запуска веб‑приложения «GuardAPI» (Spring Boot) для проверки API на уязвимости, включая OWASP API Top 10. Внутри пакета есть исходники, скомпилированные классы, зависимости и готовый JAR.

Что внутри

  • Исходный код: src/ и pom.xml
  • Конфиги: src/main/resources/application.properties, logback-spring.xml, шаблоны templates/
  • Скомпилированные классы: target/classes
  • Зависимости (все сторонние библиотеки): target/dependency/*
  • Фронт (UI): api-checker

Требования

  • Java 17+ установлен и доступен в PATH (java -version)
  • Maven 3.9.11 установлен
  • Node.js

Быстрый старт

  1. Распакуйте архив.
  2. Написать в консоли mvn compile для компиляции бекенда
  3. Написать в консоли mvn spring-boot:run для запуска сервера бекенда
  4. Перейти в папку api-checker
  5. Запустить npm install для установки зависимотей
  6. Запустить npm run dev для запуска фронтенда приложения

По умолчанию приложение слушает http://localhost:8080/. Порт можно изменить, задав переменную окружения SERVER_PORT, например:

Использование UI

  • Откройте http://localhost:5173/.
  • Укажите baseUrl целевого API и при необходимости authHeader
  • Нажмите «Автообнаружение эндпоинтов» и/или выберите атаки
  • Кнопка «OWASP Top 10» автоматически подготовит набор проверок и запустит генерацию отчёта

CI/CD Integration Guide

Автоматическое сканирование API в CI/CD

1. Получите API ключ

  1. Войдите в свой аккаунт на защитапи.рф
  2. Перейдите в НастройкиAPI Keys
  3. Нажмите Create API Key
  4. Укажите название (например, "GitHub Actions")
  5. Скопируйте ключ - он больше не будет показан!

2. Добавьте ключ в секреты

GitHub Actions

  • Settings → Secrets and variables → Actions → New secret
  • Name: API_VULN_TESTER_KEY
  • Value: avt_xxxxxxxxxx

GitLab CI

  • Settings → CI/CD → Variables → Add variable
  • Key: API_VULN_TESTER_KEY
  • Value: avt_xxxxxxxxxx
  • ✅ Protect variable, ✅ Mask variable

3. Создайте workflow

GitHub Actions (.github/workflows/security-scan.yml)

name: Security Scan

on: [push, pull_request]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - name: API Security Scan
        run: |
          curl -X POST https://защитапи.рф/api/scan \
            -H "X-API-Key: ${{ secrets.API_VULN_TESTER_KEY }}" \
            -H "Content-Type: application/json" \
            -d '{
              "baseUrl": "https://your-api.com",
              "attackTypes": ["SQL_INJECTION", "XSS", "CSRF"]
            }' | jq .

GitLab CI (.gitlab-ci.yml)

security-scan:
  stage: test
  image: curlimages/curl:latest
  script:
    - |
      curl -X POST https://защитапи.рф/api/scan \
        -H "X-API-Key: $API_VULN_TESTER_KEY" \
        -H "Content-Type: application/json" \
        -d '{
          "baseUrl": "'"$CI_ENVIRONMENT_URL"'",
          "attackTypes": ["SQL_INJECTION", "XSS", "CSRF"]
        }' | jq .

4. Опции сканирования

{
  "baseUrl": "https://your-api.com",
  "attackTypes": [
    "SQL_INJECTION",
    "XSS", 
    "CSRF",
    "AUTH_BYPASS",
    "RATE_LIMIT",
    "CORS",
    "XXE",
    "SSRF"
  ],
  "authHeader": "Bearer your-token",
  "include": ["GET /api/users"],
  "exclude": ["POST /api/admin/*"]
}

5. Fail pipeline on vulnerabilities

- name: Check vulnerabilities
  run: |
    RESPONSE=$(curl -s -X POST https://защитапи.рф/api/scan \
      -H "X-API-Key: ${{ secrets.API_VULN_TESTER_KEY }}" \
      -H "Content-Type: application/json" \
      -d '{"baseUrl": "https://your-api.com", "attackTypes": ["SQL_INJECTION", "XSS"]}')
    
    HIGH_VULNS=$(echo "$RESPONSE" | jq '[.vulnerabilities[] | select(.severity == "HIGH")] | length')
    
    if [ "$HIGH_VULNS" -gt 0 ]; then
      echo "❌ Found $HIGH_VULNS HIGH severity vulnerabilities"
      exit 1
    fi

6. Скачать отчёт

- name: Download report
  run: |
    SCAN_ID=$(echo "$RESPONSE" | jq -r '.scanId')
    curl -H "X-API-Key: ${{ secrets.API_VULN_TESTER_KEY }}" \
      https://защитапи.рф/api/reports/$SCAN_ID/download/html \
      -o report.html

API Endpoints

Endpoint Method Description
/api/scan POST Запуск сканирования
/api/reports GET Список отчётов
/api/reports/{id} GET Получить отчёт
/api/reports/{id}/download/html GET Скачать HTML
/api/reports/{id}/download/pdf GET Скачать PDF

Authentication: Header X-API-Key: avt_xxxxxxxxxx

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages