Article image
Eric Santos
Eric Santos23/07/2023 15:36
Compartilhe

DevOps vs DevSecOps: mas afinal qual é a diferença?

    Neste artigo iremos entender o que é DevOps, DevSecOps e as principais diferenças entre ambos. Também discutiremos como podemos mudar para o DevSecOps e sua importância.

    O DevOps combina "desenvolvimento" e "operações" para descrever um modelo colaborativo ou de responsabilidade compartilhada para a criação de aplicativos. Ele vê o trabalho realizado pelas equipes de desenvolvimento de software e operações de TI como um único processo.

    DevSecOps é uma abordagem de gerenciamento de desenvolvimento de software que introduz segurança à equação DevOps. Ele cria um pipeline automatizado de Entrega Contínua (CD) combinando desenvolvimento, operações, segurança e infraestrutura como código (IaaS).

    Uma pipeline é um conjunto de processos e ferramentas que ajudam a criar e disponibilizar um novo software. É como se fosse uma linha de produção, onde cada etapa é realizada por uma pessoa ou máquina diferente. Cada etapa é importante para garantir que o software esteja funcionando corretamente e sem erros.

    Importância do DevOps

    O DevOps é uma prática que tem se tornado cada vez mais importante nos dias atuais. Ele ajuda a integrar as áreas de Desenvolvimento e Operações, que são lados opostos da mesma moeda no departamento de TI. O DevOps serve para unificar os times de desenvolvimento e administração de operações, fornecendo atalhos para melhorar a qualidade do produto, ou seja, do software. Com o DevOps é possível fazer alterações mais frequentes e com segurança em um ambiente complexo.

    O DevOps é importante porque ajuda a acelerar a disponibilização de um software e torna os negócios mais eficientes, responsáveis, transparentes e mais competitivos. Além disso, o DevOps é uma forma automatizada de levar o software do controle de versão às mãos do usuário. Com esse recurso, todo o processo pode ser modelado como um mapa de fluxo de valor. Para tanto, é essencial envolver os processos de criação e implementação de código em um ambiente de produção .

    image

    Importância do DevSecOps

    Atualmente, as organizações dependem de ambientes complexos, locais, baseados em nuvem e híbridos para dar suporte às operações de TI. Soma-se a essa complexidade a criação constante de novos aplicativos e atualizações. Muitas organizações usam contêineres de nuvem e microsserviços para desenvolver aplicativos internamente.

    Sempre que um funcionário cria ou modifica um componente ou ativo conectado à Internet, uma configuração incorreta ou nova vulnerabilidade pode expor o aplicativo a ataques. Outras complexidades que aumentam o risco incluem acelerar o desenvolvimento, automatizar partes do processo de entrega de aplicativos e dividir aplicativos em microsserviços. Os desenvolvedores geralmente cometem pequenos erros, deixando os ativos vulneráveis a ataques cibernéticos.

    Embora os fluxos de trabalho de DevOps padrão forneçam valor comercial tangível, eles também são uma fonte significativa de risco. Portanto, o foco de segurança do DevSecOps é crucial. Proteger o ambiente de desenvolvimento de software deve ser parte integrante do processo de desenvolvimento, não uma reflexão tardia.

    image

    DevOps e DevSecOps

    DevOps é um conceito amplo que engloba várias estratégias organizacionais. O núcleo do DevOps é a responsabilidade compartilhada entre equipes tradicionalmente separadas. Originou-se como um paradigma geral com práticas comuns, mas agora se tornou uma cultura de trabalho bem definida e um processo de desenvolvimento. As organizações que adotam uma abordagem de responsabilidade compartilhada para desenvolvimento e operações podem produzir iterações mais rápidas e lançar aplicativos mais bem-sucedidos. O DevSecOps estende essa filosofia incorporando metas e práticas de segurança aos objetivos gerais de negócios.

    DevSecOps é uma evolução natural do DevOps, não um conceito separado. Equipes de DevOps bem-sucedidas, já acostumadas com práticas de DevOps, podem abordar o DevSecOps como a próxima etapa lógica no processo de adoção de DevOps.

    image

    Transição de DevOps para DevSecOps

    A evolução do DevOps para o DevSecOps requer uma mudança de cultura dentro das equipes de desenvolvimento, que passam a olhar segurança em todos os aspectos. O grande desafio é introduzir, no processo de desenvolvimento, uma mudança radical de pensamento. É necessário passar a todos os envolvidos a mensagem clara de que segurança é um dos componentes mais importantes no desenvolvimento de aplicações. Para implementar DevSecOps no processo é preciso melhorar as práticas e tornar as aplicações mais seguras.

    Sendo assim, vamos falar um pouco sobre o que podemos fazer para melhorar as práticas de DevSecOps e tornar aplicações mais seguras.

    Adaptando-se ao modelo Shift Left para migrar de DevOps para DevSecOps

    Como nosso objetivo é contar com a segurança desde as fases iniciais do processo de desenvolvimento, é natural que um dos primeiros passos seja avaliar o seu processo. É preciso fazer um exercício no sentido de mover o foco de segurança para a esquerda do pipeline de desenvolvimento.

    Mas o que isto quer dizer exatamente? Olhar para o início do desenvolvimento com foco em segurança significa que estamos buscando nos antecipar a possíveis problemas que possam surgir no software.

    Desta forma, ao iniciar a jornada do desenvolvimento, um dos primeiros pontos que devemos observar é que a responsabilidade pela segurança de um software não deve ser lançada apenas nas equipes de desenvolvimento.

    image

    Adotando a automação continuada para migrar de DevOps para DevSecOps

    Quando falamos em automação continuada, é importante compreender que ela consiste na utilização de ferramentas e técnicas que possam garantir a integração contínua de código. Este processo, juntamente com a entrega contínua, permite que as equipes de desenvolvimento possam focar em outras atividades importantes.

    A automação, quando colocada no processo de desenvolvimento desde seu início, é uma forte aliada para reduzir – ou mesmo eliminar – o constante conflito entre as equipes de segurança e de desenvolvimento.

    Introduzindo Governança no processo de Desenvolvimento para migrar de DevOps para DevSecOps

    As equipes de governança e de desenvolvimento geralmente estão em desacordo sobre como o processo irá garantir a segurança do código.

    Ferramentas de orquestração podem ser introduzidas para ajudar a resolver esse conflito.

    Além disso, a introdução de critérios pode ajudar governança e DevOps a atuarem em conjunto, garantindo que ao ser entregue o código passou por um processo estruturado, reduzindo a possibilidade de falhas.

    Como sabemos, realizar testes de segurança no código completo é muito mais complicado e caro do que resolvê-los ainda no início do processo de desenvolvimento. 

    Pensando nisso, a governança passa a ser um fator importante nos processos. Deste modo, torna-se possível rastrear os eventos que merecem atenção durante todo o processo de desenvolvimento, de modo que as equipes de segurança possam auditar, monitorar e orientar o progresso ao longo do ciclo de vida.

    Utilizando Microsserviços e Containers para migrar de DevOps para DevSecOps

    Os microsserviços e containers são cada vez mais utilizados na construção de aplicativos, mas também trazem novos desafios. Com a proliferação destes pontos em uma estrutura, eleva-se exponencialmente a superfície de ataque e, portanto, os riscos. É importante garantir que estes novos serviços e containers sejam levados ao processo de validação, tanto quando os códigos. Para garantir a segurança dos microsserviços e containers é necessário implementar um processo organizado e definido de hardening. Este processo de validação de segurança deve sempre ser acompanhado de um monitoramento constante, para que isso possa garantir que qualquer anomalia seja identificada.

    Hardening é um processo de mapeamento das ameaças, mitigação dos riscos e execução das atividades corretivas, com foco na infraestrutura e objetivo principal de torná-la preparada para enfrentar tentativas de ataque.

    A Modelagem de Ameaças na criação do Software

    Fugindo um pouco dos modelos abordados acima, o processo de realização de modelagem de ameaças é basicamente todo manual.

    Trata-se de um processo mais demorado, voltado para estruturas complexas e pensado de forma a atender modelos de desenvolvimento mais ágil. Apesar de mais trabalhoso, certamente vale todo o tempo e esforço empregado no processo.

    Se considerarmos o design moderno de aplicativos, o desafio se torna ainda maior. Podemos hoje estar lidando com centenas de APIs, bem como sistemas virtualizados distribuídos no local e na nuvem.

    Observando este cenário, percebemos que essa complexidade pode tornar a visão da estrutura da aplicação bastante confusa.

    No entanto, esse é justamente o ponto forte da modelagem de ameaças. Ao desenhar a arquitetura e o sistema da aplicação, torna-se possível identificar de forma bem mais clara e prematura as possíveis ameaças que o software pode sofrer. 

    Desta forma, fica mais fácil trabalhar em soluções que irão fortalecer a segurança da aplicação.

    Portanto, é inegável que a visualização da estrutura obtida por meio da modelagem de ameaças é um benefício desta prática, mas também entendemos que existe um alto grau de complexidade para implementar um processo de modelagem a cada aplicação criada.

    No entanto, o uso deste tipo de metodologia é importante para garantir a segurança em todo o pipeline do desenvolvimento e, consequentemente, o desenvolvimento seguro das aplicações de maneira contínua.

    image

    O DevSecOps é amplamente considerado o futuro da organização de DevOps — se você não o estiver praticando hoje, provavelmente estará. Quanto mais rápido a organização fizer a transição para um verdadeiro modelo de DevSecOps, mais ela estará preparada para lidar com ameaças em evolução sem comprometer a agilidade e a velocidade de desenvolvimento.

    Compartilhe
    Comentários (3)

    AF

    Anderson Fontes - 24/07/2023 09:22

    recomendo 👍👍

    RF

    Ricardo Filho - 23/07/2023 19:47

    ótimo artigo, bem completo!

    SF

    Samuel Filho - 23/07/2023 18:15

    Muito Bom Esse Artigo!