Плагин CodeScoring.SCA для IntelliJ based IDEs
Плагин предоставляет возможности анализа состава программного обеспечения (SCA) для IntelliJ IDEA и других IDE, основанных на IntelliJ движке, подсвечивая уязвимые зависимости в файлах вашего проекта и предоставляя подробную информацию об уязвимостях через интеграцию с Johnny CLI.
Плагин CodeScoring.SCA поддерживает версии IntelliJ IDEA 2024.1 и выше, а также все IDE на базе IntelliJ Platform (OpenIDE, GIGA IDE, PyCharm, WebStorm, PhpStorm, RubyMine, GoLand, CLion, Rider, Android Studio).
Поддерживаемые экосистемы
Языки и менеджеры пакетов
Обнаружение файлов по умолчанию
- Автоматическое: Сканирует все поддерживаемые файлы
- Рекурсивное: Ищет в подкаталогах проекта
Точная настройка сканирования производится с помощью модификации config.yaml файла
Начало работы
Предварительные требования
Перед началом убедитесь, что у вас есть:
- IntelliJ IDEA 2024.1 или новее (или любая совместимая поддерживаемая IDE на основе IntelliJ Platform)
- Доступ к установке CodeScoring с активными учетными данными
- Дистрибутив codescoring-intellij плагина (.zip файл)
Требуемые разрешения
- Файловая система: Чтение файлов проекта, запись файлов .codescoring, загрузка исполняемого файла, выполнение загруженного CLI
- Сеть: Связь с CodeScoring API
- API VS Code: Интеграция с редактором
Шаг 1: Загрузите плагин
Плагин поставляется в виде файла codescoring-intellij-<version>.zip.
Шаг 2: Установите плагин из ZIP файла
- Откройте IntelliJ based IDE
- Перейдите в File → Settings (или <IDE Name> → Preferences на macOS)
- В диалоге настроек выберите Plugins в левой боковой панели
- Нажмите на значок шестеренки (⚙) в верхней части панели плагинов
- Выберите "Install Plugin from Disk..." из выпадающего меню

- Найдите место, куда вы загрузили файл
.zip - Выберите файл и нажмите "OK"

- Дождитесь завершения установки
- Подтвердите установку плагина от CodeScoring

- Перезапустите IntelliJ based IDE при появлении запроса
Шаг 3: Найдите плагин CodeScoring
После установки и перезапуска вы должны увидеть окно инструментов CodeScoring.

- Найдите вкладку окна инструментов "CodeScoring SCA" (обычно внизу или слева в IDE)
- Если не видно, перейдите в View → Tool Windows → CodeScoring SCA
- Это откроет окно инструментов CodeScoring SCA с панелью Dashboard

Шаг 4: Настройте плагин
- В окне инструментов CodeScoring SCA нажмите кнопку "Settings" (значок шестеренки) на панели инструментов
- Откроется страница настроек CodeScoring SCA

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

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

- Скопируйте значение сгенерированного токена API
- Вернитесь к настройкам IntelliJ-based IDE
- Вставьте токен в поле "API Token"
- Нажмите "Validate Token" для проверки работы токена
- Плагин должен отобразить подтверждение того, что токен действителен

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

4.4 Настройте Johnny CLI
Существует три способа получить Johnny CLI для анализа ваших зависимостей с помощью нашего сервиса.
4.4.1 Локальная установка
Предварительные требования:
- Johnny CLI должен быть загружен и файл сделан исполняемым в системе
- Операционная система должна разрешать запуск исполняемого файла (для проверки запустите один раз файл в консоли с параметром --help вручную)
Шаги настройки:
- Задайте тип установки Local
- В настройках выберите "Local executable" в выпадающем списке Installation Type
- В поле Johnny CLI Path нажмите кнопку выбора папки
- Перейдите к месту, куда вы ранее загрузили Johnny CLI
- Выберите исполняемый файл Johnny CLI
- Нажмите "OK" для сохранения настроек
Примечание: Если плагин спросит об изменении прав доступа к файлу (chmod +x), нажмите "Да", чтобы разрешить плагину сделать файл исполняемым.

