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


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

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

  • Явным образом проверьте. Всегда выполняйте аутентификацию и авторизацию на основе всех доступных точек данных.
  • Используйте минимальный доступ к привилегиям. Ограничьте доступ пользователей с помощью технологий 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.

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

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

Этап предварительной коммитной работы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы лучше защитить организацию, используйте GitHub OpenID Connect (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 2022, ускоряйте и защитите код в облачной разработке.

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

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