Skip to main content

Сокращение задолженности по обеспечению безопасности в вашей компании с помощью GitHub Copilot

Общие сведения о функциях, включении разработчиков и измерении влияния Copilot.

Кто может использовать эту функцию?

Бизнес GitHub Copilot or GitHub Copilot Enterprise

Руководство вдохновлено GitHub в сборнике схем успешного выполнения инженерных систем (ESSP), который рекомендует стратегии и метрики для улучшения инженерных систем.

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

1. Определение препятствий для успеха

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

Так как команды разработчиков работают для обеспечения новых функций и обеспечения плавной работы своих приложений, их внимание часто уделяется скорости и функциональности. Однако с течением времени небольшие проблемы могут накапливаться, например:

  • Известные слабые места безопасности, которые не были исправлены
  • Зависимость от старых компонентов программного обеспечения с потенциальными недостатками
  • Задержки в решении проблем при обнаружении

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

Этот долг несет реальные риски. Чем дольше она не устранена, тем больше она может расти, и чем дороже она становится для решения. Большая задолженность по обеспечению безопасности может оставить системы уязвимыми для атак, предоставлять конфиденциальные данные, а в конечном итоге отвыкать доверие клиентов и влиять на нижний предел.

Задача заключается в том, чтобы сбалансировать потребность в быстром развитии с решающей ответственностью за поддержание безопасной и стабильной среды программного обеспечения.

2. Оценка параметров

Следующим шагом является оценка и согласование решений по устранению барьеров, которые вы определили на шаге один. В этом руководстве мы сосредоточимся на влиянии GitHub Copilot на цель, которую вы определили. Помните, что успешные развертывания нового инструмента также требуют изменений в культуре и процессах.

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

Зарегистрируйтесь для Copilot

Как помочь Copilot

GitHub Copilot может помочь снизить долг безопасности путем интеграции соображений безопасности непосредственно в жизненный цикл разработки. Его возможности позволяют разработчикам упреждающим образом выявлять и устранять потенциальные уязвимости и поддерживать актуальность своих проектов.

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

Во время разработки

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

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

Текущее обслуживание

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

Эти конкретные предложения по исправлению упрощают исправление, сокращая время, когда разработчики проводят исследования уязвимостей и выяснить, как их устранить. В результате оповещения системы безопасности разрешаются более эффективно и, скорее всего, задерживаются или вносят свой вклад в текущий долг безопасности.

Вопросы культуры

Наряду с развертыванием GitHub Copilot, вы также должны решить любые социальные или культурные факторы, которые могут препятствовать достижению ваших целей.

Ниже приведены примеры из раздела "Антишаблоны" в ESSP.

  • Команды могут игнорировать или откладывать долг безопасности, позволяя неэффективным и уязвимым системам сохраняться. Это может быть вызвано акцентом на крайние сроки на признаки, или отсутствие образования о долгосрочном влиянии задолженности по обеспечению безопасности.
  • Teams может создавать слишком сложные решения для простых проблем, что затрудняет обслуживание кода и проблемы безопасности, которые труднее обнаруживать. Это может быть вызвано желанием будущего доказательства ненужным или давлением, чтобы добавить ценность через сложность.

3. Реализация изменений

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

В этом разделе приведены примеры сценариев, рекомендаций и ресурсов для разработчиков. Мы рекомендуем использовать этот раздел для планирования коммуникаций и учебных занятий , чтобы помочь сотрудникам использовать Copilot таким образом, чтобы соответствовать вашей цели.

Анализ кода для уязвимостей безопасности

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

  1. Откройте файлы для анализа в Visual Studio Code.

  2. В Copilot Chatпопросите: Analyze this code for potential security vulnerabilities and suggest fixes

    Вы также можете использовать #file переменную чата для включения содержимого файла в запрос или использовать файлы запросов и пользовательские инструкции для руководства Copilotответов.

  3. Copilot Chat анализирует код, определяет уязвимости безопасности и предлагает соответствующие исправления.

  4. Просмотрите предложенные изменения и примените их соответствующим образом.

Другие примеры запросов:

  • Are there any security vulnerabilities in my code? If so, can you explain them and suggest fixes?
  • Does this code follow secure code best practices? If not, what specific improvements can I make?
  • What are the potential security risks in this code if it were deployed to production? How can I mitigate them?

Используйте Copilot Autofix для оповещений code scanning

Copilot Autofix — это компонент GitHub Code Security, который может предложить возможные исправления для оповещений code scanning. Copilot Autofix доступен в общедоступных репозиториях и репозиториях с лицензией на GitHub Code Security.

При выполнении проверки кода в репозитории потенциальные проблемы возникают в виде оповещений code scanning в репозитории. Разработчики могут разрешать оповещения, следуя этому потоку:

  1. Откройте оповещение на GitHub.
  2. Щелкните " Создать исправление", которое отображается, если Copilot может разрешить оповещение.
  3. Copilot Autofix создаст потенциальное исправление для этого оповещения, показывающее изменения кода в самом оповещении. Затем вы можете зафиксировать изменение этого кода в новой ветви или существующей ветви.
  4. На этом этапе можно протестировать код, а затем открыть запрос на вытягивание, чтобы переместить изменения в основную ветвь.
  5. После перемещения изменений в основную ветвь и code scanning проверяет исправление оповещения, оповещение будет закрыто автоматически.

Рекомендации для разработчиков

Разработчики должны:

  • Регулярно используйте Copilot Chat для анализа фрагментов кода для уязвимостей: сделайте его привычкой заранее проверять код на наличие проблем безопасности перед фиксацией изменений.
  • Используйте Copilot Autofix для оповещений code scanning: при появлении оповещений используйте Copilot Autofix в качестве первого шага, чтобы быстро устранить их.
  • Укажите четкие и конкретные запросы на Copilot Chat: чем более подробный запрос, тем лучше Copilot может анализировать код и предлагать соответствующие исправления. Например, включите язык программирования и конкретные области, связанные с запросами.
  • Объедините Copilot с существующими средствами безопасности: используйте Copilot в качестве дополнительного уровня анализа безопасности, а не в качестве замены выделенных сканеров безопасности и методик.

Разработчики не должны:

  • Автоматически примите предложения по безопасности Copilot: всегда просматривайте и тестируйте изменения кода, предлагаемые Copilot для обеспечения их соответствия и эффективности.
  • Полагаться исключительно на Copilot для комплексных аудита безопасности: Copilot является полезным инструментом, но он не должен заменить тщательные проверки безопасности и тестирование на проникновение.
  • Игнорируйте оповещения code scanning: немедленно устраняйте все оповещения, даже если они кажутся незначительными, чтобы предотвратить накопление задолженности по обеспечению безопасности.
  • Используйте Copilot в качестве предлога, чтобы избежать обучения безопасным методам написания кода: продолжайте обучать себя и свою команду по рекомендациям по безопасности.
  • Предположим, что Copilot перехватит каждую уязвимость: безопасность является текущим процессом, и бдительность всегда необходима.
  • Используйте Copilot для обхода политик безопасности: соблюдайте протоколы безопасности вашей организации и используйте Copilot в качестве средства для их улучшения, а не обхода.

Ресурсы для разработчиков

Метрики для просмотра

Чтобы оценить пробные версии новых инструментов и убедиться, что полные развертывания выполняют согласованные улучшения, следует отслеживать результаты и вносить корректировки при необходимости. Как правило, мы рекомендуем рассмотреть ключевые зоны качества, скорости и счастья разработчиков, а также как эти зоны объединяются для участия в бизнес-результатах.

Ниже приведены некоторые метрики, которые мы рекомендуем оценить влияние Copilotна эту конкретную цель.

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

См . раздел AUTOTITLE.