Расширение CodeScoring.SCA для Visual Studio Code¶
Расширение предоставляет возможности анализа состава программного обеспечения (SCA) для VS Code, подсвечивая уязвимые зависимости в файлах Вашего проекта и предоставляя подробную информацию об уязвимостях через интеграцию с Johnny CLI.
Расширение CodeScoring.SCA поддерживает версии Visual Studio Code 1.95.0 и выше.
Поддерживаемые экосистемы¶
Языки и менеджеры пакетов¶
| Экосистема | Файлы манифестов | Сгенерированные файлы версий |
|---|---|---|
| JavaScript/Node | package.json | package-lock.json, npm-shrinkwrap.json, yarn.lock, pnpm-lock.yaml, npm-lock.yaml |
| Python | setup.py, pyproject.toml, Pipfile, require.txt, require.pip | Pipfile.lock, poetry.lock |
| Java | pom.xml, ivy.xml, .gradle, .gradle.kts | gradle.lockfile, maven-dependency-tree.txt, gradle-dependency-tree.txt |
| Ruby | Gemfile, gems.rb, *.gemspec | Gemfile.lock, gems.locked |
| Go | go.mod | go.sum |
| Rust | Cargo.toml | Cargo.lock |
| PHP | composer.json | composer.lock |
| C#/.NET | .csproj, packages.config, Project.json, paket.dependencies, .nuspec | packages.lock.json, Project.lock.json, paket.lock, project.assets.json, dependencyReport.json |
| Swift | Package.swift | Package.resolved |
| Objective-C | Podfile, *.podspec | Podfile.lock |
| Conda | environment.yml, environment.yaml, meta.yml, meta.yaml | conda-lock.yml |
| Conan (C/C++) | conanfile.txt, conanfile.py | conan.lock |
Обнаружение файлов по умолчанию¶
- Автоматическое: Сканирует все поддерживаемые файлы
- Рекурсивное: Ищет в подкаталогах
Точная настройка сканирования производится с помощью модификации config.yaml файла
Начало работы¶
Предварительные требования¶
Перед началом убедитесь, что у Вас есть:
- Visual Studio Code, установленный в Вашей системе
- Доступ к установке CodeScoring с активными учетными данными
- Дистрибутив codescoring-sca расширения для vscode (.vsix)
Требуемые разрешения¶
- Файловая система: Чтение файлов проекта, запись файлов .codescoring, загрузка исполняемого файла, выполнение загруженного CLI
- Сеть: Связь с CodeScoring API
- API VS Code: Интеграция с редактором
Шаг 1: Загрузите расширение¶
Расширение поставляется в виде платформенно-независимого файла codescoring-sca-<version>.vsix.
Шаг 2: Установите расширение из файла VSIX¶
- Откройте Visual Studio Code
- Перейдите в Файл → Настройки → Расширения (или нажмите
Ctrl+Shift+XилиCmd+Shift+Xна MacOS) - Нажмите на меню с тремя точками (...) в правом верхнем углу панели расширений
- Выберите "Установить из VSIX..." из выпадающего меню

- Перейдите к месту, куда вы сохранили файл
.vsix - Выберите файл и нажмите "Установить"
- Дождитесь завершения установки
Шаг 3: Найдите расширение CodeScoring¶
После установки вы должны увидеть логотип CodeScoring в панели действий VS Code (боковая панель слева).
![]()
- Нажмите на иконку CodeScoring в панели действий
- Откроется боковая панель "CODESCORING: CODESCORING SCA"

Шаг 4: Настройте расширение¶
- В боковой панели CodeScoring SCA нажмите кнопку "Configure Extension"
- Откроется страница настроек CodeScoring SCA

4.1 Проверьте URL API¶
- В настройках найдите поле API URL
- Вам необходимо использовать URL CodeScoring, установленного в Вашей организации. При необходимости, обратитесь к администратору.

4.2 Сгенерируйте и установите токен API¶
- Откройте веб-браузер и перейдите по адресу:
<API URL>/cabinet/profile - Войдите в свою учетную запись CodeScoring
- Убедитесь, что вы находитесь на странице своего профиля
- Найдите поле "API token"
- Нажмите кнопку "Generate" рядом с полем токена API

- Скопируйте значение сгенерированного токена API
- Вернитесь к настройкам VS Code
- Нажмите на ссылку "Set API Token" в настройках плагина
- Вставьте скопированный токен при появлении запроса

- Плагин должен отобразить подтверждение, что токен действителен

