Recomendações para proteger recursos

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

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

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

A proteção de 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 oportunidades para atores mal-intencionados explorarem vulnerabilidades. Para proteger sua carga de trabalho, implemente as melhores práticas e configurações de segurança.

A proteção de segurança é um processo contínuo que requer monitoramento contínuo e adaptação a 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 desnecessários ou ajustando configurações.
PAW (estação de trabalho de acesso privilegiado) Um computador dedicado e seguro que você usa para executar tarefas confidenciais, o que reduz o risco de comprometimento.
SAW (estação de trabalho administrativa segura) Uma PAW especializada que é usada por contas de impacto crítico.
Área da superfície Um volume lógico 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 eles recursos ou processos. Quando você reforça a segurança de cada componente, ele melhora a garantia de segurança agregada da 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 a verificação automatizada. A proteção de segurança se concentra no ajuste de configuração com uma mentalidade de defesa em profundidade e violação de pressupor. O objetivo é dificultar a obtenção do controle de um sistema por um invasor. A proteção não deve alterar o utilitário pretendido de uma carga de trabalho ou suas operações.

A primeira etapa do processo de proteção é coletar 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 o volume. Remova a área de superfície desnecessária ou reduza o escopo. Elimine alvos fáceis ou vetores de ataque baratos e bem estabelecidos, como explorações de software sem correspondência e ataques de força bruta. Antes da implantação de produção, você deve limpo identidades, componentes de build e outros ativos não solicitados da árvore de origem.

  • Ajuste as configurações. Avalie e aperte a área restante da superfície. Quando os recursos são protegidos, os métodos testados e testados 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.

  • Manter defesas. Mantenha medidas de proteção executando a 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 fatores a seguir.

Fonte confiável. Parte do exercício de proteção envolve a cadeia de fornecimento de software. Essa orientação pressupõe que todos os componentes sejam obtidos de fontes confiáveis. Sua organização deve aprovar o software adquirido de fornecedores de terceiros. 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 fornecedores, consulte Recomendações para proteger um ciclo de vida de desenvolvimento.

Treinamento. A proteção é 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 as diretrizes que são de especialistas do setor e da plataforma para distingui-lo das diretrizes de fontes incertas. Instrua os membros da sua equipe na criação de uma cultura com reconhecimento de segurança. Verifique se sua equipe é proficiente em práticas recomendadas de segurança, tem reconhecimento de possíveis ameaças e aprende com retrospectivas pós-incidente.

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

A proteção pode ser complicada, mas é um exercício de segurança crucial que você deve documentar. Proteja os componentes principais primeiro e, em seguida, expanda para outras áreas, como processos automatizados e processos humanos, para reforçar 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 nã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 da carga de trabalho e siga as principais estratégias para proteger em um nível de componente.

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 negar por padrão . Só adicione acesso à lista de permitidos se ela for justificada.

Desabilite portas e protocolos que não são usados ativamente. Por exemplo, em 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á desabilitar o acesso administrativo da Internet.

Remover ou desabilitar protocolos herdados. Os invasores exploram sistemas que usam versões antigas. Use um serviço de detecção do Azure para examinar os 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 atenuar o risco de interrupção operacional.

Trate os endereços IP públicos (PIP) como ativos de alto risco porque eles são fáceis de acessar e têm um amplo alcance mundial. Para reduzir a exposição, remova o acesso desnecessário à Internet à 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 foram 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 de entrada na borda da rede. Com um PIP dedicado, você é responsável por gerenciar seus aspectos de segurança, permitir ou bloquear portas e verificar solicitações de entrada para garantir sua validade.

Para aplicativos voltados para a Internet, restrinja o acesso adicionando um serviço de camada 7 que pode filtrar o tráfego inválido. Explore os serviços nativos que impõem a proteção contra DDoS (negação de serviço distribuído), têm firewalls de aplicativo Web e fornecem proteção na borda antes que o tráfego atinja a camada do 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 DNS seja segura, recomendamos que você use resolvedores DNS confiáveis. Para validar informações de resolvedores 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 por cache DNS, ataques de DDoS e ataques de amplificação, explore outros controles de segurança relacionados ao DNS, como limitação de taxa de consulta, limitação da taxa de resposta e cookies DNS.

