Skip to main content

81% acreditam que os desenvolvedores devem ser responsáveis pela segurança, mas não estão bem preparados

Escrito por
the state op open source small

26 de fevereiro de 2019

0 minutos de leitura

Boas-vindas ao relatório anual da Snyk State of Open Source Security 2019. Este relatório está dividido em várias publicações:

Ou baixe nosso caprichado relatório em PDF, feito à mão, com todas essas informações e muito mais em um só lugar.

Baixe o relatório State of Open Source Security 2019

Responsabilidade pela segurança do código aberto

Nosso objetivo foi descobrir quem, na prática, é responsável pela segurança de um aplicativo ou biblioteca hoje e quem os usuários acreditam que deveria assumir essa responsabilidade.

Para 81% dos entrevistados, os desenvolvedores devem ser responsáveis pela segurança do código de seus aplicativos. Isso deixa claro o nível de participação e engajamento esperado dos desenvolvedores e reforça o movimento DevSecOps, que muitas equipes estão adotando atualmente.

Gráfico de barras com o título “Quem é responsável pela segurança?” mostrando desenvolvedores com 81%, equipe de segurança com 28%, operações com 23%, ninguém com 12% e outros com 3%.

Uma abordagem saudável para incorporar a segurança ao SDLC é integrá-la a todo o ciclo de vida do desenvolvimento, do design à produção. Isso difere bastante da abordagem tradicional, que concentra os testes de segurança em uma etapa pontual, realizada periodicamente e incompatível com o modelo moderno e acelerado de entrega de software. No entanto, processos e diretrizes talvez não sejam suficientes. Capacitação, ferramentas fáceis de usar e engajamento com as equipes de P&D e as partes interessadas são igualmente importantes para que as práticas de segurança sejam adotadas de forma saudável na organização.

Identificação de vulnerabilidades

É preciso muito conhecimento, experiência e um olhar atento para revisar o próprio código e identificar possíveis vulnerabilidades de segurança. Como essa tarefa não é simples e muitas vezes nem chega a ser feita, o código vulnerável pode permanecer despercebido por muito tempo, até que alguém o encontre.

37% dos usuários não realizam nenhum tipo de teste de segurança durante a CI

Equipes que adotam DevOps ou têm um pipeline de CI/CD maduro talvez encontrem mais facilidade para incluir testes de segurança na automação do processo de build. Ainda assim, descobrimos que quase 40% dos usuários não realizam nenhum tipo de teste de segurança durante as execuções de CI. Um dado positivo é que mais da metade deles, pelo menos, testa as dependências de código aberto em busca de vulnerabilidades.

Outra descoberta da nossa pesquisa é que as equipes que incorporam a segurança ao trabalho também têm melhores resultados na entrega contínua. Um elemento fundamental é garantir que as equipes de segurança da informação disponibilizem bibliotecas, pacotes, cadeias de ferramentas e processos pré-aprovados e fáceis de usar para que desenvolvedores e equipes de operações de TI possam aplicá-los no trabalho.

Nicole Forsgren, Accelerate

Gráfico de barras intitulado “Testes de segurança durante a CI”, mostrando testes de dependências de código aberto em 57%, ausência de testes automatizados em 37%, código-fonte em 36% e contêiner em

Como descobrir vulnerabilidades

Do ponto de vista do usuário, é interessante entender como ele fica sabendo das vulnerabilidades nas dependências de seus aplicativos para poder reagir a possíveis ameaças assim que forem descobertas.

Preocupantes 27% dos entrevistados afirmaram não ter nenhuma forma proativa ou automática de descobrir vulnerabilidades recém-identificadas em seus aplicativos. Apenas 36% dos usuários disseram usar uma ferramenta de gerenciamento ou análise de dependências para identificar vulnerabilidades.

Gráfico de rosca mostrando como os desenvolvedores descobrem vulnerabilidades: 36% usam ferramentas de análise de dependências, 27% provavelmente não ficam sabendo e há outras respostas.

Números da Snyk

  • Somente no segundo semestre de 2018, a Snyk abriu mais de 70 mil pull requests para seus usuários nos ecossistemas Maven, RubyGems e npm, corrigindo vulnerabilidades em seus projetos.

  • Entre todas as dependências de um projeto Java analisado, a Snyk indicou um caminho de correção para 60% das vulnerabilidades encontradas. Nem sempre é possível indicar um caminho de correção quando não há compatibilidade entre uma dependência direta e uma versão corrigida de uma dependência indireta. A equipe de segurança da Snyk pode criar patches personalizados para resolver alguns desses casos.

Tempo para adotar correções de segurança

Quanto tempo os usuários levam para adotar novas versões que corrigem vulnerabilidades conhecidas? Para descobrir, analisamos o registro PyPI do Python e o pacote websockets. O objetivo foi entender por quanto tempo versões vulneráveis populares continuaram sendo usadas mesmo após o lançamento de uma correção.

O projeto websockets é um pacote bastante popular e bem mantido, lançado em 2013 e com atualizações regulares até hoje.

Em agosto de 2018, uma vulnerabilidade de negação de serviço foi divulgada à comunidade. Ela afetava as versões 4.0 e 4.0.1 do pacote. Quando a vulnerabilidade foi divulgada, já havia versões mais recentes no registro com a correção de segurança. Mesmo assim, os dados de download mostram que usuários continuaram baixando por muito tempo as versões vulneráveis do websockets.

Em dezembro de 2018, ainda registrávamos 11 mil downloads do pacote websockets com a vulnerabilidade, embora já houvesse uma versão corrigida disponível como atualização principal: a versão 5.0 do websockets.

Gráfico de linhas que mostra a queda nos downloads do pacote websockets vulnerável do PyPI, de 30.000 em agosto para 11.000 em dezembro de 2018.

 Continue lendo:

Comece a resolver desafios de capture the flag

Aprenda a resolver desafios de capture the flag assistindo sob demanda ao nosso workshop virtual introdutório.