Ícone do site Conviso AppSec

DevSecOps: Criando uma Cultura de Segurança em Equipes de Desenvolvimento

Cultura de Segurança

“O time de AppSec envia um monte de controles de segurança para implementar em uma semana. Será que eles não entendem que temos outras demandas para entregar?” “O pessoal de desenvolvimento não prioriza a segurança!” Essas e outras frases são feedbacks comuns quando não há uma cultura de segurança de aplicações madura. Como mudar essa realidade? Vamos explorar algumas estratégias que podem ajudar na implementação efetiva da cultura DevSecOps.

O que é cultura?

Uma cultura forte é essencial para o desenvolvimento da maturidade em AppSec. Não importa quão boa seja sua estratégia para implementar práticas de segurança de aplicação, ela falhará sem uma cultura forte que encoraje a prática dessas estratégias. Segundo Kegan & Lahey (2016), uma cultura é um conjunto de rotinas e práticas sustentadas por uma linguagem única e ancoradas em suposições profundas sobre o mundo. No nosso contexto, isso significa quebrar os pontos de fricção entre os times. A cultura de segurança de aplicações visa tornar a segurança natural em todas as fases do ciclo de desenvolvimento de software (Custódio, 2022).

DevOps e DevSecOps

DevOps, cunhado por Jez Humble e Patrick Debois em 2011, incentiva os desenvolvedores a terem uma visão holística dos projetos, eliminando silos e aproximando equipes. Com os avanços tecnológicos, as preocupações com segurança aumentaram, levando à integração das práticas de AppSec na cultura DevOps, transformando o SDLC tradicional em S-SDLC (Secure Software Development Life Cycle), nascendo assim o conceito DevSecOps.

Cultura de Segurança em Equipes de Desenvolvimento

Foco nas pessoas

O primeiro passo para consolidar a cultura são as pessoas. Sem o investimento no senso de responsabilidade de todos no S-SDLC, a falha é inevitável. Conforme pesquisas recentes do Gartner (2023), as equipes de desenvolvimento focam em requisitos funcionais, mas carecem de consciência sobre práticas de codificação segura. A construção de um processo de conscientização ativa é crucial:

  1. Educar os desenvolvedores sobre os riscos e impactos relacionados a introduzir vulnerabilidades, por meio de iniciativas de treinamento ativo de boas práticas de codificação segura.
  2. Correlacionar a importância das diferentes ferramentas que integram o S-SDLC com o dia a dia do desenvolvedor.
  3. Introduzir práticas gradualmente, adaptando-as aos diferentes contextos e fases do ciclo de desenvolvimento

Por exemplo, a prática de modelagem de ameaças pode ser adaptada considerando cada fase do ciclo. Na etapa de design, o arquiteto pode utilizar uma metodologia tradicional como a cunhada pela Microsoft. Durante a fase de implementação, o time de desenvolvimento visa levantar ameaças no contexto das histórias que serão trabalhadas na sprint atual. Por fim, na etapa de verificação, o time de segurança pode complementar a atividade por meio da metodologia Attack tree para guiar a execução dos pentests. 

Facilitar a Visualização e Entendimento dos Processos de S-SDLC

Ferramentas são cruciais em uma esteira DevOps, automatizando e ajudando na identificação de falhas de segurança. No entanto, a adoção de ferramentas sem conscientização pode aumentar silos e fricções. Todos devem compreender a importância de cada ferramenta e como elas auxiliam no seu contexto. Soluções como ASPM (Application Security Posture Management) podem ser aliadas na gestão contínua dos riscos relacionados às aplicações.

Roadmap de implementação

Para guiar na implementação das práticas de AppSec, apresentamos um roadmap: 

Comece com ferramentas básicas como SAST e SCA, e utilize um ASPM para auxiliar na inteligência no consumo das informações, assim como na remoção de fricção, levando as informações necessárias para dentro do ambiente do desenvolvedor. Isso garantirá uma integração mais suave e eficiente, promovendo a adoção gradual e consciente das práticas de segurança.

Conclusão

DevSecOps é uma mentalidade que precisa ser internalizada e difundida por todos os membros da equipe de desenvolvimento, e não um conjunto rígido de regras e procedimentos.

Sair da versão mobile