4.4.2 Автоматическая загрузка клиента
Предварительные требования:
- Должен быть настроен API URL
- Должен быть настроен токен API и валидация должна пройти успешно
Шаги настройки:
- Установите тип установки на Local
- В настройках выберите "Local executable" в выпадающем списке Installation Type
- Оставьте поле Johnny CLI Path пустым
- Теперь при первом запросе сканирования Johnny CLI будет загружен с API URL. Это позволит Вам автоматически получить
обновление клиента, как только оно будет доступно.
Загруженный клиент будет сохранен в следующем месте:
- Linux/MacOS:
~/.codescoring/johnny - Windows:
%USERPROFILE%\.codescoring\johnny.exe
- Linux/MacOS:
4.4.3 Использование Docker
Установка Docker позволяет запускать Johnny CLI в изолированном контейнере, что полезно, когда вы не хотите устанавливать его непосредственно в вашей системе.
Предварительные требования:
- Docker должен быть установлен и запущен в вашей системе
- Ваш пользователь должен иметь права на выполнение команд Docker
Шаги настройки:
- Установите тип установки на Docker
- В настройках выберите "Docker" в выпадающем списке Installation Type
- Настройте Docker образ
- Docker Image:
johnny-depp:2025.29.0(по умолчанию) - Docker Registry:
<адрес-реестра-кодскоринг> - Пример полного пути к образу:
sample-codescoring-registry.com/johnny-depp:2025.29.0
- Опционально: Дополнительные опции Docker
Добавьте пользовательские опции запуска Docker при необходимости в поле Additional Docker Options:
Как это работает:
- Клиент автоматически монтирует каталог вашего проекта в контейнер
- Сканирование выполняется внутри контейнера, а результаты сохраняются в вашем проекте
- Ручные команды Docker не требуются - плагин обрабатывает все автоматически
Устранение неполадок с установкой Docker:
- "Docker not found": Убедитесь, что Docker установлен и команда
dockerнаходится в вашем PATH - Permission denied: Добавьте вашего пользователя в группу docker:
sudo usermod -aG docker $USER - Image pull failed: Проверьте учетные данные реестра и сетевое подключение
- Container exits immediately: Проверьте Event Log для получения подробных сообщений об ошибках
Шаг 5: Запустите первое сканирование
Теперь, когда плагин настроен, вы можете запустить первое сканирование зависимостей:
Метод 1: Использование dashboard
- Откройте проект в IntelliJ-based IDE
- Откройте окно инструментов CodeScoring SCA
- В панели Dashboard нажмите кнопку "Run Scan"
!
Метод 2: Использование главного меню
- Перейдите в Tools → CodeScoring SCA → Run Scan

Метод 3: Использование панели инструментов
- Найдите вкладку плагина CodeScoring SCA и ее главную панель инструментов
- Нажмите кнопку "Run Scan" (см скриншот из метода 1)
Шаг 6: Тонкая настройка конфигурации сканирования
После завершения сканирования вы увидите новый каталог .codescoring, содержащий:
- config.yaml - файл конфигурации для Johnny CLI, вы можете прочитать о нем в этом разделе. Вы можете менять этот файл, так как он никогда не будет перезаписан.
- donotfix.yaml - файл конфигурации со списком шаблонов имен файлов, которые должны быть исключены из действий Quick Fix. Вы можете изменять этот файл.
- report.html - отчет, сгенерированный в формате html, содержащий вывод Johnny CLI в формате цветной таблицы. Перезаписывается во время каждого сканирования.
- bom.json - файл результатов сканирования, созданный Johnny CLI в формате cyclone-dx 1.6, он будет загружен автоматически и показан в панели уязвимостей для любого открытого в IntelliJ-based IDE проекта, в котором существует .codescoring/bom.json
- bom.json.N - где N - это ревизия сканирования, т.е. 0 - предыдущее сканирование, а 5 (например) - самое первое сканирование, и bom.json.0 будет использоваться для сравнения с bom.json (и показан в дереве DIFF), если он существует на момент открытия проекта
Пример использования конфигурации сканирования CodeScoring
Отредактируйте .codescoring/config.yaml для настройки:
Настройка исключений Quick Fix
Файл .codescoring/donotfix.yml контролирует, какие файлы не должны быть изменены действиями Quick Fix. Это особенно
полезно для сгенерированных файлов (таких как lock-файлы), которые должны быть перегенерированы, а не исправлены
вручную.
Пример использования конфигурации исключений QuickFix:
Синтаксис шаблонов:
- Точное имя файла:
go.sum - Шаблоны с подстановочными знаками:
*.lock,*-lock.json - Шаблоны директорий:
**/node_modules/** - Несколько расширений:
*.{lock,generated}
Файл создается автоматически при:
- Первом сканировании в проекте
- Открытии проекта с существующей директорией
.codescoring, но безdonotfix.yml
Примечание: Файлы, соответствующие этим шаблонам, все равно будут сканироваться на наличие уязвимостей и показаны в результатах, но действия Quick Fix (как индивидуальные, так и массовые) будут их пропускать. Пользователи должны перегенерировать эти файлы, используя команды их менеджера пакетов.
Шаг 7: Просмотр результатов сканирования
После завершения сканирования:
- Проверьте уведомления: Посмотрите на уведомления в правом нижнем углу IntelliJ-based IDE, нажав на "View
Report" и "See details in Vulnerabilities view""

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

7.1 Подсветка уязвимостей
- Подсветка в коде: Уязвимые зависимости подсвечиваются прямо в файлах кода (
build.gradle,pom.xml,package.jsonи т.д.) - Цвета критичности:
- 🔴 Критический (красный)
- 🟠 Высокий (оранжевый)
- 🟡 Средний (желтый)
- 🔵 Низкий (синий)
- Поддержка нескольких файлов: Работает со всеми поддерживаемыми типами файлов
- Наведите курсор на подсвеченные зависимости, чтобы увидеть детали уязвимостей

7.2 Информация при наведении
При наведении курсора на подсвеченные зависимости отображается:
- Идентификатор уязвимости: Номер CVE со ссылкой
- Критичность: Оценка CVSSv3 и уровень
- Описание: Что делает уязвимость
- Ссылки на источники: Информация об официальной регистрации уязвимости
- Рекомендации: Предлагаемые версии для обновления
- Быстрое исправление: Опция обновления в один клик
7.3 Панель уязвимостей
7.3.1 Структура дерева
7.3.2 Опции группировки
- Используйте панель уязвимостей для фильтрации по критичности, пакету или другим критериям
- Группируйте уязвимости по различным категориям для лучшей организации
Изменение группировки через кнопку панели инструментов или команду:
- По критичности → Местоположению → Компоненту (по умолчанию): По уровню критичности, подгруппировка по файлу и затем по пакету
- По критичности → Компоненту: По уровню критичности, подгруппировка по имени пакета в алфавитном порядке
- По местоположению → Компоненту: Группировка по пути к файлу
- По имени компонента → Компоненту: Группировка разных версий одного и того же пакета вместе в алфавитном порядке
- По компоненту: По компоненту (с версией, если известна)

7.4 Поиск и фильтрация
Возможности поиска
- Несколько полей: Поиск по:
- Имени пакета (например, "lodash")
- Идентификатору CVE (например, "CVE-2023")
- Пути к файлу (например, "frontend/")
- Уровню критичности
- Нечеткое сопоставление: Находит частичные совпадения
- Точное совпадение: Ищет точное совпадение слова в кавычках
- Без учета регистра: Не требуется точный регистр
Панель инструментов поиска Для поиска и фильтрации в плагине имеются:
- Поле поиска: Для ввода поисковых запросов
- Кнопка очистки: Сброс поиска
- Индикатор результатов: Показывает количество найденных элементов первым элементом дерева уязвимых компонентов
7.5 Быстрые исправления
Быстрые исправления в коде
- Лампочка IntelliJ: Нажмите на лампочку рядом с уязвимой зависимостью
или
- Alt+Enter (⌥ + Enter на MacOS): Используйте горячую клавишу, когда курсор находится на уязвимой зависимости
или
- Update vulnerable dependency внизу на всплывающей карточке уязвимого компонента
или
- кнопка Fix Selected на панели инструментов,
а затем
- Выберите версию: Если доступно несколько безопасных версий, выберите подходящую

Массовые исправления (не работает при группировках по критичности)
- Кнопка Fix All: Обновляет все уязвимые компоненты с доступными исправлениями
- Интеллектуальное обновление: Автоматически выбирает наиболее подходящую безопасную версию
- Отчет об изменениях: Показывает, сколько зависимостей были обновлены
- Исключения: Учитывает шаблоны, определенные в
.codescoring/donotfix.yml

7.6 Работа с файлами BOM
Автозагрузка Плагин автоматически загружает файлы BOM из:
.codescoring/bom.json(основной)bom.json(корневой каталог проекта)
Ручные операции
- Загрузить BOM: Tools → CodeScoring SCA → Load BOM File
- Закрыть BOM: Tools → CodeScoring SCA → Close BOM
7.7 Сравнение BOM
Сравнивается полный состав всех компонентов, а не только уязвимых. С помощью сравнения можно увидеть различия в полном перечне используемых компонентов и отследить изменения версий. При этом старые версии компонентов будут показаны как удаленные, а новые - как добавленные. Чтобы удобнее было отслеживать изменения в версиях компонентов, можно сгруппировать их по имени пакета (см ниже).
Автоматическое сравнение При открытии проекта:
- Загружает текущий BOM (
bom.json) - Сравнивает с предыдущим (
bom.json.0) - Показывает уведомление об изменениях
Ручное сравнение
- Выберите Tools → CodeScoring SCA → Compare BOMs
- Выберите базовый файл BOM
- Если BOM уже загружен, он будет использован как целевой
- Если BOM не загружен, выберите целевой файл
- Отобразится результат сравнения в панели DIFF

Представления сравнения
Опции группировки сравнения
- По типу изменения: Добавлено/Удалено/Обновлено/Без изменений (по умолчанию)
- По пакету: Алфавитная группировка пакетов, наиболее полезный вид группировки для отслеживания изменившихся версий пакетов
- По расположению: Группировка по пути к файлу
- По критичности: Группировка по влиянию уязвимости
Фильтрация сравнения
Используйте поле поиска для фильтрации результатов сравнения по:
- Имени пакета
- Типу изменения
- Пути к файлу
7.8 Отчеты
Отчеты сканирования
- Автоматически генерируются: Создаются после каждого сканирования
- Расположение:
.codescoring/report.html - Формат: Цветной HTML с подробной информацией
- Содержимое:
- Статус сканирования
- Выполненная команда
- Сводка результатов
- Найденные уязвимости
- Предупреждения от политик
- Сообщения об ошибках
Просмотр отчетов
- Команда: Tools → CodeScoring SCA → View Report
- Открывается в: на выбор, внешний браузер, внутренний предпросмотр, редактор кода
7.9 Панель алертов
В панели Alerts представлена информация по алертам для сработавших политик по итогам анализа. Для каждого алерта показывается:
- Название политики
- Уровень алерта
- Статус блокировки
- Список пакетов с критериями
Шаг 8: Настройки и кастомизация
Список доступных настроек
Устранение неполадок
Логи плагина
- Для подробного понимания работы плагина проверьте логи IDE:
- Help → Show Log in Explorer/Finder
- Ищите записи с "CodeScoring" в
idea.log
Распространенные проблемы
Проблемы установки
Проблемы конфигурации
Проблемы сканирования
Проблемы отображения
Проблемы исправления
Получение помощи
- Проверьте Event Log: View → Tool Windows → Event Log
- Включите debug логи:
- Help → Diagnostic Tools → Debug Log Settings
- Добавьте
com.codescoring.intellij
- Отчеты об ошибках: Просмотрите
.codescoring/report.htmlдля деталей сканирования
Свяжитесь с отделом заботы: support@codescoring.ru
Безопасность и конфиденциальность, обработка данных
- Локальное сканирование: Код не отправляется на серверы
- Связь с API: Передаются только метаданные (конфигурационные файлы Вашего пакетного менеджера)
- Хранение токенов: Безопасное хранилище учетных данных VS Code
Рекомендации
Рекомендации по рабочему процессу
- Начальная настройка: Полное сканирование при запуске проекта
- Обзоры: Сравнивайте BOM между версиями
- CI/CD:
- Перед коммитом: Выполните полное сканирование
- Поделитесь конфигурацией: Закоммитьте
.codescoring/config.yamlи.codescoring/donotfix.yaml - Игнорируйте временные файлы: Добавьте в
.gitignore:
Интеграция с процессами разработки
-
Code Review:
- Проверяйте изменения зависимостей
- Требуйте исправления критических уязвимостей
- Документируйте принятые риски
-
Release Management:
- Генерируйте отчеты для каждого релиза
- Отслеживайте улучшения безопасности
- Планируйте обновления зависимостей
-
Compliance:
- Экспортируйте BOM для аудита
- Отслеживайте лицензии компонентов
- Поддерживайте историю сканирований
Работа с Lock-файлами
-
Понимание Lock-файлов:
- Lock-файлы генерируются менеджерами пакетов
- Они не должны редактироваться вручную
- Изменения должны вноситься в файлы манифестов
-
Поведение Quick Fix:
- Файлы, соответствующие шаблонам
donotfix.yml, пропускаются - Обновите файлы манифестов, затем перегенерируйте lock-файлы
- Используйте соответствующие команды менеджера пакетов, например:
- Go:
go mod tidy - NPM:
npm install - Yarn:
yarn install - Cargo:
cargo update
- Go:
- Файлы, соответствующие шаблонам
-
Рекомендации:
- Просмотрите
donotfix.yamlи настройте шаблоны по необходимости - Документируйте ваш процесс перегенерации
- Автоматизируйте обновления lock-файлов в CI/CD
- Просмотрите
