SEC06-BP02 Provisionar computação por meio de imagens reforçadas - AWS Well-Architected Framework

SEC06-BP02 Provisionar computação por meio de imagens reforçadas

Ofereça menos oportunidades de acesso indesejado aos ambientes de runtime implantando-os com base em imagens reforçadas. Adquira somente dependências de runtime, como imagens de contêiner e bibliotecas de aplicações, de registros confiáveis e verifique as respectivas assinaturas. Crie seus próprios registros privados para armazenar imagens e bibliotecas confiáveis para uso nos processos de criação e implantação.

Resultado desejado: seus recursos de computação são provisionados com base em imagens de referência reforçadas. Você recupera dependências externas, como imagens de contêiner e bibliotecas de aplicações, somente de registros confiáveis e verifica as respectivas assinaturas. Elas são armazenadas em registros privados para que seus processos de compilação e implantação as consultem. Você verifica e atualiza imagens e dependências regularmente para ajudar a oferecer proteção contra qualquer vulnerabilidade recém-descoberta.

Antipadrões comuns:

  • Adquirir imagens e bibliotecas de registros confiáveis, mas não verificar a respectiva assinatura nem realizar verificações de vulnerabilidades antes de colocá-las em uso.

  • Reforçar as imagens, mas não testá-las regularmente em busca de novas vulnerabilidades ou atualizá-las para a versão mais recente.

  • Instalar ou não remover pacotes de software que não são necessários durante o ciclo de vida previsto da imagem.

  • Confiar apenas na aplicação de patches para manter os recursos de computação de produção atualizados. Ao utilizar apenas a aplicação de patches, os recursos de computação podem se desviar do padrão reforçado com o passar do tempo. A aplicação de patches também pode não conseguir remover malware que tenha sido instalado por um agente de ameaças durante um evento de segurança.

Benefícios do estabelecimento desta prática recomendada: o fortalecimento de imagens ajuda a reduzir o número de caminhos disponíveis em seu ambiente de runtime capazes de permitir acesso indesejado a usuários ou serviços não autorizados. Também pode reduzir o escopo do impacto caso ocorra algum acesso indesejado.

Nível de exposição a riscos se esta prática recomendada não for estabelecida: alto

Orientações para a implementação

Para fortalecer seus sistemas, comece com as versões mais recentes de sistemas operacionais, imagens de contêiner e bibliotecas de aplicações. Aplique patches aos problemas conhecidos. Minimize o sistema removendo quaisquer aplicações, serviços, drivers de dispositivo, usuários padrão e outras credenciais dispensáveis. Execute qualquer outra ação necessária, como desabilitar portas para criar um ambiente que tenha somente os recursos e capacidades essenciais para as workloads. Com base nesse parâmetro, você pode instalar software, agentes ou outros processos necessários para finalidades como monitoramento da workload ou gerenciamento de vulnerabilidades.

Você pode reduzir a sobrecarga de fortalecer os sistemas usando as orientações fornecidas por fontes confiáveis, como o Center for Internet Security (CIS) e os Security Technical Implementation Guides (STIGs) da Agência de Sistemas de Informação de Defesa (DISA). Recomendamos que você comece com uma imagem de máquina da Amazon (AMI) publicada pela AWS ou por um parceiro da APN e use o AWS EC2 Image Builder para automatizar a configuração de acordo com uma combinação apropriada de controles do CIS e do STIG.

Embora existam imagens reforçadas e fórmulas do EC2 Image Builder disponíveis que aplicam as recomendações do CIS ou do STIG da DISA, você pode descobrir que sua configuração impede que o software seja executado com êxito. Nessa situação, você pode começar com uma imagem base não reforçada, instalar o software e, em seguida, aplicar incrementalmente os controles do CIS para testar o respectivo impacto. Com relação a qualquer controle do CIS que impeça a execução do software, teste se é possível implementar as recomendações de fortalecimento mais refinadas em um STIG da DISA. Acompanhe os diferentes controles do CIS e as configurações do STIG da DISA que você pode aplicar com sucesso. Use-os para definir adequadamente suas fórmulas de fortalecimento de imagem no EC2 Image Builder.

Para workloads em contêineres, imagens reforçadas do Docker estão disponíveis no repositório público do Amazon Elastic Container Registry (ECR). Você pode usar o EC2 Image Builder para reforçar imagens de contêiner, bem como AMIs.

De modo semelhante aos sistemas operacionais e às imagens de contêiner, você pode obter pacotes de código (ou bibliotecas) de repositórios públicos por meio de determinadas ferramentas, como pip, npm, Maven e NuGet. Recomendamos que você gerencie pacotes de código integrando repositórios privados (por ex., dentro do AWS CodeArtifact) a repositórios públicos confiáveis. Com essa integração, você não precisa se preocupar em lidar com a recuperação, o armazenamento e a manutenção de pacotes atualizados. Seus processos de criação de aplicações podem então obter e testar a versão mais recente desses pacotes, bem como a aplicação, usando técnicas como análise de composição de software (SCA), testes estáticos de segurança de aplicações (SAST) e testes dinâmicos de segurança de aplicações (DAST).

Para workloads sem servidor que usam o AWS Lambda, simplifique o gerenciamento de dependências de pacotes usando camadas do Lambda. Use camadas do Lambda para configurar um conjunto de dependências padrão que são compartilhadas em diferentes funções em um arquivo independente. Você pode criar e manter camadas por meio de seu próprio processo de criação, fornecendo um meio centralizado para manter as funções atualizadas.

Etapas da implementação

  • Fortaleça o sistema operacional. Use imagens básicas de fontes confiáveis como base para criar AMIs reforçadas. Use o EC2 Image Builder para ajudar a personalizar o software instalado nas imagens.

  • Fortaleça os recursos em contêiner. Configure recursos em contêiner para atender às práticas recomendadas de segurança. Ao usar contêineres, implemente a verificação de imagens do ECR no pipeline de compilação e regularmente no repositório de imagens para procurar CVEs nos contêineres. 

  • Ao utilizar a implementação sem servidor com o AWS Lambda, use camadas do Lambda para separar o código da função da aplicação e bibliotecas dependentes compartilhadas. Configure a assinatura de código para o Lambda a fim de garantir que somente código confiável seja executado nas funções do Lambda.

Recursos

Práticas recomendadas relacionadas:

Vídeos relacionados:

Exemplos relacionados: