Definir configurações de firewall em recursos de PaaS

Concluído

O Desenvolver aplicativos seguros no Azure é um guia geral para as questões 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 da responsabilidade entre você e a Microsoft. No local, você possui a pilha inteira, mas conforme muda para a nuvem, algumas responsabilidades são transferidas para a Microsoft.

vantagens de segurança de estar na nuvem. Em um ambiente 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 em que os invasores podem explorar vulnerabilidades em todas as camadas.

As empresas são capazes de aprimorar sua detecção de ameaças e tempos de resposta usando inteligência de nuvem e recursos de segurança baseados em nuvem de provedor. Ao deslocar responsabilidades para o provedor de nuvem, as organizações podem obter mais cobertura de segurança, que permite que elas 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 analisar as vantagens de segurança de uma implantação de PaaS do Azure em relação a uma implantação local.

Diagrama mostrando um exemplo das vantagens da plataforma como um modelo de serviço.

Iniciando na parte inferior da pilha, a infraestrutura física, a Microsoft reduz responsabilidades e riscos comuns. Como a nuvem da Microsoft é monitorada continuamente pela Microsoft, ela é difícil de ser atacada. Não faz sentido para um invasor ter a nuvem da Microsoft como alvo. A menos que o invasor tenha muito dinheiro e recursos, é provável que ele mude para outro alvo.

No meio da pilha, não há nenhuma diferença entre uma implantação de PaaS e uma local. Na camada de aplicativo e na camada de gerenciamento de acesso e de conta, você tem os riscos semelhantes. Na seção de próximas etapas deste artigo, vamos guiar você pelas as melhores práticas para eliminar ou minimizar esses riscos.

Na parte superior da pilha, governança de dados e gerenciamento de direitos, você assume um risco que pode ser reduzido pelo gerenciamento de chaves. (O gerenciamento de chaves é tratado nas práticas recomendadas). Embora o gerenciamento de chaves seja uma responsabilidade adicional, há áreas em uma implantação de PaaS que você não precisa mais gerenciar de modo que pode deslocar recursos para o gerenciamento de chaves.

A plataforma Azure também oferece uma forte proteção contra DDoS usando várias tecnologias baseadas em rede. No entanto, todos os tipos de métodos de proteção DDoS baseados em rede tem seus limites em uma base por link e por datacenter. Para ajudar a evitar o impacto de grandes ataques DDoS, você pode aproveitar a funcionalidade de nuvem básica do Azure que permite uma expansão rápida e automática para proteção contra DDoS. Entraremos em mais detalhes sobre como você pode fazer isso nos artigos de práticas recomendadas.

Modernizando a mentalidade do Defender para Nuvem

Juntamente com as implantações de PaaS vem uma mudança na abordagem geral da segurança. Você passa de precisar controlar tudo sozinho com compartilhar a responsabilidade com a Microsoft.

Outra diferença significativa entre as implantações locais tradicionais e de PaaS é uma nova visão do que define o perímetro de segurança primário. Historicamente, o perímetro de segurança local primário foi sua rede e a maioria dos projetos de segurança local usam a rede como seu pivô de segurança primário. Para implantações de PaaS, você é mais bem atendido considerando a identidade como o perímetro de segurança primário.

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 é amplo acesso à rede, que torna o pensamento centrado na rede menos relevante. A meta da maior 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 se torna menos sobre defender a rede e mais sobre como defender seus dados, bem como gerenciar a segurança de seus aplicativos e usuários. A principal diferença é que você deseja aproximar a segurança do que é importante para sua empresa.

Diagrama mostrando como o perímetro de segurança evoluiu de um perímetro de rede para um perímetro de identidade.

Inicialmente, os serviços de PaaS do Azure (por exemplo, funções Web e SQL do Azure) forneciam pouca ou nenhuma defesa de perímetro de rede tradicional. Entendeu-se que o objetivo do elemento era ser exposto na Internet (função Web) e que a autenticação fornecia o novo perímetro (por exemplo, Blob ou SQL do Azure).

As práticas de segurança modernas pressupõem que o adversário violou o perímetro da rede. Portanto, as práticas de defesa modernas passaram para a identidade. As organizações devem estabelecer um perímetro de segurança com base em identidade com forte higiene de autenticação e autorização (práticas recomendadas).

Os princípios e padrões do perímetro de rede estiveram disponíveis por décadas. Por outro lado, o segmento tem relativamente menos experiência com o uso de identidade como o perímetro de segurança primário. Dito isso, acumulamos experiência suficiente para fornecer algumas recomendações gerais comprovadas no campo e que 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ática recomendada: proteger suas chaves e credenciais para proteger a implantação de PaaS. Detalhe: perder chaves e credenciais é um problema comum. Você pode usar uma solução centralizada em que as chaves e os segredos podem ser armazenados em HSMs (módulos de segurança de hardware). 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.

