Skip to main content

Analise configurações incorretas do AWS CloudFormation com o Snyk IaC

Escrito por
Headshot of Ilianna Papastefanou

Ilianna Papastefanou

Infrastructure as Code security

17 de junho de 2021

0 minutos de leitura

Temos o prazer de anunciar o suporte ao AWS CloudFormation no Snyk Infrastructure as Code. Em nosso relatório recente Insights sobre segurança de Infrastructure as Code, descobrimos que 36% dos participantes da pesquisa usavam o AWS CloudFormation (CF) como sua principal ferramenta de infraestrutura como código. Com o Snyk Infrastructure as Code, agora você pode analisar seus modelos CF em YAML ou JSON com base em nosso abrangente conjunto de regras de segurança da AWS.

Com esses novos recursos, você pode tratar seus arquivos do CloudFormation como qualquer outro código e antecipar a segurança no processo de desenvolvimento, integrando-a às etapas de desenvolvimento e implantação da infraestrutura.

Integre onde for importante

Esse recurso está disponível tanto na importação de um repositório quanto pela nossa CLI. Assim, você pode integrá-lo em qualquer etapa, do desenvolvimento local ao controle de versão e aos pipelines de CI/CD.

Usando este repositório de exemplo, que contém arquivos de modelo do CloudFormation inseguros, integramos o repositório do GitHub ao Snyk e detectamos diversos problemas nos arquivos CF.

Painel de projetos do Snyk mostrando snyk/snyk-iac-cloudformation, com contagens por gravidade e um link para visualizar o relatório.

No Snyk, você pode expandir o repositório para ver a lista de arquivos de configuração analisados. Na tela abaixo, selecionamos o arquivo db.yml . Aqui, você vê os problemas de configuração encontrados, vinculados às linhas correspondentes no modelo CF original:

Modelo do AWS CloudFormation mostrando uma configuração do RDS ao lado de um alerta de que a autenticação IAM do RDS está desativada

Como alternativa, você pode obter o mesmo feedback usando a Snyk CLI, que processa os arquivos localmente. Isso significa que nenhum dado é enviado ao Snyk.

$ snyk iac test db.yml

Testing db.yml...

Infrastructure as code issues:
  ✗ Non-encrypted RDS instance at rest [Medium Severity] [SNYK-CC-TF-201] in RDS
    introduced by Resources[Database] > Properties > StorageEncrypted

  ✗ RDS IAM authentication is disabled [Medium Severity] [SNYK-CC-AWS-414] in RDS
    introduced by Resources[Database] > Properties > EnableIAMDatabaseAuthentication

  ✗ Non-Encrypted SNS Topic [Medium Severity] [SNYK-CC-TF-55] in SNS
    introduced by Resources > DatabaseAlarmTopic > Properties > KmsMasterKeyId

  ✗ SNS topic is not encrypted with customer managed key [Low Severity] [SNYK-CC-AWS-422] in SNS
    introduced by Resources[DatabaseAlarmTopic] > Properties > KmsMasterKeyId

Organization:      mycompany.test
Type:              CloudFormation
Target file:       db.yml
Project name:      cloudformation-example
Open source:       no
Project path:      /Users/iliana/workspace/snyk-iac-cloudformation

Tested db.yml for known issues, found 4 issues

Como usar o AWS Cloud Development Kit

O AWS Cloud Development Kit (AWS CDK) é uma estrutura de desenvolvimento de software de código aberto que permite definir os recursos dos seus aplicativos na nuvem usando linguagens de programação conhecidas. Com o AWS CDK, você pode definir sua infraestrutura usando uma linguagem de programação com a qual tenha mais familiaridade, como TypeScript ou Python, em vez de escrever YAML. Essa abordagem oferece mais flexibilidade e acessibilidade: você pode usar uma linguagem e um ambiente de desenvolvimento integrado (IDE) com os quais já esteja à vontade e também aproveitar construções de programação para dispensar a criação de modelos YAML.

Você também pode analisar seus arquivos do AWS CDK com o recurso iac test da Snyk CLI. Para isso, primeiro converta-os em um arquivo JSON usando o subcomando integrado synth do AWS CDK.

Usando outro exemplo, que define uma infraestrutura em TypeScript, você pode executar os seguintes comandos para testar as configurações nos seus pipelines com a Snyk CLI:

# install your dependencies
npm install
# convert your typescript to a CloudFormation json file
cdk synth

