Вопрос или проблема
Я занимаюсь несколькими проектами по тестированию/скрапингу данных на разных платформах, которые используют ключи API только для чтения и не являются особенно важными. Я могу предвидеть минимальный ущерб, если они будут скомпрометированы.
С учетом этого, я не вижу никаких явных причин, по которым Vault не мог бы безопасно их распределять. Есть ли риск, который я упускаю, используя Vault за пределами демарка?
Ну, одной из возможных угроз могут быть атаки переполнения финансов. Если злоумышленник получает доступ к вашим приватным ключам API, которые работают следующим образом:
- Запрос к API
- API регистрирует запрос и снимает с вашего счета 1/200 использования
- Каждое использование свыше 200 стоит $0.05
Злоумышленник может вызвать у вас финансовые проблемы. Смотрите: https://www.owasp.org/index.php/Cash_Overflow
Другие случаи злоупотребления API можно найти здесь:
https://www.owasp.org/index.php/Category:API_Abuse
Рекомендации? Я настоятельно рекомендую AWS Secrets Manager или Azure Confidential Compute. Они предлагают разные уровни гарантии безопасности ваших ключей API разными способами.
https://aws.amazon.com/secrets-manager/ – Работает, предоставляя API, в который вы можете безопасно хранить другие ключи API, используя шифрование с соблюдением стандартов FIPS, затем вам нужно защитить только секретные ключи/информацию API вашего менеджера секретов.
https://azure.microsoft.com/en-us/solutions/confidential-compute/ – Работает, выполняя безопасные операции в TEE (Доверенной вычислительной среде), криптографически безопасном и логически разделенном вычислительном узле.
Предполагая, что вы планируете, чтобы ваш Vault был доступен из публичного Интернета, и что вы включили аудит логирования:
Учтите возможность атак типа «отказ в обслуживании» на основе заполнения дискового пространства.
Если вы включите аудиторское логирование Vault, Vault будет регистрировать каждый запрос, включая те, которые не прошли аутентификацию. Vault будет хешировать любые секреты, которые могут присутствовать в этих запросах, но оставит любые не-секретные данные (например, ключи записи в хранилище ключей/значений Vault) без изменений.
Если вы используете аудиторское устройство file
, эти логи будут записываться в файл. Если злоумышленник попытается несколько раз записать секрет {"(вставьте десять мегабайт шума здесь)":"1"}
в Vault, вы можете исчерпать дисковое пространство.
Меры по смягчению: настройте свои аудиторские устройства (и любую вспомогательную инфраструктуру) так, чтобы как минимум одно аудиторское устройство не блокировалось. Например, настройте logrotate
с максимальным размером файла.
Ответ или решение
Рассмотрим возможность использования HashiCorp Vault в открытой сети Интернет и связанные с этим риски.
Основные риски:
-
Атаки на основе переполнения финансов: Даже если ваши API-ключи не представляют значительной ценности, злоумышленник может использовать их для несанкционированных запросов к API, которые могут привести к финансовым потерям. Например, если API имеет модель тарификации, основанную на количестве запросов, то злоумышленник может инициировать большое количество запросов и, соответственно, вызвать перерасход средств на вашем аккаунте. Убедитесь, что вы ознакомились с проблемой переполнения наличных средств (Cash Overflow Attack), для дополнительной информации посмотрите OWASP Cash Overflow.
-
Атаки на API: Ваша система может стать уязвимой для различных видов злоупотреблений API. Подробности о таких атаках можно найти в разделе OWASP API Abuse.
-
Отказ в обслуживании на основе дискового пространства: Если вы настраиваете аудит в Vault, он будет записывать все запросы, включая неудачные попытки аутентификации. Если злоумышленник начнет посылать чрезмерное количество запросов с мусорными данными, вы можете столкнуться с проблемой исчерпания дискового пространства. Убедитесь в настройке эффективного управления логами, используя такие инструменты, как
logrotate
, чтобы ограничить размер лог-файлов.
Рекомендации по обеспечению безопасности:
-
Избегайте размещения Vault в открытой сети: Если у вас есть возможность, разместите Vault в защищенной внутренней сети или используйте VPN для ограничения доступа.
-
Используйте альтернативные решения: Рассмотрите возможность использования AWS Secrets Manager или Azure Confidential Compute, так как они предоставляют дополнительные гарантии безопасности для хранения ваших API-ключей.
- AWS Secrets Manager позволяет безопасно хранить и управлять секретами с использованием FIPS-соответствующего шифрования.
- Azure Confidential Compute обеспечивает выполнение защищенных операций в защищенной области исполнения (TEE).
-
Анализ угроз и аудит доступа: Регулярно проводите анализ угроз и обеспечивайте аудит доступа к вашему Vault. Убедитесь, что все действия ведутся с учетом принципа наименьших привилегий.
-
Настройка мониторинга и уведомлений: Включите мониторинг аномальной активности и настройте уведомления о подозрительных запросах к вашему Vault.
Следуя вышеприведенным рекомендациям, вы сможете снизить риск при использовании HashiCorp Vault в открытой сети и защитить свои конфиденциальные данные от злоумышленников.