Proteger implementações PaaS

Este artigo fornece informações que o ajudam a:

  • Compreender as vantagens de segurança do alojamento de aplicações na cloud
  • Avaliar as vantagens de segurança da plataforma como um serviço (PaaS) em comparação com outros modelos de serviço cloud
  • Alterar o foco de segurança de uma abordagem de segurança de perímetro centrada na rede para centrada em identidades
  • Implementar recomendações gerais de melhores práticas de segurança paaS

Desenvolver aplicações seguras no Azure é um guia geral para as perguntas e controlos de segurança que deve considerar em cada fase do ciclo de vida de desenvolvimento de software ao desenvolver aplicações para a cloud.

Vantagens de segurança da cloud

É importante compreender a divisão de responsabilidade entre si e Microsoft. No local, é o proprietário de toda a pilha, mas à medida que avança para a cloud, algumas responsabilidades são transferidas para Microsoft.

Existem vantagens de segurança em estar na cloud. Num ambiente no local, as organizações provavelmente têm responsabilidades não atendidas e recursos limitados disponíveis para investir em segurança, o que cria um ambiente onde os atacantes são capazes de explorar vulnerabilidades em todas as camadas.

As organizações são capazes de melhorar os tempos de deteção e resposta de ameaças com as capacidades de segurança baseadas na cloud e as capacidades de segurança baseadas na cloud de um fornecedor. Ao transferir responsabilidades para o fornecedor de cloud, 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 empresariais.

Vantagens de segurança de um modelo de serviço cloud PaaS

Vejamos as vantagens de segurança de uma implementação PaaS do Azure em comparação com o local.

Vantagens de segurança do PaaS

A partir da parte inferior da pilha, a infraestrutura física Microsoft mitiga riscos e responsabilidades comuns. Uma vez que a cloud Microsoft é monitorizada continuamente por Microsoft, é difícil de atacar. Não faz sentido que um atacante persiga o Microsoft cloud como um destino. A menos que o atacante tenha muito dinheiro e recursos, é provável que o atacante passe para outro alvo.

No meio da pilha, não há diferença entre uma implementação PaaS e no local. Na camada da aplicação e na camada de gestão de contas e acessos, tem riscos semelhantes. Na secção passos seguintes deste artigo, iremos orientá-lo para as melhores práticas para eliminar ou minimizar estes riscos.

Na parte superior da pilha, governação de dados e gestão de direitos, assume um risco que pode ser mitigado pela gestão de chaves. (A gestão de chaves é abrangida nas melhores práticas.) Embora a gestão de chaves seja uma responsabilidade adicional, tem áreas numa implementação PaaS que já não tem de gerir para poder transferir recursos para a gestão de chaves.

A plataforma do Azure também lhe fornece proteção contra DDoS forte através de várias tecnologias baseadas na rede. No entanto, todos os tipos de métodos de proteção DDoS baseados na rede têm os seus limites por ligação e por datacenter. Para ajudar a evitar o impacto de ataques DDoS de grandes dimensões, pode tirar partido da capacidade de cloud principal do Azure de lhe permitir aumentar horizontalmente de forma rápida e automática para se defender contra ataques DDoS. Vamos abordar mais detalhadamente como pode fazê-lo nos artigos de práticas recomendadas.

Modernizar a mentalidade do Defender para a Cloud

Com as implementações PaaS surge uma mudança na sua abordagem geral à segurança. Passa da necessidade de controlar tudo sozinho para partilhar a responsabilidade com Microsoft.

Outra diferença significativa entre o PaaS e as implementações tradicionais no local é uma nova vista do que define o perímetro de segurança principal. Historicamente, o perímetro de segurança no local principal era a sua rede e a maioria dos designs de segurança no local utilizava a rede como o seu principal pivô de segurança. Para implementações PaaS, é melhor servir ao considerar a identidade como o perímetro de segurança principal.

Adotar uma política de identidade como perímetro de segurança principal

Uma das cinco características essenciais da computação na cloud é o acesso amplo à rede, o que torna o pensamento centrado na rede menos relevante. O objetivo de grande parte da computação na cloud é permitir que os utilizadores acedam aos recursos, independentemente da localização. Para a maioria dos utilizadores, a sua localização estará algures na Internet.

