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


Рекомендации по защите секретов

В этой статье приводятся рекомендации по защите секретов и снижению риска несанкционированного доступа. Следуйте этим рекомендациям, чтобы убедиться, что вы не храните конфиденциальную информацию, например учетные данные в коде, репозитории GitHub, журналы, конвейеры непрерывной интеграции и непрерывного развертывания (CI/CD) и т. д. Рекомендации в этой статье компилируются из рекомендаций отдельных служб, а также из Microsoft Cloud Security Benchmark (MCSB).

Общие рекомендации

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

Проведение аудита для выявления секретов

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

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

Избегайте жесткого кодирования секретов

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

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

Рекомендации по защите секретов приложений

Использование защищенных хранилищ ключей

Использование хранилищ безопасных ключей гарантирует, что секреты хранятся в безопасном зашифрованном расположении. Службы, такие как Azure Key Vault и Управляемый HSM Azure, обеспечивают надежные функции безопасности, включая управление доступом, ведение журнала и автоматическую смену. Этот подход позволяет централизованно управлять секретами и снижает риск несанкционированного доступа.

Для обеспечения еще большей безопасности, особенно для конфиденциальных или критически важных секретов, рассмотрите возможность шифрования секрета с помощью хранилищ ключей в аппаратной модели безопасности (HSM), которая обеспечивает расширенную защиту по сравнению с хранилищами секретов на основе программного обеспечения. Общие сведения обо всех предложениях по управлению ключами в Azure и рекомендациях по выбору см. в статье "Управление ключами" в Azure и выбор подходящего решения для управления ключами.

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

Регулярное сканирование базы кода для внедренных секретов может предотвратить случайное воздействие. Такие средства, как сканер учетных данных Azure DevOps и функция проверки секретов GitHub, могут автоматически обнаруживать и предупреждать вас о любых секретах, найденных в репозиториях. Интеграция этих средств в конвейер CI/CD обеспечивает непрерывный мониторинг. Важно рассматривать любой секрет, найденный этими средствами сканирования, как скомпрометированные, что означает, что оно должно быть немедленно отменено и заменено для обеспечения целостности вашей системы безопасности.

Использование управляемых удостоверений

Управляемые удостоверения в Azure обеспечивают безопасный способ проверки подлинности приложений в службах Azure без хранения учетных данных в коде. Включив управляемые удостоверения для ресурсов Azure, вы можете безопасно получить доступ к Azure Key Vault и другим службам, уменьшая необходимость обработки секретов вручную. Этот подход не только сводит к минимуму создание секретов, но и уменьшает область поверхности для потенциальных нарушений, так как ответственность за управление учетными данными делегирована платформе.

Применение детализированного управления доступом

Следуйте принципу наименьшей привилегии, применяя детализированный контроль доступа к секретам. Используйте управление доступом на основе ролей Azure (RBAC), чтобы убедиться, что только авторизованные сущности имеют доступ к определенным секретам. Регулярно просматривайте и обновляйте разрешения доступа, чтобы предотвратить несанкционированный доступ. Кроме того, рекомендуется реализовать отдельные роли, такие как пользователи, администраторы и аудиторы, чтобы управлять доступом к секретам, гарантируя, что только доверенные удостоверения имеют соответствующий уровень разрешений.

Ознакомьтесь с руководством по azure Key Vault RBAC.

Регулярно поворачивать секреты

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

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

Мониторинг и доступ к журналам

Включите ведение журнала и мониторинг для системы управления секретами для отслеживания доступа и использования. Используйте ведение журнала Key Vault и (или) службы, такие как Azure Monitor и Сетка событий Azure, для мониторинга всех действий, связанных с секретами. Это обеспечивает видимость того, кто обращается к секретам и помогает обнаружить любое подозрительное поведение или потенциальные инциденты безопасности. Обслуживание подробных следов аудита имеет решающее значение для проверки и проверки доступа к секретам, что может помочь предотвратить кражу удостоверений, избежать отказа и уменьшить ненужный риск.

Реализовать изоляцию сети

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

Шифрование секретов при хранении и передаче

Убедитесь, что секреты шифруются как неактивных, так и передаваемых данных. Azure Key Vault безопасно хранит секреты с помощью шифрования конвертов, где ключи шифрования данных (DEK) шифруются ключами шифрования ключей (KEKs), обеспечивая дополнительный уровень безопасности. Этот подход повышает защиту от несанкционированного доступа. Кроме того, используйте протоколы безопасной связи, такие как HTTPS, для шифрования данных между приложениями и хранилищем ключей, обеспечивая защиту секретов во время хранения и передачи.

В Azure шифрование неактивных данных реализуется в различных службах с помощью шифрования AES 256, а данные в передаче защищены через TLS и MACsec, чтобы предотвратить несанкционированный доступ во время передачи. Эти методы шифрования обеспечивают комплексную защиту данных, будь то хранение или передача данных между системами. Дополнительные сведения см. в разделе "Шифрование неактивных и передаваемых данных".

Безопасное распространение секретов

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

Рекомендации для конкретных служб

Отдельные службы могут иметь дополнительные рекомендации и рекомендации по защите секретов. Далее приводятся некоторые примеры.

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

Минимизация рисков безопасности является общей ответственностью. Необходимо упреждать в принятии мер по защите рабочих нагрузок. Узнайте больше о общей ответственности в облаке.

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