Recomendações para proteger recursos

Aplica-se a esta recomendação de lista de verificação do Azure Well-Architected Framework Security:

SE:08 Fortaleça todos os componentes da carga de trabalho reduzindo a área de superfície externa e apertando as configurações para aumentar o custo do invasor.

Este guia descreve as recomendações para proteger recursos desenvolvendo controles localizados em uma carga de trabalho e mantendo-os para resistir a ataques repetidos.

O fortalecimento da segurança é um exercício intencional de autopreservação. O objetivo é reduzir uma superfície de ataque e aumentar os custos dos invasores em outras áreas, o que limita as oportunidades para agentes mal-intencionados explorarem vulnerabilidades. Para proteger sua carga de trabalho, implemente as melhores práticas e configurações de segurança.

O fortalecimento da segurança é um processo contínuo que requer monitoramento e adaptação contínuos às ameaças e vulnerabilidades em evolução.

Definições

Termo Definição
Proteção A prática de reduzir uma área de superfície de ataque removendo recursos estranhos ou ajustando configurações.
Estação de trabalho de acesso privilegiado (PAW) Uma máquina dedicada e segura que você usa para executar tarefas confidenciais, o que reduz o risco de comprometimento.
Estação de trabalho administrativa segura (SAW) Uma PAW especializada que é usada por contas de impacto crítico.
Área de superfície Uma pegada lógica de uma carga de trabalho que contém vulnerabilidades.

Principais estratégias de design

A proteção de segurança é um exercício altamente localizado que fortalece os controles no nível do componente, sejam recursos ou processos. Quando você reforça a segurança de cada componente, isso melhora a garantia de segurança agregada de sua carga de trabalho.

A proteção de segurança não considera a funcionalidade da carga de trabalho e não detecta ameaças nem executa verificação automatizada. O fortalecimento da segurança se concentra no ajuste de configuração com uma mentalidade de violação de pressuposto e defesa em profundidade. O objetivo é dificultar que um invasor obtenha o controle de um sistema. A proteção não deve alterar a utilidade pretendida de uma carga de trabalho ou de suas operações.

Criar um inventário de ativos de carga de trabalho

A primeira etapa do processo de proteção é reunir um inventário abrangente de todos os ativos de hardware, software e dados. Mantenha seus registros de inventário atualizados adicionando novos ativos e removendo ativos desativados. Para todos os ativos em seu inventário, considere as seguintes práticas recomendadas:

  • Reduza a pegada. Remova a área de superfície estranha ou reduza o escopo. Elimine alvos fáceis ou vetores de ataque baratos e bem estabelecidos, como explorações de software não corrigidas e ataques de força bruta. Antes da implantação de produção, você deve limpar identidades, componentes de compilação e outros ativos não necessários da árvore de origem.

  • Ajuste as configurações. Avalie e aperte a área de superfície restante. Quando os recursos são protegidos, os métodos testados e comprovados que os invasores usam não são mais bem-sucedidos. Ele força os invasores a adquirir e usar métodos de ataque avançados ou não testados, o que aumenta seus custos.

  • Mantenha as defesas. Mantenha medidas de proteção realizando detecção contínua de ameaças para ajudar a garantir que os esforços de proteção sejam confiáveis ao longo do tempo.

Considere também os seguintes fatores.

Fonte confiável. Parte do exercício de proteção envolve a cadeia de suprimentos de software. Essas diretrizes pressupõem que todos os componentes sejam obtidos de fontes confiáveis. Sua organização deve aprovar o software adquirido de fornecedores terceirizados. Essa aprovação se aplica a fontes do sistema operacional, imagens e outras ferramentas de terceiros. Sem recursos confiáveis, a proteção pode ser um dreno infinito de garantias de segurança em fontes não confiáveis.

Para obter recomendações sobre segurança para sua cadeia de suprimentos, consulte Recomendações para proteger um ciclo de vida de desenvolvimento.

