Quão seguro é o software de código aberto?

Quando as pessoas fazem escolhas de software, a segurança geralmente está no topo de suas listas de prioridades. E se não for, deve ser! No entanto, eles normalmente se perguntam sobre as diferenças entre software de código aberto e fechado.

Então, qual é a diferença entre código aberto e fechado? O software de código aberto é realmente seguro?

Software de código aberto vs. software de código fechado

As pessoas tornam o software de código aberto disponível gratuitamente para todos. O público pode usar, copiar, alterar e redistribuir. Além disso, como o nome sugere, qualquer pessoa pode ver o código-fonte.

O software de código fechado apresenta um código rigidamente protegido que apenas pessoas autorizadas podem ver ou alterar. O custo cobre o direito das pessoas de usá-lo, mas apenas dentro dos limites do contrato de licença para o usuário final.

A visibilidade do código aberto tem prós e contras de segurança

A capacidade de qualquer pessoa ver o código-fonte traz grandes vantagens para a segurança de código-fonte aberto. O desenvolvimento se torna um esforço comunitário do qual participam pessoas de todo o mundo.

Isso significa que os erros geralmente são detectados e corrigidos mais rápido do que se apenas um grupo muito menor de indivíduos examinasse o código.

No entanto, os hackers também aproveitam a acessibilidade do código-fonte aberto. Eles podem usá-lo para planejar ataques ou tomar nota de vulnerabilidades.

Os desenvolvedores com interesse genuíno em melhorar o software de código-fonte aberto resolvem os problemas que encontram ou, pelo menos, relatam os problemas a alguém com habilidades para resolvê-los. Qualquer pessoa com más intenções espera que as coisas passem despercebidas o máximo possível.

Essas realidades fazem com que os profissionais de segurança cibernética avisem que o software de código aberto pode colocar as organizações em risco. Um problema é que os criminosos podem ver o código e injetar conteúdo perigoso nele. Como alternativa, essas partes podem ter como alvo empresas que não têm práticas rígidas para baixar patches de software com frequência suficiente.

Como o software de código aberto não tem autoridade central para gerenciá-lo, é difícil para qualquer pessoa saber quais versões são usadas com mais frequência. Os títulos podem ser atualizados com tanta frequência que as equipes de TI de uma organização não percebem que têm uma versão antiga com graves problemas de segurança.

Bibliotecas de software de terceiros apresentam riscos de segurança de código aberto

Os desenvolvedores costumam usar bibliotecas de software de terceiros para economizar tempo. Eles são componentes reutilizáveis ​​desenvolvidos por uma entidade diferente do provedor original. Uma vantagem é que eles permitem o uso de código pré-testado.

Bibliotecas populares são testadas em vários ambientes para uma ampla variedade de casos de uso. A frequência natural de uso significa que os bugs são relatados com frequência. No entanto, isso não significa necessariamente que as bibliotecas de software de terceiros tenham segurança superior, mesmo quando discutindo aquelas associadas ao software de código aberto.

Um estudo descobriu que, em quase 80 por cento dos casos, as bibliotecas de terceiros para software de código aberto não são atualizadas depois que os desenvolvedores as adicionam às bases de código. Os pesquisadores envolvidos no estudo alertaram como a falta de atualizações pode ter efeitos indiretos.

Alguns dos títulos de software mais recentes e amplamente usados ​​dependem de bibliotecas de software de terceiros durante o desenvolvimento. Uma falha pode afetar todos os produtos associados a uma biblioteca problemática. Outra descoberta preocupante é que mais de um quarto dos desenvolvedores pesquisados ​​desconheciam ou não tinham certeza de qualquer processo formal usado para selecionar bibliotecas de terceiros.

Relacionado: O que é uma exploração de dia zero e como funcionam os ataques?

No entanto, uma conclusão positiva do estudo foi que as atualizações de software corrigem 92% das falhas em bibliotecas de software de terceiros. Além disso, 69 por cento das atualizações exigem apenas uma pequena alteração da versão ou algo ainda menos extenso.

