Azure Purview como Ferramenta de Governança e Compliance

Desde a muito mantemos diagramas de bancos de dados em arquivos lógicos, que são utilizados pelos DBAs e desenvolvedores para criação de aplicações e recentemente de outras funções para dashboards.

Porem com o avanço de leis de compliance como GDPR e LGPD conhecer quem tem acesso e como acessa dados sensíveis se tornou um recurso essencial.

Muitas ferramentas de DLP já fazem com o uso de conectores esse mapeamento, como por exemplo o Security Center pode estender para SQL Server nos planos pagos.

Mas e se possuimos multiplas bases de dados em diferentes produtos, plataformas e serviços?   Neste caso temos o Azure Purview.

O que o Purview oferece?

Com o catálogo de conectores você poderá incluir diversas fontes de dados que vão de SQL e Oracle a AWS S3 e Azure BLOB e descobrir o que está sendo disponibilizado e automaticamente mapear classificações e sensibilidade dos dados.

Por exemplo, quem são os usuários que consomem no Power BI uma determinada base de dados que contem cartões de crédito?    Quais storage accounts possuem dados não estruturados contendo documentos pessoais dos clientes ou exames médicos?

Nessa linha de atuação é que teremos o Purview atuando, tanto para catalogar dados sensiveis como funcionar como um dicionário de dados e mapeamento de acesso aos dados da empresa pelo Power BI, por exemplo.

Requisitos do Purview

Para utilizar o Purview será necessário criar uma instancia de execução (começa com C1 de 4 “unidades”), um Hub de Eventos e uma Storage Account

image

image

O custo do Purview é computado pelas unidades e tambem pelos scans que são efetuados, sendo que alguns ainda estão em preview e com custo zero até 02/Agosto quando escrevo este artigo Pricing - Azure Purview | Microsoft Azure

Acessando o Purview Studio

Toda a administração é feita pelo Studio, onde criamos os conectores e realizamos os scans.

Importante: O acesso aos dados é utilizado a managed account com o nome do recurso que você criou e seguindo os passos para cada tipo de recurso que irá mapear.

clip_image001

Registrando as Fontes de Dados

O Purview já traz uma série de conectores:

clip_image001[5]

O passo a passo abaixo é a conexão com a fonte de dados SQL Database. Primeiro definimos a fonte de dados e a coleção, que nada mais é do que antes da conexão criar agrupamentos como podem ser visto na tela anterior.

clip_image001[7]

Na sequencia definimos como será acessado os dados, pois na configuração acima vemos o servidor e banco de dados mas ainda não fizemos o acesso. Para isso será definido o tipo de identidade, sendo que no exemplo utilizei a managed account dando as permissões de read no SQL Server Management Studio (link no see more):

clip_image001[11]

Essa configuração de acesso são os SCANS, onde vão as definições do que será acessado, no exemplo por ser uma conexão SQL Server o database. Na sequencia verá que selecionei as tabelas e quais classificações quero mapear (note que são as mesmas do Office 365):

clip_image001[13]

clip_image001[15]

Uma vez configurados os scans você poderá definir se ele será executado uma unica vez ou de forma recorrente, sendo que isso pode ser feito abrindo os objetos abaixo da coleção, onde podem ser visto a lista, acessados os diferentes processos e os detalhes:

clip_image001[19]

clip_image001[22]

clip_image001[17]

Classificando e detalhando os dados mapeados

Uma vez os scans executados, automaticamente o Purview irá criar os assets como pode ser visto na função Browse Assets como a sequencia abaixo:

clip_image001[24]

clip_image001[26]

Uma vez aberta uma base de dados mapeada podemos definir detalhes, por exemplo criar uma classificação de dados para a base inteira, definindo quem são os donos/arquitetos dos dados e até definir para cada coluna um tipo especifico:

clip_image001[28]

clip_image001[30]

clip_image001[32]

clip_image001[34]

clip_image001[36]

clip_image001[38]

Nessa sequencia de telas podemos ver que os contatos são importantes para identificar quem conhece e mapeou aquela base de dados. Tambem vemos como definir descrição e classificação de dados individualmente, alem das que o Purview automaticamente já detectou.

Ainda nos assets posso vizualizar uso de dados, por exemplo quais bases de dados estão sendo usadas no Power BI de usuários PRO?   O Purview permitirá que vc tenha essa visualização como abaixo:

clip_image001[40]

clip_image001[42]

Customizando dados sensíveis e criando o glossário

Nos exemplos acima e na interface do Purview podem ser vistos dois itens, um já conhecido que é a classificação automática de sensibilidade e outra que é o glossário.

A classificação já tem pré-carregados os dados do Office 365 que são padrão dos compliances que a Microsoft já fornece, mas você poderá customizar novos assim como é feito no Compliance do Office 365:

