← Назад к вопросам

Какие знаешь типы сканирования?

2.0 Middle🔥 121 комментариев
#Базы данных (SQL)

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Типы сканирования в контексте безопасности и анализа данных

Под «сканированием» в разработке понимают различные процессы автоматизированной проверки: безопасность, качество кода, уязвимости. Расскажу о основных типах, которые встречаются в промышленной разработке.

1. Сканирование уязвимостей (Vulnerability Scanning)

import subprocess

def scan_dependencies():
    """Проверяет requirements.txt на известные уязвимости"""
    result = subprocess.run(
        ["pip-audit"],
        capture_output=True,
        text=True
    )
    return result.stdout

print("Scanning for vulnerable dependencies...")
vulnerabilities = scan_dependencies()

Что проверяет:

  • Известные CVE (Common Vulnerabilities and Exposures)
  • Устаревшые версии пакетов
  • Небезопасные зависимости

Инструменты: pip-audit, Safety, OWASP Dependency-Check, Snyk

2. SAST (Static Application Security Testing)

from flask import Flask, request

app = Flask(__name__)

@app.route("/search")
def search():
    query = request.args.get("q")
    result = db.execute(f"SELECT * FROM users WHERE name LIKE '{query}'")
    return result

Что проверяет:

  • SQL injection
  • XSS (Cross-Site Scripting)
  • Path traversal
  • Hardcoded secrets
  • Небезопасные функции

Инструменты: Bandit, SonarQube, Semgrep, Ruff

3. DAST (Dynamic Application Security Testing)

DAST инструменты запускают приложение и отправляют вредоносные запросы для проверки реального поведения.

Инструменты: OWASP ZAP, Burp Suite

4. Сканирование качества кода (Code Quality Scanning)

def process_data(data):
    result = []
    for item in data:
        if item['status'] == 'active':
            if item['age'] > 18:
                if item['premium']:
                    result.append({"id": item['id'], "name": item['name']})
    return result

# Лучше:
def get_premium_adults(users):
    return [
        {"id": u['id'], "name": u['name']}
        for u in users
        if u['status'] == 'active' and u['age'] > 18 and u['premium']
    ]

Инструменты: Pylint, Flake8, Ruff, Radon, SonarQube

5. Сканирование секретов (Secret Scanning)

import os
from dotenv import load_dotenv

load_dotenv()
DATABASE_PASSWORD = os.getenv("DB_PASSWORD")
API_KEY = os.getenv("API_KEY")

Инструменты: git-secrets, TruffleHog, detect-secrets, GitGuardian

6. Сканирование конфигураций

from flask import Flask

app = Flask(__name__)
app.config['DEBUG'] = os.getenv('DEBUG', 'False') == 'True'
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY')
app.config['SESSION_COOKIE_SECURE'] = True
app.config['SESSION_COOKIE_HTTPONLY'] = True

Инструменты: Checkov, Kube-score, Trivy

7. Сканирование зависимостей

Проверка requirements.txt на известные уязвимости в версиях пакетов.

Инструменты: pip-audit, Safety, Snyk, Dependabot

8. Сканирование контейнеров

trivy image my-app:latest

Инструменты: Trivy, Grype, Clair, Harbor

9. Сканирование лицензий

Проверка совместимости лицензий всех зависимостей.

Инструменты: FOSSA, Black Duck, pip-licenses

10. Интеграция в CI/CD

Профессиональный проект использует комбинацию всех типов сканирования в автоматизированном pipeline для обеспечения безопасности и качества на каждом этапе разработки.