Compreender DevSecOps
A adoção da nuvem continua a acelerar à medida que as organizações buscam dar suporte à produtividade dos negócios, habilitar o trabalho remoto e dimensionar as operações com eficiência. No entanto, essa rápida adoção sem infraestrutura de segurança adequada pode comprometer inadvertidamente os dados e expor as organizações a riscos significativos.
A lacuna de segurança em aplicativos de nuvem
As lacunas de segurança persistem mesmo à medida que a adoção da nuvem aumenta. As organizações que migram para plataformas de nuvem nem sempre implementam controles de segurança apropriados:
Lacunas de criptografia: Muitos aplicativos de nuvem não conseguem proteger corretamente os dados:
- Dados em repouso: Bancos de dados não criptografados, contas de armazenamento e sistemas de arquivos deixam os dados vulneráveis quando a mídia de armazenamento é acessada, roubada ou descartada incorretamente.
- Dados em trânsito: Aplicativos que transmitem dados por conexões não criptografadas expõem informações à interceptação. Até mesmo o tráfego de rede interno deve ser criptografado.
- Lacunas comuns: Porcentagens significativas de aplicativos SaaS não criptografam dados adequadamente. Os aplicativos de armazenamento geralmente não têm criptografia em repouso e em trânsito. Aplicativos de colaboração frequentemente transmitem informações confidenciais sem a proteção adequada.
Deficiências de proteção de sessão: O gerenciamento de sessão fraco cria vulnerabilidades:
- Cabeçalhos de segurança HTTP ausentes: Aplicativos que não implementam cabeçalhos de segurança como HSTS (HTTP Strict Transport Security), CSP (Política de Segurança de Conteúdo) e atributos de cookie seguro deixam as sessões vulneráveis ao sequestro.
- Exposição de token: Tokens de sessão transmitidos de forma insegura podem ser interceptados e reutilizados por invasores para representar usuários legítimos.
- Adoção limitada: Pouquíssimos aplicativos SaaS implementam proteção abrangente de sessão de cabeçalho HTTP, deixando os usuários vulneráveis a ataques baseados em sessão.
O que é DevOps Seguro (DevSecOps)
A tensão entre velocidade e segurança: O DevOps enfatiza o trabalho mais rápido por meio da automação, integração contínua e implantação rápida. A segurança tradicionalmente enfatiza a minuciosidade, a revisão cuidadosa e os testes abrangentes. Esses objetivos podem parecer contraditórios.
Problemas tradicionais de abordagem de segurança: Quando as preocupações com a segurança são resolvidas apenas no final do ciclo de desenvolvimento, vários problemas surgem:
- O trabalho não planejado é exibido antes da implantação quando as equipes estão sob pressão para serem lançadas.
- Os problemas de segurança tardiamente descobertos exigem um retrabalho caro das funcionalidades concluídas.
- A segurança se torna um gargalo que atrasa ou bloqueia lançamentos.
- As equipes veem a segurança como um obstáculo em vez de um habilitador.
- Vulnerabilidades críticas de segurança podem ser despriorizadas devido a pressões de liberação.
A solução DevOps Segura: O Secure DevOps integra a segurança com as práticas de DevOps em um conjunto coeso de atividades projetadas para atender às metas de velocidade de DevOps e eficácia de segurança. A segurança torna-se parte do processo de desenvolvimento desde o início, em vez de uma porta no final.
Benefícios da integração: Um pipeline do Secure DevOps permite que as equipes de desenvolvimento trabalhem rapidamente sem interromper seu projeto introduzindo vulnerabilidades de segurança indesejadas. Segurança e velocidade tornam-se complementares em vez de metas opostas.
Nota
O Secure DevOps também às vezes é conhecido como DevSecOps. Você pode encontrar ambos os termos, mas cada um se refere ao mesmo conceito. A diferença de terminologia é puramente estilística. As práticas e os princípios permanecem idênticos.
Como a segurança muda no Secure DevOps
Metodologias de segurança tradicionais: Historicamente, a segurança operava em ciclos mais lentos e concentrava-se principalmente em:
- Controle de acesso: Gerenciando quem pode acessar sistemas e dados por meio de mecanismos de autenticação e autorização.
- Proteção do ambiente: Configurar sistemas para remover serviços desnecessários, aplicar patches de segurança e impor configurações seguras.
- Proteção de perímetro: Usando firewalls, sistemas de detecção de intrusão e segmentação de rede para proteger o limite de rede.
Escopo de segurança expandido: O Secure DevOps inclui essas metodologias de segurança tradicionais, mas estende as preocupações de segurança em todo o ciclo de vida de desenvolvimento de software. Com o Secure DevOps, a segurança é sobre proteger o pipeline em si e tudo o que flui por ele.
Foco de segurança do pipeline: O Secure DevOps envolve determinar onde adicionar proteção aos elementos que se conectam aos pipelines de build e lançamento:
- Repositórios de código-fonte.
- Criar servidores e agentes.
- Armazenamento de artefatos e registros.
- Ferramentas e processos de implantação.
- Modelos de infraestrutura como código.
- Sistemas de gerenciamento de configuração.
- Soluções de gerenciamento de segredos.
Abordagem abrangente: O Secure DevOps mostra como e onde adicionar segurança às práticas de automação, ambientes de produção e outros elementos de pipeline, mantendo os benefícios de velocidade do DevOps. Os controles de segurança são automatizados e integrados, em vez de manuais e separados.
Principais perguntas que o DevOps seguro aborda
O Secure DevOps ajuda as organizações a responder perguntas críticas de segurança:
Segurança de componentes de terceiros:
- Meu pipeline está consumindo componentes de terceiros? E eles são seguros?
- Esses componentes vêm de fontes confiáveis?
- As assinaturas de componente são verificadas?
- As licenças são compatíveis com nosso uso?
Gerenciamento de vulnerabilidades:
- Há vulnerabilidades conhecidas em qualquer um dos softwares de terceiros que usamos?
- Como monitorar as divulgações de vulnerabilidade para nossas dependências?
- Qual é o nosso processo para atualizar componentes vulneráveis?
- Temos um inventário de todas as dependências, incluindo as transitivas?
Velocidade de detecção (tempo para detectar):
- Com que rapidez posso detectar vulnerabilidades?
- As verificações de segurança são automatizadas no pipeline?
- Temos monitoramento de runtime para problemas de segurança?
- Quão rápido os alertas de segurança alcançam as pessoas certas?
Velocidade de correção (tempo para correção):
- Com que rapidez posso corrigir as vulnerabilidades identificadas?
- Podemos implantar correções por meio do mesmo fluxo de trabalho automatizado?
- Qual é o nosso processo para patches de segurança de emergência?
- Como verificar se a correção é eficaz?
Segurança como código
Práticas de segurança automatizadas: As práticas de segurança para detectar possíveis anomalias de segurança devem ser tão robustas e rápidas quanto outras partes do pipeline de DevOps. Isso inclui:
Automação de segurança de infraestrutura:
- Verificação de segurança automatizada de modelos de infraestrutura como código.
- Imposição de política como código para configurações de recursos de nuvem.
- Verificação de conformidade antes da implantação da infraestrutura.
- Monitoramento contínuo da postura de segurança da infraestrutura.
Automação de segurança do aplicativo:
- Teste de segurança de aplicativo estático (SAST) durante builds.
- Teste dinâmico de segurança de aplicativo (DAST) em ambientes de preparo.
- Análise de composição de software para vulnerabilidades de dependência.
- Verificação de imagem de contêiner antes da implantação.
- Proteção auto-administrada de aplicações em tempo de execução (RASP) em produção.
Segurança contínua: A segurança no Secure DevOps não é um único ponto de verificação. É uma validação contínua em todo o desenvolvimento, implantação e operação. Cada estágio do pipeline inclui controles de segurança apropriados que são executados automaticamente sem atrasar a entrega.