Filosofia
Guia de como implementar DevSecOps


Redator e editor de conteúdo
Atualizado
28 de jun. de 2022
12 min
Implementar DevSecOps na sua organização exige, em poucas palavras, uma transformação radical na forma de pensar e agir em relação à segurança e em como ela se integra aos processos de desenvolvimento e entrega de software. Antes de entrar em detalhes sobre os princípios, desafios e técnicas ou práticas recomendadas para essa implementação, vamos definir brevemente o conceito de DevSecOps, sobre o qual já apresentamos uma introdução mais completa em um post anterior.
O que é a metodologia DevSecOps?
Quando falamos dee DevSecOps, nos referimos não apenas a uma metodologia, mas a uma cultura em expansão entre as empresas de desenvolvimento tecnológico, onde a segurança é introduzida e tratada desde o início e permanece ao longo de todo o ciclo de vida do desenvolvimento de software (SDLC). No DevSecOps, como parte de uma evolução do modelo anterior (DevOps), a equipe de segurança se integra em uma colaboração entre as equipes de desenvolvimento e operações. O DevOps tinha como foco alcançar uma alta velocidade na entrega de um produto de excelente qualidade ao mercado. Agora, o DevSecOps mantém esse objetivo, mas adiciona o propósito de garantir que o produto seja seguro. Com essa cultura corporativa, a segurança se torna uma responsabilidade compartilhada de todos os membros da organização.
Visão geral da implementação do DevSecOps
Implementar DevSecOps é fazer o "shift left" da segurança, ou seja, integrá-la ao processo de desenvolvimento de tecnologia antes que a primeira linha de código apareça. Adotar o DevSecOps é trazer para o SDLC requisitos e testes de segurança, priorização e remediação de vulnerabilidades, e monitoramento judicioso para prevenção de riscos e economia de custos. Diferente de metodologias anteriores, a identificação e remediação de problemas de segurança acontecem em sincronia com a atividade de desenvolvimento, sem esperar até o final de cada ciclo. No DevSecOps, a segurança atua no planejamento, design, construção, testes e release do software, fornecendo feedback contínuo a todas as equipes envolvidas.
Componentes fundamentais do DevSecOps
A implementação de DevSecOps se baseia em quatro componentes fundamentais: pessoas, processos, tecnologias e governança.
Primeiro, são as pessoas, ou seja, os membros dos times, que serão integrados para cooperar. São eles que, como parte da mudança cultural, assumirão a responsabilidade compartilhada pela segurança em seus workflows. São eles que treinarão e serão treinados para que a segurança seja injetada no DNA corporativo.
Do lado dos processos, o modelo de responsabilidade compartilhada exige que os objetivos gerais de velocidade, segurança e estabilidade do software sejam mantidos por todos os stakeholders. Portanto, as melhores práticas em segurança, desenvolvimento e operações devem ser adotadas desde o início e ao longo de todo o SDLC.
Para isso, o suporte fornecido pelas tecnologias é crucial. Estas se integram aos ciclos e facilitam muitos processos. Testes de segurança com ferramentas automatizadas, por exemplo, que complementam os testes de segurança manuais feitos por especialistas, são valiosos na cultura DevSecOps. No entanto, a automação deve ser usada quando necessário e não em excesso, para não afetar a eficácia do desenvolvimento e deploy do software.
Finalmente, o DevSecOps deve envolver governança. As empresas precisam monitorar seus procedimentos, medir seu desempenho, identificar e analisar seus obstáculos, falhas e progressos, definir desafios e aprender e melhorar com a ajuda de feedback. As métricas obtidas ao longo da maturação do DevSecOps de uma organização são muito úteis para a tomada de decisões de governança.
Princípios ou passos básicos do DevSecOps
Em relação a esses elementos, a seguir estão alguns princípios ou passos básicos na implementação de DevSecOps dentro de uma organização:
Promover uma mudança cultural gradual.
Educar, treinar e certificar colaboradores em diversas funções em segurança e boas práticas.
Escolher em quais pontos do SDLC realizar procedimentos específicos de segurança.
Automatizar processos (incluindo alguns da governança) e ferramentas para estabilidade e repetição em diferentes fases dos ciclos.
Começar avaliando pequenas porções de código ou casos específicos e priorizados.
Realizar intervenções manuais contínuas para retestar e aprofundar.
Utilizar métricas para medir desempenho e progresso, e aprender com o feedback.
Motivadores para adoção de DevSecOps
A popularidade da metodologia DevOps vem crescendo nos últimos anos por conta da agilidade que ela traz ao desenvolvimento e entrega de software. No caso da metodologia DevSecOps, sua crescente popularidade se deve à sua inteligente — e incrivelmente ainda não vista como necessária por alguns — inclusão da segurança na abordagem anterior sem afetar negativamente sua eficiência. Era prudente responder aos problemas de segurança que surgiam na entrega acelerada de tecnologia. Felizmente, um número crescente de organizações percebe a segurança como uma necessidade em um ambiente repleto de pessoas inescrupulosas que desejam tirar proveito da ignorância e dos erros humanos por diferentes métodos e caminhos.
O DevSecOps é atraente porque permite a prevenção constante de riscos e a mitigação de ameaças que inevitavelmente surgem no desenvolvimento de software. Também porque a detecção precoce de vulnerabilidades possibilita sua remediação antes de ir para produção e a um custos muito menores. Graças à implementação de DevSecOps, as organizações podem evitar gargalos com avaliações de última hora e interrupções na entrega rápida de tecnologia, que pode até melhorar. Além disso, podem promover transparência, construir confiança, manter uma excelente reputação e até aumentar suas receitas com a ajuda de uma equipe fielmente comprometida com a segurança.
Desafios na adoção de DevSecOps
No entanto, desafios também podem surgir para as organizações que desejam adotar a cultura DevSecOps. Um dos obstáculos mais comumente é a resistência interna à mudança. Realinhar ou redefinir os modos de operação enraizados e a mentalidade das pessoas frequentemente não é tarefa fácil. As equipes de desenvolvimento e operações podem ver a equipe de segurança como um obstáculo à entrega rápida de resultados. Podem ter se acostumado a vê-la como uma equipe com prioridades diferentes, anteriormente trabalhando em silo e até como um complemento em estágios posteriores do SDLC, que não deveria interromper seu workflow. Afinal, podem acreditar que segurança é sinônimo de lentidão, estagnação e até limitação da criatividade.
A falta de conhecimento sobre segurança e conformidade com requisitos também é considerada um desafio para a implementação de DevSecOps. É comum encontrar desenvolvedores que carecem de habilidades relacionadas à segurança. Ideias absurdas podem até surgir de mal-entendidos sobre a prática do DevSecOps, como que esse método leva a um maior número de problemas de segurança. O que as pessoas não estão vendo claramente é que os problemas existentes são identificados e reportados nas organizações graças a esse método, algo que normalmente não acontece com uma metodologia simples de DevOps. Muitos querem ignorar que estão em risco; simplesmente fecham os olhos até que o impacto os acorde.
Outro desafio na implementação de DevSecOps está relacionado às ferramentas. Normalmente, ferramentas DevOps como as de CI/CD, gerenciamento de código-fonte, code review e build, entre outras, vêm de diferentes fornecedores. Tudo pode se complicar ainda mais com a adição de ferramentas de testes de segurança. Na ausência de documentação e treinamento, os desenvolvedores podem achar difícil escolher entre as ferramentas disponíveis. Integrar as ferramentas nos pipelines de DevOps pode ser complicado e demorado para eles. Além disso, podem ter dificuldades em combinar e conciliar resultados de recursos diversos, especialmente se forem de fornecedores diferentes.
Obviamente, desafios financeiros também podem surgir. As mudanças nas práticas de negócios podem ser custosas. Isso é um impedimento para muitas empresas quando o curto e longo prazos não são avaliados. Por exemplo, treinar a equipe e adquirir ferramentas pode envolver custos altos no curto prazo. Ainda assim, um release rápido de produtos seguros e de alta qualidade pode gerar lucros no longo prazo, e a prevenção de ciberataques pode evitar custos ainda mais elevados.
Estratégia de DevSecOps: melhores técnicas de implementação
De acordo com os princípios ou passos básicos mencionados acima, recomendamos as seguintes práticas para implementar corretamente a cultura DevSecOps na sua organização.
Mudança cultural gradual: Como mencionado, a mudança começa com as pessoas. A adoção da cultura DevSecOps acontecer como ocorre com muitas outras tendências, ou seja, com um efeito dominó gradual. Não recomendamos promover imediatamente a metodologia para todas as equipes da sua organização. Você pode começar com pequenos grupos de indivíduos que já demonstraram um forte interesse alinhado aos propósitos de DevSecOps, para incorporar essa cultura com novas práticas em seu trabalho diário. A partir daí, os benefícios alcançados podem servir de inspiração para adicionar mais membros da sua organização a uma reviravolta bem-sucedida. Claro, você deve lembrar que não se trata de criar um novo team chamado "DevSecOps". Os membros dos times da sua organização começarão a fazer a transição para uma mentalidade onde todos são responsáveis pela segurança.
Treinamento e prática de segurança: Aqueles que já estão um pouco imersos em teoria e prática de segurança dentro da sua organização podem servir de apoio para dar os primeiros passos no DevSecOps, possivelmente acompanhados por especialistas externos na área. Com esses especialistas externos, você pode obter serviços de avaliação de segurança antes de iniciar ciclos de desenvolvimento. Junto com sua equipe, eles podem ajudá-lo com threat modeling e definir quais controles e requisitos de segurança implementar. Mas, com a ajuda dos internos, você deve imediatamente começar a enfrentar o desafio da falta de conhecimento. Os chamados Security Champions, às vezes na posição de engenheiros de DevSecOps, podem estabelecer planos de compartilhamento de conhecimento e conduzir treinamentos formais internos para aumentar a consciência sobre segurança dentro de cada equipe. Por meio deles e até cursos online, seus times devem receber treinamento em boas práticas para secure coding e tratamento e remediação de problemas de segurança. Naturalmente, devem testemunhar e participar da identificação de vulnerabilidades nos produtos da sua organização e em sua remediação, recebendo feedback contínuo. Para desenvolver ainda mais sua expertise e confiança, também podem recorrer á obtenção de certificações.
Escolha dos momentos para atividades de segurança: Antes de pensar em quais tipos de atividades de segurança implementar na sua organização, é prudente refletir sobre os momentos do SDLC onde elas serão aplicadas. Definindo esses pontos e através da discussão e análise de segurança, será mais fácil escolher as atividades e ferramentas adequadas para implementar. Por exemplo, considerando as primeiras fases do pipeline de DevOps, o que foi dito acima é mais especificamente direcionado ao processo inicial de planejamento. Na fase de codificação, atividades como revisão de código e protocolos de segurança para senhas e outras informações sensíveis são comumente usadas. Depois, na fase de build, tendo adicionado código ao repositório, o teste de segurança de aplicações estático (SAST) e a análise de composição de software (SCA) podem entrar em ação. O primeiro revisa o código em busca de vulnerabilidades, enquanto o segundo revisa as dependências do código. Na fase de testes, tendo um produto pronto para rodar e ser testado, o teste de segurança de aplicações dinâmico (DAST) pode ser usado. Este método não acessa o código, mas envia vetores de ataque aos endpoints das aplicações em execução. O pentesting pode ser realizado mais tarde no ciclo de DevSecOps, na fase de release. Esse método depende de hackers que tentam burlar controles, criar exploits personalizados, etc.

