Упражнение. Защита данных при передаче, хранении и просмотре

Завершено

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

Сетевое шифрование TLS

База данных SQL Azure всегда применяет шифрование TLS для всех подключений, что гарантирует, что все данные шифруются при передаче между базой данных и клиентом. С помощью шифрования TLS можно убедиться, что любой пользователь, который может перехватывать трафик между сервером приложений и базой данных, не сможет считывать данные. TLS-шифрование — это стандарт защиты трафика при передаче через Интернет, и в этом случае он гарантирует, что ваш сетевой трафик, выходящий из базы данных Azure SQL и поступающий в нее, защищен по умолчанию.

Прозрачное шифрование данных

База данных SQL Azure обеспечивает защиту неактивных данных с помощью прозрачного шифрования данных (TDE). TDE выполняет шифрование и расшифровку базы данных, связанных резервных копий и неактивных файлов журналов транзакций в реальном времени без необходимости изменения приложения. Прозрачное шифрование данных выполняет шифрование операций ввода-вывода в режиме реального времени и расшифровку данных на уровне страницы с помощью ключа шифрования базы данных. Каждая страница расшифровывается при считывании в память, а затем снова шифруется перед записью на диск.

По умолчанию TDE включено для всех вновь развертываемых баз данных SQL Azure. Важно убедиться, что шифрование данных не отключено. Более старые базы данных SQL Server Azure могут не включать TDE.

Просмотрите портал Azure, где TDE настроена в базе данных MarketplaceDb.

  1. Войдите на портал Azure, используя ту же учетную запись, с помощью которой вы активировали песочницу.

  2. В строке поиска в верхней части портал Azure найдите marketplaceDb, а затем выберите базу данных.

  3. В области меню слева в разделе "Безопасность" выберите "Шифрование данных".

  4. В параметрах шифрования данных убедитесь, что Шифрование данных включено. Вы должны увидеть состояние шифрования — Зашифровано.

Так как новые базы данных шифруются по умолчанию, вы можете убедиться, что данные шифруются на диске сразу после создания базы данных.

Примечание.

Azure включает встроенную службу под названием "Microsoft Defender для облака", которая позволяет контролировать безопасность среды, включая базы данных SQL Azure. Microsoft Defender для облака помечает все базы данных, которые не включили TDE, предоставляя возможность сообщать и принимать меры для защиты данных.

Динамическое маскирование данных

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

Возможно, вы не хотите, чтобы пользователи могли видеть полный номер телефона или адрес электронной почты, но вы по-прежнему хотите сделать часть данных доступными для представителей службы клиентов для идентификации клиента. С помощью функции динамического маскирования данных База данных SQL Azure можно ограничить отображаемые пользователем данные. Динамическое маскирование данных — это функция безопасности на основе политики, которая скрывает конфиденциальные данные в результирующем наборе запроса по указанным полям базы данных, а данные в базе данных не изменяются.

В правилах маскирования данных указывается столбец, к которому применяется маска, и способ маскирования данных. Вы можете создать собственный формат маскирования или использовать одну из стандартных масок, например:

  • "Значение по умолчанию", которая отображает значение по умолчанию для выбранного типа данных;
  • Значение кредитной карты, которое отображает только последние четыре цифры числа, преобразуя все остальные числа в нижний регистр x.
  • "Адрес электронной почты", которая скрывает имя домена и все символы имени учетной записи, кроме первого;
  • "Число", которая отображает случайное число в заданном диапазоне значений. Например, можно отображать случайный месяц (значение от 1 до 12) в поле, обозначающем месяц истечения срока годности кредитной карты, а для года задать диапазон от 2018 до 3000.
  • "Специальная строка", которая позволяет указать число отображаемых символов в начале значения, число отображаемых символов в конце значения и символы, которые будут повторяться в маскируемой части данных.

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

Ознакомьтесь с тем, как маскирование данных будет работать в базе данных MarketplaceDb .

  1. На портале на панели базы данных marketplaceDb в меню слева в разделе Безопасность выберите Динамическое маскирование данных.

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

    Снимок экрана с изображением портала Azure, на котором представлен список рекомендованных масок для различных столбцов из образца базы данных.

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

  3. Выберите следующие значения.

    Параметр Value
    Схема SalesLT
    Таблицу Клиент
    Столбец Phone (nvarchar)
    Формат поля маскирования Настраиваемая строка (префикс [заполнение] суффикс)
    Открытый префикс 0
    Строка заполнения XXX-XXX-
    Открытый суффикс 4
  4. Выберите Добавить, чтобы завершить добавление правила маскирования.

    Снимок экрана портала Azure: значения, которые добавляются в правило маскирования.

  5. Добавьте еще один адрес электронной почты. Нажмите кнопку "Добавить маску" в верхней части, чтобы открыть диалоговое окно "Добавить правило маскирования".

    Параметр Value
    Схема SalesLT
    Таблицу Клиент
    Столбец EmailAddress (nvarchar)
    Формат поля маскирования Адрес электронной почты (aXXX@XXX.com)
  6. Выберите Добавить, чтобы завершить добавление правила маскирования.

  7. Каждая новая маска добавляется в список правил маскирования. Нажмите Сохранить, чтобы применить маски.

Ознакомьтесь с тем, как маскирование данных изменяет запрос.

  1. Теперь войдите в базу данных, но в качестве пользователя ApplicationUser .

    sqlcmd -S tcp:[server-name].database.windows.net,1433 -d marketplaceDb -U 'ApplicationUser' -P '[password]' -N -l 30
    
  2. Выполните следующий запрос.

    SELECT FirstName, LastName, EmailAddress, Phone FROM SalesLT.Customer;
    GO
    

    Посмотрите, как выходные данные маскируются.

    FirstName     LastName      EmailAddress         Phone
    ------------- ------------- -------------------- ------------
    Orlando       Gee           oXXX@XXXX.com        XXX-XXX-0173
    Keith         Harris        kXXX@XXXX.com        XXX-XXX-0127
    Donna         Carreras      dXXX@XXXX.com        XXX-XXX-0130
    Janet         Gates         jXXX@XXXX.com        XXX-XXX-0173
    ...
    

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