A figura seguinte mostra como o perímetro de segurança evoluiu de um perímetro de rede para um perímetro de identidade. A segurança torna-se menos importante na defesa da sua rede e mais na defesa dos seus dados, bem como na gestão da segurança das suas aplicações e utilizadores. A principal diferença é que quer aproximar a segurança do que é importante para a sua empresa.

Identidade como novo perímetro de segurança

Inicialmente, os serviços PaaS do Azure (por exemplo, funções Web e SQL do Azure) forneceram poucas ou nenhumas defesas de perímetro de rede tradicionais. Compreendeu-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 SQL do Azure).

As práticas de segurança modernas partem do princípio de que o adversário violou o perímetro da rede. Portanto, as práticas modernas de defesa mudaram para a identidade. As organizações têm de estabelecer um perímetro de segurança baseado em identidade com autenticação forte e higiene de autorização (melhores práticas).

Há décadas que estão disponíveis princípios e padrões para o perímetro de rede. Por outro lado, a indústria tem relativamente menos experiência na utilização da identidade como perímetro de segurança principal. Dito isto, acumulamos experiência suficiente para fornecer algumas recomendações gerais que estão comprovadas no terreno e se aplicam a quase todos os serviços PaaS.

Seguem-se as melhores práticas para gerir o perímetro de identidade.

Melhor prática: proteja as chaves e as credenciais para proteger a implementação PaaS. Detalhe: perder chaves e credenciais é um problema comum. Pode utilizar uma solução centralizada onde as chaves e os segredos podem ser armazenados em módulos de segurança de hardware (HSMs). O Azure Key Vault protege as suas chaves e segredos ao encriptar chaves de autenticação, chaves de conta de armazenamento, chaves de encriptação de dados, ficheiros .pfx e palavras-passe através de chaves protegidas por HSMs.

Melhor prática: não coloque credenciais e outros segredos no código fonte ou no GitHub. Detalhe: a única coisa pior do que perder as chaves e as credenciais é ter uma parte não autorizada a ter acesso às mesmas. Os atacantes podem tirar partido das tecnologias de bot para localizar chaves e segredos armazenados em repositórios de código, como o GitHub. Não coloque chave e segredos nestes repositórios de código público.

Melhor prática: proteja as interfaces de gestão de VMs em serviços IaaS e PaaS híbridos através de uma interface de gestão que lhe permite gerir diretamente estas VMs. Detalhe: podem ser utilizados protocolos de gestão remota, como SSH, RDP e comunicação remota do PowerShell . Em geral, recomendamos que não ative o acesso remoto direto às VMs a partir da Internet.

Se possível, utilize abordagens alternativas, como utilizar redes privadas virtuais numa rede virtual do Azure. Se não estiverem disponíveis abordagens alternativas, certifique-se de que utiliza frases de acesso complexas e autenticação de dois fatores (por exemplo, Azure AD Multi-Factor Authentication).

Melhor prática: utilize plataformas de autenticação e autorização fortes. Detalhe: utilize identidades federadas em Azure AD em vez de lojas de utilizadores personalizadas. Quando utiliza identidades federadas, tira partido de uma abordagem baseada na plataforma e delega a gestão de identidades autorizadas aos seus parceiros. Uma abordagem de identidade federada é especialmente importante quando os funcionários são terminados e essas informações têm de ser refletidas através de vários sistemas de identidade e autorização.

Utilize mecanismos de autenticação e autorização fornecidos pela plataforma em vez de código personalizado. O motivo é que o desenvolvimento de código de autenticação personalizado pode ser propenso a erros. A maioria dos seus programadores não são especialistas em segurança e é pouco provável que estejam cientes das subtilezas e dos desenvolvimentos mais recentes na autenticação e autorização. O código comercial (por exemplo, de Microsoft) é frequentemente revisto extensivamente pela segurança.

Utilize a autenticação de dois fatores. A autenticação de dois fatores é o padrão atual para autenticação e autorização, uma vez que evita as desvantagens de segurança inerentes aos tipos de autenticação de nome de utilizador e palavra-passe. O acesso às interfaces de gestão do Azure (portal/PowerShell remoto) e aos serviços destinados ao cliente deve ser concebido e configurado para utilizar Azure AD Multi-Factor Authentication.