4.3 Загрузите Johnny CLI¶
- Перейдите на страницу релизов:
<API URL>/download/(обратите внимание на завершающую косую черту) - Загрузите последний релиз исполняемого файла в зависимости от Вашей операционной системы

4.4 Настройте Johnny CLI¶
Существует три способа получить Johnny CLI для анализа Ваших зависимостей с помощью нашего сервиса.
4.4.1 Локальная установка
Предварительные требования:
- Файл запуска Johnny CLI должен быть загружен и сделан исполняемым в системе
- Операционная система должна разрешать запуск исполняемого файла (для проверки запустите один раз файл в консоли с параметром --help вручную)
Шаги настройки:
-
Установите тип установки на Local
-
В настройках VS Code измените
platformTypeнаlocal - Или в settings.json:
- В настройках найдите поле
Codescoring Sca: Johnny Cli Path, помеченное [LOCAL platform ONLY] - Нажмите на ссылку действия "Browse..."
- Перейдите к месту, где вы ранее загрузили Johnny CLI
- Выберите исполняемый файл Johnny CLI
Примечание: Если плагин спросит об изменении прав доступа к файлу (chmod +x), нажмите "Yes", чтобы разрешить плагину сделать файл исполняемым.

4.4.2 Автоматическая загрузка клиента
Предварительные требования:
- Должен быть настроен API URL
- Должен быть настроен токен API и валидация должна пройти успешно
Шаги настройки:
-
Установите тип установки на Local
-
В настройках VS Code измените
installationTypeнаlocal -
Или в settings.json:
-
В настройках найдите поле
Codescoring Sca: Johnny Cli Path, помеченное [LOCAL INSTALLATION ONLY] - Очистите, если необходимо, значение в этом поле (пустое значение - это значение по умолчанию)
- Теперь при первом запросе сканирования Johnny CLI будет загружен с API URL. Это позволит Вам автоматически получить
обновление клиента, как только оно будет доступно. Загруженный клиент будет сохранен в следующем месте:
- Linux:
~/.config/Code/User/globalStorage/CodeScoring.codescoring-sca/johnny - Windows:
%APPDATA%\Code\User\globalStorage\CodeScoring.codescoring-sca\johnny.exe - MacOS:
~/Library/Application Support/Code/User/globalStorage/CodeScoring.codescoring-sca/johnny
- Linux:
4.4.3 Использование Docker
Установка Docker позволяет запускать Johnny CLI в изолированном контейнере, что полезно, когда вы не хотите устанавливать его непосредственно в Вашей системе.
Предварительные требования:
- Docker должен быть установлен и запущен в Вашей системе
- Ваш пользователь должен иметь права на выполнение команд Docker
Шаги настройки:
-
Установите тип установки на Docker
-
В настройках VS Code измените
installationTypeнаdocker - Или в settings.json:
-
Настройте Docker образ
-
Образ:
johnny-depp:2025.29.0(по умолчанию) - Реестр:
<адрес-реестра-кодскоринг> -
Пример полного пути к образу:
sample-codescoring-registry.com/johnny-depp:2025.29.0 -
Опционально: Дополнительные опции Docker Добавьте пользовательские опции запуска Docker при необходимости:
Как это работает:
- Клиент автоматически монтирует каталог Вашего проекта в контейнер
- Сканирование выполняется внутри контейнера, а результаты сохраняются в Вашем проекте
- Ручные команды Docker не требуются - расширение обрабатывает все автоматически
Пример конфигурации Docker:
{
"codescoringSca.installationType": "docker",
"codescoringSca.dockerImage": "johnny-depp:2025.29.0",
"codescoringSca.dockerRegistry": "sample-codescoring-registry.com",
"codescoringSca.dockerOptions": ""
}
Устранение неполадок с установкой Docker:
- "Docker not found": Убедитесь, что Docker установлен и команда
dockerнаходится в Вашем PATH - Permission denied: Добавьте Вашего пользователя в группу docker:
sudo usermod -aG docker $USER - Image pull failed: Проверьте учетные данные реестра и сетевое подключение
- Container exits immediately: Проверьте панель вывода VS Code для получения подробных сообщений об ошибках
Шаг 5: Запустите первое сканирование¶
Теперь, когда расширение настроено, вы можете запустить первое сканирование уязвимых зависимостей:
Метод 1: Использование боковой панели¶
- Откройте папку проекта в VS Code
- Нажмите на иконку CodeScoring в панели действий
- В боковой панели "CODESCORING: CODESCORING SCA" нажмите кнопку "Run Scan"

