По мере того как ИИ-помощники ускоряют разработку программного обеспечения, один из проектов с открытым исходным кодом, поддерживаемый OWASP, утверждает, что инструменты обеспечения безопасности зависимостей по-прежнему появляются слишком поздно, чтобы быть по-настоящему полезными.
CVE Lite CLI, сканер уязвимостей зависимостей на JavaScript и TypeScript, ориентированный на локальный анализ lock-файлов, позиционирует себя вокруг простой идеи. Разработчики должны видеть риски зависимостей в тот момент, когда они пишут код, а не спустя часы в сбойном CI-конвейере.
«Разработчикам не хватает ранней обратной связи в момент принятия решения о зависимости», — сообщил CSO Сону Капур, создатель и мейнтейнер проекта. По словам Капура, традиционные рабочие процессы, центрированные вокруг CI, часто отрывают разработчиков от выбора зависимостей, который изначально и ввел риск.
CVE Lite CLI сканирует lock-файлы npm, pnpm и Yarn, используя данные об уязвимостях OSV, и заявляет о сильной ориентации на руководство по устранению уязвимостей, включая разделение прямых и транзитивных уязвимостей, проверку целей обновления и рекомендацию действенных путей исправления.
Проект позиционируется как инструмент разработчика с «локальным приоритетом» (local-first), а не как замена платформам анализа состава программного обеспечения (SCA) для предприятий (SCA), подобно тому, как разработчики уже используют локально ESLint или модульные тесты перед тем, как CI запустит их позже.
CVE Lite CLI нацелен на упущенную болевую точку
По словам Капура, CVE Lite CLI, по сути, пытается решить проблему рабочего процесса, с которой многие разработчики молча борются. Проверки безопасности зависимостей часто поступают после того, как работа уже сделана.
Инструмент сканирует lock-файлы JavaScript и TypeScript локально в проектах npm, pnpm и Yarn, чтобы разработчики могли понять риск зависимостей, пока они еще кодируют, а не позже в ответ на сбой CI-конвейера.
Вместо того чтобы просто фокусироваться на обнаружении, инструмент заявляет, что рассматривает последующие вопросы, например, является ли проблема прямой или транзитивной, существует ли чистый путь обновления или удаляет ли обновление одного пакета уязвимую зависимость.
«В одном реальном случае CVE Lite CLI пропустил 27 версий пакетов, прежде чем найти более безопасную версию для рекомендации», — сказал Капур, объясняя детализацию инструмента. «Такую работу разработчики не должны выполнять вручную, читая логи и пробуя обновления одно за другим».
Капур сообщил, что инструмент может быть настроен на вывод в форматах JSON, SARIF или HTML, а также может быть интегрирован в CI-конвейеры в качестве GitHub Action.
ИИ может усугублять ситуацию
Этот аргумент возникает на фоне того, что безопасность цепочки поставок программного обеспечения продолжает сталкиваться с практиками разработки с помощью ИИ, которые позволяют разработчикам генерировать код, интегрировать пакеты и реструктурировать проекты намного быстрее, чем раньше.
Капур считает, что эта скорость меняет саму природу риска зависимостей. «ИИ-помощники сделали это более важным, а не менее», — сказал он. «Эта скорость полезна, но она также означает, что решения о зависимостях могут приниматься быстро и иногда без такого же уровня ручной проверки. Я не думаю, что ИИ-помощники устраняют необходимость в проверках безопасности».
Напротив, они увеличивают потребность в быстрых, локальных, объяснимых проверках, которые можно запускать во время работы, добавил он.
В качестве примера приводилось сканирование lint-staged — широко используемого пакета инструментов JavaScript. По словам Капура, стандартный рабочий процесс «npm audit –omit=dev» не выявил проблемы с производственной зависимостью, которую позже обнаружил CVE Lite CLI посредством анализа lock-файла. «Честно говоря, я не думаю, что большинство разработчиков понимают эти слепые зоны в деталях, и я говорю это не как критику разработчиков», — сказал он. «Граф зависимостей в современном проекте JavaScript чрезвычайно зашумлен».
Разработчик, намеревающийся установить одну прямую зависимость, может в итоге получить сотни или тысячи транзитивных пакетов.
CVE Lite CLI не поддается влиянию ИИ
Проект также намеренно избегает превращения в более широкую платформу AppSec, несмотря на растущее давление индустрии по консолидации инструментов безопасности в экосистему с поддержкой ИИ.
«Я считаю, что инструменты безопасности стали слишком тяжеловесными для повседневного рабочего процесса разработчика», — сказал Капур. «Это не значит, что эти платформы плохи. Это значит, что они часто больше служат организациям по безопасности, чем отдельному разработчику, пытающемуся принять безопасное решение о зависимости во время обычной сессии кодирования».
Эта философия распространяется и на подход проекта к самому ИИ. Хотя CVE Lite CLI включает интеграции, которые помогают ИИ-помощникам интерпретировать результаты сканирования, Капур заявил, что базовый анализ уязвимостей намеренно остается детерминированным.
«Я не думаю, что ИИ должен решать, существует ли CVE», — сказал он. «Эта часть должна быть скучной, повторяемой и поддающейся аудиту».
Вместо этого проект использует ИИ как то, что основатель описал как «уровень объяснения и рабочего процесса» вокруг результатов сканирования, а не как сам сканер. «CVE Lite CLI включает навыки ИИ-помощника, которые учат такие инструменты, как Claude Code, Codex CLI, Gemini CLI, Cursor и GitHub Copilot, как запускать CVE Lite CLI, читать его структурированный вывод и помогать разработчику понять или приоритизировать план устранения», — пояснил Капур.
Осторожность в отношении расширения
Капур сообщил, что получает положительные отзывы от компаний и разработчиков, использующих CVE Lite CLI в реальных рабочих процессах, которые спрашивают его, может ли тот же подход поддерживать экосистемы .NET или Python.
«Этот интерес обнадеживает, потому что он говорит мне о том, что модель с локальным приоритетом и ориентацией на устранение находит отклик за пределами первоначального сценария использования JavaScript и TypeScript», — сказал он. «Но я осторожен в отношении слишком широкого расширения текущего инструмента».
Объяснение было простым. Каждая экосистема, по его мнению, имеет свое собственное поведение менеджера пакетов, формат lock-файла, семантику графа зависимостей, источники консультаций и шаблоны устранения. «Добавление этого непосредственно в CVE Lite CLI может сделать инструмент более тяжеловесным и менее понятным для разработчиков JavaScript и TypeScript, которым он изначально предназначался», — сказал он. Проект теперь принят в экосистему фонда OWASP как официальный проект OWASP и доступен бесплатно для разработчиков на GitHub.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Shweta Sharma




