Руководство вдохновлено GitHub в сборнике схем успешного выполнения инженерных систем (ESSP), который рекомендует стратегии и метрики для улучшения инженерных систем.
Если вы начинаете развертывание Copilot, мы рекомендуем определить свои цели, планировать развертывание соответствующим образом и четко взаимодействовать с целями сотрудниками. См . раздел AUTOTITLE.
1. Определение препятствий для успеха
Первым шагом, рекомендованным ESSP, является разработка четкого понимания препятствий, которые препятствуют улучшению в вашей компании. Понимая текущие базовые показатели, требуемое состояние будущего и барьеры, которые препятствуют прогрессу, можно гарантировать, что изменения предназначены и эффективны.
Команды разработчиков часто сосредотачиваются на скорости и функциональности, чтобы создавать новые функции и поддерживать бесперебойную работу приложений. Со временем могут накапливаться мелкие проблемы, такие как:
- Известные уязвимости в безопасности, которые остаются неисправленными
- Зависимость от старых компонентов программного обеспечения с потенциальными недостатками
- Задержки в решении обнаруженных проблем
Это создаёт задолженность по обеспечению, значительный накопленный набор вопросов.
Обеспеченный долг несёт реальные риски. Чем дольше это остаётся без решения, тем больше и дороже оно становится. Крупные долги по ценным бумагам оставляют системы уязвимыми для атак, раскрывают конфиденциальные данные и подрывают доверие клиентов.
Задача заключается в балансе между быстрой разработкой и поддержанием безопасной и стабильной программной среды.
2. Оценка параметров
Следующим шагом является оценка и согласование решений по устранению барьеров, которые вы определили на шаге один. В этом руководстве мы сосредоточимся на влиянии GitHub Copilot на цель, которую вы определили. Успешное внедрение нового инструмента также требует изменений в культуре и процессах.
Проводите испытания новых инструментов и процессов с пилотными группами для сбора обратной связи и оценки успеха. Для учебных ресурсов и метрик для использования во время испытаний см. раздел 3. Внедрите изменения и метрики для просмотра разделов.
<a href="https://github.com/enterprise/contact?ref_product=copilot&ref_type=engagement&ref_style=button" target="_blank" class="btn btn-primary mt-3 mr-3 no-underline">
<span>Контактный отдел продаж</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 так, чтобы это соответствовало вашей цели.
- Анализ кода для уязвимостей безопасности
- Использование Автофикс второго пилота для code scanning оповещений
- Рекомендации для разработчиков
- Ресурсы для разработчиков
Анализ кода для уязвимостей безопасности
В зависимости от размера вашей кодовой базы, 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 проверки исправления оповещение автоматически закрывается.
Рекомендации для разработчиков
Разработчики должны:
- Регулярно анализируйте Копилот Чат фрагменты кода на наличие уязвимостей. Сделайте привычку проверять код на наличие проблем с безопасностью перед внесением изменений.
- Используйте Автофикс второго пилота для code scanning оповещений. Когда появляются оповещения, используйте Автофикс второго пилота их как первый шаг для быстрого их устранения.
- Дайте чёткие и конкретные подсказки для Копилот Чат. Чем подробнее ваш запрос, тем лучше Copilot можно проанализировать код и предложить соответствующие исправления. Например, укажите язык программирования и конкретные области интереса.
- Объединяйте Copilot с уже существующими инструментами безопасности. Используйте Copilot как дополнительный уровень анализа безопасности, а не как замену специализированным сканерам и практикам безопасности.
Разработчики не должны:
- Автоматически принимайте Copilotпредложения по безопасности. Всегда проверяйте и тестируйте предлагаемые изменения в кодексе, чтобы убедиться, что они уместны и эффективны.
- Полагайтесь исключительно на Copilot комплексные аудиты безопасности. Copilot это полезный инструмент, но он не должен заменять тщательные проверки безопасности и тестирование на проникновение.
- Игнорируйте code scanning оповещения. Своевременно отвечайте на все оповещения, даже если они кажутся незначительными, чтобы предотвратить накопление долгов по обеспечению.
- Используйте Copilot это как оправдание, чтобы избежать изучения безопасных практик программирования. Продолжайте обучать себя и свою команду лучшим практикам в области безопасности.
- Предполагайте Copilot , что это обнажит каждую уязвимость. Безопасность — это непрерывный процесс, и бдительность всегда необходима.
- Используйте Copilot для обхода политик безопасности. Соблюдайте протоколы безопасности вашей организации. Используйте Copilot как инструмент для их улучшения, а не для обхода.
Ресурсы для разработчиков
- Copilot Chat в GitHub
- Поиск существующих уязвимостей в коде
- GitHub Skills - Начало работы с GitHub Copilot
Метрики для просмотра
Оценивать испытания новых инструментов и следить за тем, чтобы ваши полные внедрения обеспечивали стабильные улучшения, отслеживать результаты и вносить корректировки при необходимости. Мы рекомендуем учитывать ключевые зоны качества, скорости и удовлетворения застройщиков, а также то, как эти зоны объединяются для достижения бизнес-результатов.
Вот несколько метрик для оценки влияния Copilot на данную конкретную цель.
- Коэффициент задолженности по ценным бумагам. Используйте обзор безопасности, чтобы увидеть, снижается ли количество оповещений со временем.
- Пора устранить проблемы с безопасностью. Используйте обзор безопасности, чтобы проверить, сокращается ли время на устранение проблем со временем.