Recomendações para fortalecer os 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 estranha 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.
O endurecimento da segurança é um exercício intencional de autopreservação. O objetivo é reduzir uma superfície de ataque e aumentar os custos dos atacantes em outras áreas, o que limita as oportunidades para agentes mal-intencionados explorarem vulnerabilidades. Para proteger sua carga de trabalho, implemente práticas e configurações recomendadas de segurança.
O reforço da segurança é um processo contínuo que requer monitorização e adaptação contínuas à evolução das ameaças e vulnerabilidades.
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) | Um PAW especializado que é usado 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
O fortalecimento 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 deteta ameaças nem executa verificações automatizadas. A proteção de segurança se concentra no ajuste de configuração com uma mentalidade de violação de assunção 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.
Crie 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 do 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 exploits de software sem patches e ataques de força bruta. Antes da implantação de produção, você deve limpar identidades, criar componentes 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 reforçados, os métodos experimentados e testados que os atacantes usam não são mais bem-sucedidos. Ele força os atacantes a adquirir e usar métodos de ataque avançados ou não testados, o que aumenta seus custos.
Manter defesas. Mantenha as medidas de proteção realizando a deteçã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 endurecimento envolve a cadeia de suprimentos de software. Esta orientação pressupõe que todos os componentes são obtidos de fontes confiáveis. Sua organização deve aprovar o software adquirido de fornecedores terceirizados. Esta aprovação aplica-se a fontes do sistema operativo, 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 suprimento, consulte Recomendações para proteger um ciclo de vida de desenvolvimento.
Formação. 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 que é de especialistas do setor e a plataforma para distingui-la da orientação de fontes incertas. Eduque os membros da sua equipa na criação de uma cultura consciente da segurança. Certifique-se de que sua equipe seja proficiente em práticas recomendadas de segurança, tenha conhecimento de ameaças potenciais e aprenda com as retrospetivas pós-incidente.
Documentação. Documente e publique requisitos, decisões e métodos definidos de proteção. Por razões de transparência, documente também exceções ou desvios a esses requisitos.
A proteção pode ser complicada, mas é um exercício de segurança crucial que você deve documentar. Endureca primeiro os componentes principais e, em seguida, expanda para outras áreas, como processos automatizados e processos humanos, para reduzir as lacunas potenciais. Seja meticuloso com as mudanças. Por exemplo, uma etapa necessária é desativar 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 alvos comuns para proteção. Avalie as principais áreas de projeto de sua carga de trabalho e siga as principais estratégias para fortalecer em um nível de componente.
Reforçar 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 . Só adicione acesso à lista de permissões 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 realizar operações de gestão através de uma rede interna, pode desativar o acesso administrativo a partir da Internet.
Remova ou desative protocolos herdados. Os atacantes exploram sistemas que usam versões antigas. Use um serviço de deteção do Azure para revisar logs e determinar o uso do protocolo. Pode ser difícil remover protocolos porque pode interromper a funcionalidade do sistema. Teste todas as alterações antes da implementação para reduzir 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 à 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 realizam verificações iniciais em solicitações de entrada na borda da rede. Com um PIP dedicado, você é responsável por gerenciar seus aspetos 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 possa filtrar tráfego inválido. Explore serviços nativos que impõem proteção distribuída contra negação de serviço (DDoS), 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 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.
Proteja 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. Protocolos antigos geralmente carecem de medidas de combate a ataques, como bloqueios de contas. Externalize seus requisitos de autenticação para seu provedor de identidade (IdP), como o Microsoft Entra ID.
Prefira a federação à criação de identidades duplicadas. Se uma identidade for comprometida, é mais fácil revogar seu acesso quando ela é gerenciada centralmente.
Compreenda 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 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 obter mais informações, consulte 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 do Microsoft Entra. Use descrições de atribuição de função para manter um rastro de papel das justificativas, o que é crucial para auditorias.
Proteja as configurações de recursos na nuvem
As recomendações de proteção anteriores para rede e identidade aplicam-se a serviços de nuvem individuais. Para a rede, preste especial atenção aos firewalls de nível de serviço e avalie suas regras de entrada.
Descubra e desative recursos ou recursos não utilizados, como acesso ao plano de dados não utilizado e recursos do produto, que outros componentes podem cobrir. Por exemplo, o Serviço de Aplicativo suporta Kudu, que fornece implantações de 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. Aplique patches e atualizações de controle de versão que os serviços do Azure oferecem. Permita atualizações fornecidas pela plataforma e inscreva-se em canais de atualização automatizados.
Risco: os recursos de nuvem geralmente têm requisitos para 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 suportada, mesmo que o serviço opere normalmente. Entenda os requisitos de tempo de execução de cada recurso de nuvem da sua plataforma para garantir que você mantenha o suporte para esse recurso.
Ativos de código Harden
Avalie áreas onde 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. Em seguida, 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 a implementação de proteção de aplicativos nas seguintes áreas:
Validação e limpeza de entradas: impeça ataques de injeção, como injeção de SQL e scripts entre sites (XSS), validando e limpando todas as entradas do usuário. Automatize a higienização de entrada usando bibliotecas e estruturas de validação de entrada.
Gerenciamento de sessão: proteja identificadores de sessão e tokens contra roubo ou ataques de 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 personalizado de erros 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: atenue 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 aumentar ainda mais a segurança, implemente o limite de taxa, a validação de solicitações e os controles de acesso para pontos de extremidade de API.
Siga práticas de codificação seguras ao desenvolver e manter aplicativos. Realize regularmente revisões de código e analise aplicativos em busca de vulnerabilidades. Para obter mais informações, consulte Recomendações para proteger um ciclo de vida de desenvolvimento.
Endurecer as operações de gestão
Também proteja outros recursos que não sejam de tempo de execução. Por exemplo, reduza a pegada das operações de construção fazendo um inventário de todos os ativos e removendo os ativos não utilizados do seu pipeline. Em seguida, extraia tarefas publicadas por fontes confiáveis e execute apenas tarefas validadas.
Determine se você precisa de agentes de compilação hospedados pela Microsoft ou auto-hospedados. Os agentes de compilação auto-hospedados precisam de gerenciamento extra e devem ser reforçados.
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 logs de gerenciamento de eventos de informações de segurança (SIEM) e de resposta automatizada de orquestração de segurança (SOAR) para detetar anomalias.
Considere a possibilidade de exigir PAWs ou SAWs para operações de gerenciamento privilegiadas. PAWs e SAWs são dispositivos físicos robustos que oferecem vantagens significativas de segurança, 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 for Cloud oferece vários recursos de proteção:
- Fortalecimento do servidor
- Proteção de rede adaptável
- Proteção de host do Docker
O Center for Internet Security (CIS) oferece imagens reforçadas no Azure Marketplace.
Você pode usar o Construtor de Imagens de VM do Azure para criar um processo repetível para imagens protegidas do sistema operacional. Common Base Linux-Mariner é uma distribuição Linux reforçada desenvolvida pela Microsoft que segue padrões de segurança e 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:
Reduza a pegada. Remova componentes desnecessários em uma imagem. Instale apenas o que você precisa.
Ajuste as configurações. Desative as 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ça 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 que for 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.
Manter defesas. Atualize regularmente os componentes do sistema operacional com as atualizações e patches de segurança mais recentes para mitigar vulnerabilidades conhecidas.
Ligações relacionadas
- Proteção de rede adaptável
- Recomendações para proteger segredos de aplicativos
- Recomendações para garantir um ciclo de vida de desenvolvimento
- Protegendo dispositivos como parte da história de acesso privilegiado
- Fortalecimento do servidor
Ligações da comunidade
Parâmetros de referência do SIA
Lista de verificação de segurança
Consulte o conjunto completo de recomendações.