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