04 de maio de 2026
DevSecOps em CI/CD: Estudo Experimental com Ferramentas de Código Aberto
Leandro Paiter; Jorge Valverde-Rebaza
Resumo elaborado pela ferramenta ResumeAI, solução de inteligência artificial desenvolvida pelo Instituto Pecege voltada à síntese e redação.
O avanço acelerado das tecnologias de informação e o aumento exponencial no volume de ameaças cibernéticas transformaram a segurança da informação em uma prioridade estratégica para organizações e desenvolvedores de sistemas (Abrahams et al, 2023). No ecossistema de desenvolvimento para a web, a identificação precoce e a mitigação eficaz de vulnerabilidades representam pilares fundamentais para assegurar a integridade, a confidencialidade e a disponibilidade dos ativos digitais (Jambunathan e Kalpana, 2018). Diante desse panorama, a adoção de práticas de segurança integradas ao ciclo de vida de desenvolvimento, especificamente por meio de ferramentas de Desenvolvimento, Segurança e Operações, surge como uma estratégia indispensável para elevar a resiliência das aplicações modernas (Abiola et al, 2024). A integração dessas disciplinas no contexto da implantação contínua e da entrega contínua estabelece um canal de comunicação e colaboração robusto entre as equipes técnicas, permitindo que a segurança deixe de ser uma etapa isolada e se torne um componente intrínseco do processo produtivo (Abiola e Olufemi, 2023).
A filosofia que sustenta essa integração foca na capacidade de disponibilizar novas versões de software para o ambiente de produção de maneira célere e protegida (Akbar et al, 2023). O fluxo operacional envolve a colaboração direta entre desenvolvedores, especialistas em infraestrutura e engenheiros de segurança para automatizar a validação de requisitos de proteção no momento exato em que as alterações de código são submetidas ao repositório (Desai e Nisha, 2021). Essa abordagem mescla responsabilidades tradicionalmente segregadas, criando um ambiente coeso que busca a excelência do software durante todo o seu ciclo de existência (Gonçalves, 2022). A segurança de sistemas consolidou-se como um dos maiores desafios da engenharia contemporânea, especialmente devido à dependência crescente de soluções digitais em setores críticos da sociedade (Dissanayake et al, 2022).
A transição para modelos ágeis e práticas de automação permitiu ciclos de entrega extremamente curtos, porém, a ausência de controles de segurança automatizados nesses fluxos pode facilitar a propagação de falhas críticas para os usuários finais (Khan et al, 2022). O conceito de segurança integrada atua justamente na automação dessas etapas, eliminando falhas humanas e garantindo que cada incremento de código passe por crivos rigorosos antes da publicação (Lombardi e Fanton, 2023). Nota-se, contudo, que a literatura e os estudos de caso frequentemente priorizam ferramentas comerciais de alto custo, o que impõe barreiras significativas para organizações de menor porte. O uso de alternativas de código aberto democratiza o acesso a mecanismos sofisticados de análise, permitindo que a maturidade em segurança seja alcançada em diversos contextos econômicos (Pool et al, 2024). O objetivo central desta análise consiste em avaliar e comparar as vulnerabilidades identificadas em uma interface de programação de aplicações desenvolvida em Java, utilizando a implementação de ferramentas automatizadas em uma esteira de integração e entrega contínua para mitigar riscos de forma persistente.
A metodologia adotada para a incorporação das práticas de segurança concentrou-se em uma interface de programação de aplicações baseada em Java 17, utilizando o motor de automação Jenkins para a orquestração de todo o fluxo produtivo. A estrutura original da esteira limitava-se a atividades de integração e entrega, sem a presença de controles automatizados de proteção. A estratégia proposta consistiu em introduzir quatro estágios distintos de validação: análise de imagem e da cadeia de suprimentos, testes estáticos de segurança de aplicação, análise de composição de software e testes dinâmicos de segurança de aplicação (Esposito et al, 2024). Como diretriz para a estruturação desses processos, foram seguidas as recomendações do arcabouço de desenvolvimento de software seguro do Instituto Nacional de Padrões e Tecnologia, que enfatiza a necessidade de evidências rastreáveis e automação ao longo de todo o ciclo de vida do sistema (Qadir et al, 2025).
O cenário experimental envolveu a construção de pacotes utilizando a ferramenta Maven, o empacotamento da aplicação em contêineres Docker e a execução das tarefas no ambiente Linux. Para garantir a estabilidade dos recursos computacionais, as ferramentas de varredura foram instaladas diretamente no hospedeiro do motor de automação. O modelo operacional foi desenhado para aplicar e avaliar a eficácia de soluções de código aberto sem interromper o fluxo de entrega no primeiro ciclo de adoção, permitindo que os resultados fossem coletados e arquivados em formato de notação de objeto JavaScript para auditorias posteriores. A integração de segurança desde as fases iniciais do projeto é um dos pilares da cultura de operações seguras (Ajith et al, 2024). As diretrizes internacionais sugerem que a combinação de diferentes classes de scanners é capaz de reduzir lacunas de visibilidade: enquanto a análise estática identifica falhas lógicas no código-fonte, a análise de composição foca em bibliotecas de terceiros, os scanners de imagem avaliam pacotes do sistema operacional e os testes dinâmicos validam o comportamento da aplicação em tempo de execução (Hestiani, 2024).
Para a seleção das ferramentas, foram considerados critérios como o licenciamento gratuito, a maturidade da comunidade técnica, a facilidade de integração com o Jenkins e o suporte robusto ao ecossistema Java. No estágio de escaneamento de imagens e da cadeia de suprimentos, a ferramenta Trivy foi selecionada por sua versatilidade em analisar múltiplos alvos, incluindo sistemas de arquivos, repositórios de controle de versão e infraestrutura como código (Ajith et al, 2024). Em comparação com alternativas como Grype e Clair, o Trivy destacou-se pela simplicidade operacional e pela capacidade de gerar relatórios detalhados sobre vulnerabilidades herdadas das imagens base (Javed, 2021). No âmbito da análise estática de código-fonte, a ferramenta Horusec foi priorizada devido à sua origem na comunidade brasileira, suporte nativo ao Java e capacidade de detectar o vazamento de segredos, como chaves de acesso e senhas expostas no histórico do repositório (Esposito et al, 2024). Embora o Semgrep ofereça bibliotecas extensas de regras, muitas de suas funcionalidades avançadas estão restritas a versões pagas, o que tornaria a implementação menos aderente ao requisito de custo zero (Bennett et al, 2024).
A análise de composição de software foi realizada por meio do Dependency-Check, um projeto mantido pela comunidade de segurança que correlaciona as dependências declaradas no arquivo de configuração do Maven com vulnerabilidades conhecidas em bases de dados globais (Nada et al, 2024). Diferente de soluções comerciais como Snyk ou Mend, que oferecem triagem assistida mediante licenciamento, o Dependency-Check opera de forma local e integrada ao fluxo de construção do software (Lenarduzzi et al, 2023). Por fim, para os testes dinâmicos, utilizou-se o OWASP ZAP, configurado inicialmente para realizar uma varredura passiva e um mapeamento básico de rotas sem autenticação (Hestiani, 2024). A escolha do ZAP fundamentou-se em sua maturidade para integração programática em esteiras de automação, superando a versão gratuita do Burp Suite, que apresenta limitações para execuções não supervisionadas (Das, 2025; Qadir et al, 2025).
O processo operacional foi dividido em cinco etapas sequenciais. A primeira consistiu na construção da aplicação e execução de testes unitários. A segunda etapa envolveu a análise de dependências para identificar componentes obsoletos ou inseguros. O terceiro estágio focou na varredura do código-fonte e do histórico de alterações para detectar padrões de programação arriscados. A quarta fase concentrou-se na análise da imagem final do contêiner, verificando pacotes do sistema operacional e bibliotecas da linguagem. A quinta e última etapa realizou uma varredura dinâmica no ponto de extremidade publicado para descobrir falhas de exposição superficial. Todos os achados foram classificados por níveis de severidade, variando de baixo a crítico, permitindo a identificação precisa de pacotes afetados e a derivação de recomendações para o endurecimento do ambiente de execução.
A introdução das práticas de segurança na esteira de automação gerou um conjunto denso de dados que permitiu uma visão abrangente sobre o estado de proteção da aplicação Java 17. Antes da implementação, o fluxo produtivo era composto apenas por etapas de verificação de código, construção da imagem, publicação no registro e implantação, com um tempo total de execução reduzido, mas sem qualquer visibilidade sobre riscos. Com a nova configuração, a esteira passou a contemplar as quatro classes de testes automatizados, o que resultou em um aumento na duração total do processo. Esse impacto temporal foi considerado aceitável, uma vez que a execução completa permitiu estabelecer uma linha de base de segurança e gerar relatórios fundamentais para a governança do software. A estratégia de não interromper o fluxo mesmo diante de achados críticos foi essencial para consolidar as métricas iniciais sem paralisar a operação.
Na análise conduzida pelo Trivy sobre a imagem do contêiner, foram identificadas 22 vulnerabilidades no total. Desse montante, quatro foram classificadas como críticas, envolvendo componentes essenciais como glibc, openssl, libxml2 e zlib. Tais falhas estão associadas a riscos de execução remota de código, estouro de memória e vazamento de informações sensíveis. Além disso, foram detectadas nove vulnerabilidades de alta severidade em ferramentas como curl e tar, relacionadas a ataques de negação de serviço e insegurança em protocolos de comunicação. A investigação revelou que a maior parte dessas falhas era herdada da imagem base utilizada, o openjdk:17, o que reforça a necessidade de adotar imagens minimalistas e aplicar comandos de atualização de pacotes durante o processo de construção do contêiner.
Os testes estáticos realizados pelo Horusec no código-fonte e no histórico do repositório apontaram vulnerabilidades críticas em bibliotecas externas configuradas no gerenciador de dependências, além de falhas de severidade alta e média na lógica interna da aplicação. Foram destacados problemas como o uso de algoritmos de dispersão fracos para o tratamento de senhas e a presença de potenciais pontos de injeção de linguagem de consulta estruturada no arquivo DevolucaoVendas.java. O relatório também alertou para a exposição de dados de geolocalização em objetos de transferência de dados, o que representa um risco à privacidade dos usuários. Esses resultados confirmam que a análise estática é capaz de identificar falhas estruturais que dificilmente seriam percebidas apenas durante a execução do sistema.
A análise de composição de software executada pelo Dependency-Check inspecionou as dependências externas e as correlacionou com o banco de dados global de vulnerabilidades, resultando em 14 achados. Entre os pontos mais graves, foram identificadas falhas críticas no servidor de aplicações Apache Tomcat versão 9.0.68 e no arcabouço Spring Framework. Vulnerabilidades de alta severidade também foram encontradas em componentes de criptografia e no tratamento de protocolos de transferência de hipertexto. Esses dados corroboram estudos que indicam que uma parcela significativa do código em aplicações modernas, variando entre 70% e 90%, provém de bibliotecas de terceiros, tornando a gestão de dependências um ponto nevrálgico para a segurança (Nada et al, 2024).
Em contrapartida, a varredura dinâmica realizada pelo OWASP ZAP no modo básico não identificou vulnerabilidades imediatas no ponto de extremidade público. Esse resultado sugere que a aplicação não apresenta falhas triviais de exposição, como injeção de scripts entre sites ou injeção de comandos básicos, no nível superficial testado. No entanto, é fundamental reconhecer que a varredura passiva sem autenticação possui limitações metodológicas severas, uma vez que não consegue explorar rotas protegidas ou fluxos de negócio complexos. A ausência de achados nesse estágio não deve ser interpretada como inexistência de riscos, mas sim como um indicativo de que testes mais profundos e autenticados são necessários em ciclos futuros de maturação.
A discussão dos resultados evidencia que cada ferramenta integrada cumpre um papel específico e complementar na cobertura de lacunas de segurança. Enquanto o escaneamento de imagens expõe riscos na infraestrutura de suporte, a análise estática foca na qualidade do código produzido internamente e a análise de composição monitora a cadeia de suprimentos de software. O aumento no tempo de execução da esteira, embora real, é compensado pela visibilidade ampliada e pela capacidade de prevenir falhas de alto impacto antes que estas atinjam o ambiente produtivo. A literatura técnica reforça que fluxos de operações seguras tendem a crescer em complexidade, mas os benefícios em termos de redução de dívida técnica e proteção de dados justificam o investimento em recursos computacionais.
A comparação entre as ferramentas utilizadas e as alternativas disponíveis no mercado mostra que o ecossistema de código aberto é robusto o suficiente para atender às demandas de segurança de aplicações Java. O uso do Horusec, por exemplo, mostrou-se vantajoso pela facilidade de integração local, embora ferramentas como o Semgrep possam oferecer maior flexibilidade em regras customizadas para outros contextos. No campo do escaneamento dinâmico, a maturidade do ZAP para automação em esteiras de integração contínua o posiciona como uma escolha superior a versões gratuitas de ferramentas comerciais que exigem intervenção manual. A integração dessas múltiplas classes de ferramentas alinha-se às melhores práticas internacionais e fornece uma base sólida para a evolução da maturidade em segurança.
A experiência demonstra que a adoção progressiva de controles, começando pela visibilidade e evoluindo para o bloqueio de construções inseguras, é uma abordagem eficaz para evitar a resistência das equipes de desenvolvimento. O estabelecimento de uma linha de base de risco permitiu priorizar as correções com menor fricção operacional, focando inicialmente na atualização de imagens base e na substituição de bibliotecas críticas. O reconhecimento das limitações, como a necessidade de autenticação nos testes dinâmicos e a dependência da qualidade dos metadados nas bases de vulnerabilidades, é um passo crucial para o planejamento de melhorias contínuas. A combinação de diferentes técnicas de varredura produz uma visão de 360 graus sobre os riscos, permitindo que a organização tome decisões baseadas em dados reais e quantitativos.
Conclui-se que o objetivo foi atingido, uma vez que a integração das práticas de segurança na esteira de automação da aplicação Java 17 forneceu resultados consistentes e evidenciou a relevância da automação para a proteção de sistemas modernos. A execução dos testes revelou vulnerabilidades críticas tanto em componentes de infraestrutura quanto em bibliotecas de terceiros, confirmando que a maior parte dos riscos atuais reside na dependência de elementos externos ao código proprietário. A aplicação de ferramentas de código aberto demonstrou ser uma estratégia viável e eficaz para elevar a maturidade em segurança sem a necessidade de investimentos imediatos em soluções proprietárias de alto custo. Embora o aumento no tempo de processamento da esteira seja um efeito colateral inevitável, o ganho em visibilidade e a capacidade de mitigação antecipada de falhas representam um avanço significativo para a confiabilidade do software. O estudo consolida uma base para futuras expansões, sugerindo a implementação de testes dinâmicos autenticados e a exploração de ambientes em nuvem para simular cenários de ataque mais próximos da realidade corporativa, fortalecendo continuamente a cultura de segurança no desenvolvimento de sistemas.
Referências Bibliográficas:
Abiola, O. B; Olufemi, O. G. 2023. An enhanced CI/CD pipeline: A DevSecOps approach, Int. J. Comput. Appl., vol. 184, no. 48, pp. 8-13.
Abiona, O. O.; Oladapo, J.; Oluwole N.; Oyeniran O. C.; Okechukwu A.; Abiola N. 2024. “The emergence and importance of DevSecOps: Integrating and reviewing security practices within the DevOps pipeline,” World J. Adv. Eng. Technol. Sci., 11, no. 2, pp. 127–133.
Abrahams, T.O., Ewuga, S.K., Kaggwa, S., Uwaoma, P.U., Hassan, A.O. and Dawodu, S.O., 2023. Review of strategic alignment: Accounting and cybersecurity for data confidentiality and financial security.
Ajith, V.; Cyriac, T.; Chavda, C.; Kiyani, A. T.; Chennareddy, V.; Ali, K. 2024. Analyzing Docker Vulnerabilities through Static and Dynamic Methods and Enhancing IoT Security with AWS IoT Core, CloudWatch, and GuardDuty, IoT, 5, no. 3, pp. 592–607
Akbar, M.A., Smolander, K., Mahmood, S. and Alsanad, A., 2022. Toward successful DevSecOps in software development organizations: A decision-making framework. Information and Software Technology, 147, p.106894.
Desai, R. and Nisha, T.N., 2021, July. Best practices for ensuring security in devops: A case study approach. In Journal of Physics: Conference Series (Vol. 1964, No. 4, p. 042045). IOP Publishing.
Dissanayake, N., Jayatilaka, A., Zahedi, M. and Babar, M.A., 2022. Software security patch management-A systematic literature review of challenges, approaches, tools and practices. Information and Software Technology, 144, p.106771.
Esposito, M.; Falaschi, V.; Falessi, D. 2024. An Extensive Comparison of Static Application Security Testing Tools, EASE ’24: Proceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering Pages 69 – 78 https://doi.org/10.1145/3661167.366119
Gonçalves, D. H. A. 2022. DevSecOps for web applications: a case study, Master’s Thesis, Instituto Superior de Engenharia do Porto.
Jambunathan, B.; Kalpana, D. Y. 2018. Design of DevOps solution for managing multi-cloud distributed environment, Int. J. Eng. Technol., 7, no. 33, pp. 637-641.
Khan, R.A., Khan, S.U., Khan, H.U. and Ilyas, M., 2022. Systematic literature review on security risks and its practices in secure software development. ieee Access, 10, pp.5456-5481.
Lombardi, F. and Fanton, A., 2023. From DevOps to DevSecOps is not enough. CyberDevOps: an extreme shifting-left architecture to bring cybersecurity within software security lifecycle pipeline. Software Quality Journal, pp.1-36.
Pool, J., Akhlaghpour, S., Fatehi, F. and Burton-Jones, A., 2024. A systematic analysis of failures in protecting personal health data: a scoping review. International Journal of Information Management, 74, p.102719.
Qadir S, Waheed E, Khanum A, Jehan S. 2025. Comparative evaluation of approaches & tools for effective security testing of Web applications. PeerJ Computer Science 11:e2821 https://doi.org/10.7717/peerj-cs.2821
Resumo executivo oriundo de Trabalho de Conclusão de Curso da Especialização em Engenharia de Software do MBA USP/Esalq
Para saber mais sobre o curso, clique aqui e acesse a plataforma MBX Academy




























