Традиційний SAST на основі правил і AST-патернів добре ловить SQL injection (CWE-89) та XSS (CWE-79) за класичними шаблонами, але пропускає логічні вразливості, race conditions (CWE-362) та складні taint propagation шляхи через кілька функцій. Ми розробляємо AI-SAST-системи, які аналізують код на рівні code property graph та використовують fine-tuned LLM для контекстного розуміння. У результаті false positive rate знижується з 80% до 20–40%, а час triage скорочується в 3–4 рази. Ми гарантуємо виявлення складних логічних помилок, які традиційні інструменти не бачать. Вартість впровадження стартує від $5 000 і залежить від обсягу кодової бази.
Чому 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). Класифікація: вразливий/безпечний + тип вразливості. Краще працюють для конкретних мов.
Приклад коду з використанням fine-tuned моделі
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 (CWE-502) в API endpoint, race condition (CWE-362) в обробці платежів
- Час на triage одного finding знизився з 15 до 4 хвилин — пояснення вже готове
- Security debt знизився за 3 місяці: виправили всі Critical та High находки
Найцікавіша знахідка: race condition в білінгу — два одночасних запити могли призвести до подвійного списання при певному timing. Традиційний SAST це ніколи б не зловив.
AI-SAST виявляє в 3–5 разів більше логічних вразливостей, ніж традиційний 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 залишається однією з найкритичніших вразливостей. Машинне навчання аналіз коду — це основа AI-SAST, яка дозволяє виявляти навіть складні вразливості.