(Fonte da imagem)
Automação de atividades de segurança: Automatizar ferramentas e processos relacionados à segurança dentro da metodologia DevSecOps é útil para não prejudicar o objetivo da abordagem DevOps de injetar velocidade. A automação de processos permite que eles ocorram de forma consistente e iterativa. Ferramentas de automação DevSecOps reduzem a carga ao entregar alertas antecipados ou informações relevantes para os desenvolvedores para correção rápida de problemas de segurança. No entanto, é importante determinar até onde a automação deve ir, porque as intervenções manuais são sempre necessárias, por exemplo, pentesting. Certamente, o esforço manual permanece um componente indispensável para precisão e profundidade.
Vale destacar que o software e as normas para sua regulamentação estão em constante mudança. Portanto, a automação para avaliação de políticas e conformidade é bastante útil. Com base na indústria à qual sua organização pertence, seu time seleciona os requisitos de segurança que precisa atender ou é obrigado a cumprir, como PCI DSS, HIPAA, GDPR. Uma vez que os requisitos são codificados, a automação permite verificar rapidamente no código ou produto se estão sendo violados e notificar a equipe para resolução imediata. Além disso, quando você tem a conformidade monitorada e recebe status completos do software continuamente, pode agilizar ações de resposta para evitar multas custosas e processos regulatórios.
Avaliação de segurança incremental: Ao integrar e implementar atividades de segurança, é prudente ir devagar, sem aspirações desmedidas. Fazer o contrário, bombardeando os desenvolvedores com uma infinidade de descobertas para resolver em curtos períodos pode levá-los a ficar relutantes em trabalhar na remediação. Então, em vez de rodar testes completos toda vez, uma avaliação gradual pode ser mais razoável, por exemplo, nos casos iniciais, atendendo apenas a áreas, ou buscando vulnerabilidades, de alta prioridade. Mais tarde, os testes ou atividades de segurança seguintes servirão como um complemento para uma avaliação mais ampla e profunda antes de ir para produção. Além disso, uma recomendação significativa em prol da agilidade é o time de desenvolvedores da sua organização sempre envie o código em pequenos chunks para revisão.
Atividades manuais de segurança: Como já foi afirmado, embora a automação seja relevante na adoção de DevSecOps, a atividade manual continua sendo especialmente importante. Ferramentas automatizadas de detecção de vulnerabilidades ainda reportam mentiras (falsos positivos) e fazem omissões (falsos negativos). As avaliações manuais podem fazer verificações sobre isso e escaneamentos mais aprofundados. Por exemplo, o exercício manual pode focar em tarefas da perspectiva dos atacantes para explorar vulnerabilidades de forma controlada e avaliar impactos potenciais na organização (hacking ético). A recomendação é que sua organização tenha seus sistemas avaliados em pentesting contínuo que mantenha uma cultura forte de remediação. Apenas o pentesting regular não é recomendado, já que o intervalo de tempo entre um teste e outro poderia dar aos atacantes a chance de tirar proveito da exposição ao risco do seu sistema.
Medindo desempenho e progresso: A medição faz parte da implementação adequada do DevSecOps. O ideal é coletar dados da sua organização sobre seu desempenho dentro da nova metodologia, organizá-los cuidadosamente e estabelecer métricas significativas. Entre os dados a serem capturados podem estar, por exemplo, aqueles relacionados a testes de segurança e suas descobertas, bem como atividades de remediação e deploy. As métricas permitem manter um registro do progresso. É de grande benefício ter uma plataforma que elimina ruídos na coleta de dados de diferentes fontes.
Aprendendo com feedback: Medir sucessos e falhas sempre será essencial na adoção do DevSecOps. Mas ainda mais importante é que esses registros sirvam para otimizar processos dentro da sua organização. Na integração e deploy contínuos de software, sempre haverá resultados para comparar e analisar. A detecção do que tornou as coisas melhores ou piores em um processo ou ciclo é algo que você pode transmitir aos seus times como feedback na esperança de que leve ao aprendizado. Quanto mais cedo você transmiti-lo, melhor.
Nova governança: A governança clássica pode significar atrasos na entrega de software que de nenhuma maneira se encaixam na cultura e mentalidade DevSecOps. A sugestão então é recorrer novamente à automação. Você pode automatizar atividades de verificação, como controles antes do software ser liberado para produção. Não há necessidade de avaliar manualmente um status final de segurança; aplique exceções pré-selecionadas e quebre o build quando houver problemas não resolvidos. Para adotar uma nova governança assim, dentro do DevSecOps, você deve ter a colaboração e aprovação dos seus times.
Se você quer aprender sobre as boas práticas do DevSecOps, ou seja, as ações que mantêm sua implementação viva, acesse este post.
Ferramentas e recursos de DevSecOps
A implementação do DevSecOps inclui ferramentas para diferentes tipos de testes de segurança integradas ao SDLC.
SAST: As ferramentas para esse tipo de teste escaneiam código que não está em execução para detectar erros de codificação e design que podem criar fraquezas exploráveis.
SCA: As ferramentas para esse tipo de teste escaneiam código e arquivos de componentes de código aberto e de terceiros para identificar vulnerabilidades conhecidas e problemas de licenciamento.
DAST: As ferramentas para esse tipo de teste, que não requerem acesso ao código-fonte, avaliam aplicações em execução para detectar vulnerabilidades relacionadas à configuração de deploy, dados e lógica de negócios.
Algumas considerações recomendadas para a seleção de produtos DevSecOps incluem as seguintes:
Seja fácil de instalar, configurar e usar.
Tenha alta precisão, ou seja, gere baixas taxas de falsos positivos e falsos negativos, e procure pelo que você precisa que ele procure.
Seja rápido o suficiente para trabalhar dentro do seu SDLC.
Cubra políticas que sua empresa precisa cobrir.
Possa funcionar continuamente, em paralelo e integrado com outras ferramentas em uso.
Adicionalmente, gostaríamos de destacar alguns recursos relacionados às ferramentas anteriores que são bastante úteis na implementação do DevSecOps:
Pentests: Nesta metodologia de testes de segurança, na qual o trabalho manual de hackers éticos predomina sobre verificações por ferramentas automatizadas, ataques reais são simulados para identificar vulnerabilidades que os atacantes em um determinado ambiente poderiam explorar.
Plataforma de attack resistance management: Este é outro tipo de ferramenta que facilita o gerenciamento e a remediação de vulnerabilidades de segurança. Ela consolida dados obtidos por diferentes métodos e ferramentas, facilita a compreensão e análise dos problemas detectados e prioriza as descobertas-chave para remediação rápida.
Aprenda aqui como a Fluid Attacks utiliza ferramentas de DevSecOps.
Implemente DevSecOps com a Fluid Attacks
Na Fluid Attacks, estamos prontos para ajudar você na transformação da sua organização, implementando DevSecOps. Temos profissionais de segurança certificados e experientes encarregados de integrar processos e ferramentas de segurança desde o início e ao longo de todo o seu SDLC. Em uma única solução, incluímos ferramentas automatizadas para testes de segurança como SAST, AI SAST, DAST e SCA. Nosso time de hackers éticos adiciona procedimentos de testes de penetração ou breach and attack simulation e garante baixas taxas de falsos positivos e falsos negativos. Além disso, nossos testes de segurança podem verificar cerca de 50 normas de referência internacional para suas necessidades de conformidade.
Todas as vulnerabilidades de segurança que detectamos no seu software são reportadas em um único lugar: a plataforma da Fluid Attacks. Esta plataforma permite que você conheça o status de segurança dos seus sistemas e suas aplicações, aprenda em detalhes sobre as vulnerabilidades detectadas e as priorize para uma remediação rápida e correta. Além disso, esta plataforma permite que você acompanhe tratamentos e veja métricas que pode usar para fazer benchmarking e tomar melhores decisões, entre muitas outras coisas. Na Fluid Attacks, hackeamos seu software continuamente para ficar um passo à frente dos atacantes maliciosos. Além disso, nossa solução de DevSecOps faz a segurança permear suas equipes para que seja entendida como uma responsabilidade de todos.
Quer saber mais sobre DevSecOps?
Para mais informações sobre a solução da Fluid Attacks e como ela pode beneficiar sua organização, entre em contato com um de nossos especialistas. Também convidamos você a aprender como nossos serviços são fundamentais para implementar DevSecOps na AWS e Azure. Adicionalment, aqui estão dois dos nossos posts que respondem às seguintes perguntas sobre DevSecOps: O que é DevSecOps e o que faz um engenheiro DevSecOps?
Get started with Fluid Attacks' ASPM solution right now
Assine nossa newsletter
Mantenha-se atualizado sobre nossos próximos eventos e os últimos posts do blog, advisories e outros recursos interessantes.
Outros posts


















