Visão geral
A segurança de CI/CD é utilizada para proteger pipelines de códigos com a automação de verificações e testes para evitar vulnerabilidades na entrega do software. Incorporar a segurança aos seus pipelines de dados ajuda a proteger os códigos de ataques, evitar vazamentos de dados, ficar em conformidade com as políticas e assegurar a qualidade.
O que é CI/CD?
CI/CD (integração contínua, entrega contínua e implantação contínua) compreende uma série de etapas que precisam ser executadas para disponibilizar uma nova versão do software. Essas etapas, geralmente, são visualizadas como um pipeline. O CI/CD introduz a automação e o monitoramento contínuo no desenvolvimento de aplicações com o objetivo de minimizar erros humanos e manter um processo de desenvolvimento rápido e com alta qualidade.
Em geral, as principais etapas do pipeline de CI/CD não incluem medidas de segurança. Isso significa que alguns passos adicionais devem ser incluídos para proteger o processo de desenvolvimento.
Quais são os desafios mais comuns da segurança de CI/CD?
A natureza ágil do desenvolvimento e da implantação sem uma segurança adequada pode expôr o pipeline a riscos como:
- Exposição de dados confidenciais a fontes externas
- Utilização de códigos ou componentes de terceiros não confiáveis
- Acesso não autorizado a ferramentas de criação ou repositórios de código-fonte
Identificar e mitigar vulnerabilidades ao longo do ciclo de desenvolvimento assegura a realização de testes minuciosos nos códigos alterados e a aderência a padrões de segurança antes da implantação na produção.
Por que o CI/CD é importante para o DevSecOps?
O DevSecOps (desenvolvimento, segurança e operação) é uma abordagem de cultura, automação e design de plataforma que integra a segurança como uma responsabilidade compartilhada em todo o ciclo de vida de TI. Um componente essencial do DevSecOps é a introdução de um pipeline de CI/CD seguro.
O CI/CD é crítico para o DevSecOps porque ele automatiza e incorpora verificações de segurança no início do processo de desenvolvimento, assegurando feedback rápido sobre possíveis vulnerabilidades. Isso facilita uma abordagem da segurança proativa ao longo de todo o ciclo de vida da aplicação.
O conceito de "shift left" é um princípio fundamental em CI/CD e DevSecOps que envolve a migração de certas tarefas e atividades voltadas à segurança para o início do processo de desenvolvimento do software. Essa prática de implementar a segurança no começo inclui a automação dos teste que buscam vulnerabilidades de segurança, analisam mudanças nos códigos assim que elas são implementadas e promovem uma cultura de vigilância proativa da segurança entre as equipes de desenvolvimento e operação.
Como proteger um pipeline de CI/CD
Fase de planejamento: é importante incluir verificações de segurança em cada fase do pipeline para assegurar que o seu código seja seguro e esteja em conformidade com os padrões de segurança. A primeira etapa é desenvolver um roadmap da solução, que vai ajudar a identificar possíveis ameaças à segurança. Isso é conhecido como modelagem de ameaças (threat modeling). Na modelagem de ameaças, possíveis vulnerabilidades são identificadas e medidas preventivas são preparadas para minimizar os riscos.
Código: conforme os desenvolvedores escrevem o código, tome medidas para garantir que ele esteja em conformidade com padrões predefinidos e diretrizes de design. Utilize scanners de código-fonte para detectar partes do código que possam estar vulneráveis a ameaças de segurança.
Compilação: quando os desenvolvedores começarem a migrar os códigos-fonte para um repositório compartilhado, certifique-se de que os testes de automação sejam acionados para verificar se as compilações estão em conformidade com os requisitos.
Teste: quando a compilação estiver concluída, teste o software para identificar bugs. Se novas funcionalidades forem adicionadas, mais testes automatizados serão realizados.
Como a Red Hat pode ajudar
O Red Hat® OpenShift® permite que as organizações empreguem esse método para automatizar a criação, os testes e a implantação de etapas das aplicações em várias plataformas on-premise e de nuvem pública. Junto com tecnologias de parceiros, o Red Hat OpenShift® e o Red Hat Ansible® Automation Platform criam uma base para DevSecOps e ajudam você a lidar com desafios de segurança no ciclo de vida da sua aplicação de container, incluindo desenvolvimento, implantação e runtime.
Para que o seu negócio continue funcionando sem problemas, é essencial proteger a cadeia de suprimentos de software contra possíveis vulnerabilidades. No entanto, a segurança da cadeia de suprimentos de software para aplicações nativas em nuvem requer meses de dedicação de enormes equipes formadas por engenheiros e desenvolvedores. O Red Hat Trusted Software Supply Chain é uma família de serviços de computação em nuvem que acelera esse trabalho, ajudando as organizações a reforçar a segurança do ciclo de vida de desenvolvimento do software com a interceptação de vulnerabilidades críticas no ponto de entrada.
O Red Hat Advanced Cluster Security (ACS) for Kubernetes é a plataforma de segurança nativa do Kubernetes pioneira do setor. Ele prepara as organizações para criar, implantar e executar aplicações nativas em nuvem de forma mais segura. A solução ajuda a proteger cargas de trabalho em containers do Kubernetes nas principais nuvens e plataformas híbridas, incluindo Red Hat OpenShift, Amazon Elastic Kubernetes Service (EKS), Microsoft Azure Kubernetes Service (AKS) e Google Kubernetes Engine (GKE).
O Red Hat Trusted Application Pipeline, atualmente em fase de demonstração do serviço, fornece padrões de pipeline e verificações de segurança automatizadas. Ele é projetado para criar imagens de compilação de nível 3 da cadeia de suprimentos para artefatos de software (SLSA) a partir do código de aplicações escritas em várias linguagens de programação. A compilação inclui a criação de uma lista de materiais de software (SBOM) imutável e comprovada que automaticamente gera uma cadeia de confiança para os seus componentes open source e suas dependências transitivas.