clip_image001[44]

Alem disso poderá criar termos de glossário que nada mais são do que um dicionário de dados para consulta. É importantíssimo que isso seja feito, pois será uma base de dados para que administradores e outros especialistas consigam saber por exemplo, de bases de dados especificas.

Uma vez criado os verbetes do glossário, em cada fonte de dados, tabela e coluna será possivel identificar essa classificação como já mostrado na tela de dados da tabela.

clip_image001[46]

Interessante que para os itens é possível incluir atributos, ou seja indicar que se classificar uma tabela ou coluna como confidencial indicar um atributo obrigatório para escrever o motivo:

clip_image002

CONCLUSÃO

Uma vez mapeados com o Purview é possivel ter visibilidade de uso dos dados sensiveis, classificação dos dados em geral e montar um dicionario de dados moderno.

Utilizando o Azure Application Insigths na Analise de Vulnerabilidades

Uma das ferramentas que são criadas costumeiramente nas aplicações Web hospedadas, o Azure Application Insigths, é subutilizado pelos time de desenvolvimento, operações e segurança.

O que é possivel com o App Insights?

O App Inisgths captura log e executa tarefas para avaliar performance, estabilidade e estatísticas de uso de um web app.

Quando comparado a outras ferramentas comuns com o Google Analytics é importante lembrar que o App Insigths tambem funciona como um APM (App Performance Monitoring) detalhando funções e linhas de código como chamadas a banco de dados, que estão gerando lentidão.

Particularmente gostou muito de algumas funções Smart detection settings que são regras comuns para detecção de tendências ou problema, além de métricas e as Live Metrics como abaixo. Alias, veja que a página de contato já demonstra um ataque simulado na chamada da página de contato:

Performance

Metricas-1

Outra função interessante que utilizo com frequencia em projetos é Avaliabiliy onde podemos criar regras de teste com páginas especificas em diversas localidades do Azure para funcionar como o antigo Global Monitoring Service.

image

O foco neste post não é detalhar as funções de APM, mas sim o uso pelo time de segurança.

Como o App Insights é útil para Segurança?

Primeiro temos o Application Map de onde iniciamos as analises. Basicamente ele é um modelo simples de dependencias e comunicação de dentro e de fora, incluindo as analises de disponibilidade que mostramos anterioremente.

Application Map

Mas ao retirar o WAF para gerar os logs e demonstrar nesse post, o resultado foi muito rápido como pode ser visto no diagrama abaixo.

Veja que os dois endereços na parte inferior são fontes desconhecidas e poderiam ser ataques, enquanto também se vê claramente os rastreadores e robôs do Google e outro site, mas estes não seriam o problema.

Ataque-1

Ao pedir acima os detalhes de pacotes e comunicação trocada com o meu blog com este endereço é possivel ver o que eles tentaram e quantas vezes.

Ataque-2

O passo seguinte é clicarmos em Samples ou na lista do lado direito para analisar as queries que foram recebidas.

Como pode ser visto abaixo, é possivel identificar de onde e como o acesso foi realizado por esse dominio que estava analisando os detalhes.

Ataque-3

Mas vamos deixar rodando por mais tempo com o WAF desativado e veremos com um histórico detalhadas.

Validando ataques reais

Agora com mas tempo exposto (como gostamos de correr risco Smile) o meu blog pôde ter mais dados para serem demonstrados.

Vamos abrindo em detalhes os itens no mapa onde demonstraram as estatisticas de falhas ocoridas.

Na primeira tela de detalhes vemos que só de falhas nas ultimas 24 horas eu recebi mais de 11 mil chamadas!!!

Failures-1

Mas a alegria se transforma em tristeza, ou melhor preocupação, essas 11290 chamadas na verdade fazem parte de um ataque orquestrado por força bruta…

Failures-2

Agora vamos começar a entender melhor o que estão tentando fazer no meu blog. Para isso vamos fazer uma “caminhada” pelos dados do App Insigths.

Do lado esquerdo já podemos ver que os ataques se deram por tentar enviar parametros e listas diretamente nas páginas do blog.

Failures-3

Abrindo mais detalhes consigo descobrir que a fonte do ataque são PCs na China usando um SDK especifico. Em alguns casos é possivel ver tambem o IP e com isso criar uma lista de bloqueio ou potenciais atacantes.

Failures-4

Segue um outro exemplo mais recente que teve quase a mesma origem (outra cidade chinesa), mas com detalhes de sofisticação onde foi utilizado um script e não apenas um SQL Injection:

Failures-4a

Continuando a caminhada posso ver a sequencia que o “usuário” utilizou no meu site, vejam que a lista de tentativas foi grande, e muitas vezes na mesma página:

Failures-5

