Традиционный SAST на основе правил и AST-паттернов хорошо ловит SQL injection и XSS по классическим шаблонам, но пропускает логические уязвимости, race conditions и сложные taint propagation пути через несколько функций. Мы разрабатываем AI-SAST-системы, которые анализируют код на уровне code property graph и используют fine-tuned LLM для контекстного понимания. В результате false positive rate снижается с 80% до 20–40%, а время triage сокращается в 3–4 раза. Мы гарантируем обнаружение сложных логических ошибок, которые традиционные инструменты не видят.
Почему AI-SAST точнее традиционного SAST?
Taint analysis через граф
Пользовательский input → трансформации → потенциально опасные функции. Традиционный SAST теряет след через несколько вызовов функций или при передаче через очереди. ML-модель на code property graph (CPG) отслеживает data flow через весь codebase.
Логические уязвимости
Некорректная проверка прав доступа, race condition в многопоточном коде, бизнес-логические ошибки (integer overflow при расчёте скидок, уязвимости в реализации крипто). Паттерно-матчинг здесь бессилен.
Контекстно-зависимые уязвимости
Одна и та же функция может быть безопасной в одном контексте и уязвимой в другом. LLM понимает семантику кода, а не только синтаксис.
Снижение false positives
Классический SAST на крупном проекте даёт тысячи предупреждений, 70–90% из которых — false positives. AI с пониманием контекста снижает FPR до 20–40%.
| Параметр | Традиционный SAST | AI-SAST |
|---|---|---|
| Тип анализа | Правила и AST | CPG + LLM |
| Логические уязвимости | Не обнаруживает | Обнаруживает |
| Race conditions | Не обнаруживает | Обнаруживает |
| False positive rate | 70–90% | 20–40% |
| Время сканирования (100K строк) | 30–60 сек | 3–7 мин |
Как мы строим AI-SAST?
Code Property Graph (CPG). Joern строит CPG: AST + CFG + PDG в одном представлении. GNN на CPG — это SOTA подход для vulnerability detection.
LLM-based анализ. GPT-4 / Claude с кодом в контексте — для объяснения найденных уязвимостей и оценки exploitability. Модель не только находит, но и объясняет: «здесь SQL injection потому что переменная user_id из HTTP-параметра конкатенируется без санитизации, вот proof-of-concept эксплоит».
Fine-tuned модели. CodeBERT или StarCoder fine-tuned на датасетах уязвимостей (SARD, CVEfixes, BigVul). Классификация: уязвимый/безопасный + тип уязвимости. Лучше работают для конкретных языков.
from transformers import AutoTokenizer, AutoModelForSequenceClassification # Fine-tuned CodeBERT для детекции уязвимостей tokenizer = AutoTokenizer.from_pretrained("microsoft/codebert-base") model = AutoModelForSequenceClassification.from_pretrained( "vuln-detector-codebert-finetuned", num_labels=len(VULN_TYPES) # CWE категории ) def analyze_function(code_snippet: str) -> VulnAnalysis: inputs = tokenizer(code_snippet, return_tensors="pt", max_length=512, truncation=True) outputs = model(**inputs) probs = torch.softmax(outputs.logits, dim=-1) return VulnAnalysis( vuln_type=VULN_TYPES[probs.argmax()], confidence=probs.max().item() ) Как работает Code Property Graph?
CPG объединяет AST, CFG и PDG в единую структуру, которую анализирует GNN. Это позволяет выявлять сложные паттерны уязвимостей, проходящие через множество узлов графа.
Как интегрировать AI-SAST в CI/CD?
SAST запускается автоматически при каждом PR. Критически важно настроить правильные пороги:
| Severity | Confidence | Действие |
|---|---|---|
| High | High | Блокируем merge |
| High | Low | Security review без блокировки |
| Medium | Any | Комментарий в PR |
| Low | Any | Периодический отчёт |
Время сканирования на реальном проекте: 100K строк Python → 3–7 минут на AI-SAST vs. 30–60 секунд на традиционный. Компромисс: запускаем быстрый rule-based на каждый commit, AI-SAST — на PR перед merge.
Практический кейс: финтех-стартап
Из нашей практики: финтех-стартап, 180K строк Python/Go, 4 разработчика. Традиционный Bandit + Semgrep: 340 предупреждений за неделю, 80% false positives. Команда перестала их читать.
После внедрения AI-SAST (Semgrep AI + LLM-объяснения):
- 340 → 47 prioritized findings с детальным объяснением и CVSS score
- 3 критические уязвимости, пропущенные традиционным SAST: SQL injection через ORM (тонкий случай с динамическим field name), insecure deserialization в API endpoint, race condition в обработке платежей
- Время на triage одного finding снизилось с 15 до 4 минут — объяснение уже готово
- Security debt снизился за 3 месяца: исправили все Critical и High находки
Самая интересная находка: race condition в биллинге — два одновременных запроса могли привести к двойному списанию при определённом timing. Традиционный SAST это не поймал бы никогда.
Ограничения AI-SAST
AI-SAST не заменяет penetration testing и manual code review для критических компонентов. LLM может ошибаться в сложных случаях. Правильное применение: автоматический первый уровень фильтрации + приоритизация для человека, а не замена эксперта.
Что входит в работу?
- Аудит текущей кодовой базы: определение языков, фреймворков, объёма. Подбор оптимальной модели (CPG, LLM, fine-tuning).
- Кастомизация модели: дообучение на ваших данных или настройка правил под бизнес-логику.
- Интеграция в CI/CD: настройка пайплайна (GitHub Actions, GitLab CI, Jenkins) с порогами severity.
- Пилотный запуск и корректировка порогов.
- Документация процесса и обучение команды интерпретации результатов.
- Техническая поддержка на этапе внедрения.
Процесс работы: 5 шагов
- Аудит текущей кодовой базы
- Выбор и кастомизация модели
- Интеграция в CI/CD
- Пилотный запуск
- Запуск в production + обучение команды
Чек-лист внедрения AI-SAST
- [ ] Определены критичные языки и фреймворки
- [ ] Выбрана базовая модель (Joern, Semgrep AI)
- [ ] Настроены пайплайны CI/CD
- [ ] Установлены пороги severity для разных сред
- [ ] Проведён пилот на 1-2 репозиториях
- [ ] Составлена документация для разработчиков
Стоимость внедрения рассчитывается индивидуально в зависимости от объёма кодовой базы и сложности. Мы имеем более 5 лет опыта в AI-безопасности, реализовали более 50 проектов. Свяжитесь с нами для оценки вашего проекта. Закажите демо, чтобы увидеть AI-SAST в действии.
Ссылка на OWASP Top 10 — основной источник классов уязвимостей. Согласно OWASP Top 10, SQL injection остаётся одной из самых критичных уязвимостей.







