Александр Руин

Консультант по проектированию AI‑систем

Александр Руин — консультант по проектированию систем. Помогаю спроектировать архитектуру, оценить риски и выстроить прозрачный процесс — от выбора технологий до сопровождения. Рутину берут на себя AI‑исполнители. Направления: автоматизация, интеграции, AI‑продукты.

90% кода от ИИ содержит уязвимости: как проверить код после вайбкодинга

Cursor написал форму авторизации — она работает. Но внутри SQL-инъекция, захардкоженный API-ключ и открытый endpoint без проверки прав. Совместное исследование CMU, Columbia University и Johns Hopkins University (2025) показало: 90% кода, сгенерированного AI-помощниками, содержит потенциальные уязвимости безопасности. Это не значит, что AI-код нельзя использовать — это значит, что его нельзя деплоить без проверки.

Ключевые выводы: - 90% AI-сгенерированного кода содержит уязвимости по данным CMU/Columbia/Johns Hopkins (2025) - Автоматические инструменты ловят 30–50% проблем — остальные требуют человека - AI-ревью не находит баги в AI-коде: одинаковые обучающие данные, одинаковые слепые пятна - Проверка кода по ТЗ + аудит безопасности стоит 30 000 ₽ разово или от 5 000 ₽/мес

Почему AI генерирует уязвимый код?

Потому что он учился на GitHub — а там огромное количество небезопасного кода. Самый частый паттерн в обучающих данных не равен самому безопасному. AI оптимизирован на «работает» — безопасность нужно запрашивать явно, и даже тогда результат не гарантирован.

Типы уязвимостей

SQL-инъекции (CWE-89) AI подставляет пользовательский ввод напрямую в запросы:

# AI сгенерировал:
query = f"SELECT * FROM users WHERE name = '{user_input}'"

# Должно быть:
cursor.execute("SELECT * FROM users WHERE name = %s", (user_input,))

XSS — Cross-Site Scripting (CWE-79) AI вставляет контент без экранирования:

// AI сгенерировал:
element.innerHTML = userComment;

// Должно быть:
element.textContent = userComment;

Захардкоженные секреты (CWE-798) AI копирует паттерны из обучающих данных, включая ключи:

// AI сгенерировал:
const API_KEY = "sk-proj-abc123...";

// Должно быть:
const API_KEY = process.env.API_KEY;

Отсутствие проверки авторизации (CWE-862) AI создаёт endpoint по аналогии, но забывает проверку прав:

// AI сгенерировал:
app.delete('/api/users/:id', async (req, res) => {
  await db.users.delete(req.params.id);
  res.json({ success: true });
});

// Должно быть:
app.delete('/api/users/:id', authMiddleware, async (req, res) => {
  if (req.user.role !== 'admin') return res.status(403).json({ error: 'Forbidden' });
  await db.users.delete(req.params.id);
  res.json({ success: true });
});

Path Traversal (CWE-22) AI обрабатывает пути без валидации:

# AI сгенерировал:
filepath = os.path.join(UPLOAD_DIR, filename)
# filename может быть "../../etc/passwd"

# Должно быть:
filepath = os.path.join(UPLOAD_DIR, os.path.basename(filename))

Чеклист проверки AI-кода: что проверять и когда?

Используйте этот список перед каждым релизом и на каждом PR с AI-кодом.

Критические проверки (делать всегда)

  • [ ] Пользовательский ввод — всё ли экранируется/валидируется перед использованием?
  • [ ] SQL-запросы — используются ли параметризованные запросы?
  • [ ] Секреты — нет ли API-ключей, паролей, токенов в коде?
  • [ ] Авторизация — каждый endpoint проверяет права?
  • [ ] Файловые операции — пути валидируются?
  • [ ] HTTPS — все внешние запросы через HTTPS?

Важные проверки (делать перед релизом)

  • [ ] Rate limiting — API защищён от brute-force?
  • [ ] CORS — настроен правильно (не *)?
  • [ ] Логирование — не пишутся ли секреты в логи?
  • [ ] Зависимости — нет ли deprecated или уязвимых пакетов?
  • [ ] Обработка ошибок — stack trace не утекает пользователю?
  • [ ] Session management — токены хранятся безопасно?

Проверки бизнес-логики (делать на каждый PR)

  • [ ] Соответствие ТЗ — код делает то, что просили?
  • [ ] Крайние случаи — пустой ввод, null, отрицательные числа?
  • [ ] Параллельные запросы — нет ли race conditions?
  • [ ] Откат — что происходит при ошибке на середине операции?

Инструменты: что ловит, что пропускает?