Treinamento. O endurecimento é uma habilidade especializada. É metódico e requer um alto nível de competência. Você precisa entender a funcionalidade de um componente e como as alterações afetam o componente. Um membro da equipe deve ser capaz de discernir a orientação de especialistas do setor e a plataforma para distingui-la da orientação de fontes incertas. Eduque os membros da equipe sobre a criação de uma cultura com reconhecimento de segurança. Certifique-se de que sua equipe seja proficiente nas melhores práticas de segurança, tenha consciência de possíveis ameaças e aprenda com retrospectivas pós-incidente.

Documentação. Documente e publique requisitos, decisões e métodos definidos de proteção. Para transparência, documente também exceções ou desvios desses requisitos.

O endurecimento pode ser complicado, mas é um exercício de segurança crucial que você deve documentar. Fortaleça os componentes principais primeiro e depois expanda para outras áreas, como processos automatizados e processos humanos, para reduzir possíveis lacunas. Seja meticuloso com as mudanças. Por exemplo, uma etapa necessária é desabilitar as configurações padrão porque as alterações nos valores padrão podem afetar a estabilidade do sistema. Mesmo que a configuração de substituição seja a mesma que o padrão, ela deve ser definida. As seções a seguir descrevem destinos comuns para proteção. Avalie as principais áreas de design de sua carga de trabalho e siga as principais estratégias para fortalecer em um nível de componente.

Fortalecer os componentes de rede

Divida a rede em segmentos para isolar ativos críticos e dados confidenciais de ativos menos seguros, o que reduz os movimentos laterais dos invasores. Nesses segmentos, aplique uma abordagem de negação por padrão . Adicione acesso à lista de permissões somente se for justificado.

Desative portas e protocolos que não são usados ativamente. Por exemplo, no Serviço de Aplicativo do Azure, se você não precisar implantar via FTP, poderá desabilitá-lo. Ou, se você executar operações de gerenciamento por meio de uma rede interna, poderá desativar o acesso administrativo da Internet.

Remova ou desative protocolos legados. Os invasores exploram sistemas que usam versões antigas. Use um serviço de detecção do Azure para examinar logs e determinar o uso do protocolo. Pode ser difícil remover protocolos porque isso pode interromper a funcionalidade do sistema. Teste todas as alterações antes da implementação para mitigar o risco de interrupção operacional.

Trate os endereços IP públicos (PIP) como ativos de alto risco porque são fáceis de acessar e têm um amplo alcance mundial. Para reduzir a exposição, remova o acesso desnecessário à Internet para a carga de trabalho. Use endereços IP públicos compartilhados que os serviços da Microsoft, como o Azure Front Door, fornecem. Esses serviços são projetados para serem voltados para a Internet e bloqueiam o acesso a protocolos não permitidos. Muitos desses serviços executam verificações iniciais em solicitações recebidas na borda da rede. Com um PIP dedicado, você é responsável por gerenciar seus aspectos de segurança, permitir ou bloquear portas e verificar as solicitações recebidas para garantir sua validade.

Para aplicativos voltados para a Internet, restrinja o acesso adicionando um serviço de camada 7 que pode filtrar tráfego inválido. Explore serviços nativos que impõem proteção distribuída contra DDoS (negação de serviço), têm firewalls de aplicativos Web e fornecem proteção na borda antes que o tráfego atinja a camada de aplicativo.

A proteção do DNS (Sistema de Nomes de Domínio) é outra prática de segurança de rede. Para garantir que a infraestrutura de DNS seja segura, recomendamos que você use resolvedores de DNS confiáveis. Para validar informações de resolvedores de DNS e fornecer uma camada extra de segurança, quando possível, use um protocolo de segurança DNS para zonas DNS altamente confidenciais. Para evitar ataques como envenenamento de cache DNS, ataques DDoS e ataques de amplificação, explore outros controles de segurança relacionados ao DNS, como limitação de taxa de consulta, limitação de taxa de resposta e cookies DNS.