O ataque na tela acima é um SQL Injection muito comum de ser utilizado em sites web por atacantes. Veja detalhes em CAPEC - CAPEC-66: SQL Injection (Version 3.5) (mitre.org)

O que fazer ao detectar um ataque ao site site ou aplicação?

Em geral os Web Application Firewall seguram boa parte dos ataques que vimos acontecer no meu blog em 24 horas, tanto que eu não fazia ideia antes que poderiam chegar a quase 12 mil em apenas 24 horas.

Mas mesmo que tenha um WAF é importante que monitore constantemente o numero de falhas em páginas para identificar se é um problema de aplicação ou um ataque que está tentando encontrar as vulnerabilidades, como os exemplos acima do meu site.

Outra importante ação é ajudar os desenvolvedores e não aceitar comandos diretamente do POST e muito menos concatenar cadeias de caracteres  dentro de parâmetros e comandos internos.

Utilize tambem uma biblioteca de desenvolvimento robusta, por exemplo no meu teste de exposição não tive o blog invadido pois o próprio .NET já possui filtros para evitar comandos enviados diretamente no POST ou URL.

Como um recurso mais sofisticado para ataques direcionados, veja a opção Create Work Items onde poderá criar automações, por exemplo barrar um determinado serviço ou até derrubar um servidor quando detectar uma anomalia muito grande!

Relembrando que o App Insights se integra ao Log Analytics para consultas e ao Sentinel para segurança inteligente de Threats!!!!

Conclusão

Se não conhece, não tem habilitado ou não utiliza o App Insights comece agora!

Não o limite a analises de performance e sessões, aprenda a ler também os indícios de falhas de segurança antes que uma invasão ocorra.

Auditando acesso a dados sensiveis no Azure SQL Database

A algumas semanas atrás publiquei o artigo sobre o uso do Azure Purview como Ferramenta de Compliance (marcelosincic.com.br) e recebi varios questionamentos sobre auditoria no acesso a dados sensiveis.

Essa é uma duvida comum, pois o Purview identifica dados sensiveis nas diversas fontes de dados mas ele não faz auditoria do acesso a estes dados com log das consultas.

Para auditar o acesso é necessário usar as ferramentas de cada fonte de dados, uma vez que são diferentes. Por exemplo acesso a arquivos ou troca de dados é feito pelo DLP do Office 365 (Information Protection), acesso no SQL Server, etc.

Azure SQL Data Discovery & Classification

Parte da solução do Log Analytics, uma vez configurado terá acesso a estatisticas e detalhamento dos acessos.

As duas primeiras capturas abaixo são o meu painel do LAW com os 6 quadros do Solution onde posso identificar quem foram os IPs, usuários e dados acessados.

01

02

E ao clicar em qualquer um dos quadros terá acesso a consulta que gerou os dados, o que irá incluir um dado muito importante que é o SQL utilizado para acessar os dados, permitindo visualizar em detalhes o que foi visto pela sintaxe do comando!

03

Configurando o SQL Data Discovery & Classification

A configuração do recurso não é complexa e pode ser feita em poucos minutos através do próprio portal do Azure.

04

Existem duas formas de classificar os dados, a primeira é manual. Para isso acesse a opção Classification no painel acima e inclua manualmente as tabelas e respectivas colunas.

A fazer isso irá identificar o grupo e a criticidade dos dados da coluna para serem categorizados.

05

A segunda forma de categorizar dados é utilizando as regras de classificação automáticas que ainda está em Preview mas já é possivel visualizar os resultados.

Clique no botão Configure no painel do recurso e terá acesso aos labels de criticidade, que são os mostrados quando no modo manual incluimos as colunas.

06

Veja que no exemplo acima eu criei a minha própria classificação como “LGPD” e nela inclui alguns nomes de colunas que entendo serem necessárias (apenas como exemplo).

Para criar os conteudos que irão fazer parte automática da classificação, clique no botão Manage information types e verá os tipos já criados e poderá incluir novos tipos. No exemplo abaixo inclui RG, CPF e CNPJ mas poderia ter colocado alias como, por exemplo “raz%soci%” ou outros com coringas (%).

07

Importante: Aqui estamos classificando NOMES DE COLUNAS e não DADOS.

Log Analytics Solutions

Uma vez definidas as regras ou colunas com dados sensiveis, o Log Analytics ao qual o banco de dados está mapeado irá mostrar a solução instalada para gerar os gráficos que inclui no inicio deste artigo.

08

09

Porem, notará que no painel de monitoração irá aparecer uma mensagem dizendo que este tipo de painel (View) está sendo depreciado e que vc deveria criar um Workbook com as consultas. Isso não é necessário fazer agora, pois o recurso da solução irá funcionar normalmente.

Mas se desejar criar um workbook, clique nos quadros de recurso abrindo as consultas e as copie em um workbook customizado.