O que é segurança de DevOps?
- Glossário do IAM
- O que é segurança de DevOps?
Segurança de DevOps, também conhecida como DevSecOps, é uma conglomeração das palavras desenvolvimento, operações e segurança. A segurança de DevOps e DevSecOps se referem a uma filosofia de integrar segurança no ciclo de vida de desenvolvimento de software (SDLC) o mais cedo possível, preferencialmente antes que uma única linha de código seja escrita.
Qual é a diferença entre DevOps e DevSecOps?
DevSecOps é uma extensão ou melhoria da filosofia de DevOps. Por esse motivo, é importante entender o que DevOps e DevSecOps têm em comum antes de discutir suas diferenças.
DevOps e DevSecOps se referem a uma filosofia ou abordagem de desenvolvimento de software, não uma ferramenta ou um grupo de ferramentas em particular. Da mesma forma como instalar um sistema de rastreamento de problemas não significa "fazer DevOps", instalar ferramentas de segurança de aplicativos estáticas ou dinâmicas não significa "fazer DevSecOps".
DevOps e DevSecOps enfatizam colaboração, automação e monitoramento ativo de aplicativos de software. A capacidade de capturar dados de aplicativos em tempo real é essencial para as duas filosofias, pois "fazer" DevOps e DevSecOps exige continuamente capturar e analisar esses dados para descobrir formas de melhorar a produtividade e direcionar melhorias.
As duas filosofias também dependem de colaboração, particularmente na eliminação de silos organizacionais. DevOps busca remover os silos entre o desenvolvimento de software as operações de TI. A ideia é que, quando os desenvolvedores e a equipe de TI trabalham juntos, o software é lançado mais rapidamente e com menos erros. DevSecOps leva as coisas um pouco mais adiante e busca dar lugar às operações de segurança. A ideia por trás de DevSecOps é que, quando desenvolvedores, equipes de TI e equipes de segurança trabalham juntos, o software é lançado mais rapidamente, é de melhor qualidade e é mais seguro.
"Fazer" DevSecOps da forma certa significa que os aplicativos são adequadamente protegidos contra riscos antes de serem entregues à produção. Essa prática é frequentemente chamada de "deslocar à esquerda", pois refere-se a integrar segurança no início da linha do tempo do projeto - antes que uma única linha de código seja escrita - em vez de tratá-la em fases posteriores. Em um ambiente de DevSecOps, os desenvolvedores escrevem código com a segurança em mente - algo que DevOps, por si só, não trata.
Ao introduzir práticas como análise de código, investigação de ameaças e avaliação de vulnerabilidades no SDLC, com testes e avaliação contínuas, DevSecOps garante que a base do código seja segura desde a concepção. Além de melhorar a segurança do aplicativo, DevSecOps melhora a produtividade. Encontrar e corrigir problemas de segurança cedo consome muito menos tempo e custos do que ter que refazer o código mais tarde no ciclo de vida do software.
Desafios de segurança de DevOps
Para obter todos os benefícios de DevSecOps, as organizações podem ter dificuldades em implementá-la adequadamente. Vamos examinar alguns dos desafios mais comuns da segurança de DevOps.
Foco demais em ferramentas, foco de menos em processos. Como mencionado anteriormente no artigo, DevOps e DevSecOps são filosofias, não a obrigação de usar um software em particular.
Resistência cultural dos desenvolvedores, ou "mas sempre fizemos assim". Os desenvolvedores podem não estar acostumados a práticas seguras de codificação. Tradicionalmente, os desenvolvedores codificavam para ter funcionalidade, e as falhas de segurança eram descobertas e corrigidas posteriormente. Os desenvolvedores podem temer que ter que se "preocupar" com segurança deixará a produção mais lenta.
Resistência cultural das equipes de segurança. Os desenvolvedores não são os únicos que podem se agarrar à "forma como sempre foi feito". As equipes de DevOps se concentram em velocidade, modificação e distribuição do código em horas ou dias - um ritmo rápido que pode deixar as equipes de segurança desconfiadas. A diferença é que as equipes de DevOps automatizam o máximo possível de processos, enquanto que as equipes de segurança fazem muito de seu trabalho manualmente.
Gerenciamento de credenciais inadequado. Os ambientes de DevOps são altamente complexos e profundamente interconectados. Não é incomum que grupos de DevOps shops tenham centenas de grupos de segurança e milhares de instâncias de servidores, todos os quais utilizam segredos como credenciais de conta privilegiada, chaves de SSH, tokens de API, senhas de bancos de dados e mais, todos espalhados pelo ambiente de dados da organização em uma condição conhecida como "espalhamento de segredos". Uma simples configuração incorreta pode resultar em um desses segredos sendo exposto – e a organização sofrendo um ataque cibernético catastrófico.
Gerenciamento de acesso privilegiado inadequado. Para acelerar a produção, muitas equipes de DevOps concede a seus membros acesso praticamente ilimitado a contas privilegiadas, como root e admin. Pior ainda, muitos indivíduos podem compartilhar o mesmo conjunto de credenciais - algo impensável em segurança, bem como um problema grande durante auditorias de conformidade em que se espera que as organizações produzam um rastro de auditoria limpo. Adicionalmente, a orquestração, o gerenciamento de configurações e outras ferramentas de DevOps também podem ter níveis de acesso muito alto, muito além do que a ferramenta precisa para operar.
Práticas recomendadas de segurança de DevOps
A seguir, estão algumas práticas recomendadas para a implementação de segurança de DevOps em sua organização.
- Lembre-se de que DevSecOps, como DevOps, é uma mentalidade, não um conjunto de ferramentas. Em vez de comprar "ferramentas de DevSecOps" e descobrir onde deseja usá-las, concentre-se em seus objetivos finais, desenvolva processos para atingi-los e, em seguida, compre ferramentas que apoiem esses processos e objetivos.
- Use métodos adequados de gerenciamento de alterações para superar a resistência cultural de seus desenvolvedores e de suas equipes de segurança. Demonstre às duas equipes que DevSecOps poupará tempo e fará com que sejam mais produtivas, não menos. Estabeleça padrões de codificação claros para seus desenvolvedores e automatize os processos e ferramentas de segurança o máximo possível.
- Combata o espalhamento de segredos com uma ferramenta como o Keeper Secrets Manager.
- Controle direitos de privilégio e níveis de acesso excessivos com controles como controle de acesso baseado em função (RBAC), acesso de menor privilégio e provisionamento no momento certo.
- Evita abuso de acesso privilegiado com registro e auditoria de sessões.