Что такое Security scan failed?

Ошибка Security scan failed возникает, когда автоматическая проверка безопасности кода, зависимостей или конфигурации обнаруживает уязвимости или проблемы безопасности.

Причины возникновения

  • Уязвимости в зависимостях
  • Проблемы с конфигурацией безопасности
  • Утечки секретов в коде
  • Проблемы с правами доступа
  • Уязвимости в Docker образах
  • Проблемы с SSL/TLS конфигурацией
  • Нарушения политик безопасности

Как отладить ошибку

  1. Проверь отчет безопасности - изучи детальные результаты сканирования
  2. Проверь зависимости - найди уязвимые пакеты
  3. Проверь конфигурацию - убедись в правильности настроек
  4. Проверь секреты - найди утечки в коде
  5. Проверь права доступа - убедись в минимальных правах

Как исправить ошибку

1. Обнови уязвимые зависимости

1# Проверка уязвимостей в Python
2# Установка safety
3pip install safety
4
5# Проверка зависимостей
6safety check
7
8# Обновление уязвимых пакетов
9pip install --upgrade vulnerable-package
1// Проверка уязвимостей в Node.js
2// Установка audit
3npm audit
4
5# Автоматическое исправление
6npm audit fix
7
8# Принудительное обновление
9npm audit fix --force

2. Настрой автоматическое сканирование

 1# .github/workflows/security-scan.yml
 2name: Security Scan
 3on: [push, pull_request]
 4
 5jobs:
 6  security:
 7    runs-on: ubuntu-latest
 8    steps:
 9    - uses: actions/checkout@v3
10    
11    - name: Run Trivy vulnerability scanner
12      uses: aquasecurity/trivy-action@master
13      with:
14        scan-type: 'fs'
15        scan-ref: '.'
16        format: 'sarif'
17        output: 'trivy-results.sarif'
18    
19    - name: Upload Trivy scan results
20      uses: github/codeql-action/upload-sarif@v2
21      with:
22        sarif_file: 'trivy-results.sarif'

3. Настрой проверку секретов

 1# .github/workflows/secret-scan.yml
 2name: Secret Scan
 3on: [push, pull_request]
 4
 5jobs:
 6  gitleaks:
 7    runs-on: ubuntu-latest
 8    steps:
 9    - uses: actions/checkout@v3
10      with:
11        fetch-depth: 0
12    
13    - name: Run Gitleaks
14      uses: gitleaks/gitleaks-action@v2
15      env:
16        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

4. Настрой проверку Docker образов

 1# .github/workflows/docker-security.yml
 2name: Docker Security Scan
 3on: [push]
 4
 5jobs:
 6  scan:
 7    runs-on: ubuntu-latest
 8    steps:
 9    - uses: actions/checkout@v3
10    
11    - name: Build Docker image
12      run: docker build -t myapp .
13    
14    - name: Run Trivy vulnerability scanner
15      uses: aquasecurity/trivy-action@master
16      with:
17        image-ref: 'myapp:latest'
18        format: 'sarif'
19        output: 'trivy-results.sarif'

5. Настрой проверку конфигурации

 1#!/bin/bash
 2# security-check.sh
 3
 4echo "Checking for hardcoded secrets..."
 5grep -r "password\|secret\|key" src/ | grep -v "example\|test"
 6
 7echo "Checking file permissions..."
 8find . -type f -executable -name "*.py" -o -name "*.sh"
 9
10echo "Checking SSL configuration..."
11if [ -f "ssl.conf" ]; then
12    openssl x509 -in ssl.conf -text -noout
13fi

Как мониторить подобные ошибки

  • Настрой алерты на security scan failures
  • Мониторь количество уязвимостей
  • Отслеживай время исправления уязвимостей
  • Настрой автоматические обновления зависимостей
  • Используй дашборды безопасности

FAQ

В: Как настроить пороги безопасности для разных окружений?

О: Используй разные пороги для dev, staging и production, учитывай критичность уязвимостей.

В: Что делать с false positives в security scans?

О: Настрой исключения для проверенных false positives, документируй решения, регулярно пересматривай.

В: Как автоматизировать исправление уязвимостей?

О: Используй автоматические обновления зависимостей, настрой Dependabot, применяй security patches.

Лучшие практики

  • Регулярно обновляй зависимости
  • Используй автоматические security scans
  • Настрой проверку секретов в коде
  • Сканируй Docker образы на уязвимости
  • Применяй принцип минимальных прав
  • Документируй security policies