Post

Prepare-se para a Transição Obrigatória do TLS 1.2 no Azure

Em outubro de 2024, a Microsoft encerrará o suporte para as versões mais antigas do TLS (Transport Layer Security), especificamente TLS 1.0 e 1.1, em todos os serviços Azure. A partir de 31 de outubro de 2024, todas as interações com serviços do Azure deverão ser feitas via TLS 1.2 ou superior. Essa mudança é parte de um esforço contínuo para garantir segurança e criptografia avançadas nos dados e interações envolvendo os serviços da plataforma.

Se você ainda utiliza versões anteriores do TLS em seus recursos, essa mudança poderá impactar diretamente sua operação, resultando em possíveis interrupções de serviço caso a transição não seja feita a tempo. Caso queira saber mais do anúncio

O que é TLS e por que é importante?

TLS (Transport Layer Security) é um protocolo de criptografia que visa proteger a comunicação entre dois sistemas, como navegadores e servidores ou servidores entre si, garantindo a privacidade e a integridade dos dados. Ele é o sucessor do SSL (Secure Sockets Layer) e tem sido amplamente adotado em diversas camadas de aplicação, especialmente em ambientes de nuvem e serviços web.

A importância de usar o TLS 1.2 ou superior se resume a três pontos principais:

  1. Segurança Aprimorada: As versões mais antigas do TLS (1.0 e 1.1) não oferecem os mesmos níveis de proteção que o TLS 1.2 ou 1.3. Vulnerabilidades conhecidas nessas versões podem ser exploradas, tornando-as menos seguras para proteger dados sensíveis.

  2. Sigilo em Frente Perfeita (Perfect Forward Secrecy): Uma das melhorias trazidas pelas versões mais recentes do TLS é o conceito de “sigilo em frente perfeita”. Isso significa que, mesmo que uma chave de sessão seja comprometida, as sessões passadas não podem ser descriptografadas, garantindo maior segurança a longo prazo.

  3. Conjuntos de Cifras Mais Fortes: TLS 1.2 oferece suporte para conjuntos de cifras mais fortes, protegendo contra ataques criptográficos que podem ser eficazes contra cifras mais antigas usadas em TLS 1.0 e 1.1.

Impacto da Mudança em Ambientes Azure

Em termos práticos, isso significa que qualquer recurso que interaja com os serviços do Azure—como appliances de rede, gateways de aplicação ou scripts automatizados que utilizam APIs do Azure—precisará estar preparado para utilizar TLS 1.2 ou superior até a data limite.

Uma área que pode não ser diretamente afetada por essa mudança são os recursos internos de clusters, como em clusters Kubernetes que usam comunicações internas que não envolvem APIs externas do Azure. Nesses casos, as mudanças no protocolo TLS podem não ser aplicáveis, pois o foco da atualização está nos serviços que fazem interface diretamente com as APIs do Azure.

Ações Recomendadas

  1. Verifique a Compatibilidade de TLS 1.2: Confirme que seus sistemas, servidores e recursos que interagem com o Azure estão configurados para usar TLS 1.2 ou superior. Isso inclui revisar gateways de aplicação (como o Azure Application Gateway), appliances de rede e quaisquer outros pontos que possam utilizar versões legadas do TLS.

  2. Atualize ou Migre: Caso seus recursos ainda dependam de TLS 1.0 ou 1.1, é fundamental fazer a transição para o TLS 1.2 ou superior antes de 31 de outubro de 2024. Esse processo pode envolver atualizações de software ou reconfigurações em appliances de rede e servidores.

  3. Teste suas Aplicações e Infraestrutura: Além de confirmar que os recursos suportam TLS 1.2, é importante testar suas aplicações e infraestrutura para garantir que elas continuarão funcionando corretamente após a migração.

Como Verificar se Seus Recursos Estão Usando TLS Inferior a 1.2

Se você possui recursos no Azure que interagem com serviços da Microsoft, é fundamental verificar se eles estão configurados para usar TLS 1.2. Abaixo, segue um resumo de como identificar a versão de TLS em uso para alguns dos principais recursos do Azure. Referência

1. Storage Accounts

