O que é DevSecOps?

Vamos falar um pouco de DevSecOps, uma nova sopa de letras que vem ganhando força nos últimos tempos. Mas o que é DevSecOps? Mas imaginar o seguinte cenário.

Nós já desenvolvemos a última versão do sistema, código pronto e aprovado pela área de negócio responsável, essa versão é um grande diferencial nosso em relação ao mercado e já temos a data de liberação do código para todos na empresa. A equipe de comunicação interna já está com a campanha toda preparada para anunciar para todas as áreas a nossa nova funcionalidade que é espetacular.

Nos bastidores, todos já sabem dessa nova funcionalidade e estão doidos para começar a usar, pois sabem que isso vai facilitar muito o trabalho e com isso conseguiremos atender mais clientes.

A única coisa que falta é o time de segurança fazer sua validação. A final hoje em dia liberar algo sem o aval de segurança é extremamente arriscado para o negócio pois ninguém sabe o quão expostos estamos.

Mas e se a equipe de segurança encontrar algum problema? Como vamos fazer para garantir a data já acordada e esperada por todos dentro da empresa?! A única maneira é cruzar os dedos e garantir que tudo esteja correto, nossa aplicação não tenha nenhuma vulnerabilidade (que tenhamos desenvolvido ou que nenhum pacote open-source utilizado ou imagem base do container possua alguma vulnerabilidade).

Eeee boom!! Segurança encontrou um grande problema de vulnerabilidade no nosso sistema. E agora?!

Bom nós temos duas alternativas:

  1. Adiamos o lançamento; frustramos nossos clientes internos e suas expectativas e de quebra damos brecha para que nosso concorrente saia na frente e lance algo parecido com o que estamos craindo.

  2. Assumimos um risco de expor dados sensíveis ou até mesmo nosso ambiente e mantemos a data de lançamento. O problema em qualquer uma das situações é que nós estamos expostos e vai começar a caça pelos culpados. Desenvolvedores por ter desenvolvido um código problemático ou até mesmo ter se baseado em uma biblioteca que não é segura. Equipe de testes por não ter visto esse possível problema e segurança como o time chato que só aparece com notícias ruins e atrapalha todo mundo.

E simplesmente abandonar as informações trazidas pela equipe de segurança é impensável! Nos dias de hoje com todos conectados e nossos aplicativos expostos existe sempre um “espertinho” querendo encontrar brechas e com isso acessar dados que não deve.

E se tivéssemos uma maneira de diminuir esse risco e problema? E se conseguíssemos identificar esse problema o mais cedo possível?!

É aí que entra o conceito de DevSecOps! Nós temos que trabalhar desde o início em colaboração com todos os times. A ideia principal desse conceito é trazer tanto a equipe de Dev, Ops e Segurança para o ciclo de desenvolvimento (desenvolvimento não apenas geração de código, mas também de backlog e conceito do que nossa aplicação será) da nossa aplicação.

Desde o início, todos que podem de alguma maneira inferir se uma aplicação vai ou não para produção em que participar do processo de planejamento, acompanhamento e decisório do projeto.

E pensando que todos devem estar envolvidos desde o início é que nós temos que pensar no nosso pipeline de maneira segura, ou seja, adicionar os requisitos de segurança e compliance desde o início do desenvolvimento.

E aí que encontra o modelo do shift-left ou seja, não deixar os testes e validações de segurança apenas no final e trazer para esquerda – início do desenvolvimento – o mais cedo possível.

Mas como podemos fazer isso?! Na verdade, nem todas as validações de segurança podem ser adicionadas no pipeline mas temos algumas validações que podemos colocar para garantir que nosso código esteja o mais seguro e confiável possível para a nossa realidade.

Podemos por exemplo:

  • Adicionar informações de segurança no requisito
  • Adicionar requisitos de segurança - Evil Stories
  • Treinamento do time de dev para desenvolver de modo seguro
  • Utilizar análise estática de código
  • Realizar uma análise de pacotes utilizados e descobrir quais deles estão vulneravéis
  • Compliance as a code
  • Gestão de Configuração dos nosso ambientes e garantir que todos possuam as configurações corretas
  • Cofres para informações sensíveis
  • Testes de segurança: PenTest
  • Monitoramento das aplicações e infra e entender se alguma coisa está funcionando fora do normal
  • Métricas e relatórios para acompanhamento para mostrar quando algo não planejado ou esperado está acontecendo
  • Governança

Eu sei, você vai falar que já leu isso em outros lugares, mas nunca ficou muito claro em como começar a fazer isso. Bom a ideia dessa série de posts é justamente te ajudar a entender como aplicar cada um desses itens no seu pipeline e com isso começar a fazer o shift-left da segurança no seu projeto!

Até a próxima, Claudio Romão



22/05/2020 | Autor: Claudio Romão | Categoria: Técnico

Postagens relacionadas