МТС True TechИтоговый проект · задача № 2Версия 1.0

SecureCode AI

Локальный AI-ассистент разработчика для аудита безопасности кода: находит уязвимости, предлагает исправления и проверяет их, не отправляя код в облако.

РепозиторийИтоговый отчётЭкспериментыNotebookРелизы

Задача

Статические анализаторы работают по жёстким правилам и дают много ложных срабатываний, а отправлять приватный код во внешние облачные сервисы нельзя. SecureCode AI анализирует локальный репозиторий на Python, JavaScript, TypeScript и Go с помощью квантованной языковой модели, находит уязвимости и предлагает проверенные исправления.

Инструменты

Синтаксические деревья (ast, tree-sitter), поиск захардкоженных секретов, уязвимые версии библиотек по базе OSV, детерминированные правила для 35 типов CWE.

Поиск

Языковая модель сама ищет уязвимости по всему коду, независимо от сканеров; может сообщить о любой из 139 CWE.

Аудитор

Проверяет каждого кандидата: доходят ли недоверенные данные до уязвимой операции и есть ли реальный ущерб.

Скептик

Второй агент пытается опровергнуть находку; принимаются только те, что выдержали проверку.

Архитектор

Модель предлагает исправление в виде diff. Патч проверяется во временной копии; исходный репозиторий не меняется.

Отчёт

Markdown и HTML: CWE, категория OWASP Top 10, строка и готовое исправление.

Результат аудита

Демонстрационный файл с SQL-инъекцией. Одинаковый результат на локальной Qwen 2.5 Coder 7B (Q4_K_M, Ollama) и на DeepSeek.

CWEOWASP Top 10УровеньМестоИтог
CWE-89A03:2021 InjectionHIGHapp.py:5COMPLETED
-    return conn.execute("SELECT * FROM users WHERE name = '" + name + "'")
+    return conn.execute("SELECT * FROM users WHERE name = ?", (name,))

Патч прошёл разбор и повторное сканирование (0 сигналов). Прогон на DeepSeek стоил $0.00014.

Отчёт: QwenОтчёт: DeepSeek
Корпус CVEfixes
600
примеров, по 200 на Python, JS/TS и Go
Recall hybrid
35.8%
против 34.3% у Semgrep
Автотестов
3292
линтеры, типы и тесты в CI

Эксперименты

КонфигурацияPrecisionRecallF1
Сканеры SecureCode49.0%25.7%33.7%
DeepSeek, one-shot52.0%22.7%31.6%
Hybrid: сканеры и DeepSeek49.9%35.8%41.7%
Semgrep 1.177.050.0%34.3%40.7%

На отложенной выборке полнота hybrid 32,8% против 32,5% у Semgrep; интервал разницы включает ноль, то есть hybrid на уровне статического анализатора, но не лучше. Precision около 50% объясняется устройством корпуса: одна и та же функция встречается в уязвимой и исправленной версиях.

Подробнее об экспериментах

Демонстрация

English version

Запуск

git clone https://github.com/shorinversion/securecode-ai
cd securecode-ai
python deploy/docker/quickstart.py --demo                   # нужен только Docker
python deploy/docker/quickstart.py --demo --provider local  # uv и Ollama, модель скачается