Skip to main content

Como analisar templates ARM em busca de configurações incorretas com a Snyk CLI

Escrito por

Lauren Place

blog feature iac cli arm

10 de novembro de 2021

0 minutos de leitura

Gerenciar recursos de aplicativos em grande escala pode ser complicado. Por isso, muitas equipes de DevOps e AppSec recorrem a frameworks declarativos, em vez de escrever scripts individuais para implantar, gerenciar e manter os controles de acesso dos recursos.

Em ambientes Azure, o Azure Resource Manager (ARM) é a camada de gerenciamento que permite às equipes gerenciar sua infraestrutura como código (IaC) por meio de templates ARM declarativos. Ele permite centralizar o gerenciamento, a implantação e a segurança dos recursos do Azure e vem se tornando cada vez mais popular. De acordo com nosso relatório mais recente, State of Cloud Native Application Security, mais de 30% das equipes disseram usar o Azure Resource Manager como ferramenta de IaC.

Com a enorme popularidade do ARM, temos o prazer de anunciar que agora você pode usar o Snyk Infrastructure as Code (Snyk IaC) para encontrar e corrigir configurações incorretas em arquivos JSON do ARM. Ao corrigir esses problemas no início do ciclo de vida do desenvolvimento de software, as equipes de segurança e desenvolvimento podem evitar análises de código lentas e manuais, além do processo trabalhoso de corrigir vulnerabilidades muito mais adiante.

Confira alguns exemplos de fluxos de trabalho com o Snyk IaC e o ARM.

Como analisar templates ARM com a Snyk CLI

Para fins de teste, preparamos este repositório de exemplo, que contém arquivos de template ARM nos formatos JSON e Bicep. Você pode clonar o repositório e testar os arquivos ARM com a Snyk CLI.

Para começar a usar a Snyk CLI, você pode criar uma conta gratuita e, em seguida, instalar a Snyk CLI com o npm. Se o Node.js estiver instalado localmente, execute este comando para instalá-la: npm install snyk@latest -g

Se você usa Yarn: yarn global add snyk

Saída do terminal de uma verificação do Snyk IaC que mostra seis problemas de segurança em um modelo ARM do Azure, incluindo implantações por FTP e uso de TLS desatualizado.

Identificação de configurações incorretas em arquivos ARM Bicep

Bicep é uma linguagem específica de domínio (DSL) que usa sintaxe declarativa para implantar recursos do Azure. Ela oferece uma sintaxe concisa, segurança de tipos confiável e suporte à reutilização de código. Além de analisar arquivos JSON do ARM, você também pode analisar arquivos Bicep convertendo-os para JSON com a Bicep CLI.

Primeiro, confira se a Bicep CLI está instalada. Em seguida, use o comando az bicep build -f {file_name}.bicep para converter qualquer arquivo de configuração ARM do formato Bicep para JSON. Depois de converter o arquivo, basta analisá-lo como qualquer outro arquivo JSON do ARM.

Saída do terminal do teste do arquivo wordpress.json com o Snyk IaC, indicando um problema de gravidade média relacionado a um token SAS transmitido por HTTP inseguro.

Aproveite as regras de segurança de configuração da Snyk

É claro que a funcionalidade de análise de IaC, por si só, não basta. A abrangência e a profundidade das regras de segurança são essenciais para oferecer feedback completo sobre segurança e detectar configurações incorretas antes da implantação dos recursos. A equipe dedicada de Engenharia de Segurança da Snyk pesquisa, valida e adiciona novas regras — já são mais de 100 para proteger seu ambiente Azure, e esse número continua crescendo.

Nossas equipes de Engenharia de Segurança combinam práticas recomendadas conhecidas com pesquisas próprias para adicionar regras continuamente. As práticas recomendadas são baseadas tanto em padrões de provedores de nuvem e da comunidade, como os benchmarks CIS, quanto nas recomendações para Azure. Na área de pesquisa de segurança, usamos técnicas de modelagem de ameaças para analisar padrões de uso importantes. Por exemplo, examinamos as configurações de serviços gerenciados de Kubernetes para identificar vulnerabilidades que podem ser evitadas com o fortalecimento adequado da IaC.

Para ver as regras do Snyk IaC, acesse Settings na sua organização Snyk e selecione Infrastructure as Code no menu à esquerda. Para filtrar a visualização e mostrar apenas o Azure, selecione Azure nas guias abaixo de Severity settings. Nosso objetivo é criar regras independentes de formato. Por isso, a maioria das regras será exibida independentemente das opções selecionadas.

Configurações de gravidade para regras do Azure Terraform e ARM, mostrando achados de API Management e App Service com as opções de gravidade baixa e média selecionadas.

Você também pode consultar publicamente a lista completa de regras de segurança para ARM na seção Security Rules do nosso site.

Página da Snyk sobre ARM que lista problemas de segurança no Azure API Management e no App Service, com tags de Terraform, ARM, Azure e CIS

Evite configurações incorretas no ARM com o Snyk IaC

Esses novos recursos estão disponíveis para todos, inclusive para quem usa o plano gratuito da Snyk. É simples começar:

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

Queremos saber como está sendo sua experiência com o suporte a ARM na Snyk CLI. Compartilhe comentários ou sugestões no fórum da Snyk Community.

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: