Skip to content

Repository files navigation

Вводная

Этот репозиторий существует для хранения дополнительных материалов с доклада на тему "Сможет ли вайб-кодинг пройти SSDLC?"

К нему прилагается 5 кодовых баз одного и того же веб-приложения, написанных разными LLM-моделями:

У каждого репозитория есть 2 ветки: main отображает состояние приложения после первичной разработки, fixed предлагает к ознакомлению версию приложения после работы над найденными проблемами безопасности

Кроме того, для каждого репозитория собраны SBOM-файлы для frontend (JavaScript/TypeScript) и backend (Python) компонентов приложения. Возможно, Grok собирал их некорректно, потому что разница в перечнях компонентов до/после очень странная, в остальном я следил за тем, чтобы сканеры собирали зависимости специальными инструментами под языки (см. Dockerfile'ы в репозиториях проектов) и не лезли менять содержимое SBOM файлов самовольно

Отчёты

В этом репозитории можно ознакомиться с "сырыми" отчётами от сканеров по результатам сканирования, а также с summary этих отчётов по мнению LLM-моделей, которые сами же и писали приложение - также в двух итерациях, до и после фиксов безопасности

В отчётах о сканерах упоминаются High/Medium уязвимости, которых нет в "сырых отчётах". Это сработки от неназванного на презентации Enterprise SAST сканера. По большей части, реального импакта эти сработки не дали (по крайней мере, в финальных отчётах, где все уязвимости были False Positive, либо смитигированы)

Затраты в токенах и в деньгах

Большинство моделей было использовано в рамках подписки Cursor Pro, поэтому есть возможность просто предоставить выгрузку с небольшими итогами и минимальными комментариями в виде файла Cursor stats volgactf.xls в репозитории проекта.

Для DeepSeek был использован персональный API-токен. Данные по использованию токена в дни, когда он модель применялась при подготовке к докладу, отображены скриншотами в папке Deepseek_API_cost_screens

Результаты

После первого сканирования

LLM Model Critical High Medium Low Total
Claude 2 11 13 2 28
DeepSeek 2 10 16 2 30
Google 0 6 7 0 13
GPT 1 5 12 0 18
Grok 2 17 21 3 43

После фиксов

LLM Model Critical High Medium Low Total
Claude 0 4 0 2 6
DeepSeek 0 6 13 0 19
Google 0 1 7 0 8
GPT 1 3 4 2 10
Grok 2 8 18 0 28

После триажа по мнению нейросетей:

LLM Model Critical High Medium Low Total Комментарий
Claude 0 0 0 4 4 Claude сказал про 4 low, но реально
обозначил только root в контейнере (причем как low)
Остальные high указал как смитигированные (и в чём неправ?)
Секреты - FP (так и есть)
DeepSeek 0 0 1 0 1 Убрав то, что DeepSeek посчитал как FP,
получаем оставшийся не read-only на базу данных
Забил на компоненты?
Google 0 0 0 0 0 Alembic RCE и bind на 0.0.0.0 посчитал как фолсы
забыл про jinja2@3.1.3?
GPT 0 1 0 0 1 GPT считает не read-only БД фолсой
High - это root в контейнере
Забил на крит в компонентах?
Grok 2 3 16 0 21 🥴🥴🥴

Как бы расставил я:

LLM Model Critical High Medium Low Total Комментарий
Claude 0 1 0 0 1 root в контейнере не отпускаем!
DeepSeek 0 2 1 2 5 Добавил SCA
Посчитал вывод логов на фронте за Low
Посчитал read-only на БД как Low
Google 0 0 1 0 1 Хочется запросить фикс Jinja
GPT 1 1 1 2 5 Добавил SCA
Посчитал read-only на БД как Low

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages