{"id":53121,"date":"2025-04-25T09:29:17","date_gmt":"2025-04-25T12:29:17","guid":{"rendered":"https:\/\/www.locaweb.com.br\/blog\/?p=53121"},"modified":"2025-04-25T09:29:19","modified_gmt":"2025-04-25T12:29:19","slug":"pipelines-de-entrega-continua-ci-cd","status":"publish","type":"post","link":"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/pipelines-de-entrega-continua-ci-cd\/","title":{"rendered":"Garantindo C\u00f3digo Seguro em Pipelines de Entrega Cont\u00ednua (CI\/CD)"},"content":{"rendered":"\n<p>No mundo acelerado do desenvolvimento de software moderno, <strong>a entrega cont\u00ednua e a integra\u00e7\u00e3o cont\u00ednua (<\/strong><a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/ci-cd-vantagens\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>CI\/CD<\/strong><\/a><strong>) s\u00e3o considerados pilares essenciais <\/strong>para um deploy r\u00e1pido e eficiente de aplica\u00e7\u00f5es.&nbsp;&nbsp;<\/p>\n\n\n\n<p>No entanto, a velocidade e a automa\u00e7\u00e3o que esses pipelines proporcionam tamb\u00e9m podem introduzir riscos de seguran\u00e7a, caso n\u00e3o sejam devidamente gerenciados. <strong>Vulnerabilidades no c\u00f3digo, depend\u00eancias inseguras ou credenciais vazadas<\/strong> podem comprometer n\u00e3o apenas a aplica\u00e7\u00e3o, mas toda a infraestrutura de uma organiza\u00e7\u00e3o.&nbsp;<\/p>\n\n\n\n<p><strong>Garantir a seguran\u00e7a em pipelines de CI\/CD<\/strong> vai al\u00e9m de simplesmente adicionar verifica\u00e7\u00f5es pontuais; trata-se de integrar a seguran\u00e7a em cada etapa do processo, desde o desenvolvimento at\u00e9 a implanta\u00e7\u00e3o.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Neste artigo, exploraremos a import\u00e2ncia da seguran\u00e7a no CI\/CD, as ferramentas e t\u00e9cnicas dispon\u00edveis para mitigar riscos e as melhores pr\u00e1ticas para implementar pipelines seguros. Al\u00e9m disso, abordaremos como a <strong>ado\u00e7\u00e3o do DevSecOps pode ajudar a incorporar a seguran\u00e7a<\/strong> desde o in\u00edcio, garantindo que o software seja n\u00e3o apenas funcional, mas tamb\u00e9m seguro.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>A import\u00e2ncia da seguran\u00e7a em pipelines de CI\/CD<\/strong>&nbsp;<\/h2>\n\n\n\n<p>A seguran\u00e7a em pipelines de CI\/CD \u00e9 um aspecto cr\u00edtico no desenvolvimento de software moderno. Com a crescente ado\u00e7\u00e3o de pr\u00e1ticas \u00e1geis e <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/quais-sao-as-etapas-devops\/\" target=\"_blank\" rel=\"noreferrer noopener\">DevOps<\/a>, as organiza\u00e7\u00f5es buscam entregar software de forma r\u00e1pida e frequente.&nbsp;&nbsp;<\/p>\n\n\n\n<p>No entanto, a agilidade n\u00e3o pode comprometer a seguran\u00e7a. Por isso, <strong>um pipeline de CI\/CD inseguro pode se tornar um vetor de ataques<\/strong>, permitindo a introdu\u00e7\u00e3o de vulnerabilidades, vazamento de dados ou at\u00e9 mesmo a execu\u00e7\u00e3o de c\u00f3digo malicioso.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Dessa forma, <strong>garantir a seguran\u00e7a no CI\/CD n\u00e3o \u00e9 apenas uma boa pr\u00e1tica, mas uma necessidade<\/strong> para proteger aplica\u00e7\u00f5es, infraestrutura e dados sens\u00edveis.&nbsp;<\/p>\n\n\n\n<p><strong>Leia mais:<\/strong>&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/o-que-e-ci-cd-em-devops\/\" target=\"_blank\" rel=\"noreferrer noopener\">Como o processo de CI e CD pode tornar o seu desenvolvimento de software mais r\u00e1pido<\/a>\u00a0<\/li>\n\n\n\n<li><a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/seguranca-digital\/seguranca-das-informacoes\/\" target=\"_blank\" rel=\"noreferrer noopener\">Seguran\u00e7a das informa\u00e7\u00f5es: o que \u00e9 classifica\u00e7\u00e3o de dados?<\/a>\u00a0<\/li>\n\n\n\n<li><a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/seguranca-digital\/dicas-de-ciberseguranca\/\" target=\"_blank\" rel=\"noreferrer noopener\">Ciberseguran\u00e7a: dicas para manter seu neg\u00f3cio protegido<\/a>\u00a0<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>O que \u00e9 CI\/CD e por que sua seguran\u00e7a \u00e9 essencial?<\/strong>&nbsp;<\/h2>\n\n\n\n<p>CI\/CD \u00e9 um <strong>conjunto de pr\u00e1ticas e ferramentas que automatizam a integra\u00e7\u00e3o, teste e entrega de c\u00f3digo<\/strong>.&nbsp;&nbsp;<\/p>\n\n\n\n<p>A <strong>Integra\u00e7\u00e3o Cont\u00ednua (CI)<\/strong> envolve a integra\u00e7\u00e3o frequente de altera\u00e7\u00f5es de c\u00f3digo em um reposit\u00f3rio compartilhado, seguida de testes automatizados para garantir que o novo c\u00f3digo n\u00e3o introduza erros. J\u00e1 a <strong>Entrega Cont\u00ednua (CD) <\/strong>permite que o c\u00f3digo seja implantado em ambientes de produ\u00e7\u00e3o, tudo seguindo padr\u00f5es com agilidade e seguran\u00e7a.&nbsp;<\/p>\n\n\n\n<p>A seguran\u00e7a no CI\/CD \u00e9 essencial porque <strong>os pipelines s\u00e3o frequentemente o ponto de entrada para vulnerabilidades<\/strong>. Um pipeline comprometido pode permitir que pessoas mal-intencionadas injetem c\u00f3digo malicioso, acessem credenciais ou explorem depend\u00eancias vulner\u00e1veis.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Al\u00e9m disso, <strong>a automa\u00e7\u00e3o acelerada do CI\/CD pode amplificar falhas de seguran\u00e7a<\/strong> se n\u00e3o forem identificadas e corrigidas a tempo. Portanto, a seguran\u00e7a deve ser integrada ao pipeline para garantir que o software entregue seja n\u00e3o apenas funcional, mas tamb\u00e9m seguro.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Os riscos de pipelines inseguros para o desenvolvimento de software<\/strong>&nbsp;<\/h2>\n\n\n\n<p>Pipelines de CI\/CD inseguros representam uma s\u00e9rie de problemas para o desenvolvimento de software, que podem incluir:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Inje\u00e7\u00e3o de c\u00f3digo malicioso<\/strong>: um pipeline comprometido pode ser usado para introduzir backdoors, <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/malware-como-proteger-dispositivos\/\" target=\"_blank\" rel=\"noreferrer noopener\">malware<\/a> ou scripts maliciosos no c\u00f3digo-fonte ou nos artefatos de build.\u00a0<\/li>\n\n\n\n<li><strong>Vazamento de credenciais<\/strong>: segredos, como chaves de <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/12-apis-que-todo-desenvolvedor-precisa-conhecer\/\" target=\"_blank\" rel=\"noreferrer noopener\">API<\/a>, senhas e tokens, podem ser expostos quando s\u00e3o armazenados de forma inadequada no pipeline.\u00a0<\/li>\n\n\n\n<li><strong>Depend\u00eancias vulner\u00e1veis<\/strong>: <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/melhores-bibliotecas-python-como-instalar\/\" target=\"_blank\" rel=\"noreferrer noopener\">bibliotecas<\/a> e pacotes de terceiros podem conter vulnerabilidades conhecidas que, se n\u00e3o verificadas, podem ser exploradas em produ\u00e7\u00e3o.\u00a0<\/li>\n\n\n\n<li><strong>Falhas de configura\u00e7\u00e3o<\/strong>: configura\u00e7\u00f5es incorretas em ferramentas de CI\/CD, como permiss\u00f5es excessivas ou falta de autentica\u00e7\u00e3o, podem abrir brechas de seguran\u00e7a.\u00a0<\/li>\n\n\n\n<li><strong>Ataques \u00e0 cadeia de suprimentos<\/strong>: pipelines inseguros podem ser usados como alvo em ataques \u00e0 cadeia de suprimentos, comprometendo n\u00e3o apenas a organiza\u00e7\u00e3o, mas tamb\u00e9m seus clientes e parceiros.\u00a0<\/li>\n<\/ul>\n\n\n\n<p>Esses riscos destacam a necessidade de adotar pr\u00e1ticas de seguran\u00e7a robustas em todas as etapas do pipeline, desde o desenvolvimento at\u00e9 a implanta\u00e7\u00e3o.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Introdu\u00e7\u00e3o ao DevSecOps: seguran\u00e7a desde o in\u00edcio<\/strong>&nbsp;<\/h2>\n\n\n\n<p>O DevSecOps <strong>\u00e9 uma evolu\u00e7\u00e3o natural do DevOps<\/strong>, que integra a seguran\u00e7a ao ciclo de vida do desenvolvimento de software. Em vez de tratar a seguran\u00e7a como uma etapa separada ou um obst\u00e1culo ao final do processo, ele a incorpora desde o in\u00edcio, garantindo que as verifica\u00e7\u00f5es de seguran\u00e7a sejam automatizadas e cont\u00ednuas.&nbsp;<\/p>\n\n\n\n<p>Nesse sentido, a abordagem do DevSecOps envolve:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Seguran\u00e7a no c\u00f3digo-fonte<\/strong>: utiliza\u00e7\u00e3o de ferramentas de an\u00e1lise est\u00e1tica (SAST) para identificar vulnerabilidades no c\u00f3digo durante o desenvolvimento.\u00a0<\/li>\n\n\n\n<li><strong>Seguran\u00e7a em depend\u00eancias<\/strong>: verifica\u00e7\u00e3o de bibliotecas e pacotes de terceiros, para garantir que n\u00e3o contenham vulnerabilidades conhecidas.\u00a0<\/li>\n\n\n\n<li><strong>Seguran\u00e7a em runtime<\/strong>: testes din\u00e2micos (DAST) e monitoramento cont\u00ednuo para identificar falhas de seguran\u00e7a em ambientes de produ\u00e7\u00e3o.\u00a0<\/li>\n\n\n\n<li><strong>Cultura de seguran\u00e7a<\/strong>: promo\u00e7\u00e3o de uma mentalidade de seguran\u00e7a em toda a equipe, desde desenvolvedores at\u00e9 opera\u00e7\u00f5es.\u00a0<\/li>\n<\/ul>\n\n\n\n<p>Todos esses pontos s\u00e3o importantes, pois, ao adotar o DevSecOps, <strong>as organiza\u00e7\u00f5es podem identificar e corrigir vulnerabilidades mais cedo<\/strong>, reduzindo custos e riscos associados a falhas de seguran\u00e7a, n\u00e3o s\u00f3 de aplica\u00e7\u00f5es, como de <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/seguranca-digital\/como-desenvolver-sites-com-seguranca\/\" target=\"_blank\" rel=\"noreferrer noopener\">sites<\/a>. Ou seja, tomar essa atitude n\u00e3o apenas protege a aplica\u00e7\u00e3o, mas tamb\u00e9m fortalece a confian\u00e7a dos usu\u00e1rios e stakeholders.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Como a IA ajuda no DESENVOLVIMENTO de software com SEGURAN\u00c7A digital? | Locaweb\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/DV9kT5tKt38?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Ferramentas e t\u00e9cnicas para garantir seguran\u00e7a no CI\/CD<\/strong>&nbsp;<\/h2>\n\n\n\n<p>Com a complexidade crescente das aplica\u00e7\u00f5es e a depend\u00eancia de bibliotecas de terceiros, \u00e9 essencial automatizar a detec\u00e7\u00e3o e a corre\u00e7\u00e3o de vulnerabilidades em todas as etapas do pipeline.&nbsp;&nbsp;<\/p>\n\n\n\n<p>E quais seriam essas ferramentas? <strong>SAST, DAST e scanners de depend\u00eancias<\/strong>, quando integrados de forma adequada, permitem que as equipes identifiquem e mitiguem riscos de seguran\u00e7a de maneira proativa. Al\u00e9m disso, a automa\u00e7\u00e3o de testes de seguran\u00e7a garante que as verifica\u00e7\u00f5es sejam realizadas de forma consistente e cont\u00ednua, sem atrasar o processo de entrega.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>O que \u00e9 SAST e como utiliz\u00e1-lo?<\/strong>&nbsp;<\/h3>\n\n\n\n<p>O <strong>Static Application Security Testing<\/strong> \u00e9 uma t\u00e9cnica de an\u00e1lise de seguran\u00e7a que examina o c\u00f3digo-fonte em busca de vulnerabilidades, antes que o software seja compilado ou executado.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Diferente de abordagens din\u00e2micas, <strong>o SAST analisa o c\u00f3digo em repouso<\/strong>, identificando problemas como inje\u00e7\u00e3o de SQL, cross-site scripting (XSS), uso inadequado de APIs e m\u00e1s pr\u00e1ticas de codifica\u00e7\u00e3o.&nbsp;<br>E como utilizar o SAST no CI\/CD? Primeiro, \u00e9 preciso fazer a<strong> integra\u00e7\u00e3o ao pipeline<\/strong>, usando ferramentas como <a href=\"https:\/\/www.datadoghq.com\/dg\/monitor\/sonarqube\" target=\"_blank\" rel=\"noreferrer noopener\">SonarQube<\/a>, <a href=\"https:\/\/checkmarx.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Checkmarx<\/a> e <a href=\"https:\/\/fortifyapp.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Fortify<\/a>, que podem ser integradas diretamente ao pipeline. Elas analisam o c\u00f3digo automaticamente a cada commit ou pull request.&nbsp;<\/p>\n\n\n\n<p>Na sequ\u00eancia, vem o <strong>feedback r\u00e1pido<\/strong>. O SAST fornece relat\u00f3rios detalhados sobre vulnerabilidades, permitindo que os desenvolvedores corrijam problemas antes que o c\u00f3digo seja mesclado ao branch principal.&nbsp;<\/p>\n\n\n\n<p>Em terceiro lugar, est\u00e1 a <strong>configura\u00e7\u00e3o de regras<\/strong>, j\u00e1 que muitas ferramentas permitem a personaliza\u00e7\u00e3o de regras de an\u00e1lise para se adequar ao contexto da aplica\u00e7\u00e3o e \u00e0s pol\u00edticas de seguran\u00e7a da organiza\u00e7\u00e3o.&nbsp;<\/p>\n\n\n\n<p>E, por fim, a <strong>corre\u00e7\u00e3o cont\u00ednua.<\/strong> Ao incorporar o SAST ao pipeline, as equipes podem garantir que o c\u00f3digo seja continuamente verificado, reduzindo o risco de vulnerabilidades chegarem \u00e0 produ\u00e7\u00e3o.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Scanners de depend\u00eancias: identificando vulnerabilidades em bibliotecas e pacotes<\/strong>&nbsp;<\/h3>\n\n\n\n<p><strong>Scanners de depend\u00eancias<\/strong> s\u00e3o ferramentas que analisam as bibliotecas utilizadas em um projeto e verificam se h\u00e1 vulnerabilidades reportadas em bancos de dados como o CVE (Common Vulnerabilities and Exposures). Isso deve ocorrer porque as aplica\u00e7\u00f5es modernas dependem fortemente de bibliotecas e pacotes de terceiros, o que introduz riscos de seguran\u00e7a caso essas depend\u00eancias contenham vulnerabilidades conhecidas.&nbsp;<\/p>\n\n\n\n<p>Assim, para utilizar scanners de depend\u00eancias, \u00e9 preciso seguir etapas semelhantes \u00e0s do t\u00f3pico anterior. A come\u00e7ar pela <strong>integra\u00e7\u00e3o ao pipeline<\/strong>, usando recursos como <a href=\"https:\/\/github.com\/dependency-check\/DependencyCheck\" target=\"_blank\" rel=\"noreferrer noopener\">OWASP Dependency-Check<\/a>, <a href=\"https:\/\/snyk.io\/pt-BR\/\" target=\"_blank\" rel=\"noreferrer noopener\">Snyk<\/a> e <a href=\"https:\/\/www.opensourceprotection.com\/Open-Source-Security.asp\" target=\"_blank\" rel=\"noreferrer noopener\">WhiteSource, que<\/a> podem ser integrados ao pipeline de CI\/CD para analisar automaticamente as depend\u00eancias do projeto.&nbsp;<\/p>\n\n\n\n<p>Em seguida, deve ser feito o <strong>bloqueio de builds inseguros. <\/strong>Para tanto, configura\u00e7\u00f5es podem ser aplicadas para falhar o build, caso sejam detectadas depend\u00eancias com vulnerabilidades cr\u00edticas.&nbsp;<\/p>\n\n\n\n<p>Depois, vem a <strong>atualiza\u00e7\u00e3o de depend\u00eancias<\/strong>, usando ferramentas ou patches para corrigir vulnerabilidades identificadas.&nbsp;<\/p>\n\n\n\n<p>E, por \u00faltimo, mas n\u00e3o menos importante, o <strong>monitoramento cont\u00ednuo<\/strong> das bibliotecas utilizadas, alertando sobre novas vulnerabilidades \u00e0 medida que s\u00e3o descobertas.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Automa\u00e7\u00e3o de testes de seguran\u00e7a: como incorporar ao pipeline<\/strong>&nbsp;<\/h2>\n\n\n\n<p>A automa\u00e7\u00e3o de testes de seguran\u00e7a \u00e9 a chave para garantir que as verifica\u00e7\u00f5es sejam realizadas de forma consistente e eficiente em um pipeline de CI\/CD. Ao automatizar testes como SAST, DAST e an\u00e1lise de depend\u00eancias, as equipes podem<strong> identificar e corrigir vulnerabilidades, sem atrasar o processo de entrega<\/strong>.&nbsp;<\/p>\n\n\n\n<p>Para tanto, inicia-se o processo fazendo a integra\u00e7\u00e3o de ferramentas, como <a href=\"https:\/\/docs.gitlab.com\/ci\/\" target=\"_blank\" rel=\"noreferrer noopener\">GitLab CI<\/a>, <a href=\"https:\/\/www.jenkins.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Jenkins<\/a> ou <a href=\"https:\/\/github.com\/features\/actions\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Actions<\/a> para integrar testes de seguran\u00e7a diretamente ao pipeline. Por exemplo, o GitLab CI oferece funcionalidades nativas de SAST e DAST.&nbsp;<\/p>\n\n\n\n<p>Depois, <strong>configuram-se os testes de seguran\u00e7a<\/strong> para serem executados em etapas espec\u00edficas do pipeline, como durante a an\u00e1lise de c\u00f3digo, ou antes da implanta\u00e7\u00e3o. Mas, \u00e9 preciso garantir que os resultados dos testes sejam disponibilizados rapidamente para os desenvolvedores, permitindo corre\u00e7\u00f5es \u00e1geis.&nbsp;<\/p>\n\n\n\n<p>Uma etapa interessante e precisa estar presente no projeto \u00e9 a do <strong>bloqueio de builds inseguros<\/strong>. Basta configurar<strong> <\/strong>o pipeline para falhar automaticamente se vulnerabilidades cr\u00edticas forem detectadas, evitando que c\u00f3digo inseguro seja implantado. E fazer o monitoramento cont\u00ednuo.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Implementa\u00e7\u00e3o pr\u00e1tica de pipelines seguros<\/strong>&nbsp;<\/h2>\n\n\n\n<p>Embora a teoria e as ferramentas sejam essenciais, a pr\u00e1tica de configurar e manter pipelines seguros<strong> exige aten\u00e7\u00e3o a detalhes espec\u00edficos <\/strong>de cada ferramenta de CI\/CD.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Nesta se\u00e7\u00e3o, exploraremos como configurar pipelines seguros em tr\u00eas das plataformas mais populares:<strong> Jenkins, GitLab CI e GitHub Actions<\/strong>. Cada uma dessas ferramentas oferece recursos e abordagens \u00fanicas para integrar seguran\u00e7a ao fluxo de trabalho de desenvolvimento.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Como configurar um pipeline seguro no Jenkins<\/strong>&nbsp;<\/h3>\n\n\n\n<p>O Jenkins \u00e9 uma das ferramentas de automa\u00e7\u00e3o de CI\/CD mais utilizadas, mas sua flexibilidade tamb\u00e9m pode introduzir riscos de seguran\u00e7a se n\u00e3o for configurado corretamente. Ent\u00e3o, para evitar problemas, siga os passos abaixo:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Gerenciamento de credenciais<\/strong>: use o <strong>Jenkins Credentials Plugin<\/strong> para armazenar segredos, como chaves de API, senhas e tokens, de forma segura. E evite o hardcoding de credenciais nos scripts do pipeline.\u00a0<\/li>\n\n\n\n<li><strong>Controle de acesso<\/strong>: configure permiss\u00f5es granulares, usando o <strong>Role-Based Authorization Strategy Plugin<\/strong>. E aplique o princ\u00edpio do menor privil\u00e9gio, garantindo que usu\u00e1rios e sistemas tenham apenas as permiss\u00f5es necess\u00e1rias.\u00a0<\/li>\n\n\n\n<li><strong>Integra\u00e7\u00e3o de ferramentas de seguran\u00e7a<\/strong>: adote plugins como <strong>OWASP Dependency-Check,<\/strong> para verificar vulnerabilidades em depend\u00eancias. E integre ferramentas de SAST, como SonarQube ou Checkmarx, para an\u00e1lise est\u00e1tica de c\u00f3digo.\u00a0<\/li>\n\n\n\n<li><strong>Monitoramento e auditoria<\/strong>: habilite logs detalhados, monitore atividades suspeitas no Jenkins, e use plugins como Audit Trail,<strong> <\/strong>para rastrear altera\u00e7\u00f5es no pipeline e configura\u00e7\u00f5es.\u00a0<\/li>\n\n\n\n<li><strong>Pipeline como c\u00f3digo<\/strong>: defina pipelines usando Jenkinsfile, armazenando-o em um reposit\u00f3rio versionado para garantir rastreabilidade e revis\u00e3o de c\u00f3digo.\u00a0<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Seguran\u00e7a em GitLab CI: boas pr\u00e1ticas e ferramentas<\/strong>&nbsp;<\/h3>\n\n\n\n<p>O GitLab CI \u00e9 uma <strong>plataforma completa que integra CI\/CD diretamente ao reposit\u00f3rio de c\u00f3digo<\/strong>, oferecendo recursos nativos de seguran\u00e7a. Entre as melhores pr\u00e1ticas para garantir seguran\u00e7a no GitLab CI, est\u00e3o as seguintes:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Funcionalidades de seguran\u00e7a nativas:<\/strong> utilize as ferramentas integradas de SAST, DAST e an\u00e1lise de depend\u00eancias dispon\u00edveis no <a href=\"https:\/\/about.gitlab.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">GitLab<\/a>. E configure essas verifica\u00e7\u00f5es para serem executadas automaticamente em cada pipeline.\u00a0<\/li>\n\n\n\n<li><strong>Prote\u00e7\u00e3o de segredos<\/strong>: armazene credenciais e segredos no <a href=\"https:\/\/docs.gitlab.com\/ci\/secrets\/hashicorp_vault\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>GitLab Vault<\/strong><\/a> ou utilize vari\u00e1veis de ambiente protegidas. E, n\u00e3o custa lembrar: evite expor segredos em logs ou sa\u00eddas de pipeline.\u00a0<\/li>\n\n\n\n<li><strong>Aprova\u00e7\u00e3o de merge requests<\/strong>: configure regras de aprova\u00e7\u00e3o para merge requests, exigindo revis\u00f5es de c\u00f3digo e verifica\u00e7\u00f5es de seguran\u00e7a antes da mesclagem. E n\u00e3o esque\u00e7a de aplicar a funcionalidade de <strong>Merge Request Approvals,<\/strong> para garantir que altera\u00e7\u00f5es cr\u00edticas sejam revisadas.\u00a0<\/li>\n<\/ul>\n\n\n\n<p>No fim, sempre fa\u00e7a o monitoramento cont\u00ednuo. Nesse caso, voc\u00ea pode usar o&nbsp; <a href=\"https:\/\/docs.gitlab.com\/user\/application_security\/security_dashboard\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Security Dashboard<\/strong> do GitLab<\/a> para visualizar vulnerabilidades e acompanhar o progresso da corre\u00e7\u00e3o.&nbsp;<\/p>\n\n\n\n<p>Al\u00e9m disso, defina pipelines usando <strong>.gitlab-ci.yml<\/strong>, garantindo que as configura\u00e7\u00f5es sejam versionadas e revis\u00e1veis.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>GitHub Actions e seguran\u00e7a: como prevenir falhas no c\u00f3digo<\/strong>&nbsp;<\/h3>\n\n\n\n<p>O GitHub Actions \u00e9 uma plataforma de automa\u00e7\u00e3o de CI\/CD integrada ao GitHub, amplamente utilizada para pipelines modernos. Nele, voc\u00ea pode empregar o <strong>GitHub Secrets, <\/strong>para armazenar credenciais e segredos de forma segura. E, como camada adicional de seguran\u00e7a, limitar o acesso aos segredos apenas aos workflows que realmente precisam deles.&nbsp;<\/p>\n\n\n\n<p>Outra etapa \u00e9 a de adotar a\u00e7\u00f5es oficiais e verificadas do GitHub Marketplace, como github\/codeql-action para an\u00e1lise de c\u00f3digo e snyk\/actions para verifica\u00e7\u00e3o de depend\u00eancias.&nbsp;<\/p>\n\n\n\n<p>E integre ferramentas de SAST e DAST diretamente nos workflows, usando a\u00e7\u00f5es como github\/codeql-action e OWASP ZAP,<strong> configurando verifica\u00e7\u00f5es de depend\u00eancias<\/strong> com ferramentas como <a href=\"https:\/\/github.com\/dependabot\" target=\"_blank\" rel=\"noreferrer noopener\">Dependabot<\/a> ou Snyk.&nbsp;<\/p>\n\n\n\n<p>Para todos que trabalham no projeto, vale exigir revis\u00f5es de c\u00f3digo e aprova\u00e7\u00f5es, antes que altera\u00e7\u00f5es sejam mescladas ao branch principal. E, para isso, adote <a href=\"https:\/\/docs.github.com\/en\/repositories\/configuring-branches-and-merges-in-your-repository\/managing-protected-branches\/managing-a-branch-protection-rule\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Branch Protection Rules<\/strong><\/a>. Desse modo, voc\u00ea garante<strong> <\/strong>que as verifica\u00e7\u00f5es de seguran\u00e7a sejam aprovadas antes da mesclagem.&nbsp;<\/p>\n\n\n\n<p>Voc\u00ea viu que a implementa\u00e7\u00e3o pr\u00e1tica de pipelines seguros em ferramentas como Jenkins, GitLab CI e GitHub Actions requer uma <strong>combina\u00e7\u00e3o de boas pr\u00e1ticas, ferramentas adequadas e configura\u00e7\u00f5es cuidadosas<\/strong>.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Ao <strong>seguir as diretrizes espec\u00edficas para cada plataforma<\/strong>, as equipes podem garantir que seus pipelines de CI\/CD n\u00e3o apenas entreguem software de forma r\u00e1pida e eficiente, mas tamb\u00e9m mantenham a seguran\u00e7a como uma prioridade m\u00e1xima.&nbsp;&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Monitoramento de servidores: garanta a disponibilidade dos sistemas | Locaweb\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/wWXWS7kfFOM?start=2&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Melhores pr\u00e1ticas para fortalecer a seguran\u00e7a no CI\/CD<\/strong>&nbsp;<\/h2>\n\n\n\n<p>A seguran\u00e7a em pipelines de CI\/CD n\u00e3o se resume apenas \u00e0 integra\u00e7\u00e3o de ferramentas e t\u00e9cnicas espec\u00edficas. Ela tamb\u00e9m <strong>depende da ado\u00e7\u00e3o de boas pr\u00e1ticas <\/strong>que garantam a prote\u00e7\u00e3o cont\u00ednua do c\u00f3digo, da infraestrutura e dos dados sens\u00edveis.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Neste t\u00f3pico, <strong>conhe\u00e7a tr\u00eas pilares fundamentais para fortalecer a seguran\u00e7a no CI\/CD<\/strong>: o princ\u00edpio do menor privil\u00e9gio, o armazenamento seguro de credenciais e segredos, e o monitoramento cont\u00ednuo com resposta a incidentes de seguran\u00e7a.&nbsp;&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Princ\u00edpio do menor privil\u00e9gio: controle de acessos no pipeline<\/strong>&nbsp;<\/h3>\n\n\n\n<p>Estabelece que usu\u00e1rios, sistemas e processos devem <strong>ter apenas as permiss\u00f5es necess\u00e1rias para realizar suas tarefas espec\u00edficas<\/strong>, nada mais. Isso reduz o risco de acesso n\u00e3o autorizado e limita o impacto de poss\u00edveis viola\u00e7\u00f5es.&nbsp;<\/p>\n\n\n\n<p>Para tanto, proceda da seguinte forma:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Controle de acesso granular<\/strong>: configure permiss\u00f5es espec\u00edficas para usu\u00e1rios e sistemas, garantindo que apenas as pessoas e ferramentas necess\u00e1rias tenham acesso ao pipeline. Voc\u00ea pode aplicar recursos como <strong>Role-Based Access Control (RBAC),<\/strong> para definir pap\u00e9is e permiss\u00f5es de forma detalhada.\u00a0<\/li>\n\n\n\n<li><strong>Limita\u00e7\u00e3o de permiss\u00f5es em ferramentas<\/strong>: em ferramentas como Jenkins, GitLab CI e GitHub Actions, restrinja permiss\u00f5es de execu\u00e7\u00e3o, leitura e escrita aos n\u00edveis m\u00ednimos necess\u00e1rios.\u00a0<\/li>\n\n\n\n<li><strong>Isolamento de ambientes<\/strong>: separe ambientes de desenvolvimento, teste e produ\u00e7\u00e3o, garantindo que cada um tenha permiss\u00f5es e acessos espec\u00edficos. Basta usar contas e credenciais diferentes para cada ambiente.\u00a0<\/li>\n\n\n\n<li><strong>Revis\u00e3o peri\u00f3dica de permiss\u00f5es<\/strong>: realize auditorias regulares para garantir que as permiss\u00f5es estejam alinhadas com as necessidades atuais. E revogue permiss\u00f5es de usu\u00e1rios ou sistemas que n\u00e3o est\u00e3o mais em uso.\u00a0<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Armazenamento seguro de credenciais e segredos<\/strong>&nbsp;<\/h2>\n\n\n\n<p>Credenciais e segredos, como chaves de API, <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/seguranca-digital\/como-proteger-suas-senhas\/\" target=\"_blank\" rel=\"noreferrer noopener\">senhas<\/a> e tokens, s\u00e3o alvos comuns de ataques em pipelines de CI\/CD.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Um vazamento de segredos pode resultar em acesso n\u00e3o autorizado a sistemas cr\u00edticos, exposi\u00e7\u00e3o de dados sens\u00edveis ou at\u00e9 mesmo <strong>comprometimento de toda a infraestrutura<\/strong>. Portanto, o armazenamento seguro dessas informa\u00e7\u00f5es \u00e9 essencial.&nbsp;<\/p>\n\n\n\n<p>Assim sendo, busque armazenar segredos em ferramentas seguras, como <strong>HashiCorp Vault <\/strong>ou solu\u00e7\u00f5es nativas das plataformas de CI\/CD (por exemplo, GitHub Secrets ou GitLab Vault). E evite o hardcoding de segredos no c\u00f3digo-fonte ou em arquivos de configura\u00e7\u00e3o.&nbsp;<\/p>\n\n\n\n<p>Ainda, certifique-se de que os segredos sejam armazenados e transmitidos de forma criptografada, usando protocolos seguros, como <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/https\/\" target=\"_blank\" rel=\"noreferrer noopener\">HTTPS<\/a> e TLS, para comunica\u00e7\u00e3o com servi\u00e7os externos.&nbsp;<\/p>\n\n\n\n<p>Implemente<strong> pol\u00edticas de rota\u00e7\u00e3o de credenciais<\/strong> para garantir que segredos sejam atualizados regularmente, automatizando a rota\u00e7\u00e3o de chaves e tokens sempre que poss\u00edvel.&nbsp;<\/p>\n\n\n\n<p>E, regularmente, limite o acesso aos segredos apenas aos pipelines e usu\u00e1rios que realmente precisam deles com <strong>pol\u00edticas de acesso baseadas em pap\u00e9is (RBAC),<\/strong> para controlar quem pode visualizar ou usar segredos.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Monitoramento cont\u00ednuo e resposta a incidentes de seguran\u00e7a<\/strong>&nbsp;<\/h2>\n\n\n\n<p>A seguran\u00e7a no CI\/CD n\u00e3o termina com a implanta\u00e7\u00e3o do c\u00f3digo. <strong>\u00c9 essencial monitorar continuamente o pipeline e a aplica\u00e7\u00e3o em produ\u00e7\u00e3o<\/strong> para detectar e responder a amea\u00e7as em tempo real.&nbsp;&nbsp;<\/p>\n\n\n\n<p>O monitoramento cont\u00ednuo ajuda a identificar vulnerabilidades, comportamentos an\u00f4malos e poss\u00edveis ataques, antes que causem danos.&nbsp;<\/p>\n\n\n\n<p>Ferramentas de <strong>SIEM (Security Information and Event Management)<\/strong> coletam e analisam logs de seguran\u00e7a. Al\u00e9m disso, configure alertas para detectar atividades suspeitas, como acessos n\u00e3o autorizados, tentativas de inje\u00e7\u00e3o de c\u00f3digo ou uso excessivo de recursos, usando <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/machine-learning-o-que-e-tipos-principais\/\" target=\"_blank\" rel=\"noreferrer noopener\">Machine Learning<\/a> e an\u00e1lise comportamental.&nbsp;<\/p>\n\n\n\n<p>Outra medida importante: antes mesmo que aconte\u00e7a algum ataque, <strong>desenvolva um plano de resposta a incidentes<\/strong> que inclua etapas claras para conten\u00e7\u00e3o, investiga\u00e7\u00e3o e recupera\u00e7\u00e3o. E realize simula\u00e7\u00f5es regulares de incidentes para garantir que a equipe esteja preparada para agir rapidamente.&nbsp;<\/p>\n\n\n\n<p><strong>Ap\u00f3s um incidente de seguran\u00e7a<\/strong>, realize uma an\u00e1lise detalhada para identificar as causas ra\u00edzes e implementar melhorias, documentando as li\u00e7\u00f5es aprendidas e atualizando pol\u00edticas e procedimentos de seguran\u00e7a.&nbsp;<\/p>\n\n\n\n<p>Ao longo deste artigo, exploramos a import\u00e2ncia da seguran\u00e7a em pipelines de CI\/CD, destacando os riscos de pipelines inseguros e a necessidade de <strong>adotar uma abordagem proativa para proteger o c\u00f3digo<\/strong>, as depend\u00eancias e a infraestrutura.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Discutimos ferramentas como SAST, DAST e scanners de depend\u00eancias, que ajudam a identificar e mitigar vulnerabilidades de forma automatizada e cont\u00ednua. Al\u00e9m disso, abordamos a<strong> implementa\u00e7\u00e3o pr\u00e1tica de pipelines seguros<\/strong> em ferramentas populares como Jenkins, GitLab CI e GitHub Actions, fornecendo diretrizes espec\u00edficas para cada plataforma.&nbsp;<\/p>\n\n\n\n<p>Tamb\u00e9m destacamos as <strong>melhores pr\u00e1ticas para fortalecer a seguran\u00e7a no CI\/CD<\/strong>, incluindo o princ\u00edpio do menor privil\u00e9gio, o armazenamento seguro de credenciais e o monitoramento cont\u00ednuo com resposta a incidentes. Elas ajudam a criar um ambiente de desenvolvimento e entrega mais seguro e resiliente, garantindo que a seguran\u00e7a seja uma prioridade em todas as etapas do ciclo de vida do software.&nbsp;<\/p>\n\n\n\n<p>Em um mundo onde as amea\u00e7as cibern\u00e9ticas est\u00e3o em constante evolu\u00e7\u00e3o,<strong> a seguran\u00e7a no CI\/CD n\u00e3o pode ser tratada como uma etapa isolada<\/strong> ou um obst\u00e1culo ao processo de entrega. Em vez disso, ela deve ser vista como um facilitador para a inova\u00e7\u00e3o e a agilidade, permitindo que as equipes entreguem software de alta qualidade com confian\u00e7a.&nbsp;&nbsp;<\/p>\n\n\n\n<p>E para manter os seus projetos ainda mais seguros, nada melhor do que contar com um <a href=\"https:\/\/www.locaweb.com.br\/servidor-vps\/?utm_source=blog+post&amp;utm_medium=own&amp;utm_campaign=blog-post-ci-cd-servidor-vps&amp;utm_id=blog+post\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>servidor VPS<\/strong><\/a><strong> <\/strong>que garanta desempenho e seguran\u00e7a. O melhor de tudo: a Locaweb oferece esse servi\u00e7o! Confira as condi\u00e7\u00f5es no site.\u00a0<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>No mundo acelerado do desenvolvimento de software moderno, a entrega cont\u00ednua e a integra\u00e7\u00e3o cont\u00ednua (CI\/CD) s\u00e3o considerados pilares essenciais para um deploy r\u00e1pido e eficiente de aplica\u00e7\u00f5es.&nbsp;&nbsp; No entanto, a velocidade e a automa\u00e7\u00e3o que esses pipelines proporcionam tamb\u00e9m podem introduzir riscos de seguran\u00e7a, caso n\u00e3o sejam devidamente gerenciados. Vulnerabilidades no c\u00f3digo, depend\u00eancias inseguras [&hellip;]<\/p>\n","protected":false},"author":24,"featured_media":53122,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-53121","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-aberto"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/53121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/comments?post=53121"}],"version-history":[{"count":1,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/53121\/revisions"}],"predecessor-version":[{"id":53123,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/53121\/revisions\/53123"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media\/53122"}],"wp:attachment":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media?parent=53121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/categories?post=53121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/tags?post=53121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}