Utilize protocolos de autenticação padrão, como OAuth2 e Kerberos. Estes protocolos foram amplamente revistos em modo de peering e são provavelmente implementados como parte das suas bibliotecas de plataforma para autenticação e autorização.

Utilizar a modelação de ameaças durante a conceção da aplicação

A Microsoft Ciclo de Vida de Desenvolvimento de Segurança especifica que as equipas devem participar num processo chamado modelação de ameaças durante a fase de conceção. Para ajudar a facilitar este processo, Microsoft criou o Threat Modeling Tool SDL. Modelar a estrutura da aplicação e enumerar ameaças STRIDE em todos os limites de confiança pode detetar erros de conceção desde o início.

A tabela seguinte lista as ameaças STRIDE e fornece alguns exemplos de mitigações que utilizam as funcionalidades do Azure. Estas mitigações não funcionarão em todas as situações.

Ameaça Propriedade de segurança Potenciais mitigações da plataforma do Azure
Spoofing Autenticação Exigir ligações HTTPS.
Adulteração Integridade Validar certificados TLS/SSL.
Rejeição Não rejeição Ativar a monitorização e o diagnóstico do Azure.
Divulgação de informações Confidencialidade Encriptar dados confidenciais inativos com certificados de serviço.
Denial-of-service Disponibilidade Monitorize as métricas de desempenho para potenciais condições denial-of-service. Implementar filtros de ligação.
Elevação de privilégios Autorização Utilize Privileged Identity Management.

Desenvolver no Serviço de Aplicações do Azure

Serviço de Aplicações do Azure é uma oferta PaaS que lhe permite criar aplicações Web e móveis para qualquer plataforma ou dispositivo e ligar a dados em qualquer lugar, na cloud ou no local. Serviço de Aplicações inclui as capacidades web e móveis que foram anteriormente fornecidas 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, Serviço de Aplicações traz um conjunto avançado de capacidades para cenários Web, móveis e de integração.

Seguem-se as melhores práticas para utilizar Serviço de Aplicações.

Melhor prática: autenticar através do Azure Active Directory. Detalhe: Serviço de Aplicações fornece um serviço OAuth 2.0 para o seu fornecedor de identidade. O OAuth 2.0 foca-se na simplicidade do programador cliente ao mesmo tempo que fornece fluxos de autorização específicos para aplicações Web, aplicações de ambiente de trabalho e telemóveis. Azure AD utiliza o OAuth 2.0 para lhe permitir autorizar o acesso a aplicações móveis e Web.

Melhores práticas: restrinja o acesso com base na necessidade de conhecer e menos privilégios de princípios de segurança. Detalhe: a restrição do acesso é imperativa para as organizações que pretendem impor políticas de segurança para o acesso a dados. Pode utilizar o RBAC do Azure para atribuir permissões a utilizadores, grupos e aplicações num determinado âmbito. Para saber mais sobre a concessão de acesso de utilizadores a aplicações, veja Introdução à gestão de acessos.

Melhor prática: proteja as suas chaves. Detalhe: o Azure Key Vault ajuda a salvaguardar chaves criptográficas e segredos que as aplicações e os serviços na cloud utilizam. Com Key Vault, pode encriptar chaves e segredos (como chaves de autenticação, chaves de conta de armazenamento, chaves de encriptação de dados, . Ficheiros PFX e palavras-passe) através de chaves protegidas por módulos de segurança de hardware (HSMs). Para maior segurança, pode importar ou gerar chaves nos HSMs. Veja Azure Key Vault para saber mais. Também pode utilizar Key Vault para gerir os certificados TLS com renovação automática.

Melhor prática: restringir os endereços IP de origem de entrada. Detalhe: Ambiente do Serviço de Aplicações tem uma funcionalidade de integração de rede virtual que o ajuda a restringir os endereços IP de origem recebidos através de grupos de segurança de rede. As redes virtuais permitem-lhe colocar recursos do Azure numa rede encaminhável e não internet à qual controla o acesso. Para saber mais, veja Integrar a sua aplicação numa rede virtual do Azure.

