Технический аудит,
расписанный по часам.
Публикуем процесс целиком. Что делаем в 09:00, что в 13:00, что выдаём на 17:30 второго дня. Смета фиксирована, объём работ согласован заранее. Если что-то не укладывается в 2 дня — сообщаем об этом до подписания договора.
Три типичные ситуации.
Почти каждый аудит заказывают по одной из трёх причин ниже — реже просто чтобы оценить состояние системы без конкретного повода.
Унаследовали код
Уволили подрядчика. Перед приёмкой нужна вторая пара глаз — что взяли в наследство и сколько стоит привести в порядок.
Достигли потолка роста
Растёте, но релизы редкие, серверы дорожают, тех-долг ощущается. Нужна карта — что переписать, а что вывести из эксплуатации.
Запрос регулятора
Скоро проверка РКН / тендер с security-блоком / клиент требует пентест. Нужна независимая внешняя оценка, а не заключение собственной команды.
Карта системы. Поверхностное сканирование. Дневная сводка к 17:00.
Стартовая встреча
Видеозвонок на 30 минут. Подписали NDA → передали read-only доступы → зафиксировали объём работ в общем чате. Если что-то снаружи объёма работ — отмечаем явно.
scope.mdСнапшот среды
Клонируем репозиторий. Делаем read-only дамп схемы БД. Фиксируем version-locked артефакты (lockfile, env-имена). Никаких изменений в проде.
artifacts.zip · хранится 14 дней, потом удалёнРазбор архитектуры
Ваш CTO/lead проходит по системе на видеозвонке. Записываем для команды (с вашего согласия). Разбираемся в причинах решений, а не оцениваем их.
architecture-notes.mdStack inventory
Версии, лицензии, EOL-зависимости, deprecated API. Запускаем npm audit, snyk, license-checker, scan уязвимостей по CVE-базе.
stack-inventory.csvОбед
Перерыв. Серверы продолжают сканировать без нас.
OWASP Top 10 sweep
A01 broken access · A02 cryptographic failures · A03 injection · A04 insecure design · A05 misconfiguration · A06 vulnerable deps · A07 auth · A08 software integrity · A09 logging · A10 SSRF. Половина — автоматизированные пробы, половина — ручной обзор кода.
owasp-day1.md152-ФЗ / РКН чек-лист
Где хранятся ПДн. Какие согласия собираете. Политика обработки. Реестр операторов. Уведомление в РКН. Трансграничная передача.
fz152-checklist.mdДневная сводка
Всё, что нашли за день, в общий чат с разбивкой критичные / высокие / средние / низкие. 10-минутный чек-ин с вашим CTO — нет ли срочных проблем, на которые нужно реагировать вне аудита.
day1-summary.mdГлубокие пробы. Сборка отчёта. Разбор по Zoom к 18:00.
RLS / DB security
Проверяем все Row-Level Security политики. Индексы, секреты, ключи. Тест-кейсы: anon → admin-table должен быть false, owner → other-owner data тоже false. Прогоняем по матрице ролей × таблиц.
rls-matrix.csvInfra & deploy
CI/CD pipeline. Secret management. Бэкапы (RPO/RTO). Мониторинг и оповещения. SLO. Срок хранения копий. Disaster recovery — наличие и проработанность плана.
infra-notes.mdОбед
Перерыв.
Перформанс-пробы
Core Web Vitals на ключевых страницах. TTFB. Тяжёлые endpoints. Очереди. N+1 запросы. Не нагрузочное (k6 / Locust) — это отдельный пакет.
perf-report.mdCost & ops review
Счета за серверы. Оптимизации (обычно находим 15–30% экономии). Наблюдаемость — что вы видите, чего не видите. Ops-runbook — есть ли.
cost-review.mdСборка PDF-отчёта
Все находки в матрицу severity × effort × impact. 30+ страниц. Excel-реестр для импорта в Jira / Linear. Предложение по дорожной карте (опционально).
audit-{your-product}-2026-XX-XX.pdfРазбор по Zoom
Выдали PDF за час до звонка — чтобы успели прочесть. Прошли по критичным находкам. Ответили на вопросы. Прислали запись звонка. Аудит закрыт.
запись звонка · PDF · Excel-реестрРезультат к 18:00 второго дня.
Четыре артефакта на одном тарифе. Полный отчёт входит в стоимость, без доплат за расширенную версию.
PDF-отчёт
30+ страниц. Severity × effort × impact. Конкретные строки кода и команды для воспроизведения. На фирменном бланке.
Excel-реестр
Все находки одной таблицей. Фильтры по severity / effort / category. Импорт в Jira / Linear / Notion в один клик.
30-мин разбор
Видеозвонок после выдачи PDF. Проходим по критичным находкам. Запись с расшифровкой — остаётся у вас.
Дорожная карта (опц.)
Если попросите — отдельный документ: спринт на исправления, retainer-предложение, или сценарий полной пересборки.
Границы работ определены.
Чтобы исключить расхождение в ожиданиях. Каждый пункт ниже — отдельный пакет работ или профиль другой студии.
- ×Не исправляем уязвимости. Это отдельный спринт.
- ×Не проводим пентест продакшена. Только read-only обзор. Активный пентест — отдельный пакет.
- ×Не делаем нагрузочное тестирование (k6 / Locust).
- ×Не общаемся с вашими клиентами и пользователями.
- ×Не подписываем NDA с третьими сторонами без согласования.
- ×Не выдаём отчёт в Word — только PDF (защита от правок).
Аудит не накладывает обязательств.
Вы можете взять отчёт и продолжить самостоятельно, продолжить с нами в одном из трёх форматов или передать его другому подрядчику — он составлен так, чтобы быть понятным внешней команде.
Спринт-исправления
Берём приоритетные критичные и высокие из отчёта. Исправление с тестами. PR в ваш репозиторий.
Retainer
Постоянная пара senior-рук на продукте. Спринты по 2 недели. Без скрытых часов.
Полная пересборка
Если отчёт показал, что переписать дешевле, чем чинить, — собираем продукт заново на нашем стек-стандарте.
Лог аудита.
Реальный фрагмент. Имя клиента и пути скрыты.
# ─── DAY 1 · 13:04 · OWASP Top 10 sweep ───studio audit owasp --scope=api,web --target=████████.ruscanning 247 endpoints · 1342 functions · 12,847 LOC[A01] broken access — 2 endpoints без auth-middleware · /api/internal/*[A02] crypto — bcrypt cost=8 (рекомендуем 12) · 1 место[A03] injection — 0 SQLi · 1 NoSQL filter без sanitize[A05] config — Supabase service_role key в client bundle · CRITICAL12 находок · 1 critical · 3 high · 6 medium · 2 lowstudio audit owasp --export > owasp-day1.md✓ owasp-day1.md · 4.7 KB · pushed to /shared/audit-2026-05-28/