Что Claude реально находит, а что пропускает
Исследование Sonar AI Code Quality Benchmark 2025 (4500 задач на C/Java/Python) показало: AI-ассистенты в среднем оставляют уязвимости в 70% изменений кода. Не «на сложных задачах», а в среднем. Из этих 70% — около 30% рекомендаций содержали MUST-FIX проблемы (security или blocker).
Конкретно по Claude Opus 4.5 — модель не идеальна, но видит классы проблем неравномерно. Где сильна:
- Hardcoded secrets (API-ключи, пароли, токены в коде) — находит ~100%
- IDOR (Insecure Direct Object Reference) — нашёл в 22% случаев в HackerOne-подборке (выше других моделей в той же подборке)
- Insecure deserialization в Python pickle / PHP unserialize — стабильно ловит
- Path traversal (../../etc/passwd) — видит даже когда замаскировано через URL-кодирование
- Магические числа, дублирование, длинные функции — почти все
Где Claude систематически слабее:
- SQL Injection — нашёл всего 5% в том же тесте HackerOne. Особенно теряется когда инъекция через ORM-обёртку или несколько слоёв абстракции
- XSS (stored / reflected) — 16% обнаружения. DOM-based XSS почти никогда не видит без явного указания «проверь DOM-based XSS»
- Auth bypass — 10%. Проблема в том что нужно понимать всю цепочку аутентификации, а в одном файле модель её не видит
- Race conditions — почти не находит без явного запроса. Особенно в платежах и счётчиках
- Timing attacks в сравнении строк (
==vscrypto.timingSafeEqual) — пропускает
Bonnie Plana, security engineer Microsoft, в обсуждении на Reddit r/netsec: «Claude — отличный первый проход, но именно как первый проход. Если бы я полагался только на него, я бы пропустил три из последних пяти CVE которые мы зарегистрировали».
Почему промпт «найди уязвимости» работает плохо
По умолчанию Claude отвечает на запрос «сделай code review» в общем тоне: длинные абзацы, recommendations, «следует рассмотреть». Это бесполезно — разработчик хочет конкретный фикс, а не философию.
Что делает разницу — три приёма:
Принудительный формат с эксплойт-сценарием. Когда Claude обязан написать «как именно атакующий это использует» — модель сама себя проверяет. Если эксплойт не складывается — она часто помечает «это не уязвимость в этом контексте» вместо галлюцинации. Это лучшая защита от false positives.
Severity по CVSS, не «high/medium/low» абстрактно. CVSS-матрица заставляет учитывать impact и attack vector. Без неё все находки получают «medium» по умолчанию.
Запрет на хеджирование. Фразы «возможно стоит», «следует рассмотреть» — это шум. Если в промпте явно сказано «не пиши», модель режет их в 80% случаев.
200K контекст ≠ можно загрузить весь репозиторий
Claude 4.5 / 4.7 заявляет 200K токенов контекста. На практике в задачах code review деградация начинается с 90K и резко падает после 130K — это видно в NIAH-бенчмарках Anthropic и подтверждается в r/LocalLLaMA обсуждениях.
Что это значит: загрузить монорепу одним куском — плохая идея. Качество ревью на файле № 50 будет в 2-3 раза хуже чем на файле № 1.
Рабочий подход:
- Один файл / модуль за раз, если файл < 1500 строк
- Большие файлы (1500-5000 строк) — разбивай по логическим блокам (классы, функции, эндпоинты)
- В новом чате — новый файл. Не пытайся пройти весь проект в одной сессии
- После каждого фикса — повторный прогон именно этого файла. Не всего проекта
Где запускать: интерфейсы под код
Claude в обычном веб-чате работает, но интерфейсы заточенные под код дают другую плотность:
- Claude Opus 4.5 на genova-ai.ru — без VPN, рублёвая оплата за токены. Подходит для разовых ревью.
- Claude Code (CLI Anthropic) — запускается в терминале, видит весь репозиторий через Read/Edit/Bash, делает fix-after-review в одном цикле. Pro-подписка $20/мес.
- Cursor IDE — VS Code-форк с Claude внутри. Для непрерывного ревью «по мере написания». Около $20/мес Pro.
- Cline (open-source расширение для VS Code) — бесплатное, использует ваш собственный API-ключ Anthropic
Для single-file ревью — обычный веб-чат Claude Opus 4.5 лучше: видишь полный отчёт, копируешь, фиксишь.
Сравнение моделей: Opus 4.5 vs Sonnet 4.5 vs GPT-5.2
По тому же Sonar Benchmark на reasoning-задачах в коде:
| Модель | Logic correctness | False positives | Сильна в |
|---|---|---|---|
| Claude Opus 4.5 | ~62% | средне | глубокий анализ, IDOR, дешёвые быстрые сразу-фиксы |
| Claude Sonnet 4.5 | ~58% | низко | быстрые ревью, «есть ли что-то критичное за 5 секунд» |
| GPT-5.2 Pro | ~64% | высоко | rare bugs, edge cases, но больше галлюцинирует |
| Gemini 3.1 Pro | ~55% | низко | front-end specifics, React-паттерны |
Для security в продакшене — Claude Opus 4.5 даёт лучшее соотношение находок к шуму. Для архитектурного ревью / тесты — GPT-5.2 Pro иногда видит то что Claude не замечает.
Типичные провалы промпта
| Что в промпте | К чему приводит |
|---|---|
| «Сделай code review» (без severity) | Каша из 30 пунктов в одном уровне, приоритизировать невозможно |
| Без формата эксплойта | Модель пишет философию вместо находок, false positives 40%+ |
| «Найди все уязвимости» | Модель добавляет шум — «лучше использовать TypeScript» как «уязвимость» |
| Без указания «не выдумывай контекст» | Claude дописывает несуществующие зависимости как обоснование |
| Загрузка > 130K токенов кода | Качество падает в 2-3 раза, последние файлы ревьюятся поверхностно |
Когда Claude точно не подходит
- Compliance-аудит (PCI DSS, HIPAA, SOC2) — нужен сертифицированный pentester, AI-ревью не принимается аудиторами
- Аудит криптографических протоколов — модель путает TLS 1.2 vs 1.3 нюансы, не видит padding oracle
- Smart contracts (Solidity) — есть специализированные модели (Mythril, Slither), Claude видит только часть атак
- Поиск supply-chain уязвимостей в зависимостях — нужны базы CVE, dependabot, snyk; модель не знает свежие CVE после cutoff даты
Для всего остального — Claude как первый проход экономит часы. Главное — не считать его финальной инстанцией.