Fortaleça os controles de acesso de identidade

Remova contas não utilizadas ou padrão. Desative os métodos de autenticação e autorização não utilizados.

Desative os métodos de autenticação herdados porque eles são frequentemente vetores de ataque. Os protocolos antigos geralmente não possuem medidas de combate a ataques, como bloqueios de conta. Externalize seus requisitos de autenticação para seu provedor de identidade (IdP), como a ID do Microsoft Entra.

Prefira a federação à criação de identidades duplicadas. Se uma identidade for comprometida, será mais fácil revogar seu acesso quando ela for gerenciada centralmente.

Entenda os recursos da plataforma para autenticação e autorização aprimoradas. Fortaleça os controles de acesso aproveitando a autenticação multifator, a autenticação sem senha, o Acesso Condicional e outros recursos que o Microsoft Entra ID oferece para verificar a identidade. Você pode adicionar proteção extra em torno de eventos de entrada e reduzir o escopo no qual um invasor pode fazer uma solicitação.

Use identidades gerenciadas e identidades de carga de trabalho sem credenciais sempre que possível. As credenciais podem ser vazadas. Para saber mais, confira Recomendações para proteger segredos de aplicativos.

Use a abordagem de privilégios mínimos para seus processos de gerenciamento. Remova atribuições de função desnecessárias e execute revisões regulares de acesso ao Microsoft Entra. Use descrições de atribuição de função para manter um rastro de justificativas em papel, o que é crucial para auditorias.

Fortalecer as configurações de recursos de nuvem

As recomendações de proteção anteriores para rede e identidade se aplicam a serviços de nuvem individuais. Para rede, preste atenção especial aos firewalls de nível de serviço e avalie suas regras de entrada.

Descubra e desabilite recursos ou recursos não utilizados, como acesso ao plano de dados não utilizado e recursos do produto, que outros componentes podem abranger. Por exemplo, o Serviço de Aplicativo dá suporte ao Kudu, que fornece implantações de FTP, depuração remota e outros recursos. Se você não precisar desses recursos, desative-os.

Sempre acompanhe o roteiro do Azure e o roteiro de carga de trabalho. Aplique atualizações de patch e controle de versão que os serviços do Azure oferecem. Permita atualizações fornecidas pela plataforma e assine canais de atualização automatizados.

Risco: os recursos de nuvem geralmente têm requisitos de permissões ou devem ser executados em configurações documentadas para serem considerados suportados. Algumas técnicas de proteção, como o bloqueio agressivo do tráfego de saída, podem fazer com que um serviço fique fora de uma configuração com suporte, mesmo que o serviço opere normalmente. Entenda os requisitos de tempo de execução de cada recurso de nuvem de sua plataforma para garantir que você mantenha o suporte para esse recurso.

Fortalecer ativos de código

Avalie as áreas em que seu aplicativo pode vazar informações inadvertidamente. Por exemplo, suponha que você tenha uma API que recupera informações do usuário. Uma solicitação pode ter um ID de usuário válido e seu aplicativo retorna um erro 403. Mas com um ID de cliente inválido, a solicitação retorna um erro 404. Então você está efetivamente vazando informações sobre seus IDs de usuário.

Pode haver casos mais sutis. Por exemplo, a latência de resposta com um ID de usuário válido é maior do que um ID de cliente inválido.