Метод 2: Использование палитры команд¶
- Нажмите
Ctrl+Shift+P(илиCmd+Shift+Pна MacOS), чтобы открыть палитру команд - Введите "Run Johnny CLI Scan"
- Выберите "CodeScoring SCA: Run Johnny CLI Scan" из списка

Метод 3: Использование строки состояния¶
- Посмотрите на нижнюю строку состояния VS Code
- Найдите индикатор "CodeScoring CLI"
- Нажмите на него, чтобы открыть меню Johnny CLI
- Выберите "Run Johnny CLI Scan" из списка

Шаг 6: Тонкая настройка конфигурации сканирования¶
После завершения сканирования вы увидите новый каталог .codescoring, содержащий:
config.yaml- файл конфигурации для Johnny CLI, вы можете прочитать о нем в этом разделе. Вы можете менять этот файл, так как он никогда не будет перезаписан.report.html- отчет, сгенерированный в формате html, содержащий вывод Johnny CLI в формате цветной таблицы. Перезаписывается во время каждого сканирования.bom.json- файл результатов сканирования, созданный Johnny CLI в формате cyclone-dx 1.6, он будет загружен автоматически и показан в панели уязвимостей для любой открытой в VSCode директории, в которой существует .codescoring/bom.jsonbom.json.N- где N - это ревизия сканирования, т.е. 0 - предыдущее сканирование, а 5 (например) - самое первое сканирование, и bom.json.0 будет использоваться для сравнения с bom.json (и показан в дереве DIFF), если он существует на момент открытия новой папки
your-project/
├── .codescoring/
│ ├── config.yaml # Конфигурация сканирования
│ ├── report.html # Последний отчет сканирования
│ ├── bom.json # Текущие уязвимости
│ ├── bom.json.0 # Предыдущее сканирование (сравнение)
│ └── bom.json.1 # Более старые сканирования...
├── package.json # Ваши зависимости
└── ... Ваш код ...
Пример использования конфигурации сканирования CodeScoring¶
Отредактируйте .codescoring/config.yaml для настройки:
scan:
general:
ignore: # Директории для пропуска
- node_modules
- .git
- test
with-hashes: true # Включить хеши файлов для точного сопоставления
only-hashes: false # Использовать только обнаружение на основе хешей
dir:
no-recursion: false # Предотвращает рекурсивное сканирование корневой директории
Шаг 7: Просмотр результатов сканирования¶
После завершения сканирования:
- Проверьте уведомления: Посмотрите на уведомления в правом нижнем углу VS Code, нажав на "View Report"

- Откройте дерево уязвимостей (открывается само по умолчанию): Используйте кнопку "Open Vulnerabilities View" из боковой панели
- Просмотрите уязвимости: Панель уязвимостей покажет все обнаруженные проблемы безопасности в Ваших зависимостях
- Изучите детали: Вы можете нажимать на отдельные уязвимости, чтобы увидеть подробную информацию
- Примените исправления: Используйте опции быстрого исправления для обновления уязвимых зависимостей

7.1 Подсветка уязвимостей¶
- Подсветка в коде: Уязвимые зависимости подсвечиваются по мере ввода
- Цвета критичности:
- 🔴 Критический (красный)
- 🟠 Высокий (оранжевый)
- 🟡 Средний (желтый)
- 🔵 Низкий (синий)
- Поддержка нескольких файлов: Работает со всеми поддерживаемыми типами файлов
- Наведите курсор на подсвеченные зависимости, чтобы увидеть детали уязвимостей
7.2 Информация при наведении¶
При наведении курсора на подсвеченные зависимости отображается:
- Идентификатор уязвимости: Номер CVE со ссылкой
- Критичность: Оценка CVSSv3 и уровень
- Описание: Что затрагивает уязвимость
- Ссылки на источники: Информация об официальной регистрации уязвимости, патчах, эксплойтах и прочем
- Быстрое исправление: Опция обновления в один клик

7.3 Панель уязвимостей¶
7.3.1 Структура древовидного представления
📊 Уязвимости (247)
├── 🔴 Критические (12)
│ ├── CVE-2023-1234 - Удаленное выполнение кода
│ │ ├── lodash@4.17.20 → 4.17.21
│ │ └── package.json:15
│ └── ...
├── 🟠 Высокие (45)
├── 🟡 Средние (89)
└── 🔵 Низкие (101)
7.3.2 Опции группировки
- Используйте панель уязвимостей для фильтрации по критичности, пакету или другим критериям
- Группируйте уязвимости по различным категориям для лучшей организации
Изменение группировки через кнопку панели инструментов или команду:
- По критичности -> Расположению (по умолчанию): По уровню критичности, подгруппировка по пакету
- По критичности -> Пакету (PURL): По уровню критичности, подгруппировка по имени пакета в алфавитном порядке
- По расположению: Группировка по пути к файлу
- По пакету (PURL): Группировка по пакету

