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.

Azure ARC–Integração de Updates, Change Monitoring e Inventario

Ao utilizar o ARC como já abordamos antes (http://www.marcelosincic.com.br/post/Azure-Arc-Gerenciamento-integrado-Multi-cloud.aspx), é uma duvida comum que recebo de pessoas da comunidade como habilitar as funções de Insigths que aparecem no painel do ARC.

Criando ou Habilitando uma conta de Automação existente

Para isso, o primeiro passo é ter uma conta de automação habilitada em uma região que faça o par com a região onde está o Log Analytics integrado ao ARC.

Para saber as regiões que foram estes pares, utilize o link https://docs.microsoft.com/pt-br/azure/automation/how-to/region-mappings como por exemplo East US1 faz par com East US2 e vice-versa. Ou seja o Log Analytics precisa estar em uma das regiões e a conta de automação na outra.

Zonas

Ao criar a conta de automação e o Log Analytics, vá na conta de automação e configure a integração entre elas.

2-Captura de tela 2021-05-03 115936

No próprio painel da conta de automação já é possivel configurar os recursos de Update, Change Management e Inventários e depois no painel do ARC são visualizados já pronto.

Habilitando os recursos

Cada módulo pode ficar integrado a um Automation ou Log Analytics diferente, o que não é o meu caso.

2-Integrando

Uma vez integrado no proprio painel da conta de automação já é possivel ver os recursos e habilitar os computadores, veja que os que possuem o agente do ARC já irão aparecer no inventário.

3-Inventario

Para o caso de Atualizações (Updates) você precisará escolher os que desejará automatizar.

5-Updates

Lembrando que uma vez configurado o controle de Updates é necessário criar as regras de agendamento para a instalação desses updates.

4-ARC integrado

Por fim, habilitamos o painel de Change Management indicando os computadores que queremos coletar.

6-Habilitando Alteracoes

Na minha opinião este é o melhor dos recursos, já que em segurança e sustentação saber as alterações realizadas em cada servidor é um item essencial.

7-