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

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

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

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

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

Power innovation and secure your workflow as you create code

Единое решение Майкрософт, иллюстрированное на следующей схеме, мосты между командами 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.

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

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

Этап предварительной фиксации

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

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

Этап фиксации (CI)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Управление удостоверениями рабочей нагрузки и безопасностью

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

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

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

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

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

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

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

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

Просмотрите апрель Эдвардс, старший адвокат по облачным технологиям и руководитель практики DevOps, демонстрация рабочего процесса федерации удостоверений рабочей нагрузки. Демонстрация начинается с отметки 19:14 в разделе "Ускорение и защита кода для облачной разработки Microsoft Build 20222", который также доступен на YouTube (внедрено ниже).

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

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