Melhor prática: não colocar as credenciais e outros segredos no código-fonte nem no GitHub. Detalhe: a única coisa pior do que perder as chaves e credenciais é quando uma parte não autorizada obtém 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úblico.

Prática recomendada: proteger suas interfaces de gerenciamento de VM em serviços híbridos de PaaS e IaaS usando uma interface de gerenciamento que permite gerenciar remotamente essas VMs de modo direto. Detalhe: os protocolos de gerenciamento remoto, como SSH, RDP, e a comunicação remota do PowerShell podem ser usados. Em geral, recomendamos que você não habilite o acesso remoto direto às VMs a partir da Internet.

Se possível, use abordagens alternativas como redes virtuais privadas em uma rede virtual do Azure. Se não houver abordagens alternativas disponíveis, certifique-se de usar frases secretas complexas e autenticação de dois fatores (como a autenticação multifator do Microsoft Entra).

Prática recomendada: usar as plataformas fortes de autorização e autenticação. Detail: use identidades federadas na ID do Microsoft Entra em vez de os repositórios de usuários personalizados. Quando você usa identidades federadas, aproveita uma abordagem baseada em plataforma e delega o gerenciamento de identidades autorizadas para seus parceiros. Uma abordagem de identidade federada é importante principalmente quando ocorre a demissão de funcionários e essa informação precisa ser refletida em vários sistemas de autorização e identidade.

Use os 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 desenvolvedores não são especialistas em segurança e é improvável que estejam cientes das sutilezas e dos últimos desenvolvimentos em autenticação e autorização. O código comercial (por exemplo, da Microsoft) é amplamente revisado quanto à segurança, com frequência.

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 os pontos fracos de segurança inerentes nos 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 em pares e provavelmente são implementados como parte das bibliotecas da plataforma para autenticação e autorização.

Usar a modelagem de ameaças durante o design do aplicativo

O Microsoft Security Development Lifecycle especifica que as equipes devem participar de um processo chamado de modelagem de ameaças durante a fase de design. Para facilitar esse processo, a Microsoft criou a Threat Modeling Tool do SDL. A modelagem do design do aplicativo e a enumeração das ameaças STRIDE (Falsificação, Manipulação, Repúdio, Divulgação de Informações, Negação de Serviço (DoS) e Elevação de Privilégio) de privilégios em todas as fronteiras de confiança pode detectar erros de design desde cedo.

A tabela a seguir lista as ameaças STRIDE e fornece algumas mitigações de exemplo que usam recursos do Azure. Essas mitigações não funcionarão em todas as situações.

Ameaça Propriedade da segurança Potenciais mitigações da plataforma do Azure
Falsificação Autenticação Exigir conexões HTTPS.
Adulteração Integridade Validar certificados TLS/SSL.
Repúdio Não repúdio Habilitar o monitoramento e diagnóstico do Azure.
Divulgação de informações confidenciais Confidencialidade Criptografar dados confidenciais em repouso usando certificados de serviço.
Negação de serviço Disponibilidade Monitorar as métricas de desempenho quanto a possíveis condições de negação de serviço. Implementar filtros de conexão.
Elevação de privilégio Autorização Usar o Privileged Identity Management.

Desenvolver no Serviço de Aplicativo do Azure

O Serviço de Aplicativo do Azure é uma oferta de PaaS que permite a você criar aplicativos Web e móveis para qualquer plataforma ou dispositivo e se conectar a dados em qualquer lugar, na nuvem ou local. O Serviço de Aplicativo inclui os recursos móveis e da Web que antes eram fornecidos separadamente, como os Sites do Azure e os Serviços Móveis do Azure. Ele também inclui novos recursos para automatizar processos empresariais e hospedagem de APIs de nuvem. O Serviço de Aplicativo proporciona, como um único serviço integrado, um avançado conjunto de recursos para cenários da Web, móveis e de integração.

A seguir estão as práticas recomendadas para usar o Serviço de Aplicativo.

Melhores práticas: Autenticação 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 concentra-se na simplicidade do desenvolvedor cliente, fornecendo fluxos de autorização específicos para aplicativos Web, aplicativos da área de trabalho e celulares. A ID do Microsoft Entra usa o OAuth 2.0 para permitir que você autorize o acesso aos aplicativos móveis e Web.