Para verificar a versão mínima de TLS em Storage Accounts:

  • Acesse a conta de armazenamento no portal do Azure.
  • No menu lateral, selecione Configurações.
  • Localize a seção Versão mínima de TLS.

2. Web Apps

Para verificar em Web Apps:

  • Selecione o recurso de Web App.
  • Vá até Configurações e, em seguida, selecione Configurações gerais.
  • Procure por Versão mínima de TLS de entrada.

3. SQL Managed Instance

Para verificar em SQL Managed Instance:

  • Selecione o recurso SQL Managed Instance.
  • Acesse Configurações > Rede.
  • Localize a Versão mínima de TLS.

4. Azure Database for PostgreSQL

Para verificar em Azure Database for PostgreSQL:

  • Selecione o recurso Azure Database for PostgreSQL.
  • Acesse Segurança de conexão no menu lateral.
  • Localize a Versão mínima de TLS.

5. Azure Cosmos DB

Para verificar em Azure Cosmos DB:

  • Acesse o recurso Azure Cosmos DB.
  • No menu lateral, selecione Rede > Conectividade.
  • Verifique o campo Protocolo de Segurança de Camada de Transporte Mínimo.

6. Function Apps

Para verificar em Function Apps:

  • Selecione o recurso Function App.
  • Vá até Configurações e depois para Configurações Gerais.
  • Localize Versão mínima de TLS de entrada.

Considerações Importantes

Antes de migrar para TLS 1.2 ou superior, é importante considerar os seguintes pontos:

  • Conectividade: Verifique a compatibilidade dos sistemas que utilizam o recurso. Alguns clientes ou sistemas legados podem não suportar TLS 1.2.

  • Testes em Ambientes Controlados: Realize testes em ambientes de desenvolvimento ou teste para garantir que a migração para TLS 1.2 não causará impactos inesperados.

  • Compatibilidade com Software Antigo: Alguns softwares ou sistemas legados podem não suportar TLS 1.2, exigindo atualizações ou reconfigurações adicionais.

  • Configurações Personalizadas de TLS: Verifique se há configurações personalizadas de TLS nos seus recursos que possam precisar de ajustes.

Como Verificar o ambiente no Azure em massa

Se você gerencia vários recursos no Azure, pode ser demorado verificar a versão de TLS manualmente em cada um deles. No entanto, utilizando ferramentas como o Azure Resource Graph e o Log Analytics, você pode executar consultas que facilitam esse processo.

O que é o Azure Resource Graph?

O Azure Resource Graph é uma ferramenta poderosa para realizar consultas sobre seus recursos no Azure, permitindo que você execute pesquisas eficientes e rápidas em todos os recursos distribuídos em diferentes assinaturas. Ele facilita a visualização de metadados, como o tipo de recurso, a localização e, neste caso, a versão mínima de TLS em uso.

Com o Azure Resource Graph, você pode fazer consultas que identificam rapidamente quais recursos ainda estão utilizando TLS 1.0 ou 1.1 e precisam ser atualizados. Isso pode ser aplicado em diversos serviços do Azure, como Application Gateways, App Services, Storage Accounts, SQL Servers, Key Vaults, entre outros.

Exemplo de Consultas

Verificar Todos os Recursos com Versões de TLS Abaixo de 1.2

Esta consulta identifica diferentes tipos de recursos e verifica se eles estão utilizando versões antigas de TLS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
resources
| where type in (
    "microsoft.keyvault/vaults",
    "microsoft.storage/storageaccounts",
    "microsoft.web/sites",
    "microsoft.sql/servers",
    "microsoft.network/applicationgateways",
    "microsoft.apimanagement/service",
    "microsoft.containerregistry/registries",
    "microsoft.cdn/profiles"
)
| extend minTlsVersion = case(
    type == "microsoft.keyvault/vaults", properties.properties.minimumTlsVersion,
    type == "microsoft.storage/storageaccounts", properties.minimumTlsVersion,
    type == "microsoft.web/sites", properties.siteConfig.minTlsVersion,
    type == "microsoft.sql/servers", properties.minimalTlsVersion,
    type == "microsoft.network/applicationgateways", properties.sslPolicy.minProtocolVersion,
    type == "microsoft.apimanagement/service", properties.customProperties["Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10"],
    type == "microsoft.containerregistry/registries", properties.policies.trust.minTlsVersion,
    type == "microsoft.cdn/profiles", properties.deliveryPolicy.minTlsVersion,
    "Unknown"
)
| where isnotempty(minTlsVersion) and minTlsVersion != "Unknown" and minTlsVersion !contains "1.2"
| project name, type, resourceGroup, subscriptionId, minTlsVersion
| sort by type, name