Автоматические (ловят 30-50% проблем)

Инструмент Что делает Цена
ESLint Security Plugin Базовые паттерны уязвимостей в JS/TS Бесплатно
Bandit SAST для Python Бесплатно
npm audit / pip audit Уязвимости в зависимостях Бесплатно
DeepSource AI SAST + автофикс $12/юзер/мес
SonarQube Комплексный статический анализ Бесплатно (self-hosted)

AI-ревью (ловят 50-70% проблем)

Инструмент Что делает Цена
CodeRabbit AI-комментарии на PR $12/юзер/мес
Copilot Review Встроенное AI-ревью $19/мес (с Copilot)

Человеческий ревью (ловит 85-95% проблем)

Инструмент Что делает Цена
Vibers Ревью по ТЗ + PR с исправлениями от 5 000 ₽/мес
PullRequest.com Экспертный ревью $50+/час
Наём сеньора Ревью в команде $50-150/час

Почему автоматических инструментов недостаточно?

Автоматические инструменты ищут известные паттерны. Они найдут innerHTML = userInput, потому что это в их базе правил. Подробнее о том, какой инструмент что находит, читайте в сравнении AI-инструментов код-ревью 2026.

Они не найдут: - Бизнес-логику, которая позволяет обнулить цену через скидку - API endpoint, доступный без авторизации, потому что AI скопировал его из внутреннего сервиса - Платёжный flow, который не проверяет 3D Secure - Race condition в процессе оплаты, позволяющий двойное списание

Эти проблемы требуют понимания контекста — чего нет ни у одного автоматического инструмента.

Как Vibers проверяет AI-код по вашему ТЗ

Если вы хотите понять, чем вайбкодинг отличается от традиционной разработки и какие риски он несёт — прочитайте отдельный гайд. Для стартапов, которым дорог бюджет, есть специальный материал про code review для стартапа без штатного senior.

Более детальный разбор конкретных ограничений инструментов — в статье CodeRabbit vs ручной код-ревью.

  1. Добавьте marsiandeployer как collaborator в ваш GitHub-репозиторий
  2. Пришлите ТЗ — Google Doc, Notion, PDF
  3. Мы проверяем каждый коммит — безопасность + соответствие ТЗ + галлюцинации AI
  4. Отправляем PR с исправлениями — не отчёт, а рабочий код
Категория Примеры
Безопасность OWASP Top 10, секреты в коде, авторизация
Галлюцинации Несуществующие API, deprecated методы, выдуманные пакеты
Соответствие ТЗ Фича делает то, что просили, ничего не пропущено
Бизнес-логика Крайние случаи, race conditions, обработка ошибок
Визуал/UI Сломанные лейауты, кривой мобайл, неправильные цвета

Стоимость code review — 30 000 ₽ за проект. Напишите в Telegram: @onoutnoxon — проверим ваш код на уязвимости.

О сервисе "Vibers — Код-ревью для вайбкодинг-проектов"

Сервис код-ревью с участием человека для команд, использующих дешёвых AI-разработчиков. Проверяем коммиты по вашему ТЗ, исправляем проблемы и отправляем pull request'ы.

Ключевые преимущества:

  • Оставьте дешёвых вайбкодеров ($1-5/час), но добавьте слой качества
  • Получайте PR с реальными исправлениями, а не просто баг-репорты
  • Отслеживание соответствия ТЗ — код соответствует вашим требованиям
  • Ревью безопасности ловит секреты, инъекции, проблемы OWASP
  • Вайбкодеры учатся на наших исправлениях — качество растёт со временем
  • В 10 раз дешевле, чем нанимать сеньора для код-ревью

Для кого подходит:

Основатели стартапов, использующие Upwork/Fiverr разработчиков Нетехнические CEO с вайбкодинг-проектами AI-first команды, использующие Cursor, Copilot, Claude Code Агентства, аутсорсящие дешёвым разработчикам Продакт-менеджеры, которые не читают код, но имеют ТЗ

Сценарии использования:

💡 Ревью AI-сгенерированных PR перед мержем
💡 Проверка, что вывод вайбкодера соответствует Google Doc ТЗ
💡 Аудит безопасности кода от разработчиков за $1-5/час
💡 Поиск галлюцинаций AI в вайбкодинг-фичах
💡 Контроль качества между дешёвой разработкой и продакшном

📰 Промо-статьи наших решений

Изучите детальные обзоры наших технологических решений для различных отраслей:

🚀 Работаю до результата

Работаю до результата и бизнес-ценности, быстро корректирую подходы в процессе. Использую современный стек для качественного и быстрого решения задач.