Что 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 как первый проход экономит часы. Главное - не считать его финальной инстанцией.
