Entenda os CNAPPs com o nosso guia
Entenda os CNAPPs com o nosso guia
Definição de segurança de infraestrutura como código (IaC)
A segurança de infraestrutura como código é a prática de abordar problemas de configuração de segurança na camada de IaC em vez de executar varredura em recursos de nuvem implementados. Na verdade, é a mudança da segurança diretamente para o processo de scripting da IaC, onde os problemas de segurança podem ser resolvidos antes que os recursos do IaC sejam implementados.
Dada a natureza acelerada do desenvolvimento da IaC, é inteiramente possível que uma pequena configuração incorreta de segurança possa entrar no script da IaC, infectando todas as implementações subsequentes. Como resultado, problemas menores, como permissões inadequadas, podem levar a vulnerabilidades graves. A segurança da IaC tenta detectar esses problemas antes mesmo que eles aconteçam.
Benefícios da segurança de infraestrutura como código
A infraestrutura como código permite que os desenvolvedores avancem mais rapidamente na implementação de recursos, criem infraestrutura replicável e escalável e automatizem configurações para economizar tempo e recursos. No entanto, devido a essa velocidade inerente e a capacidade de automação, a IaC apresenta alguns desafios que precisam ser enfrentados. Uma delas é a segurança. Em vez de proteger a IaC, a segurança de infraestrutura como código é um método de integração de protocolos e verificações de segurança no processo de IaC, permitindo a automação da segurança.
Assim como acontece com a IaC como um todo, isso cria uniformidade nos esforços de segurança e uma única fonte de verdade para suas implementações. Incorporar scripts de segurança diretamente na camada de IaC também cria um log de alterações em execução, fornecendo um caminho de reversão claro caso uma implementação se mostre problemática.
Desafios da segurança de infraestrutura como código
Como a segurança da IaC envolve a recentralização da atenção à segurança diretamente na camada da IaC, é importante implementar tarefas de segurança em cada estágio do ciclo de vida de desenvolvimento de software (SDLC). Isso envolve considerar a segurança em cada estágio e implementar políticas para lidar com vulnerabilidades.
- Vulnerabilidades de imagem: o uso de imagens base na criação de modelos de IaC pode potencialmente introduzir vulnerabilidades se as imagens não forem provenientes de registros confiáveis. Isso terá efeitos colaterais à medida que os modelos forem implementados, aumentando os custos de remediação.
- Desvio de configuração: o desvio de configuração pode se acumular à medida que mudanças são introduzidas na infraestrutura. Isso pode ser causado por erro humano, configuração incorreta ou alterações não intencionais em aplicações, ou pode ocorrer quando uma alteração manual é feita no ambiente de nuvem.
- Gerenciamento de acesso: os desenvolvedores podem precisar de acesso a sistemas protegidos para realizar seu trabalho. Embora seja comum aplicar privilégios globais em uma organização, fornecer aos usuários privilégios maiores do que o necessário pode levar a consequências indesejadas no caso de um hack ou simplesmente por erro humano.
- Gerenciamento de segredos: os segredos incluem informações valiosas, como tokens de aplicações, chaves SSH e senhas. O local onde você armazena seus segredos pode ter um impacto drástico na segurança deles.
- Recursos fantasmas: marcar ativos é essencial para garantir seu funcionamento e controle adequados. Não fazer isso pode resultar em recursos “fantasmas” que acumulam cobranças de cobrança, criam vetores de ataque em potencial e dificultam a visualização completa do ambiente de nuvem.
O que é varredura de segurança de infraestrutura como código?
A varredura de IaC é um método de inspeção proativa de modelos propostos antes que eles sejam implementados. Ferramentas de verificação, como o CrowdStrike Falcon® Cloud Security, inspecionarão seus arquivos de IaC em busca de configurações incorretas ou parâmetros ausentes.
Usando o Falcon Cloud Security, proteger seus scripts de IaC é tão simples quanto apertar um botão. A ferramenta analisará seu código e enviará um alerta caso alguma configuração incorreta seja detectada. Ele também oferecerá dicas para remediação. Depois de remediar as vulnerabilidades, você pode executar novamente uma varredura para garantir a conformidade.
Saiba mais
A infraestrutura como código pode introduzir riscos fundamentais ao seu patrimônio na nuvem. Se houver uma configuração incorreta ou vulnerabilidade, elas agora estarão presentes em todas as aplicações. Veja como a varredura de IaC do CrowdStrike Falcon® Cloud Security impede proativamente que configurações incorretas e vulnerabilidades sejam introduzidas em primeiro lugar.
Assista: Varredura de IaC do Falcon Cloud Security: demonstração detalhada
Infraestrutura como ferramentas de segurança de código
Há uma grande variedade de ferramentas de segurança de infraestrutura e código disponíveis, dependendo do seu provedor de nuvem e plataforma de IaC. Cada provedor não só tem as suas próprias ferramentas de segurança, como também diversos provedores de suporte de plataforma e de código aberto criaram ferramentas que se adaptam a quase qualquer fluxo de trabalho.
| Ferramenta/Plataforma | Descrição |
|---|---|
| CrowdStrike Falcon Cloud Security | O Falcon Cloud Security é uma plataforma nativa da nuvem que fornece um conjunto completo de serviços de segurança para fluxos de trabalho de IaC, incluindo varredura, proteção de tempo de execução, gerenciamento de direitos e muito mais. |
| Checkov | O Checkov é uma ferramenta de análise estática de código aberto para infraestrutura como código. Ele oferece suporte a várias linguagens de IaC, incluindo Terraform, AWS CloudFormation, Kubernetes YAML e modelos ARM. O Checkov verifica seu código em busca de problemas de segurança e conformidade, fornecendo insights acionáveis para remediar vulnerabilidades. |
| Terrascan | O Terrascan é uma ferramenta de análise de código estático de código aberto desenvolvida pela Accurics. Ele executa uma varredura no código do Terraform para identificar vulnerabilidades de segurança e configurações incorretas com base nas melhores práticas e padrões de conformidade. |
| KICS (Keeping Infrastructure as Code Secure) | O KICS é uma ferramenta de verificação de segurança de IaC de código aberto que oferece suporte a diversas linguagens de IaC, incluindo Terraform, AWS CloudFormation, Kubernetes YAML e Dockerfile. Ele executa uma varredura nos repositórios do código e configurações de infraestrutura em busca de vulnerabilidades de segurança e violações de conformidade. |
| Conftest | O Conftest é uma ferramenta de código aberto que permite escrever testes em dados de configuração estruturados. Ele suporta vários formatos de dados, incluindo configurações do Terraform, Kubernetes YAML e JSON. O Conftest pode ser usado para impor políticas de segurança e práticas recomendadas em arquivos de IaC. |
| TFSec | O TFSec é uma ferramenta leve de análise estática para código Terraform. Ele executa uma varredura nas configurações do Terraform para identificar problemas de segurança, como políticas de gerenciamento de identidade e acesso (IAM) excessivamente permissivas, configurações de recursos inseguras e exposições de dados confidenciais. |
| Bridgecrew | O Bridgecrew fornece uma plataforma de código aberto para segurança e conformidade de IaC. Ele se integra a ferramentas populares de IaC, como Terraform, AWS CloudFormation e Kubernetes, para fornecer varredura e monitoramento contínuos de vulnerabilidades de segurança e violações de conformidade. |
| OPA (Open Policy Agent) | O OPA é um mecanismo de política de código aberto que permite definir e aplicar políticas em vários estágios do ciclo de vida de desenvolvimento de software, incluindo a IaC. O OPA pode ser integrado com ferramentas como Terraform e Kubernetes para aplicar políticas de segurança e práticas recomendadas. |
Melhores práticas de segurança de infraestrutura como código
A seguir está uma lista de práticas recomendadas comuns que podem ajudar a resolver desafios comuns de segurança de IaC.
- Plugins IDE: utilizar plugins de segurança no ambiente de desenvolvimento integrado (IDE) permite a detecção precoce de riscos potenciais. Isso permite um feedback rápido enquanto você trabalha no IDE e reduz o tempo gasto resolvendo problemas posteriormente no SDLC.
- Modelagem de ameaças: identifique e priorize os riscos mais críticos para sua infraestrutura no início do SDLC. Isso criará a pista para abordar riscos potenciais em todo o SDLC e permitirá maior flexibilidade para lidar com eles.
- Princípio do privilégio mínimo: conceda apenas as permissões e níveis de acesso mínimos necessários para que um usuário execute suas tarefas. Isso ajuda a garantir que, no caso de uma violação ou ciber ataque, o dano que pode ser causado por uma única credencial comprometida seja limitado.
- Gerenciamento de segredos: você quer que os segredos estejam seguros, mas acessíveis. Existe uma variedade de ferramentas de código aberto para ajudar a executar uma varredura nas vulnerabilidades de segredos.
- Segmentação de rede: separe seus ambientes de teste e produção, mas garanta que eles sejam o mais espelhados possível.
- Testes dinâmicos: verifique desvios de política e possíveis vulnerabilidades antes da implementação com ferramentas como o Falcon Cloud Security.
- Imutabilidade da infraestrutura: a infraestrutura imutável ajuda a reduzir riscos potenciais ao impedir alterações na infraestrutura após a implementação. Políticas e controles são utilizados para adaptar a infraestrutura às necessidades em evolução. Se forem necessárias mudanças na infraestrutura, uma infraestrutura totalmente nova deverá ser implementada. A infraestrutura pré-existente deve então ser desativada.
- Registro: os logs são essenciais para garantir que as alterações sejam registradas e que quaisquer ataques possam ser identificados rapidamente. Habilite o registro de auditoria e segurança para ajudar a analisar a causa raiz dos incidentes e promover uma recuperação mais rápida.
- Detecção de ameaças: a detecção de ameaças de tempo de execução permite a identificação de comportamentos inesperados e ameaças potenciais à medida em que ocorrem. Quanto mais rápido você identificar uma ameaça, mais rápido poderá responder.
Como a CrowdStrike pode ajudar
Implementar infraestrutura como código pode levar a implementações mais rápidas, um SDLC simplificado, infraestrutura de nuvem unificada e, finalmente, economia de tempo e recursos. Mas a IaC traz riscos de segurança inerentes que devem ser mitigados. O CrowdStrike Falcon Cloud Security oferece segurança full-stack nativa da nuvem que se integra aos fluxos de trabalho da IaC para detectar configurações incorretas, defender contra ataques e otimizar implementações na nuvem. Confira nossa demonstração.
Perguntas frequentes sobre segurança da IaC
P: O que é segurança da IaC?
R: A segurança da IaC é a prática de proteger configurações de infraestrutura escritas como código. Isso garante que os recursos em nuvem sejam provisionados com as práticas recomendadas de segurança, reduzindo o risco de configurações incorretas e vulnerabilidades.
P: Quais são os três tipos de segurança da IaC?
R: Os três tipos de segurança da IaC são:
- SAST (Static Analysis Security Testing, Teste de Segurança de Análise Estática): identifica configurações incorretas na IaC antes da implementação.
- Monitoramento de segurança em tempo de execução: detecta alterações não autorizadas na infraestrutura em produção.
- Aplicação de política como código: garante a conformidade com as políticas e regulamentações de segurança.
P: O que é autenticação de IaC?
R: Autenticação de IaC refere-se à proteção do código de infraestrutura por meio da aplicação de mecanismos de autenticação, como RBAC, federação de identidade e gerenciamento de chaves de API, para garantir que apenas usuários e serviços autorizados possam modificar as configurações da infraestrutura.
P: O que é conformidade da IaC?
R: A conformidade da IaC garante que o código de infraestrutura esteja em conformidade com padrões e regulamentações de segurança do setor, como NIST, CIS Benchmarks, GDPR e HIPAA. A conformidade é mantida por meio da aplicação automatizada de políticas, varredura de segurança e monitoramento contínuo das configurações da infraestrutura.
P: IaC e DevOps são a mesma coisa?
R: Não, IaC e DevOps não são a mesma coisa. IaC é uma metodologia que automatiza o provisionamento de infraestrutura usando código, enquanto DevOps é uma prática mais abrangente que combina desenvolvimento de software e operações de TI para permitir entrega e implementação contínuas. A IaC é um componente fundamental do DevOps, mas não abrange toda a filosofia do DevOps.