Руководство вдохновлено GitHub в сборнике схем успешного выполнения инженерных систем (ESSP), который рекомендует стратегии и метрики для улучшения инженерных систем.
Если вы начинаете развертывание Copilot, мы рекомендуем определить свои цели, планировать развертывание соответствующим образом и четко взаимодействовать с целями сотрудниками. См . раздел AUTOTITLE.
1. Определение препятствий для успеха
Первым шагом, рекомендованным ESSP, является разработка четкого понимания препятствий, которые препятствуют улучшению в вашей компании. Понимая текущие базовые показатели, требуемое состояние будущего и барьеры, которые препятствуют прогрессу, можно гарантировать, что изменения предназначены и эффективны.
Команды разработчиков часто сосредотачиваются на скорости и функциональности, чтобы создавать новые функции и поддерживать бесперебойную работу приложений. Со временем могут накапливаться мелкие проблемы, такие как:
- Известные уязвимости в безопасности, которые остаются неисправленными
- Зависимость от старых компонентов программного обеспечения с потенциальными недостатками
- Задержки в решении обнаруженных проблем
Это создаёт задолженность по обеспечению, значительный накопленный набор вопросов.
Обеспеченный долг несёт реальные риски. Чем дольше это остаётся без решения, тем больше и дороже оно становится. Крупные долги по ценным бумагам оставляют системы уязвимыми для атак, раскрывают конфиденциальные данные и подрывают доверие клиентов.
Задача заключается в балансе между быстрой разработкой и поддержанием безопасной и стабильной программной среды.
2. Оценка параметров
Следующим шагом является оценка и согласование решений по устранению барьеров, которые вы определили на шаге один. В этом руководстве мы сосредоточимся на влиянии GitHub Copilot на цель, которую вы определили. Успешное внедрение нового инструмента также требует изменений в культуре и процессах.
Проводите испытания новых инструментов и процессов с пилотными группами для сбора обратной связи и оценки успеха. Для учебных ресурсов и метрик для использования во время испытаний см. раздел 3. Внедрите изменения и метрики для просмотра разделов.
<a href="https://github.com/github-copilot/purchase?ref_product=copilot&ref_type=trial&ref_style=button&ref_plan=enterprise" target="_blank" class="btn btn-primary mt-3 mr-3 no-underline">
<span>Зарегистрируйтесь для Copilot</span> <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-link-external" aria-label="link external icon" role="img"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a>
Как помочь Copilot
Copilot интегрирует вопросы безопасности напрямую в жизненный цикл разработки. Это помогает разработчикам проактивно выявлять и устранять потенциальные уязвимости, сохраняя при этом проект up-toактуальности.
Copilot снижает уязвимости безопасности на протяжении всего жизненного цикла разработки программного обеспечения.
Во время разработки
Copilot проверяет код по мере написания. Он использует своё понимание распространённых уязвимостей безопасности, чтобы отмечать области, которые могут быть уязвимы к эксплуатации. Этот анализ в реальном времени выявляет скрытые уязвимости, которые могут быть упущены при стандартной разработке или первоначальных проверках безопасности.
Когда Copilot выявляет проблемы, он предлагает изменения в коде для устранения уязвимостей. Это позволит вам своевременно устранять слабые места и предотвратить накопление долгов по обеспечению.
Текущее обслуживание
Copilot интегрируется с возможностями сканирования кода GitHub, чтобы обеспечить безопасность существующей базы кода. Когда сканирование кода выявляет оповещения о безопасности, Автофикс второго пилота анализирует его и даёт целевые рекомендации по его разрешению.
Эти предлагаемые решения сокращают время, которое вы тратите на изучение уязвимостей и поиск способов их устранения. Это помогает эффективнее разрешать оповещения о безопасности и предотвращает постоянные долги по обеспечению.
Вопросы культуры
Параллельно с внедрением GitHub Copilot учитывайте любые социальные или культурные факторы, которые могут помешать вам достичь целей.
Ниже приведены примеры из раздела "Антишаблоны" в ESSP.
- Команды могут игнорировать или откладывать долги по обеспечению. Это позволяет неэффективным и уязвимым системам сохраняться. Это может быть вызвано срочным акцентом на функции или отсутствием знаний о долгосрочном влиянии долгового долга по обеспечениям.
- Команды могут создавать слишком сложные решения для простых задач. Это усложняет поддержание кода и затрудняет обнаружение проблем с безопасностью. Это может быть вызвано желанием излишне защитить будущее или давлением добавлять ценность через сложность.
3. Реализация изменений
Когда вы определите правильный подход к преодолению барьеров, масштабируйте выбранные вами решения. Для успешного внедрения нового инструмента или процесса назначьте ответственность на каждую часть запуска, прозрачно озвучите свои цели, проведите эффективное обучение и измеряйте свои результаты.
В этом разделе приведены примеры сценариев, рекомендаций и ресурсов для разработчиков. Используйте этот раздел для планирования коммуникаций и обучающих сессий , чтобы помочь сотрудникам использовать Copilot так, чтобы это соответствовало вашей цели.
-
[Анализ кода для уязвимостей безопасности](#analyze-your-code-for-security-vulnerabilities) -
[Используйте Автофикс второго пилота для оповещений code scanning](#use-copilot-autofix-for-code-scanning-alerts) -
[Рекомендации для разработчиков](#best-practices-for-developers) -
[Ресурсы для разработчиков](#resources-for-developers)
Анализ кода для уязвимостей безопасности
В зависимости от размера вашей кодовой базы, Copilot может не смог проанализировать весь ваш проект во время написания кода. Это связано с ограничениями контекста. Однако вы можете попросить его проанализировать конкретные файлы на предмет небезопасных практик кода.
-
Откройте файлы для анализа в Visual Studio Code.
-
В Копилот Чатпопросите:
Analyze this code for potential security vulnerabilities and suggest fixesИспользуйте
#fileпеременную чата, чтобы конкретно включить содержимое файла в запрос. Также можно использовать файлы подсказок и пользовательские инструкции для навигации Copilot ответов. -
Копилот Чат анализирует код, выявляет уязвимости безопасности и предлагает исправления.
-
Просмотрите предложенные изменения и примените их соответствующим образом.
Другие примеры подсказок:
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?
Используйте Автофикс второго пилота для оповещений code scanning
Автофикс второго пилота — часть GitHub Code Security, которая предлагает возможные исправления для оповещений code scanning. Он доступен в публичных репозиториях и репозиториях с лицензией на GitHub Code Security.
Когда вы запускаете сканирование кода на репозитории, возникают потенциальные проблемы в виде оповещений code scanning. Разрешайте оповещения, следуя следующим шагам:
- Откройте оповещение на GitHub.
-
**Нажмите Generate fix**. Это отображается, когда Copilot удаётся разрешить оповещение. - Автофикс второго пилота генерирует потенциальное исправление и показывает изменения кода в оповещении. Вы можете зафиксировать это изменение кода в новую ветку или существующую.
- Проверьте код. Затем откройте pull request, чтобы переместить изменения в основную ветвь.
- После переноса изменений в основную ветку и code scanning проверяет исправление, уведомление автоматически закрывается.
Рекомендации для разработчиков
Разработчики должны:
-
**Регулярно используйте Копилот Чат для анализа фрагментов кода на наличие уязвимостей**. Сделайте привычку проверять код на наличие проблем с безопасностью перед внесением изменений. -
**Use Автофикс второго пилота for code scanning alerts**. Когда появляются оповещения, используйте Автофикс второго пилота как первый шаг для быстрого их устранения. -
**Предоставляйте чёткие и конкретные подсказки Копилот Чат**. Чем подробнее ваш запрос, тем лучше Copilot сможет проанализировать код и предложить соответствующие исправления. Например, укажите язык программирования и конкретные области интереса. -
**Объедините Copilot с существующими инструментами безопасности**. Используйте Copilot как дополнительный слой анализа безопасности, а не как замену специализированным сканерам и практикам безопасности.
Разработчики не должны:
-
**Автоматически принимайте предложения по безопасности Copilot**. Всегда проверяйте и тестируйте предлагаемые изменения в кодексе, чтобы убедиться, что они уместны и эффективны. -
**Полагайтесь исключительно на Copilot для комплексных аудитов безопасности**. Copilot — полезный инструмент, но он не должен заменять тщательные проверки безопасности и тестирование на проникновение. -
**Ignore code scanning alerts**. Своевременно отвечайте на все оповещения, даже если они кажутся незначительными, чтобы предотвратить накопление долгов по обеспечению. -
**Используйте Copilot как оправдание, чтобы избежать изучения безопасных практик программирования**. Продолжайте обучать себя и свою команду лучшим практикам в области безопасности. -
**Предположим, Copilot обнаружит каждую уязвимость**. Безопасность — это непрерывный процесс, и бдительность всегда необходима. -
**Используйте Copilot для обхода политик безопасности**. Соблюдайте протоколы безопасности вашей организации. Используйте Copilot как инструмент для их улучшения, а не для обхода.
Ресурсы для разработчиков
-
[Copilot Chat в GitHub](/copilot/using-github-copilot/copilot-chat/asking-github-copilot-questions-in-github) -
[AUTOTITLE](/copilot/copilot-chat-cookbook/security-analysis/finding-existing-vulnerabilities-in-code) -
[GitHub Skills — начало работы с GitHub Copilot](https://github.com/skills/getting-started-with-github-copilot)
Метрики для просмотра
Оценивать испытания новых инструментов и следить за тем, чтобы ваши полные внедрения обеспечивали стабильные улучшения, отслеживать результаты и вносить корректировки при необходимости. Мы рекомендуем учитывать ключевые зоны качества, скорости и удовлетворения застройщиков, а также то, как эти зоны объединяются для достижения бизнес-результатов.
Вот несколько метрик для оценки влияния Copilot на данную конкретную цель.
-
**Коэффициент задолженности по ценным бумагам**. Используйте обзор безопасности, чтобы увидеть, снижается ли количество оповещений со временем. -
**Пора устранить проблемы с безопасностью**. Используйте обзор безопасности, чтобы проверить, сокращается ли время на устранение проблем со временем.