Контроль доступа и шифрование
Защищайте данные в состоянии покоя
«Контроль доступа и шифрование» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.
Защита данных в состоянии покоя
В базах данных хранятся самые ценные данные, поэтому важнее всего два средства защиты: контроль доступа (кто может обращаться к данным) и шифрование (оно делает данные бесполезными в случае кражи).
Вместе они защищают данные как во время работы системы, так и в случае кражи дисков или резервных копий.
Аутентификация и авторизация
Различайте эти два понятия:
- Аутентификация подтверждает, кто Вы (вход в систему, сертификат, токен IAM).
- Авторизация определяет, что Вам разрешено делать после установления личности.
Для надежной защиты базы данных нужны оба механизма: проверенные идентификаторы и разрешения с четко ограниченной областью действия.
Принцип минимальных привилегий
Предоставляйте каждой учетной записи только необходимые разрешения и ничего сверх этого. Служба формирования отчетов должна иметь доступ только для чтения, а приложению, записывающему данные, не следует разрешать выполнять DROP для таблиц.
CREATE ROLE report_reader;
GRANT SELECT ON sales.* TO report_reader;
GRANT report_reader TO 'analytics_svc'@'%';Управление доступом на основе ролей
RBAC объединяет разрешения в роли и назначает роли пользователям. Такой подход лучше масштабируется, чем выдача привилегий каждому пользователю отдельно, и упрощает аудит.
- Определите роли:
read_only,app_writer,dba. - Назначьте пользователей ролям.
- Регулярно проверяйте членство в ролях.
Защита на уровне строк и столбцов
Детализированный контроль ограничивает доступ к данным внутри таблицы.
- На уровне столбцов: скрывайте столбцы с зарплатой или SSN от некоторых ролей.
- Защита на уровне строк (RLS): клиент видит только собственные строки.
-- PostgreSQL row-level security
ALTER TABLE orders ENABLE ROW LEVEL SECURITY;
CREATE POLICY tenant_isolation ON orders
USING (tenant_id = current_setting('app.tenant')::int);Шифрование данных в состоянии покоя
Шифрование данных в состоянии покоя защищает данные на диске. Если кто-то украдет диск или резервный файл, его содержимое будет невозможно прочитать без ключа.
Возможные варианты: полнодисковое шифрование, шифрование файловой системы и встроенное в базу данных прозрачное шифрование данных (TDE).
Прозрачное шифрование данных
TDE автоматически шифрует файлы базы данных. Приложениям не требуются изменения: механизм шифрует данные при записи и расшифровывает при чтении. Это защищает от кражи файлов, но не от злоумышленника, у которого уже есть действующий сеанс работы с БД.
-- SQL Server example concept
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE tde_cert;
ALTER DATABASE appdb SET ENCRYPTION ON;Шифрование на уровне столбцов
Особенно чувствительные поля (номера карт, медицинские данные) следует шифровать на уровне отдельных столбцов. Открытый текст никогда не хранится в базе данных, даже если доступ к ней есть у DBA.
Компромисс: зашифрованные столбцы сложно индексировать и искать по ним, поэтому применяйте этот подход выборочно.
Шифрование при передаче
Данные также необходимо защищать во время передачи по сети. Требуйте TLS для всех соединений между клиентами и базой данных, чтобы учетные данные и наборы результатов нельзя было перехватить.
-- PostgreSQL: force SSL in pg_hba.conf
hostssl appdb webapp 0.0.0.0/0 scram-sha-256
-- reject non-TLS:
hostnossl appdb all 0.0.0.0/0 rejectУправление ключами
Надежность шифрования зависит от того, как Вы обращаетесь с ключами. Никогда не храните ключи рядом с данными, которые они защищают.
- Используйте службу управления ключами (KMS) или HSM.
- Регулярно меняйте ключи.
- Разделяйте обязанности: DBA не должен одновременно хранить главный ключ.
Объединение средств защиты
Многоуровневая модель защиты данных в состоянии покоя:
- Аутентифицируйте каждое соединение (TLS и надежные учетные данные).
- Авторизуйте доступ с помощью RBAC и принципа минимальных привилегий.
- Применяйте RLS и защиту на уровне столбцов там, где нужна детальная настройка.
- Шифруйте данные в состоянии покоя (TDE), а также отдельные чувствительные столбцы.
- Храните ключи в KMS отдельно от базы данных.
Быстрая проверка
Определите, от каких угроз защищает каждое средство.
Итоги
Защита данных в состоянии покоя обеспечивается сочетанием контроля доступа и шифрования:
- Различайте аутентификацию и авторизацию.
- Применяйте минимальные привилегии и RBAC, а при необходимости — защиту на уровне строк и столбцов.
- Шифруйте данные в состоянии покоя (TDE, на уровне столбцов) и при передаче (TLS).
- Храните ключи отдельно в KMS и регулярно меняйте их.
Часто задаваемые вопросы
Урок «Контроль доступа и шифрование» бесплатный?
Да — полный текст урока «Контроль доступа и шифрование» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.
Чему я научусь в уроке «Контроль доступа и шифрование»?
Защищайте данные в состоянии покоя Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cyber Security Academy?
Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Контроль доступа и шифрование»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cyber Security Academy?
Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Защита от SQL-инъекций
- Контроль доступа и шифрование
- Аудит и мониторинг
- Безопасность резервного копирования и восстановления