7.4 Поиск и фильтрация¶
Возможности поиска
- Несколько полей: Поиск по:
- Имени пакета (например, "lodash")
- Идентификатору CVE (например, "CVE-2023")
- Пути к файлу (например, "frontend/")
- Уровню критичности
- Нечеткое сопоставление: Находит частичные совпадения, если не используются кавычки
- Точное совпадение: Используйте кавычки
- Без учета регистра: Не требуется точный регистр

7.5 Быстрые исправления¶
Быстрые исправления
- Нажмите на предлагаемые обновления версий при наведении мышкой на уязвимый компонент, чтобы автоматически обновить на последнюю версию зависимости
- При нажатии
Ctrl+.(Cmd+.на MacOS), когда курсор находится на уязвимом компоненте, Вам предложится выбрать конкретную версию для обновления (при наличии нескольких)
Индивидуальные исправления
- Наведите курсор мыши на уязвимую зависимость
- Нажмите на предлагаемую версию во всплывающей подсказке
- После обновления Вы увидите сообщение об успешном изменении
или
- Наведите курсор клавиатуры на уязвимую зависимость
- Нажмите
Ctrl+.(Cmd+.на MacOS) - Выберите подходящую версию из списка, если их несколько

или
- Кнопка Fix Selected: Выберите один уязвимый компонент или уязвимость, принадлежащую этому компоненту, и компонент будет обновлен до последней безопасной версии
Массовые исправления
- Кнопка Fix All: Обновляет все уязвимые компоненты с доступными исправлениями, видимые в данный момент в дереве, при этом учитывает примененные фильтры (установленные с помощью кнопки с лупой на панели инструментов)
7.6 Работа с файлами BOM¶
Автозагрузка
Расширение автоматически загружает файлы BOM из:
.codescoring/bom.json(основной)bom.json(корневой каталог)
Ручные операции
- Загрузить BOM:
Ctrl+Shift+P(илиCmd+Shift+Pна MacOS) → "Load BOM File" - Закрыть BOM: Очищает все данные об уязвимостях и освобождает память
7.7 Сравнение BOM¶
Сравнивается полный состав всех компонентов, а не только уязвимых. С помощью сравнения можно увидеть различия в полном перечне используемых компонентов и отследить изменения версий. При этом старые версии компонентов будут показаны как удаленные, а новые - как добавленные. Чтобы удобнее было отслеживать изменения в версиях компонентов, можно сгруппировать их по имени пакета (см ниже).
Автоматическое сравнение
При открытии проекта:
- Загружает текущий BOM (
bom.json) - Сравнивает с предыдущим (
bom.json.0) - Показывает уведомление об изменениях
Ручное сравнение при открытом BOM
- Имеется загруженный BOM (целевой)
- Выполните команду "Compare BOMs"
- Выберите базовый файл BOM
- Отобразится результат сравнения в панели DIFF
Ручное сравнение двух произвольных BOM
- Закройте BOM при необходимости
- Выполните команду "Compare BOMs"
- Выберите базовый файл BOM для сравнения
- Выберите целевой файл BOM для сравнения с базовым
- Отобразится результат сравнения в панели DIFF
Представления сравнения
📊 BOM DIFF (Изменения: 23 добавлено, 15 удалено, 45 обновлено, 73 без изменений)
├── ➕ Добавлено (23)
│ ├── [ADDED] react@18.1.3 0 уязвимостей
│ └── ...
├── ➖ Удалено (15)
├── 🔄 Обновлено (45)
│ ├── [UPDATED] lodash: 4.17.20
│ └── ...
└── ✓ Без изменений (73)
Опции группировки сравнения
- По типу изменения: Добавлено/Удалено/Обновлено/Без изменений (примечание: обновлено означает, что количество уязвимостей было обновлено для компонента)
- По пакету: Алфавитная группировка пакетов без версии. Это наиболее полезная группировка для просмотра обновленных компонентов (добавленная версия и удаленная версия будут сгруппированы вместе)
- По расположению: Группировка по пути к файлу
- По критичности: Группировка по влиянию уязвимости