Melhor prática: monitorize o estado de segurança dos seus ambientes de Serviço de Aplicações. Detalhe: utilize Microsoft Defender para a Cloud para monitorizar os seus ambientes de Serviço de Aplicações. Quando o Defender para Cloud identifica potenciais vulnerabilidades de segurança, cria recomendações que o orientam ao longo do processo de configuração dos controlos necessários.

Cloud Services do Azure

O Azure Serviços Cloud é um exemplo de um PaaS. Tal como Serviço de Aplicações do Azure, esta tecnologia foi concebida para suportar aplicações dimensionáveis, fiáveis e baratas para operar. Da mesma forma que Serviço de Aplicações está alojada em máquinas virtuais (VMs), também o Azure Serviços Cloud. No entanto, tem mais controlo sobre as VMs. Pode instalar o seu próprio software em VMs que utilizam o Azure Serviços Cloud e pode aceder-lhes remotamente.

Instalar uma firewall de aplicações 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. Os gateways de aplicações existentes podem ser facilmente convertidos num gateway de aplicação com firewall de aplicações Web ativada.

A firewall de aplicações Web (WAF) é uma funcionalidade de Gateway de Aplicação que fornece proteção centralizada das suas aplicações Web contra exploits e vulnerabilidades comuns. A WAF baseia-se em regras dos conjuntos de regras principais do Open Web Application Security Project (OWASP) 3.0 ou 2.2.9.

Monitorizar o desempenho das suas aplicações

A monitorização é o ato de recolher e analisar dados para determinar o desempenho, o estado de funcionamento e a disponibilidade da sua aplicação. 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 tempo de atividade ao notificá-lo 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 Aplicação Azure Insights para monitorizar a disponibilidade, o desempenho e a utilização da sua aplicação, quer esteja alojada na cloud ou no local. Ao utilizar o Application Insights, pode identificar e diagnosticar rapidamente erros na sua aplicação sem esperar que um utilizador os comunique. 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. Pode tirar partido de funcionalidades partilhadas, como alertas, dashboards e análises aprofundadas com a linguagem de consulta Kusto.

Realizar testes de penetração de segurança

Validar defesas de segurança é tão importante como testar qualquer outra funcionalidade. Faça dos testes de penetração uma parte padrão do seu processo de compilação e implementação. Agende testes de segurança regulares e análise de vulnerabilidades em aplicações implementadas e monitorize portas abertas, pontos finais e ataques.

O teste fuzz é um método para localizar falhas de programas (erros de código) ao fornecer dados de entrada mal formados para interfaces de programa (pontos de entrada) que analisam e consomem estes dados. Microsoft Deteção de Riscos de Segurança é uma ferramenta baseada na cloud que pode utilizar para procurar erros e outras vulnerabilidades de segurança no software antes de implementá-lo no Azure. A ferramenta foi concebida para capturar vulnerabilidades antes de implementar software para que não tenha de corrigir um erro, lidar com falhas ou responder a um ataque após o lançamento do software.

Passos seguintes

Neste artigo, focámo-nos nas vantagens de segurança de uma implementação paaS do Azure e nas melhores práticas de segurança para aplicações na cloud. Em seguida, aprenda as práticas recomendadas para proteger as suas soluções Web e móveis PaaS com serviços específicos do Azure. Vamos começar com Serviço de Aplicações do Azure, Base de Dados SQL do Azure e Análise de Azure Synapse, Armazenamento do Azure e Serviços Cloud do Azure. À medida que os artigos sobre práticas recomendadas para outros serviços do Azure ficam disponíveis, as ligações serão fornecidas na seguinte lista:

Veja Desenvolver aplicações seguras no Azure para perguntas de segurança e controlos que deve considerar em cada fase do ciclo de vida de desenvolvimento de software ao desenvolver aplicações para a cloud.

Veja Melhores práticas e padrões de segurança do Azure para obter mais melhores práticas de segurança para utilizar quando estiver a conceber, implementar e gerir as suas soluções na cloud com o Azure.

Os seguintes recursos estão disponíveis para fornecer informações mais gerais sobre segurança do Azure e serviços de Microsoft relacionados: