Вопрос или проблема
Например, у меня есть приложение, которое позволяет пользователям интегрироваться с приложениями сторонних разработчиков. Оно хранит ключи API для этих приложений в AWS RDS в открытом виде (довольно старая функциональность). С точки зрения безопасности, стоит ли даже шифровать эти поля, если в случае утечки данных база данных всё равно зашифрована при хранении и бесполезна для атакующего?
Это может повысить уровень безопасности, если есть атакующий, который имеет доступ к работающей RDS, но не может прочитать/использовать сервис, где хранится ключ (KMS, HSM и т.д.). Это будет сильно зависеть от разумности и наличия контрольных мер доступа.
Стоит ли этот незначительный прирост усилий/стоимости/чего-то еще, зависит от чувствительности ключей API.
.
Ответ или решение
Шифрование колонок с конфиденциальными данными в AWS RDS, который уже защищён шифрованием данных на диске, является важным аспектом защиты информации. Давайте подробнее рассмотрим преимущества шифрования в контексте хранения ключей API и других чувствительных данных.
### 1. Уровень защиты данных
Несмотря на то, что шифрование данных на диске (encryption at rest) значительно снижает риски в случае физического удаления или кражи дисков, оно не защищает данные в памяти или во время передачи. Если злоумышленник получит доступ к экземпляру базы данных, он фактически сможет читать данные в открытом виде, если они не зашифрованы на уровне колонок. Шифрование данных на уровне колонок обеспечивает дополнительный уровень безопасности, даже если база данных уже защищена механическим шифрованием.
### 2. Защита от внутренних угроз
Шифрование колонок может защитить данные даже от внутренних угроз, таких как сотрудники, имеющие доступ к системе, но не обладающие правом доступа к конфиденциальной информации. Если ключи API зашифрованы, их невозможно будет использовать без соответствующего ключа для расшифровки, который должен храниться отдельно с особыми мерами контроля доступа.
### 3. Минимизация ущерба от утечек
В случае компрометации некоторых учетных данных (например, базовой аутентификации), зашифрованные ключи API обеспечивают дополнительный фронт защиты. У злоумышленника не будет доступа к реальным значениям, что может значительно уменьшить ущерб от утечки данных и обеспечить больше времени для реагирования и исправления инцидента.
### 4. Соответствие требованиям нормативных актов
Если ваша организация подлежит нормативным требованиям, связанным с обработкой личных данных (например, GDPR, HIPAA), использование шифрования данных может помочь вам соответствовать этим требованиям. Некоторые регуляторы рекомендуют или требуют шифрование конфиденциальной информации, что делает его не только надобным, но и важным элементом охраны данных.
### 5. Устойчивость к атакам и безопасность на уровне приложений
Злоумышленники могут использовать разные методы для доступа к вашим данным, и шифрование на уровне колонок усложняет их задачу, добавляя ещё одно звено защиты. К тому же, если вы используете надежные механизмы управления ключами, такие как AWS KMS (Key Management Service), вы можете дополнительно усилить безопасность ваших данных и контролировать доступ к ним.
### Заключение
В конечном счете, решение о шифровании колонок с конфиденциальной информацией зависит от уровня чувствительности ваших данных и оценки рисков. Если вы обрабатываете информацию, такая как ключи API, которая может привести к серьезным последствиям в случае утечки, шифрование колонок обосновано и может стать необходимой мерой для повышения вашей общей безопасности.
Хотя это потребует усилий и возможных дополнительных затрат, шифрование данных может значительно повысить вашу защиту информации, снизить риски и обеспечить соответствие требованиям законодательства, тем самым укрепляя ваше доверие со стороны клиентов и партнеров.