Защита приложений Java с помощью модернизации GitHub Copilot

Модернизация приложения Java не является однократным событием. Новые CVE публикуются каждый день, по мере развития вашего кода выявляются новые проблемы CWE, а зависимости со временем перестают соответствовать требованиям. Поддержание безопасности приложения означает непрерывное выявление и устранение долга в области безопасности — это неизменно актуальный подход к обеспечению безопасности приложений.

GitHub Copilot для модернизации помогает вам благодаря двум возможностям:

  • Оценка безопасности — сканирует ваш код на наличие выявлений CWE в соответствии с ISO/IEC 5055 и уязвимостей CVE в ваших прямых и транзитивных зависимостях.
  • Исправление кода — создает план выполнения для устранения выбранных проблем и применяет исправления для вас.

Эти возможности можно найти в следующих возможностях:

  • Visual Studio Code — интерактивное сканирование и исправление, описанные в этой статье.
  • Модернизация CLI — безопасность является одним из доменов оценки в пакетной оценке, поэтому вы можете сканировать портфель приложений в одном запуске.

Сканирование и устранение проблем безопасности в Visual Studio Code

Выполните следующие действия, чтобы оценить и устранить проблемы безопасности в одном потоке.

1. Запуск проверки безопасности

В области модернизации GitHub Copilot откройте вкладку Быстрый запуск и выберите Сканировать и устранить проблемы с безопасностью.

Снимок экрана Visual Studio Code, на котором показано представление

Copilot выполняет оценку домена безопасности по проекту. Сканирование включает:

  • Тщательно подобранный набор правил CWE, согласованных с ISO/IEC 5055, сгруппированный в шесть категорий: Безопасность файлов и путей, Инъекционные атаки, Безопасность памяти, Качество кода, Учётные данные и секреты и Параллелизм и синхронизация.
  • Сведения о CVE в ваших прямых и транзитивных зависимостях из базы данных рекомендаций GitHub по безопасности.

Полный каталог правил CWE и подробные сведения о охвате CVE см. в разделе "Общие сведения о охвате оценки".

Замечание

Проверки CVE работают без аутентификации GitHub, но для анонимных вызовов действует ограничение частоты запросов. Для крупных проектов войдите с помощью gh auth login, чтобы избежать ограничения скорости.

2. Просмотр отчета

После завершения проверки отчет об оценке открывается с результатами безопасности.

Снимок экрана отчета об оценке в Visual Studio Code, на котором показаны результаты CWE и CVE.

Чтобы указать, какие CVE будут отображаться, задайте в конфигурации оценки параметр Безопасность: Минимальный уровень серьезности CVE. Допустимые значения: critical, highmediumи low; значение highпо умолчанию.

3. Выберите проблемы для устранения и создания плана

Выберите категории проблем, которые нужно исправить. Кнопка действия обновляется, чтобы отобразить количество, например создать план (3). Выберите его, чтобы создать план выполнения.

Снимок экрана: отчет об оценке с выбранными категориями проблем безопасности и выделенной кнопкой

4. Просмотр плана

Copilot записывает план выполнения в виде файла Markdown и открывает его в области предварительного просмотра, чтобы прочитать его перед применением исправления. План описывает, как Copilot группирует и устраняет выбранные проблемы. Она группит проблемы CVE по зависимостям и результатам CWE по файлам. Если вы хотите изменить область или порядок, измените файл Markdown напрямую.

Снимок экрана плана выполнения проверки безопасности, открытого в окне предварительного просмотра Markdown в Visual Studio Code.

5. Выполнение плана

Когда вас устроит план, попросите Copilot в чате выполнить его. Copilot устраняет выбранные проблемы по группам, создает проект для проверки каждого изменения и сообщает о ходе выполнения в чате. Просмотрите полученные диффы и зафиксируйте изменения, которые вы хотите сохранить.

Оставайтесь вечнозелеными

Долг по безопасности возникает снова по мере публикации новых CVE и изменения вашего приложения. Повторно запускайте сканирование и устранение проблем с безопасностью в рамках регулярного цикла модернизации — например, в каждой ветке выпуска, — чтобы постоянно выявлять и устранять проблемы, а не накапливать их до крупного обновления.

Дальнейшие действия