Implementar a Máscara Dinâmica de Dados

Concluído

A Máscara Dinâmica de Dados funciona ofuscando os dados para limitar 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 Máscara de Dados Dinâmicos funciona na camada de apresentação e esses dados desmascarados são sempre visíveis por usuários com privilégios elevados.

A Máscara Dinâmica de Dados tem a vantagem de não exigir muitas modificações no aplicativo ou no 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 ficam 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 com uma função parcial que substitui todos os últimos quatro dígitos da coluna. Esse 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 a regra de mascaramento no portal do Azure.

Acesse a tela para adicionar uma regra de mascaramento acessando seu banco de dados no portal do Azure e selecionando a Máscara Dinâmica de Dados na seção Segurança da folha principal do banco de dados.

A Máscara Dinâmica de Dados dá suporte aos 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 nenhuma parte dos valores para o usuário. O usuário verá 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 últimos caracteres, permitindo que os usuários vejam os quatro dígitos finais. Esse mascaramento pode ser útil para agentes de atendimento ao cliente que precisam ver 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 Somente 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 Esse formato de mascaramento deve ser usado em colunas numéricas. Ela mostra um número aleatório como o valor mascarado em vez do valor real. Com cada consulta, um número diferente é exibido. ALTER TABLE [Customer] ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
Cadeia de caracteres personalizada Com essa opção, o texto é mascarado com qualquer valor e pode exibir um número personalizado de caracteres em qualquer extremidade do valor mascarado. Se o comprimento do valor que está sendo mascarado for igual ou inferior ao número de caracteres especificado pela máscara para ser exibido, 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 desmascarados das colunas para as quais o mascaramento está definido, você precisará conceder a permissão UNMASK explicitamente.

Observação

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

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

Caso de uso

O mascaramento de dados é uma solução simples e leve, e é ideal para muitos cenários, incluindo:

  • Mascarar dados de usuários de aplicativos que não têm acesso direto ao banco de dados.

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

  • Fornecer dados mascarados para fornecedores externos, nos quais você precisa proteger informações confidenciais, preservando ainda as relações entre os itens nos dados.

  • Exportar 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 permissão UNMASK. A exportação dos dados estará em um 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 o privilégio UNMASK executar a Importação e Exportação do SQL Server, 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 Máscara Dinâmica de Dados, confira Máscara Dinâmica de Dados.