Поделиться через


Внедрение безопасности нулевого доверия в рабочий процесс разработчика

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

  • Явным образом проверьте. Всегда выполняйте аутентификацию и авторизацию на основе всех доступных точек данных.
  • Используйте минимальный доступ к привилегиям. Ограничьте доступ пользователей с помощью технологий Just-In-Time и Just-Enough-Access (JIT/JEA), адаптивных политик на основе риска и защиты данных.
  • Предполагайте наличие нарушения защиты. Минимизируйте радиус поражения и ограничьте доступ к сегментам. Используйте сквозное шифрование и аналитику для обеспечения видимости, обнаружения угроз и усиления защиты.

Внедрение безопасности в рабочий процесс помогает:

  • Быстрее выявляйте уязвимости безопасности.
  • Предоставьте более безопасные средства разработчика.
  • Создайте подключения для улучшения совместной работы между группами безопасности и разработки.

Инновации и защита рабочего процесса при создании кода

Единое решение Майкрософт, иллюстрированное на следующей схеме, наводит мосты между командами DevOps и SecOps, чтобы ускорить и обезопасить разработку от кода до облака.

На схеме показаны технологии, составляющие единое решение для разработки кода в облако.

Наше решение для защиты DevOps зависит от двух основных компонентов: предоставление разработчикам инструментов для обеспечения инноваций и защиты рабочего процесса разработчика по мере создания кода разработчиками. Просмотрите сеанс ускорения и защиты вашего кода для облачной разработки из Microsoft Build 2022, чтобы узнать, как компоненты могут обеспечить безопасность вашей среды разработки.

Реализуйте следующие рекомендации, которые совместно работают в Azure и GitHub для защиты решения для разработки.

  • Поскольку безопасность начинается как только разработчики начинают клонировать код, включите DevSecOps с Azure и GitHub для обеспечения взаимодействия между командами DevOps и SecOps и защиты сред разработки.
  • Предоставляет гибкие и мощные средства разработчика для любого разработчика, языка и стека с помощью Visual Studio и Visual Studio Code.
  • Упрощение подключения и совместной работы разработчика с помощью всего средства жизненного цикла разработки в облаке с помощью GitHub Codespaces и Microsoft Dev Box.
  • Включите встроенную защиту интеллектуальной собственности для кода, который больше не распределяется по нескольким местам. Помогите командам сотрудничать, разрабатывать, автоматизировать и развертывать код, где бы они ни хотели, с помощью GitHub Actions и Azure Pipelines.
  • Получите рекомендации по безопасности и непрерывные отзывы о безопасности в рабочем процессе разработчика с помощью проверки кода, проверки секретов и проверки зависимостей с помощью GitHub Advanced Security.
  • Внедрите безопасность нулевого доверия во всей организации с помощью служб управления удостоверениями в Microsoft Entra ID.

Интеграция безопасности нулевого доверия в жизненный цикл разработки

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

Предкоммитный этап

  • Моделирование угроз
  • Плагин безопасности для IDE
  • Предварительные крючки
  • Безопасные стандарты программирования
  • Рецензирование коллегами

Восемьдесят пять процентов дефектов кода появляются во время этапа подготовки разработки, в основном из-за человеческой ошибки. Сосредоточьтесь на безопасности, прежде чем зафиксировать свой код, написав его в Visual Studio Code, Visual Studio или GitHub Codespaces, чтобы выявить уязвимости и обеспечить безопасность кода. Используйте коллегиальные проверки, чтобы поощрять безопасное программирование.

Этап коммита (CI)

  • Анализ статического кода
  • Модульные тесты безопасности
  • Управление зависимостями
  • Проверка учетных данных

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

Этап развертывания (CD)

  • Сканирование инфраструктуры как кода (IaC)
  • Динамическое сканирование безопасности
  • Проверки конфигурации облака
  • Тесты принятия безопасности

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

Управление и мониторинг этапа

  • Непрерывный мониторинг
  • Аналитика угроз
  • Некритические анализы после инцидентов

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

Внедрение сканирования зависимостей, кода и секретов

Чтобы упростить защиту кода для разработчиков, используйте собственные и автоматизированные возможности для обеспечения непрерывной обратной связи с функциями непрерывной безопасности на протяжении всего жизненного цикла разработки. Обеспечьте общую безопасность для разработчиков и сообществ с помощью сканирования зависимостей, сканирования кода и сканирования секретов в GitHub Advanced Security.

Проверка зависимостей

  • Интегрированная проверка зависимостей
  • Оповещения и обновления системы безопасности

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

