Полный аудит безопасности кода и инфраструктуры с приоритизированным планом действий. Используй этот навык, когда пользователь просит проверить безопасность, найти уязвимости, провести security review, hardening или аудит конфигурации. Проверяет код, Docker-образы, Kubernetes manifests, Terraform, CI/CD пайплайны и конфигурационные файлы.
Навык проводит комплексный аудит безопасности: от поиска уязвимостей в коде до проверки инфраструктурных конфигураций. Все находки, объяснения и рекомендации — на русском языке. Технические термины, названия CVE, политик и инструментов — на английском.
Запрос на аудит → Определи скоуп
├─ Исходный код приложения
│ ├─ Бэкенд → OWASP Top 10, секреты, инъекции, аутентификация
│ ├─ Фронтенд → XSS, CSRF, unsafe innerHTML, dependency audit
│ └─ API → авторизация, rate limiting, input validation
│
├─ Инфраструктура (IaC)
│ ├─ Terraform → IAM, security groups, encryption, public access
│ ├─ Kubernetes → RBAC, PodSecurity, network policies, secrets
│ └─ Docker → base images, USER, secrets in layers, multi-stage
│
├─ CI/CD пайплайн
│ └─ Secrets management, supply chain, permissions, artifacts
│
└─ Конфигурация сервисов
└─ CORS, CSP, TLS, headers, logging
Для каждого компонента определи:
Для каждого компонента оцени:
A01: Broken Access Control
A02: Cryptographic Failures
A03: Injection
A04: Insecure Design
A05: Security Misconfiguration
A06: Vulnerable Components
A07: Authentication Failures
A08: Data Integrity Failures
A09: Logging & Monitoring
A10: SSRF
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-XSS-Protection: 0
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()
Ищи паттерны:
AKIA[0-9A-Z]{16}, sk-[a-zA-Z0-9]{32,}password\s*=\s*["'][^"']+["']token\s*[:=]\s*["'][^"']+["']mongodb://, postgres://, mysql:// с credentials-----BEGIN (RSA |EC )?PRIVATE KEY-----# Антипаттерны:
FROM ubuntu:latest # ❌ Тег latest, большой образ
USER root # ❌ Контейнер от root
COPY . . # ❌ Копируется всё, включая .env
RUN apt-get install -y curl # ❌ Нет очистки кеша
# Рекомендации:
FROM node:20-alpine AS builder # ✅ Конкретная версия, alpine
USER node # ✅ Непривилегированный пользователь
COPY package*.json ./ # ✅ Только необходимое
RUN npm ci --only=production # ✅ Чистая установка
Проверь наличие:
### [CRITICAL] SQL Injection в /api/users/search
**Файл:** src/routes/users.ts:45
**Категория:** A03 — Injection
**CVSS:** 9.8 (Critical)
**Описание:**
Параметр `query` из GET-запроса подставляется напрямую в SQL без параметризации.
**Пример эксплуатации:**
GET /api/users/search?query=' OR 1=1--
**Рекомендация:**
Использовать параметризованный запрос:
```sql
-- БЫЛО:
SELECT * FROM users WHERE name LIKE '%${query}%'
-- СТАЛО:
SELECT * FROM users WHERE name LIKE $1
-- параметр: `%${query}%`
Приоритет: Исправить немедленно
### 4.2 Классификация по severity
| Уровень | Критерий | Срок исправления |
|---------|----------|------------------|
| CRITICAL | Возможна удалённая эксплуатация, утечка данных | Немедленно |
| HIGH | Эскалация привилегий, обход авторизации | 1-3 дня |
| MEDIUM | Раскрытие информации, отсутствие hardening | 1-2 недели |
| LOW | Best practice нарушения, информационные | При случае |
| INFO | Рекомендации по улучшению | Беклог |
### 4.3 Итоговый отчёт
```markdown
# Отчёт аудита безопасности
## Резюме
- Дата: YYYY-MM-DD
- Скоуп: описание проверяемой системы
- Найдено: X Critical, X High, X Medium, X Low
## Критические находки
...
## Рекомендации по приоритету
1. [CRITICAL] Исправить SQL injection — src/routes/users.ts
2. [HIGH] Включить rate limiting на /api/auth/login
3. [MEDIUM] Добавить CSP header
...
## План hardening
| Неделя | Действие | Severity |
|--------|----------|----------|
| 1 | Исправить все Critical | Critical |
| 2 | Исправить High, добавить headers | High |
| 3-4 | Medium находки, audit logging | Medium |