AI-детекція вразливостей у коді (AI SAST)

Традиційний SAST на основі правил і AST-патернів добре ловить SQL injection (CWE-89) та XSS (CWE-79) за класичними шаблонами, але пропускає логічні вразливості, race conditions (CWE-362) та складні taint propagation шляхи через кілька функцій. Ми розробляємо AI-SAST-системи, які аналізують код на рі

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1439
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

Традиційний 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 кроків

  1. Аудит поточної кодової бази
  2. Вибір та кастомізація моделі
  3. Інтеграція в CI/CD
  4. Пілотний запуск
  5. Запуск у 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, яка дозволяє виявляти навіть складні вразливості.