Фильтрация сравнения
Вы также можете искать/фильтровать дерево BOM DIFF, чтобы сосредоточиться на интересующих Вас компонентах. Чтобы очистить поиск, нажмите кнопку "Clear Comparison Search" в правом верхнем углу BOM DIFF.
7.8 Отчеты¶
Отчеты сканирования
- Автоматически генерируются: Создаются после каждого сканирования
- Расположение:
.codescoring/report.html - Формат: Цветной HTML
- Содержимое:
- Статус сканирования
- Выполненная команда
- Сводка результатов
- Найденные уязвимости
- Предупреждения от политик
- Сообщения об ошибках
Просмотр отчетов
- Команда: "View Latest Scan Report"
- Открывается в: Предварительном просмотре HTML в VS Code
- Адаптируется к выбранной цветовой схеме VSCode в момент генерации
7.9 Настройки и кастомизация¶
Список доступных настроек
| Настройка | Описание | По умолчанию |
|---|---|---|
apiUrl |
Ваш URL с установленной CodeScoring | |
apiToken |
API токен. Безопасно сохраняется | (устанавливается командой) |
platformType |
local или docker | local |
johnnyCliPath |
Путь к Johnny CLI (пустой для автозагрузки) | (автозагрузка) |
dockerImage |
Имя docker образа c Johnny CLI | johnny-depp:2025.29.0 |
dockerRegistry |
Реестр с образом Johnny CLI | (предоставляется заботой) |
dockerOptions |
Дополнительные опции docker | |
enableHighlighting |
Показывать подсветку в коде | true |
enableHover |
Показывать всплывающие подсказки | true |
enableQuickFixes |
Разрешить исправления в один клик | true |
showVulnerabilityHeaders |
Отображать заголовки для колонок уязвимостей | false |
paginationSize |
Количество элементов на странице | 100 |
batchProcessingSize |
Количество элементов для обработки за раз | 100 |
severityColors |
Пользовательское сопоставление цветов | (цвета по умолчанию) |
Горячие клавиши
Настройте в параметрах VS Code, например:
Устранение неполадок¶
Логи расширения¶
- Для подробного понимания шагов функциональности проверьте лог файл расширения, расположенный:
- Windows:
%USERPROFILE%\.vscode\extensions\codescoring-sca-[version]\out\logs\extension.log - macOS/Linux:
~/.vscode/extensions/codescoring-sca-[version]/out/logs/extension.log
- Windows:
Распространенные проблемы¶
Проблемы сканирования
| Проблема | Решение |
|---|---|
| Сканирование зависает | Попробуйте запустить файл cli вручную, убедитесь, что операционная система и антивирус позволяют ему работать, проверьте интернет-соединение, проверьте токен API |
| Нет результатов | Убедитесь, что проект имеет файлы зависимостей, проверьте вывод report.html |
| Частичные результаты | Проверьте шаблоны игнорирования в конфигурации |
Проблемы отображения
| Проблема | Решение |
|---|---|
| Нет подсветки | Включите в настройках, перезагрузите окно |
| Неправильные цвета | Проверьте совместимость темы |
| Отсутствует панель | Вид → Открыть вид → Уязвимости |
| Не показываются всплывающие подсказки | Включите наведение в настройках |
Проблемы исправления
| Проблема | Решение |
|---|---|
| Исправление не удается | Проверьте права на запись |
| Неправильная версия | Вручную укажите в файле пакета |
| Ломает проект | Используйте контроль версий, откатитесь |
| Конфликты | Исправляйте по одному |
Свяжитесь с отделом заботы: support@codescoring.ru
Безопасность и конфиденциальность, обработка данных¶
- Локальное сканирование: Код не отправляется на серверы
- Связь с API: Передаются только метаданные (конфигурационные файлы Вашего пакетного менеджера)
- Хранение токенов: Безопасное хранилище учетных данных VS Code
Рекомендации¶
Рекомендации по рабочему процессу¶
- Начальная настройка: Полное сканирование при запуске проекта
- Обзоры: Сравнивайте BOM между версиями
-
CI/CD:
-
Перед коммитом: Выполните полное сканирование
- Поделитесь конфигурацией: Закоммитьте
.codescoring/config.yaml - Игнорируйте временные файлы: Добавьте в
.gitignore: - Отслеживайте основной BOM: Версионируйте
.codescoring/bom.json - Стандартизируйте: Стандартизируйте настройки расширения
Интеграция с процессами разработки¶
-
Code Review:
- Проверяйте изменения зависимостей
- Требуйте исправления критических уязвимостей
- Документируйте принятые риски
-
Release Management:
- Генерируйте отчеты для каждого релиза
- Отслеживайте улучшения безопасности
- Планируйте обновления зависимостей
-
Compliance:
- Экспортируйте BOM для аудита
- Отслеживайте лицензии компонентов
- Поддерживайте историю сканирований