Identidade

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

Desabilite os métodos de autenticação herdados porque eles são vetores de ataque com frequência. Protocolos antigos geralmente não têm medidas de contador de ataque, como bloqueios de conta. Externalize seus requisitos de autenticação para o IdP (provedor de identidade), como Microsoft Entra ID.

Prefira federação em vez de criar identidades duplicadas. Se uma identidade estiver 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. Proteja os controles de acesso aproveitando a autenticação multifator, a autenticação sem senha, o Acesso Condicional e outros recursos que 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 obter mais informações, consulte Recomendações para proteger segredos do aplicativo.

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 de acesso regulares Microsoft Entra. Use descrições de atribuição de função para manter um rastro de justificativas em papel, o que é crucial para auditorias.

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 não utilizado ao plano de dados e recursos do produto, que outros componentes podem abranger. Por exemplo, Serviço de Aplicativo dá suporte ao Kudu, que fornece implantações ftp, depuração remota e outros recursos. Se você não precisar desses recursos, desative-os.

Acompanhe sempre o roteiro do Azure e o roteiro da carga de trabalho. Aplicar atualizações de aplicação de patch e controle de versão que os serviços do Azure oferecem. Permitir atualizações fornecidas pela plataforma e assinar canais de atualização automatizados.

Risco: os recursos de nuvem geralmente têm requisitos para concessões ou devem ser executados em configurações documentadas para serem consideradas com suporte. Algumas técnicas de proteção, como bloquear agressivamente o 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 runtime de cada recurso de nuvem da plataforma para garantir que você mantenha o suporte para esse recurso.

Aplicativos

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 uma ID de usuário válida e seu aplicativo retorna um erro 403. Mas com uma ID de cliente inválida, a solicitação retorna um erro 404. Em seguida, você está efetivamente vazando informações sobre suas IDs de usuário.

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

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 XSS (script entre sites), 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 de sessão e tokens contra ataques de roubo ou correção de sessão usando técnicas de gerenciamento de sessão seguras. Implemente tempos limite de sessão e imponha a reautenticação para ações confidenciais.

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

  • Cabeçalhos de segurança HTTP: reduza as 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 da API: proteja suas APIs com mecanismos de autenticação e autorização adequados. Para aprimorar ainda mais a segurança, implemente limitação de taxa, validação de solicitação e controles de acesso para pontos de extremidade de API.

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

Operações de gerenciamento

Além disso, proteja outros recursos que não sejam de runtime. Por exemplo, reduza o volume de operações de build fazendo um inventário de todos os ativos e removendo ativos não utilizados do pipeline. Em seguida, efetue pull de tarefas publicadas por fontes confiáveis e execute apenas tarefas validadas.

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

Do ponto de vista da observabilidade, implemente um processo de revisão de logs para 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 o SIEM (gerenciamento de eventos de informações de segurança) e os logs soar (resposta automatizada de orquestração de segurança) para detectar anomalias.

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

Facilitação do Azure

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

O CIS (Centro de Segurança da Internet) oferece imagens protegidas em Azure Marketplace.

Você pode usar o Construtor de Imagens de VM do Azure para criar um processo repetível para imagens do sistema operacional protegidas. O Common Base Linux-Mariner é uma distribuição linux protegida 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 o volume. Remova componentes desnecessários em uma imagem. Instale apenas o que você precisa.

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

    Desabilite 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 que é necessário. Bloquear aplicativos e serviços executados por padrão. Aprovar somente aplicativos e serviços necessários para a funcionalidade de carga de trabalho.

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

Parâmetros de comparação de CIS

Lista de verificação de segurança

Consulte o conjunto completo de recomendações.