Verificação em Contas de Armazenamento

1
2
3
4
5
resources
| where type == "microsoft.storage/storageaccounts"
| extend minTlsVersion = properties.minimumTlsVersion
| where isnotempty(minTlsVersion) and minTlsVersion !contains "1.2"
| project name, resourceGroup, subscriptionId, minTlsVersion

Verificação em Web Apps

1
2
3
4
AppServiceResources
| where type =~ 'microsoft.web/sites/config'
| project id, name, minTlsVersion = properties.MinTlsVersion
| where isnotempty(minTlsVersion)

Verificação em Azure Cosmos DB

1
2
3
4
5
resources
| where type == "microsoft.documentdb/databaseAccounts"
| extend minTlsVersion = properties.minimalTlsVersion
| where isnotempty(minTlsVersion) and minTlsVersion !contains "1.2"
| project name, resourceGroup, subscriptionId, minTlsVersion

Essas consultas podem ser adaptadas para incluir outros tipos de recursos e ajudar a garantir que toda a sua infraestrutura do Azure esteja em conformidade com os novos requisitos de segurança.

Utilizando o Azure Monitor para Monitorar Versões TLS

Além do Azure Resource Graph, o Azure Monitor pode ser utilizado para monitorar as versões de TLS em uso em tempo real.

Monitoramento de TLS com Azure Monitor

Para garantir que seus recursos estejam usando TLS 1.2 ou superior, você pode utilizar as consultas de logs e métricas disponíveis no Azure Monitor e no Log Analytics. O monitoramento da versão do TLS em uso é crucial, especialmente considerando a proximidade da descontinuação de versões mais antigas como o TLS 1.0 e 1.1. Referência

Identificar Clientes Usando TLS Inferior a 1.2

Essa consulta mostra requisições ao Key Vault feitas com uma versão de TLS inferior a 1.2 nos últimos 90 dias:

1
2
3
4
5
6
AzureDiagnostics
| where TimeGenerated > ago(90d)
| where ResourceProvider == "MICROSOFT.KEYVAULT"
| where isnotempty(tlsVersion_s) and strcmp(tlsVersion_s, "TLS1_2") < 0
| project TimeGenerated, Resource, OperationName, requestUri_s, CallerIPAddress, OperationVersion, clientInfo_s, tlsVersion_s
| sort by TimeGenerated desc

Verificando Recursos via PowerShell

Se preferir usar PowerShell para verificar a versão do TLS em seus recursos, você pode usar o seguinte comando: Referência

1
2
3
Install-Module -Name Az.ResourceGraph
Connect-AzAccount
Search-AzGraph -Query "Resources | where properties.minimumTlsVersion == 'TLS1_2' | project name, type, properties.minimumTlsVersion"

Esse comando retorna uma lista de recursos que já estão configurados para usar TLS 1.2.

Conclusão

Embora a Microsoft tenha declarado que suas implementações de TLS 1.0 e 1.1 não apresentam vulnerabilidades conhecidas, a mudança para TLS 1.2 oferece uma série de vantagens, especialmente em termos de segurança. A transição para uma versão mais segura do TLS é essencial para evitar interrupções e garantir que seus dados estejam devidamente protegidos.

Portanto, não deixe para a última hora. Avalie suas dependências no TLS agora e inicie o processo de migração para evitar problemas com a mudança em outubro de 2024.

Se precisar de suporte técnico, a Microsoft oferece recursos como a comunidade Microsoft Q&A, além de opções de suporte formal para quem possui um plano de suporte ativo.

Este post está licenciado sob CC BY 4.0 e pelo autor.