Proteger implementações de PaaS
Este artigo fornece informações que o ajudam a:
- Entenda as vantagens de segurança de hospedar aplicativos na nuvem
- Avaliar as vantagens de segurança da plataforma como serviço (PaaS) em comparação com outros modelos de serviço em nuvem
- Mude seu foco de segurança de uma abordagem de segurança centrada na rede para uma abordagem de segurança de perímetro centrada na identidade
- Implementar recomendações gerais de práticas recomendadas de segurança de PaaS
Desenvolver aplicativos seguros no Azure é um guia geral para as perguntas e controles de segurança que você deve considerar em cada fase do ciclo de vida de desenvolvimento de software ao desenvolver aplicativos para a nuvem.
Vantagens da segurança na nuvem
É importante entender a divisão de responsabilidades entre você e a Microsoft. No local, você é o proprietário de toda a pilha, mas à medida que se move para a nuvem, algumas responsabilidades são transferidas para a Microsoft.
Há vantagens de segurança em estar na nuvem. Em um ambiente local, as organizações provavelmente têm responsabilidades não cumpridas e recursos limitados disponíveis para investir em segurança, o que cria um ambiente onde os invasores são capazes de explorar vulnerabilidades em todas as camadas.
As organizações podem melhorar seus tempos de deteção e resposta a ameaças usando os recursos de segurança baseados em nuvem e inteligência de nuvem de um provedor. Ao transferir as responsabilidades para o provedor de nuvem, as organizações podem obter mais cobertura de segurança, o que lhes permite realocar recursos de segurança e orçamento para outras prioridades de negócios.
Vantagens de segurança de um modelo de serviço de nuvem PaaS
Vamos examinar as vantagens de segurança de uma implantação de PaaS do Azure em relação ao local.
Começando na parte inferior da pilha, a infraestrutura física, a Microsoft reduz riscos e responsabilidades comuns. Como a nuvem da Microsoft é continuamente monitorada pela Microsoft, é difícil atacar. Não faz sentido para um invasor perseguir a nuvem da Microsoft como alvo. A menos que o atacante tenha muito dinheiro e recursos, é provável que passe para outro alvo.
No meio da pilha, não há diferença entre uma implantação de PaaS e no local. Na camada de aplicativo e na camada de gerenciamento de conta e acesso, você tem riscos semelhantes. Na próxima seção de etapas deste artigo, vamos orientá-lo para as melhores práticas para eliminar ou minimizar esses riscos.
No topo da pilha, governança de dados e gerenciamento de direitos, você assume um risco que pode ser mitigado pelo gerenciamento de chaves. (O gerenciamento de chaves é abordado nas práticas recomendadas.) Embora o gerenciamento de chaves seja uma responsabilidade adicional, você tem áreas em uma implantação de PaaS que não precisa mais gerenciar para poder transferir recursos para o gerenciamento de chaves.
A plataforma Azure também fornece uma forte proteção contra DDoS usando várias tecnologias baseadas em rede. No entanto, todos os tipos de métodos de proteção contra DDoS baseados em rede têm seus limites por link e por datacenter. Para ajudar a evitar o impacto de grandes ataques DDoS, você pode aproveitar o recurso de nuvem principal do Azure para permitir que você escale rápida e automaticamente para se defender contra ataques DDoS. Vamos entrar em mais detalhes sobre como você pode fazer isso nos artigos de práticas recomendadas.
Modernizando a mentalidade do Defender for Cloud
Com as implantações de PaaS, vem uma mudança na sua abordagem geral de segurança. Você deixa de precisar controlar tudo sozinho para compartilhar a responsabilidade com a Microsoft.
Outra diferença significativa entre PaaS e implantações locais tradicionais é uma nova visão do que define o perímetro de segurança principal. Historicamente, o principal perímetro de segurança local era a sua rede e a maioria dos projetos de segurança local usa a rede como seu principal pivô de segurança. Para implantações de PaaS, você é mais bem servido ao considerar a identidade como o perímetro de segurança principal.
Adotar uma política de identidade como o perímetro de segurança primário
Uma das cinco características essenciais da computação em nuvem é o amplo acesso à rede, o que torna o pensamento centrado na rede menos relevante. O objetivo de grande parte da computação em nuvem é permitir que os usuários acessem recursos independentemente da localização. Para a maioria dos usuários, sua localização será em algum lugar na Internet.
A figura a seguir mostra como o perímetro de segurança evoluiu de um perímetro de rede para um perímetro de identidade. A segurança passa a ser menos sobre a defesa da sua rede e mais sobre a defesa dos seus dados, bem como sobre a gestão da segurança das suas aplicações e utilizadores. A principal diferença é que você quer aproximar a segurança do que é importante para a sua empresa.
Inicialmente, os serviços PaaS do Azure (por exemplo, funções Web e Azure SQL) forneciam poucas ou nenhumas defesas de perímetro de rede tradicionais. Entendeu-se que o objetivo do elemento era ser exposto à Internet (função Web) e que a autenticação fornece o novo perímetro (por exemplo, BLOB ou Azure SQL).
As práticas de segurança modernas pressupõem que o adversário violou o perímetro da rede. Portanto, as práticas modernas de defesa passaram para a identidade. As organizações devem estabelecer um perímetro de segurança baseado em identidade com autenticação forte e higiene de autorização (práticas recomendadas).
Princípios e padrões para o perímetro da rede estão disponíveis há décadas. Em contraste, o setor tem relativamente menos experiência com o uso da identidade como o perímetro de segurança principal. Dito isto, acumulámos experiência suficiente para fornecer algumas recomendações gerais que são comprovadas no terreno e se aplicam a quase todos os serviços de PaaS.
A seguir estão as práticas recomendadas para gerenciar o perímetro de identidade.
Práticas recomendadas: proteja suas chaves e credenciais para proteger sua implantação de PaaS. Detalhe: perder chaves e credenciais é um problema comum. Você pode usar uma solução centralizada onde chaves e segredos podem ser armazenados em módulos de segurança de hardware (HSMs). O Azure Key Vault protege suas chaves e segredos criptografando chaves de autenticação, chaves de conta de armazenamento, chaves de criptografia de dados, arquivos .pfx e senhas usando chaves protegidas por HSMs.
Práticas recomendadas: não coloque credenciais e outros segredos no código-fonte ou no GitHub. Detalhe: A única coisa pior do que perder suas chaves e credenciais é ter uma parte não autorizada tendo acesso a elas. Os invasores podem aproveitar as tecnologias de bot para encontrar chaves e segredos armazenados em repositórios de código, como o GitHub. Não coloque chaves e segredos nesses repositórios de código públicos.
Práticas recomendadas: proteja suas interfaces de gerenciamento de VM em serviços PaaS e IaaS híbridos usando uma interface de gerenciamento que permite gerenciar remotamente essas VMs diretamente. Detalhe: protocolos de gerenciamento remoto, como SSH, RDP e comunicação remota do PowerShell, podem ser usados. Em geral, recomendamos que você não habilite o acesso remoto direto a VMs da Internet.
Se possível, use abordagens alternativas, como usar redes virtuais privadas em uma rede virtual do Azure. Se não estiverem disponíveis abordagens alternativas, certifique-se de que utiliza frases secretas complexas e autenticação de dois fatores (como a autenticação multifator Microsoft Entra).
Práticas recomendadas: use plataformas de autenticação e autorização fortes. Detalhe: use identidades federadas no Microsoft Entra ID em vez de repositórios de usuários personalizados. Ao usar identidades federadas, você aproveita uma abordagem baseada em plataforma e delega o gerenciamento de identidades autorizadas aos seus parceiros. Uma abordagem de identidade federada é especialmente importante quando os funcionários são demitidos e essas informações precisam ser refletidas por meio de vários sistemas de identidade e autorização.
Use mecanismos de autenticação e autorização fornecidos pela plataforma em vez de código personalizado. A razão é que o desenvolvimento de código de autenticação personalizado pode ser propenso a erros. A maioria dos seus desenvolvedores não são especialistas em segurança e é improvável que estejam cientes das sutilezas e dos desenvolvimentos mais recentes em autenticação e autorização. O código comercial (por exemplo, da Microsoft) é frequentemente extensivamente revisto em termos de segurança.
Use a autenticação de dois fatores. A autenticação de dois fatores é o padrão atual para autenticação e autorização porque evita as fraquezas de segurança inerentes aos tipos de autenticação de nome de usuário e senha. O acesso às interfaces de gerenciamento do Azure (portal/PowerShell remoto) e aos serviços voltados para o cliente deve ser projetado e configurado para usar a autenticação multifator do Microsoft Entra.
Use protocolos de autenticação padrão, como OAuth2 e Kerberos. Esses protocolos foram extensivamente revisados por pares e provavelmente são implementados como parte de suas bibliotecas de plataforma para autenticação e autorização.
Use a modelagem de ameaças durante o design do aplicativo
O Ciclo de Vida de Desenvolvimento de Segurança da Microsoft especifica que as equipes devem se envolver em um processo chamado modelagem de ameaças durante a fase de design. Para ajudar a facilitar esse processo, a Microsoft criou a SDL Threat Modeling Tool. Modelar o design do aplicativo e enumerar ameaças STRIDE em todos os limites de confiança pode detetar erros de projeto logo no início.
A tabela a seguir lista as ameaças STRIDE e fornece alguns exemplos de mitigações que usam recursos do Azure. Essas mitigações não funcionarão em todas as situações.
Ameaça | Propriedade de segurança | Possíveis mitigações da plataforma Azure |
---|---|---|
Spoofing | Autenticação | Requer conexões HTTPS. |
Adulteração | Integridade | Valide certificados TLS/SSL. |
Rejeição | Não rejeição | Habilite o monitoramento e o diagnóstico do Azure. |
Divulgação de informações | Confidencialidade | Criptografe dados confidenciais em repouso usando certificados de serviço. |
Denial-of-service | Disponibilidade | Monitore as métricas de desempenho para possíveis condições de negação de serviço. Implementar filtros de conexão. |
Elevação de privilégios | Autorização | Use o gerenciamento privilegiado de identidades. |
Desenvolver no Serviço de Aplicativo do Azure
O Serviço de Aplicativo do Azure é uma oferta de PaaS que permite criar aplicativos Web e móveis para qualquer plataforma ou dispositivo e conectar-se a dados em qualquer lugar, na nuvem ou localmente. O Serviço de Aplicativo inclui os recursos Web e móveis que anteriormente eram fornecidos separadamente como Sites do Azure e Serviços Móveis do Azure. Também inclui novas capacidades para automatizar processos de negócio e o alojar APIs da nuvem. Como um único serviço integrado, o Serviço de Aplicativo traz um rico conjunto de recursos para cenários Web, móveis e de integração.
A seguir estão as práticas recomendadas para usar o Serviço de Aplicativo.
Prática recomendada: Autentique-se por meio do Microsoft Entra ID. Detalhe: o Serviço de Aplicativo fornece um serviço OAuth 2.0 para seu provedor de identidade. O OAuth 2.0 se concentra na simplicidade do desenvolvedor cliente enquanto fornece fluxos de autorização específicos para aplicativos Web, aplicativos de desktop e telefones celulares. O Microsoft Entra ID usa o OAuth 2.0 para permitir que você autorize o acesso a aplicativos móveis e da Web.
Melhores práticas: Restrinja o acesso com base na necessidade de conhecer e privilegiar os princípios de segurança. Detalhe: restringir o acesso é imperativo para organizações que desejam aplicar políticas de segurança para acesso a dados. Você pode usar o RBAC do Azure para atribuir permissões a usuários, grupos e aplicativos em um determinado escopo. Para saber mais sobre como conceder aos usuários acesso a aplicativos, consulte Introdução ao gerenciamento de acesso.
Melhores práticas: proteja as suas chaves. Detalhe: o Azure Key Vault ajuda a proteger chaves criptográficas e segredos que os aplicativos e serviços na nuvem usam. Com o Cofre de Chaves, você pode criptografar chaves e segredos (como chaves de autenticação, chaves de conta de armazenamento, chaves de criptografia de dados, . PFX e senhas) usando chaves protegidas por módulos de segurança de hardware (HSMs). Para maior segurança, pode importar ou gerar chaves nos HSMs. Consulte Azure Key Vault para saber mais. Você também pode usar o Cofre da Chave para gerenciar seus certificados TLS com renovação automática.
Prática recomendada: Restrinja os endereços IP de origem de entrada. Detalhe: o Ambiente do Serviço de Aplicativo tem um recurso de integração de rede virtual que ajuda a restringir os endereços IP de origem de entrada por meio de grupos de segurança de rede. As redes virtuais permitem que você coloque recursos do Azure em uma rede roteável que não seja da Internet à qual você controla o acesso. Para saber mais, consulte Integrar seu aplicativo a uma rede virtual do Azure.
Práticas recomendadas: monitore o estado de segurança de seus ambientes do Serviço de Aplicativo. Detalhe: use o Microsoft Defender for Cloud para monitorar seus ambientes do Serviço de Aplicativo. Quando o Defender for Cloud identifica possíveis vulnerabilidades de segurança, ele cria recomendações que o guiam pelo processo de configuração dos controles necessários.
Serviços Cloud do Azure
Os Serviços de Nuvem do Azure são um exemplo de PaaS. Tal como o Serviço de Aplicações do Azure, esta tecnologia foi concebida para suportar aplicações que são escaláveis, fiáveis e económicas de operar. Da mesma forma que o Serviço de Aplicativo é hospedado em máquinas virtuais (VMs), os Serviços de Nuvem do Azure também são. No entanto, você tem mais controle sobre as VMs. Você pode instalar seu próprio software em VMs que usam os Serviços de Nuvem do Azure e pode acessá-los remotamente.
Instalar um firewall de aplicativo Web
Cada vez mais, as aplicações Web são alvo de ataques maliciosos que exploram vulnerabilidades conhecidas comuns. Destas vulnerabilidades, são frequentes os ataques de injeção de SQL, scripting entre sites, entre muitas outras. Impedir este tipo de ataques ao código das aplicações constitui um desafio e exige uma manutenção, correção e monitorização rigorosas em muitas camadas da topologia da aplicação. Uma firewall de aplicações Web centralizada ajuda a simplificar em muito a gestão da segurança e confere aos administradores de aplicações uma maior garantia de proteção contra as ameaças ou intrusões. Uma solução WAF também pode reagir mais rapidamente a uma ameaça de segurança ao corrigir uma vulnerabilidade conhecida numa localização central, em vez de proteger cada uma das aplicações Web individualmente.
O Web Application Firewall (WAF) fornece proteção centralizada de seus aplicativos Web contra exploits e vulnerabilidades comuns.
Proteção contra DDoS
A Proteção contra DDoS do Azure, combinada com as práticas recomendadas de design de aplicativos, fornece recursos aprimorados de mitigação de DDoS para fornecer mais defesa contra ataques DDoS. Você deve habilitar a Proteção DDOS do Azure em qualquer rede virtual de perímetro.
Monitore o desempenho de seus aplicativos
O monitoramento é o ato de coletar e analisar dados para determinar o desempenho, a integridade e a disponibilidade do seu aplicativo. Uma estratégia de monitorização efetiva ajuda-o a compreender o funcionamento em detalhe dos componentes da sua aplicação. Ajuda-o a aumentar o seu tempo de atividade, notificando-o de problemas críticos para que possa resolvê-los antes que se tornem problemas. Também o ajuda a detetar anomalias que possam estar relacionadas com a segurança.
Utilize o Azure Application Insights para monitorizar a disponibilidade, o desempenho e a utilização da sua aplicação, quer esteja alojada na nuvem ou no local. Usando o Application Insights, você pode identificar e diagnosticar rapidamente erros em seu aplicativo sem esperar que um usuário os relate. Com as informações que recolher, pode fazer escolhas informadas sobre a manutenção e as melhorias da aplicação.
O Application Insights tem um vasto conjunto ferramentas para interagir com os dados que recolhe. O Application Insights armazena os dados num repositório comum. Ele pode tirar proveito de funcionalidades compartilhadas, como alertas, painéis e análises profundas com a linguagem de consulta Kusto.
Realizar testes de penetração de segurança
Validar defesas de segurança é tão importante quanto testar qualquer outra funcionalidade. Faça do teste de penetração uma parte padrão do seu processo de compilação e implantação. Agende testes de segurança regulares e varredura de vulnerabilidades em aplicativos implantados e monitore portas abertas, pontos de extremidade e ataques.
O teste difuso é um método para encontrar falhas de programa (erros de código) fornecendo dados de entrada malformados para interfaces de programa (pontos de entrada) que analisam e consomem esses dados.
Próximos passos
Neste artigo, nos concentramos nas vantagens de segurança de uma implantação de PaaS do Azure e nas práticas recomendadas de segurança para aplicativos em nuvem. Em seguida, aprenda as práticas recomendadas para proteger suas soluções Web e móveis PaaS usando serviços específicos do Azure. Começaremos com o Serviço de Aplicativo do Azure, o Banco de Dados SQL do Azure e o Azure Synapse Analytics, o Armazenamento do Azure e os Serviços de Nuvem do Azure. À medida que os artigos sobre práticas recomendadas para outros serviços do Azure se tornam disponíveis, os links serão fornecidos na lista a seguir:
- Serviço de Aplicações do Azure
- Banco de Dados SQL do Azure e Azure Synapse Analytics
- Armazenamento do Azure
- Serviços Cloud do Azure
- Cache do Azure para Redis
- Azure Service Bus
- Firewall de Aplicações Web
Consulte Desenvolver aplicativos seguros no Azure para perguntas e controles de segurança que você deve considerar em cada fase do ciclo de vida de desenvolvimento de software ao desenvolver aplicativos para a nuvem.
Consulte Práticas recomendadas e padrões de segurança do Azure para obter mais práticas recomendadas de segurança a serem usadas ao projetar, implantar e gerenciar suas soluções de nuvem usando o Azure.
Os seguintes recursos estão disponíveis para fornecer informações mais gerais sobre a segurança do Azure e os serviços relacionados da Microsoft:
- Ciclo de vida do produto Microsoft - para diretrizes consistentes e previsíveis para suporte durante toda a vida útil de um produto
- Centro de Resposta de Segurança da Microsoft - onde as vulnerabilidades de segurança da Microsoft, incluindo problemas com o Azure, podem ser relatadas ou por e-mail para secure@microsoft.com