# scan the rendered json file using the Snyk IaC CLI
snyk iac test cdk.out/VpcStackWithIssues.template.json

Testing VpcStackWithIssues.template.json...

Infrastructure as code issues:
  ✗ Security Group allows open ingress [Medium Severity] [SNYK-CC-TF-1] in VPC
    introduced by Resources > SSHSG26D56496 > Properties > SecurityGroupIngress[0]

  ✗ AWS Security Group allows open egress [Low Severity] [SNYK-CC-TF-73] in VPC
    introduced by Resources[SSHSG26D56496] > Properties > SecurityGroupEgress[0] > CidrIp

  ✗ Rule allows open egress [Low Severity] [SNYK-CC-TF-72] in VPC
    introduced by Resources[SSHSG26D56496] > Properties > SecurityGroupEgress[0]

Organization:      mycompany.test
Type:              CloudFormation
Target file:       cdk.out/VpcStackWithIssues.template.json
Project name:      cdk.out
Open source:       no
Project path:      cdk.out/VpcStackWithIssues.template.json

Tested VpcStackWithIssues.template.json for known issues, found 3 issues

Esse fluxo de trabalho é ideal para um pipeline de build, pois pode ser totalmente automatizado a cada pull request. Na data de publicação deste artigo, só era possível analisar arquivos do AWS CDK por meio de um fluxo de trabalho baseado na CLI.

Regras abrangentes de segurança de configuração

A profundidade e a abrangência das regras de segurança são importantes para garantir um feedback de segurança completo. A Snyk conta com uma equipe dedicada de engenharia de segurança que pesquisa, valida e adiciona continuamente novas regras ao produto — são mais de 100 para a AWS, e esse número continua crescendo.

Ao adicionar regras, garantimos uma cobertura adequada combinando práticas recomendadas conhecidas com nossa própria pesquisa de segurança. As práticas recomendadas se baseiam tanto nos padrões de provedores de nuvem quanto nos da comunidade — por exemplo, nos benchmarks CIS e nas práticas recomendadas para Kubernetes e AWS. Nossa pesquisa de segurança também inclui técnicas como exercícios de modelagem de ameaças para padrões de uso importantes. Por exemplo, analisamos as configurações de serviços gerenciados de Kubernetes para identificar vulnerabilidades que podem ser evitadas com o fortalecimento adequado de IaC.

Você pode consultar e alterar a gravidade das regras do Snyk IaC acessando Configurações na sua organização do Snyk e selecionando Infrastructure as Code no menu à esquerda. Para filtrar os resultados e exibir apenas o AWS CloudFormation, selecione AWS nas guias abaixo de Configurações de gravidade e escolha CloudFormation (ou Terraform, se preferir). Procuramos criar regras independentes do formato, por isso a maioria delas aparece independentemente das opções selecionadas.

Configurações de gravidade da AWS exibindo verificações do CloudFormation para problemas de segurança no API Gateway, com níveis de gravidade baixo, médio e alto

Você também pode consultar publicamente a lista completa de regras de segurança do AWS CloudFormation na seção Regras de segurança do nosso site.

Página da Snyk sobre AWS CloudFormation com regras de segurança para o API Gateway, incluindo verificações de política TLS, acesso anônimo, rastreamento do X-Ray, registros e criptografia.

Comece a usar o Snyk IaC gratuitamente

Qualquer pessoa pode experimentar esses novos recursos, inclusive quem usa o plano gratuito. É fácil começar:

  • Se você ainda não tem uma conta Snyk, cadastre-se gratuitamente.

  • Instale a Snyk CLI. Se você já tem a Snyk CLI instalada, confira se está usando a versão 1.629.0 ou posterior para acessar esses recursos.

  • Analise seus arquivos do CloudFormation. O comando principal para analisar IaC com os novos recursos é: snyk iac test <path-to-file-or-folder>

Saiba mais sobre as diversas opções de análise disponíveis na documentação da Snyk ou consulte a documentação da CLI executando: snyk iac --help

Adoraríamos saber sua opinião! Se você já é cliente da Snyk, sua equipe de sucesso do cliente é um ótimo canal para enviar feedback sobre o produto. Mas também aceitamos comentários de todos no fórum da comunidade Snyk.

Proteja a infraestrutura desde a origem

A Snyk automatiza a segurança e a conformidade de IaC nos fluxos de trabalho e detecta recursos com configurações divergentes ou ausentes.

Publicado em: