Por que a segurança legada é incompatível com o DevSecOps? - Instruct
Entenda como o DevSecOps traz benefícios para as equipes de desenvolvimento, de segurança e de testes
Como o DevOps (que significa a integração entre o desenvolvimento e as operações) continua a evoluir na indústria de software, muitas organizações estão questionando como elas podem operar com mais eficiência. Onde podemos economizar tempo? Como podemos aumentar (ou pelo menos manter) a qualidade do software em um cronograma de desenvolvimento que fica mais curto a cada lançamento realizado?
A verdade é que as respostas para essas perguntas podem ser encontradas na mudança de cultura que ocorre quando uma organização faz um esforço consciente para empregar práticas de DevOps, ao invés de simplesmente adotar novas ferramentas sem colocar os princípios em ação.
Neste post, discutiremos uma maneira pela qual as organizações podem colocar o DevSecOps em prática. Em especial, vamos falar sobre o uso do DevOps para revisar as operações de segurança legadas – em outras palavras, para fazer o que ficou conhecido como DevSecOps. As práticas do DevSecOps devem realmente substituir as estratégias de implementação tradicionais, com o objetivo de aumentar a segurança do aplicativo em um ciclo de desenvolvimento mais rápido e ágil.
Pré-DevSecOps: A maneira tradicional de fazer as coisas
Em alguns casos, a segurança de aplicativos pode ser tratada como uma reflexão tardia – algo a ser tratado após o desenvolvimento do aplicativo ter sido concluído. Essas práticas legadas eram semelhantes aos processos mais antigos para testes de software – espere até que o desenvolvimento do aplicativo seja completamente resolvido e, em seguida, faça com que as equipes de testes e de segurança busquem pelas vulnerabilidades. Esse processo criava problemas para a equipe de desenvolvimento, que tinha um retrabalho para corrigir todos os pontos necessários depois do código inicial ter sido finalizado.
Os problemas que foram causados por essas práticas tradicionais são inúmeros. Por exemplo, há a questão da incerteza: utilizar essa abordagem legada para a segurança do aplicativo significa que a organização não tem uma maneira precisa de prever o efeito dos testes no cronograma de lançamento. E se eles revelarem uma grande vulnerabilidade de segurança que requer muito tempo e esforço para realizar a correção adequada? Isso poderia destruir o cronograma de entrega, deixando as equipes de desenvolvimento e operações com clientes insatisfeitos, além de trazer prejuízos para o nível gerencial da organização. Situações como essas serviram como motivo principal para o estudo e desenvolvimento de abordagens mais modernas, como o DevSecOps.
A diferença da metodologia DevSecOps
A filosofia que define a ideia de uma organização DevSecOps é simples: todos são responsáveis pela segurança da aplicação. Portanto, a análise de segurança de aplicativos não começa e nem termina com os engenheiros de segurança. Em vez disso, ela deve ser iniciada no primeiro dia com os desenvolvedores de software e continua durante todo o projeto, envolvendo todas as equipes.
O DevSecOps requer a realização da análise e dos testes de segurança em todas as fases do ciclo de vida de desenvolvimento, nos pontos nos quais isso fizer sentido. A ideia é simples: ao aplicar os testes de segurança desde o início do processo, os dados serão mais precisos e as decisões poderão ser tomadas com uma visão em tempo real do que está ocorrendo. Isso acontece porque o DevSecOps permite que as equipes encontrem vulnerabilidades de segurança logo no início, ou seja, elas têm mais facilidade para identificar as causas do problema. Como todos sabemos, os erros são menos dispendiosos para serem consertados se forem encontrados mais cedo. Em outras palavras, a equipe de desenvolvimento levará menos tempo e utilizará menos recursos para resolver um problema com a segurança do aplicativo se ele for rapidamente identificado.
Aplicando o DevSecOps na prática
Além de simplesmente declarar que toda a equipe é agora responsável pela segurança dos aplicativos, que medidas concretas a organização pode tomar para migrar para uma cultura DevSecOps? Aproveitar as ferramentas disponíveis para testes manuais e automatizados pode ajudar neste processo.
No nível de desenvolvimento, as ferramentas para analisar o código-fonte do aplicativo podem ajudar a descobrir os problemas antes da integração com a base de código compartilhada. Além disso, isso ajudará a equipe de desenvolvimento a aprender a escrever um código mais seguro em projetos futuros. Depois de várias interações com falhas de segurança, é provável que a equipe de desenvolvimento escreva um código com mais qualidade, tornando o time mais eficiente com o passar do tempo.
Outra dica útil é estabelecer e executar os scripts que identificam possíveis problemas com a segurança do aplicativo ao realizar o build e o deploy em ambientes de teste. Se o teste falhar, o build falhará e o deploy não será realizado. Ao passar a usar esse tipo de teste, a organização estabelecerá um nível básico de segurança em todos os ambientes, garantindo que as vulnerabilidades de segurança evitáveis não cheguem tão perto de um possível lançamento.
Testes automatizados, como o que explicamos no parágrafo anterior, tornarão seus aplicativos mais seguros, economizando tempo das equipes. Isso ocorrerá porque a probabilidade de que vulnerabilidades sejam descobertas apenas no final do ciclo de desenvolvimento será cada vez menor. À medida que sua organização amadurece em relação ao uso da metodologia DevSecOps, a equipe produzirá aplicativos mais seguros e sem atrasos entre o lançamento das suas versões.
A segurança de aplicativos legados tendia a se apoiar na resolução de problemas pelo back-end do ciclo de desenvolvimento, colocando em risco o cronograma de lançamento ao identificar as falhas apenas em etapas posteriores. Ao esperar até o final de um projeto para analisar e testar as vulnerabilidades de segurança, você acaba encontrando falhas muito mais caras para serem consertadas do que teriam sido se você as descobrisse logo no início. Você também permite uma cultura de incerteza em relação ao nível de segurança que seu aplicativo pode ofertar e assume sérios riscos empresariais ao atrasar o lançamento de novas versões do seu produto ou serviço.
Ao aplicar as práticas do DevSecOps, a organização tira a pressão do back-end do cronograma do projeto, tornando a segurança uma prioridade em todos os pontos do ciclo de vida do desenvolvimento. Isso permite que a equipe tome conhecimento dos problemas de segurança no início do processo, economizando tempo e recursos no futuro. Além disso, o modelo DevSecOps perpetua uma cultura de confiança na segurança dos aplicativos da organização. Isso ocorre porque, com o DevSecOps, a segurança do aplicativo é responsabilidade de todos os envolvidos e é levada em consideração em todas as fases do projeto.