Проверка кода

  • Расширяемая платформа для сканирования кода
  • Интегрированная в рабочий процесс разработчика
  • Поддерживается ведущим обработчиком CodeQL в отрасли

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

Сканирование секретов

  • Сканировать утечки конфиденциальных данных в общедоступных и частных репозиториях
  • Партнерство с 40+ поставщиками
  • Защита от push-уведомлений
    • Переход от исправления к предотвращению
    • Проверка секретов высокой степени конфиденциальности
    • Включение защиты с помощью одного выбора

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

Управление рабочими удостоверениями и обеспечение их безопасности

  • Управление жизненным циклом
  • Управление доступом
  • Безопасный адаптивный доступ

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

Чтобы снизить вероятность утечки секретов и учетных данных, периодически проводите проверки доступа. Требовать от пользователей проверки своих учетных записей и удаления ненужных прав доступа. Сообщите пользователям о перепривилизованных и недоиспользуемых привилегиях доступа. Обсудите, как защитить удостоверения рабочих нагрузок от утечки. Включите условный доступ, чтобы обеспечить получение доступа из ожидаемых ресурсов.

Защита удостоверений с помощью GitHub OIDC и федерации идентификаций рабочих нагрузок Microsoft Entra

Чтобы лучше защитить организацию, используйте GitHub OpenID Connect (OIDC) с федерацией удостоверений для рабочих нагрузок Microsoft Entra и минимизируйте необходимость хранения и доступа к секретам. Безопасное управление секретами субъекта-сервера Azure и другими ресурсами облачных учетных данных, чтобы свести к минимуму время простоя службы из-за истекшего срока действия учетных данных. Интеграция с платформами разработчиков, такими как GitHub Actions, для безопасной сборки приложений.

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

Схема иллюстрирует шаги рабочего процесса федерации идентификаций нагрузки.

  1. Настройте доверие в идентификаторе Microsoft Entra и запросите токен.
  2. Настройте рабочий процесс GitHub, чтобы разрешить действиям получить маркер.
  3. Рабочий процесс GitHub отправляет запрос в сервис Azure Identity.
  4. Идентификатор Microsoft Entra проверяет доверие приложения и получает ключи для проверки маркера.
  5. Microsoft Entra ID получает и выдает токен.
  6. Действие развертывания использует токен доступа Microsoft Entra для развертывания в ресурсы в Azure.

Посмотрите демонстрацию рабочего процесса идентификации рабочих нагрузок при помощи федерации от April Edwards, старшего адвоката по облачным технологиям и руководителя практики DevOps. Демонстрация начинается с отметки 19:14 в сеансе Microsoft Build 2022, ускоряйте и защитите код в облачной разработке.

Следующие шаги

  • Зарегистрируйтесь в Azure Developer CLI, средство с открытым исходным кодом, которое ускоряет время, необходимое для начала работы в Azure.
  • Настройте Azure, чтобы доверять OIDC GitHub в качестве федеративного удостоверения. OpenID Connect (OIDC) позволяет рабочим процессам GitHub Actions получать доступ к ресурсам в Azure без необходимости хранить учетные данные Azure в виде секретов GitHub.
  • Реализуйте принципы нулевого доверия, как описано в меморандуме 22-09 (в поддержку исполнительного указа США 14028 года, улучшения кибербезопасности страны) с помощью Идентификатора Microsoft Entra в качестве централизованной системы управления удостоверениями.
  • Ускорьте и защитите код с помощью Azure DevOps с помощью средств, которые предоставляют разработчикам самый быстрый и безопасный код для облачного интерфейса.
  • Обеспечение безопасности среды разработчика помогает вам реализовать принципы нулевого доверия в средах разработки, используя лучшие практики для минимизации привилегий, обеспечения безопасности ветвей и доверия инструментам, расширениям и интеграциям.
  • Безопасные среды DevOps для Zero Trust описывают рекомендации по защите сред DevOps для предотвращения взлома хакерами в рабочие компьютеры разработчиков, заражения конвейеров развертывания вредоносными скриптами и получения доступа к данным производства через тестовые среды.
  • Настройка токенов описывает информацию, которую можно получить в Microsoft Entra токенах. В нем объясняется, как настроить маркеры для повышения гибкости и контроля при увеличении безопасности нулевого доверия приложений с минимальными привилегиями.
  • Настройка утверждений о принадлежности к группам и ролей приложений в токенах объясняет, как настроить ваши приложения с использованием определений ролей и назначить группы безопасности ролям приложений. Эти методы помогают повысить гибкость и контроль при увеличении безопасности нулевого доверия приложений с минимальными привилегиями.