Considere implementar a proteção de aplicativos nas seguintes áreas:

  • Validação e limpeza de entrada: evite ataques de injeção, como injeção de SQL e cross-site scripting (XSS), validando e higienizando todas as entradas do usuário. Automatize a limpeza de entrada usando bibliotecas e estruturas de validação de entrada.

  • Gerenciamento de sessão: proteja identificadores e tokens de sessão contra ataques de roubo ou fixação de sessão usando técnicas seguras de gerenciamento de sessão. Implemente tempos limite de sessão e imponha a reautenticação para ações confidenciais.

  • Gerenciamento de erros: implemente o tratamento de erros personalizado para minimizar a exposição de informações confidenciais a invasores. Registre erros com segurança e monitore esses logs em busca de atividades suspeitas.

  • Cabeçalhos de segurança HTTP: reduza vulnerabilidades comuns da Web utilizando cabeçalhos de segurança em respostas HTTP, como a Política de Segurança de Conteúdo (CSP), X-Content-Type-Options e X-Frame-Options.

  • Segurança de APIs: proteja suas APIs com mecanismos adequados de autenticação e autorização. Para aprimorar ainda mais a segurança, implemente a limitação de taxa, a validação de solicitações e os controles de acesso para endpoints de API.

Siga as práticas de codificação seguras ao desenvolver e manter aplicativos. Realize regularmente revisões de código e verifique aplicativos em busca de vulnerabilidades. Para obter mais informações, consulte Recomendações para proteger um ciclo de vida de desenvolvimento.

Fortaleça as operações de gerenciamento

Também proteja outros recursos que não sejam de tempo de execução. Por exemplo, reduza o volume das operações de compilação fazendo um inventário de todos os ativos e removendo os ativos não utilizados do pipeline. Em seguida, extraia as tarefas publicadas por fontes confiáveis e execute apenas as tarefas validadas.

Determine se você precisa de agentes de build hospedados ou auto-hospedados pela Microsoft. Os agentes de compilação auto-hospedados precisam de gerenciamento extra e devem ser protegidos.

Do ponto de vista da observabilidade, implemente um processo para revisar os logs em busca de possíveis violações. Revise e atualize regularmente as regras de controle de acesso com base nos logs de acesso. Trabalhe com equipes centrais para analisar logs de gerenciamento de eventos de informações de segurança (SIEM) e resposta automatizada de orquestração de segurança (SOAR) para detectar anomalias.

Considere exigir PAWs ou SAWs para operações de gerenciamento privilegiado. PAWs e SAWs são dispositivos físicos reforçados que oferecem vantagens de segurança significativas, mas sua implementação requer planejamento e gerenciamento cuidadosos. Para obter mais informações, consulte Protegendo dispositivos como parte da história de acesso privilegiado.

Facilitação do Azure

O Microsoft Defender para Nuvem oferece vários recursos de proteção:

O CIS (Center for Internet Security) oferece imagens protegidas no Azure Marketplace.

Você pode usar o Construtor de Imagens de VM do Azure para criar um processo repetível para imagens de sistema operacional protegidas. O Common Base Linux-Mariner é uma distribuição Linux reforçada desenvolvida pela Microsoft que segue os padrões de segurança e as certificações do setor. Você pode usá-lo com produtos de infraestrutura do Azure para criar implementações de carga de trabalho.

Exemplo

O procedimento a seguir é um exemplo de como proteger um sistema operacional:

  1. Reduza a pegada. Remova componentes desnecessários em uma imagem. Instale apenas o que você precisa.

  2. Ajuste as configurações. Desative contas não utilizadas. A configuração padrão dos sistemas operacionais tem contas extras vinculadas a grupos de segurança. Se você não usar essas contas, desative-as ou remova-as do sistema. Identidades extras são vetores de ameaças que podem ser usados para obter acesso ao servidor.

    Desative o acesso desnecessário ao sistema de arquivos. Criptografe o sistema de arquivos e ajuste os controles de acesso para identidade e rede.

    Execute apenas o necessário. Bloqueie aplicativos e serviços executados por padrão. Aprove apenas aplicativos e serviços necessários para a funcionalidade da carga de trabalho.

  3. Mantenha as defesas. Atualize regularmente os componentes do sistema operacional com as atualizações e patches de segurança mais recentes para mitigar vulnerabilidades conhecidas.

Benchmarks CIS

Lista de verificação de segurança

Consulte o conjunto completo de recomendações.