Ainda mais promissor é que os desenvolvedores podem consertar 17% dessas falhas em uma hora. Isso significa que lidar com esses problemas de biblioteca de código aberto nem sempre é extremamente demorado ou complicado.

Como a velocidade de resolução de bug afeta a segurança de código aberto

Um dos principais problemas com software desatualizado é que ele deixa os usuários em risco de potenciais falhas de segurança. Em um mundo ideal, os desenvolvedores notariam e corrigiriam todos os bugs antes que o software chegasse ao público. Essa é uma meta irreal, no entanto.

A próxima melhor opção é lançar patches de software logo depois que as vulnerabilidades se tornarem aparentes. Os pesquisadores de segurança costumam alertar os fornecedores de software de código-fonte fechado sobre problemas que precisam de soluções rápidas. No entanto, as pessoas que desenvolvem esses produtos seguem cronogramas de lançamento escolhidos pelos superiores.

Os tomadores de decisão nem sempre priorizam todas as vulnerabilidades. Alguns permanecem sem solução por meses ou anos após a identificação inicial. Um problema relacionado é que muitos desenvolvedores lutam com cargas de trabalho excessivas ou desequilibradas que podem limitar severamente sua capacidade de corrigir bugs rapidamente, mesmo com as melhores intenções.

Outra pesquisa descobriu que 38 por cento dos desenvolvedores gastam um quarto do tempo disponível corrigindo bugs de software. Cerca de 26 por cento dos entrevistados disseram que a tarefa leva metade de seus dias de trabalho. Outra descoberta reveladora foi que 32 por cento dos desenvolvedores gastam até 10 horas por semana corrigindo bugs em vez de escrever código.

Os desenvolvedores tomam várias precauções para evitar o lançamento de código problemático. Por exemplo, a cobertura do Blue Sentry discutiu como um banco de dados sandbox fornece uma versão espelhada do ambiente de produção e todas as alterações do ciclo de implantação atual.

Os profissionais de desenvolvimento da Web podem aprender e testar coisas sem grandes consequências adversas que afetem uma equipe inteira. Mas os bugs ainda acontecem.

Como o software de código-fonte aberto tem comunidades inteiras de desenvolvimento trabalhando para melhorá-lo, há uma grande chance de que alguém com as habilidades certas e disponibilidade de programação possa apontar um bug e consertá-lo. Isso pode significar que vulnerabilidades conhecidas não permanecem sem solução por tanto tempo quanto poderiam com um título de software de código-fonte fechado.

Google lança uma ferramenta para melhorar a segurança de código aberto

Existem dependências de software quando um sistema operacional depende de outro para funcionar. Quando se trata de software de código aberto, o ritmo acelerado de mudança muitas vezes torna difícil para os desenvolvedores entenderem se alguma de suas dependências diz respeito a versões desatualizadas.

No entanto, o Google lançou recentemente uma ferramenta de visualização baseada na web chamada Open Source Insights para resolver esse problema. Ele oferece aos usuários uma visão geral dos componentes associados a um pacote de software.

Como as informações incluem detalhes sobre dependências e suas propriedades, os profissionais de desenvolvimento têm uma ideia mais clara se o software de código aberto desatualizado pode causar problemas mais tarde.

Além de olhar para os gráficos de dependência, as pessoas podem usar uma ferramenta de comparação que mostra como diferentes versões de pacotes podem afetar as dependências. Às vezes, um mais recente aborda um problema de segurança. Ao oferecer essa ferramenta, o Google visa tornar mais fácil para os desenvolvedores se tornarem mais conscientes de como eles usam o software de código aberto.

Ter esse novo conhecimento pode melhorar a segurança e a usabilidade geral.

Software de código aberto: não é uma solução de segurança total

Esta visão geral mostra por que o software de código aberto nem sempre é a escolha mais segura em comparação com o software de código fechado. No entanto, também existem muitas coisas boas sobre o software de código aberto.

As pessoas que pretendem usá-lo por motivos pessoais ou dentro de suas organizações devem pesar os prós e os contras para chegar a uma decisão.