Prática recomendada: restringir o acesso com base na necessidade de saber e nos princípios de segurança de privilégios mínimos. Detalhe: restringir o acesso é fundamental para as organizações que desejam impor políticas de segurança de 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 acesso a aplicativos aos usuários, confira Introdução ao gerenciamento de acesso.

Prática recomendada: proteger seus dados. Detalhe: o Azure Key Vault ajuda a proteger chaves de criptografia e os segredos que os aplicativos e serviços de nuvem usam. Com o Key Vault, você pode criptografar chaves e segredos (como chaves de autenticação, chaves de conta de armazenamento, chaves de criptografia de dados, arquivos .PFX e senhas) usando chaves protegidas por HSMs (módulos de segurança de hardware). Para garantia extra, você pode importar ou gerar chaves em HSMs. Confira Azure Key Vault para saber mais. Também é possível usar o Key Vault para gerenciar seus certificados TLS com renovação automática.

Prática recomendada: restringir 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, fora da Internet, cujo acesso você pode controlar. Para obter mais informações, confira Integrar um aplicativo a uma rede virtual do Azure.

Prática recomendada: monitorar o estado de segurança de seus ambientes do Serviço de Aplicativo. Detalhe: Use o Microsoft Defender para Nuvem para monitorar seus ambientes do Serviço de Aplicativo do Azure. Quando o Defender para Nuvem identifica possíveis vulnerabilidades de segurança, ele cria recomendações que guiam você pelo processo de configuração dos controles necessários.

Serviços de nuvem do Azure

Os Serviços de Nuvem do Azure são um exemplo de PaaS. Como o Serviço de Aplicativo do Azure, essa tecnologia foi desenvolvida para dar suporte aos aplicativos escalonáveis, confiáveis e baratos 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 acessá-las remotamente.

Instalar um firewall do aplicativo Web

Os aplicativos Web cada vez mais são alvos de ataques mal-intencionados que exploram vulnerabilidades conhecidas comuns. Os ataques de injeção de SQL, os ataques de scripts entre sites, entre outros, são comuns entre essas explorações. Pode ser difícil impedir esses ataques no código do aplicativo e isso pode exigir manutenção, aplicação de patches e monitoramento rigorosos em muitas camadas da topologia do aplicativo. Um firewall de aplicativo Web centralizado ajuda a simplificar bastante o gerenciamento de segurança e oferece mais garantia ao administrador do aplicativo contra ameaças ou invasões. Uma solução WAF também pode reagir a uma ameaça de segurança mais rapidamente ao aplicar um patch contra uma vulnerabilidade conhecida em um local central do que a proteção de cada um dos aplicativos Web individuais.

O WAF (Firewall do Aplicativo Web) fornece proteção centralizada de seus aplicativos Web contra vulnerabilidades e explorações comuns.

Proteção contra negação de serviço distribuída (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 de DDoS. Você deve habilitar a Proteção contra DDOS do Azure em qualquer rede virtual do perímetro.

Monitorar o desempenho de seus aplicativos

O monitoramento é o ato de coletar e analisar dados para determinar o desempenho, a integridade e a disponibilidade do aplicativo. Uma estratégia de monitoramento eficaz ajuda a esclarecer a operação detalhada dos componentes do seu aplicativo. Ela também ajuda a aumentar o tempo de atividade notificando sobre questões críticas para que você possa resolvê-las antes que se tornem problemas. Além disso, ela ajuda a detectar anomalias que possam estar relacionadas à segurança.

Use o Azure Application Insights para monitorar a disponibilidade, o desempenho e o uso do aplicativo, esteja ele hospedado na nuvem ou localmente. Usando o Application Insights, você pode identificar e diagnosticar erros no aplicativo sem esperar que um usuário os relate. Com as informações coletadas, será possível fazer as escolhas informadas sobre a manutenção e as melhorias do seu aplicativo.

O Application Insights tem ferramentas abrangentes para interagir com os dados que coleta. O Application Insights armazena seus dados em um repositório comum. Ele pode aproveitar recursos compartilhados, como alertas, painéis e análise detalhada com a linguagem de consulta Kusto.

Executar teste de penetração de segurança

A validação de defesas de segurança é tão importante quanto testar qualquer outra funcionalidade. Torne os testes de penetração uma parte padrão do seu processo de criação e implantação. Agende testes de segurança e verificações de vulnerabilidade regulares em aplicativos implantados e monitore em busca de ataques e de portas e pontos de extremidade abertos.

O teste de fuzzing é um método para localizar falhas de programa (erros de código) fornecendo dados de entrada malformados para as interfaces de programas (pontos de entrada) que analisam e consomem esses dados.