Práticas recomendadas de segurança em CI/CD
Entenda vulnerabilidades comuns de segurança nos processos e as práticas recomendadas para reduzir riscos durante todo o ciclo de vida do desenvolvimento.
Práticas recomendadas de segurança em CI/CD é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Por que a segurança de CI/CD é importante
No desenvolvimento moderno de software, as esteiras de CI/CD são cruciais. Elas automatizam a compilação, os testes e a implantação do seu código.
Mas com grandes poderes vêm grandes responsabilidades! Proteger essas esteiras é essencial para proteger seu código, seus dados e sua infraestrutura contra ataques mal-intencionados ou vulnerabilidades introduzidas acidentalmente.
Identificar vulnerabilidades na esteira
Antes de proteger, precisamos entender contra o que estamos nos protegendo. As esteiras de CI/CD podem estar vulneráveis a vários tipos de ataque:
- Credenciais comprometidas: Chaves de API ou tokens roubados.
- Dependências maliciosas: Uso de bibliotecas com falhas de segurança conhecidas.
- Configurações inseguras: Controles de acesso ou etapas de compilação configurados incorretamente.
- Ataques à cadeia de fornecimento: Adulteração do próprio processo de compilação.
Aplicar o acesso com menor privilégio
O Princípio do menor privilégio (PoLP) significa conceder a usuários e processos automatizados, como tarefas de CI/CD, apenas as permissões mínimas necessárias para executar sua tarefa, e nada além disso.
Isso limita os possíveis danos caso uma credencial ou tarefa seja comprometida. Para as Ações do GitHub, defina permissões específicas para cada tarefa.
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read # Only read access to repo code
packages: write # Only write to package registry
id-token: write # Needed for OIDC authentication
steps:
- uses: actions/checkout@v4
- run: echo "Build logic here"Proteger o código e as dependências
Seu código-fonte é o coração da sua aplicação. Garanta que ele esteja protegido desde o início.
- Revisões de código: Revisões por pares ajudam a detectar possíveis falhas de segurança.
- Análise estática: Use ferramentas para verificar se há vulnerabilidades no código, embora o SAST dedicado seja abordado em uma lição posterior.
- Verificação de dependências: Verifique regularmente se há vulnerabilidades conhecidas em bibliotecas de terceiros.
Gerenciar dependências de terceiros
A maioria dos projetos depende de bibliotecas de código aberto. Embora sejam poderosas, elas podem introduzir vulnerabilidades se não forem gerenciadas cuidadosamente.
- Use um Scanner de dependências: Integre ferramentas como o Dependabot para verificar automaticamente se há vulnerabilidades conhecidas.
- Fixe as dependências: Especifique versões exatas das dependências para evitar alterações inesperadas.
- Atualizações regulares: Mantenha as dependências atualizadas para aproveitar as correções de segurança.
Reforçar seu ambiente de compilação
O ambiente em que seu código é compilado e testado deve ser o mais seguro possível. Pense nele como uma sala limpa para o seu software.
- Executores efêmeros: Use ambientes novos e isolados para cada tarefa. Os executores hospedados pelo GitHub são efêmeros por padrão.
- Ferramentas mínimas: Instale apenas as ferramentas necessárias para reduzir a superfície de ataque.
- Imagens base seguras: Se usar contêineres, utilize imagens base confiáveis e reforçadas.
NEVER codificar segredos
Informações sensíveis, como chaves de API, credenciais de banco de dados ou tokens privados, devem NEVER ser codificadas diretamente no seu repositório ou nos arquivos do fluxo de trabalho.
Sempre use um sistema seguro de gerenciamento de segredos. Isso mantém os dados sensíveis fora do controle de versões e criptografados.
Validar as entradas do fluxo de trabalho
Se o seu fluxo de trabalho aceitar entradas externas, por exemplo, de um acionador manual ou de um comentário em uma solicitação de alteração, essas entradas deverão ser validadas e higienizadas.
Entradas não confiáveis podem servir de vetor para ataques de injeção, assim como as aplicações web validam as entradas dos usuários.
on:
workflow_dispatch:
inputs:
deploy_env:
description: 'Environment to deploy to (e.g., staging, production)'
required: true
type: choice
options:
- 'staging'
- 'production'
version_tag:
description: 'Git tag for the release version'
required: true
type: stringRegistrar e monitorar a atividade da esteira
Ter visibilidade sobre a atividade da sua esteira é um controle de segurança fundamental. Um bom registro ajuda você a detectar e responder rapidamente a comportamentos suspeitos.
- Registro abrangente: Registre todos os eventos e ações significativos nos seus fluxos de trabalho.
- Monitore anomalias: Procure verificações de segurança malsucedidas, tentativas de acesso não autorizado ou tempos de compilação incomuns.
- Alertas: Configure alertas para eventos críticos de segurança.
Verificar seu entendimento
Vamos testar seu conhecimento sobre as melhores práticas de segurança de CI/CD.
Resumo da lição e próximos passos
Parabéns! Você aprendeu práticas essenciais de segurança para suas esteiras de CI/CD.
- Aplique o Princípio do menor privilégio.
- Proteja seu código-fonte e gerencie as dependências.
- Reforce seus ambientes de compilação.
- Nunca codifique segredos diretamente.
- Valide todas as entradas dos fluxos de trabalho.
- Implemente registros e monitoramento robustos.
Essas práticas formam uma base sólida para um ciclo de vida seguro de DevOps. Nas próximas lições, vamos nos aprofundar em ferramentas e técnicas específicas, como os segredos do GitHub e SAST.
Perguntas Frequentes
A aula “Práticas recomendadas de segurança em CI/CD” é grátis?
Sim — o texto completo de “Práticas recomendadas de segurança em CI/CD” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Práticas recomendadas de segurança em CI/CD”?
Entenda vulnerabilidades comuns de segurança nos processos e as práticas recomendadas para reduzir riscos durante todo o ciclo de vida do desenvolvimento. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Práticas recomendadas de segurança em CI/CD”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Práticas recomendadas de segurança em CI/CD
- Gerenciamento de segredos com GitHub
- Testes estáticos de segurança de aplicações (SAST)
- Segurança de dependências e da cadeia de fornecimento (SCA)