Implementar mascaramento dinâmico de dados

Concluído

de mascaramento dinâmico de dados funciona ofuscando os dados para limitar a sua exposição. Os usuários que não precisam ver dados confidenciais podem exibir a coluna que contém os dados, mas não os dados reais em si. O mascaramento dinâmico de dados funciona na camada de apresentação, e esses dados não mascarados são sempre visíveis por usuários altamente privilegiados.

O mascaramento dinâmico de dados tem a vantagem de não exigir muitas modificações no aplicativo ou banco de dados. Você pode configurá-lo por meio do portal do Azure ou usando o T-SQL da seguinte maneira.

Captura de tela dos comandos T-SQL de mascaramento de dados dinâmicos.

No exemplo, as colunas PhoneNumber e EmailAddress estão ocultas do usuário DDMDemo que só tem SELECT permissão na tabela. O usuário tem permissão para ver os últimos quatro dígitos do número de telefone, pois ele é mascarado usando uma função parcial que substitui todos, exceto os últimos quatro dígitos na coluna. Este mascaramento é considerado uma função personalizada. Além do T-SQL, se você estiver usando o Banco de Dados SQL do Azure, poderá criar regras de mascaramento dinâmico no portal do Azure:

Captura de tela de como adicionar regra de mascaramento no portal do Azure.

Você pode acessar a tela para adicionar uma regra de mascaramento navegando até seu banco de dados no portal do Azure e selecionando Mascaramento de Dados Dinâmicos na seção Segurança da folha principal do seu banco de dados.

O mascaramento dinâmico de dados suporta os seguintes padrões de mascaramento que podem ser usados:

Função de mascaramento Definição Exemplo de T-SQL
Padrão Mascara os dados na coluna sem expor qualquer parte dos valores ao usuário. O usuário veria XXXX para valores de cadeia de caracteres, 0 para números e 01.01.1900 para valores de data. ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'default()')
Cartão de crédito Mascara todos, exceto os quatro caracteres finais, permitindo que os usuários visualizem os quatro dígitos finais. Esse mascaramento pode ser útil para agentes de atendimento ao cliente que precisam visualizar os últimos quatro dígitos de um número de cartão de crédito, mas que não precisam ver o número inteiro. Os dados são mostrados no formato habitual de um número de cartão de crédito XXXX-XXXX-XXXX-1234. ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'partial(0,"XXXX-XXXX-XXXX-",4)')
Email Apenas a primeira letra e o sufixo de domínio à direita não são mascarados; por exemplo, "aXXX@XXXXXXX.com" ALTER TABLE [Customer] ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
Número Este formato de mascaramento deve ser usado em colunas numéricas. Ele mostra um número aleatório como o valor mascarado em vez do valor real. A cada consulta, um número diferente é exibido. ALTER TABLE [Customer] ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
Cadeia de caracteres personalizada Essa opção permite que o texto seja mascarado com qualquer valor e exiba um número personalizado de caracteres em cada extremidade do valor mascarado. Se o comprimento do valor que está sendo mascarado for igual ou menor do que o número de caracteres que a máscara especifica que devem ser exibidos, somente os caracteres mascarados serão exibidos. ALTER TABLE [Customer] ALTER COLUMN [PhoneNumber] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')

Para permitir que os usuários recuperem dados não mascarados das colunas para as quais o mascaramento está definido, você precisa conceder UNMASK permissão explicitamente.

Nota

É possível identificar dados mascarados usando inferência baseada nos resultados. Se você estiver usando mascaramento de dados, também deverá limitar a capacidade do usuário de executar consultas não planejadas.

Por esse motivo, é altamente recomendável usar mascaramento de dados dinâmicos com outros recursos de segurança, como auditoria, criptografia e segurança em nível de linha, a fim de proteger melhor os dados confidenciais.

Caso de utilização

O mascaramento de dados é um recurso simples e leve, e é ideal para muitos cenários, incluindo:

  • Mascare dados de usuários do aplicativo que não têm acesso direto ao banco de dados.

  • Restringir informações privadas para um grupo de usuários.

  • Forneça dados mascarados a fornecedores externos, onde você precisa proteger informações confidenciais e, ao mesmo tempo, preservar as relações entre os itens nos dados.

  • Exporte uma cópia do banco de dados de produção para um ambiente inferior para fins de desenvolvimento com um usuário que não tenha UNMASK permissão. A exportação dos dados será em formato mascarado.

Importar e exportar dados

Copiar dados de uma coluna mascarada para outra tabela usando SELECT INTO ou INSERT INTO resulta em dados mascarados na tabela de destino.

Quando um usuário sem privilégio de UNMASK executa o SQL Server Import and Export, o arquivo de dados exportado contém dados mascarados e o banco de dados importado conterá dados mascarados inativamente.

Para saber mais sobre como funciona o mascaramento dinâmico de dados, consulte Mascaramento dinâmico de dados.