Внедрение безопасности нулевого доверия в рабочий процесс разработчика
Как разработчик, вам нужно чувствовать себя уверенно и безопасно, чтобы двигаться на скорости. Потребность в безопасности начинается сразу после клонирования кода. В этой статье вы узнаете, как разрабатывать принципы нулевого доверия, чтобы можно было быстро и безопасно внедрять инновации. Стратегия безопасности нулевого доверия и подход к проектированию и реализации приложений состоит из следующих принципов:
- Результаты проверки должны быть однозначными. Всегда выполняйте аутентификацию и авторизацию на основе всех доступных точек данных.
- Используйте минимальный доступ к привилегиям. Ограничьте доступ пользователей с помощью технологий 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, для безопасной сборки приложений.
Наш рекомендуемый рабочий процесс федерации удостоверений рабочей нагрузки, показанный на следующей схеме, состоит из шести шагов.
- Настройте доверие в идентификаторе Microsoft Entra и запросите токен.
- Настройте рабочий процесс GitHub, чтобы разрешить действиям получить маркер.
- Рабочий процесс GitHub отправляет запрос в идентификатор Azure.
- Идентификатор Microsoft Entra проверяет доверие приложения и получает ключи для проверки маркера.
- Идентификатор Microsoft Entra обращается и выдает маркер.
- Действие развертывания использует маркер доступа 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. В нем объясняется, как настроить маркеры для повышения гибкости и контроля при увеличении безопасности нулевого доверия приложений с минимальными привилегиями.
- Настройка утверждений групп и ролей приложений в маркерах показывает, как настроить приложения с определениями ролей приложения и назначить группы безопасности ролям приложений. Эти методы помогают повысить гибкость и контроль при увеличении безопасности нулевого доверия приложений с минимальными привилегиями.