Como posso confiar em programas de código aberto?

Oct 17 2020

Tenho uma pergunta sobre programas de código aberto. Como posso ter certeza de que um programa de código aberto é seguro e não está me espionando? Por exemplo, instalei o Firefox no Linux e como posso ter certeza de que este programa é seguro! É verdade que o Firefox é open source, mas quem pode ler um milhão de linhas de código !. Os usuários usam software de código aberto e confiam neles porque são de código aberto e todas as pessoas podem ler e examinar códigos, mas ninguém faz isso. Acho que algumas empresas e programadores abusam dessa mentalidade dos usuários e podem fazer qualquer coisa. Programas de código-fonte fechado não têm nenhuma confiança e eu acho que isso também vale para grandes programas de código-fonte aberto.

Respostas

7 MadHatter Oct 17 2020 at 03:49

É verdade que o desenvolvedor do aplicativo original pode ser malicioso: o famoso (e seminal, e também muito legível) artigo de Ken Thompson, " Reflections on Trusting Trust ", deixa claro o quão fundo essa toca do coelho pode chegar. A segurança absoluta é muito difícil de se conseguir, e o software livre não é o remédio perfeito para isso. Mas entre segurança absoluta e nenhuma segurança existe um abismo e nem todos os locais nesse abismo são equivalentes.

Existem outras pessoas que podem ser maliciosas, contra as quais o software livre pode ajudar a defendê-lo. Os desenvolvedores comerciais podem, e freqüentemente fazem, escrever software que é pelo menos parcialmente hostil aos interesses de seus usuários. Você não tem como saber o que esse software está fazendo - certamente nada tão fácil quanto examinar o código-fonte, por mais que isso seja difícil.

Existem muitas outras pessoas além do desenvolvedor envolvido no pacote de software e na cadeia de distribuição que podem desejar o seu mal, e aqui também o software livre pode ajudar. O movimento Reproducible Builds visa permitir que pessoas independentes dos distribuidores criem software a partir das fontes fornecidas; você pode então comparar as somas de verificação de seus binários com aquelas que eles produzem, para ter maior confiança de que o software que você está executando é de fato uma representação fiel do código-fonte ao qual você tem direito.

Portanto, não, o software livre não é perfeito. Mas é muito melhor do que executar algum binário aleatório que vem em um CD-R com a webcam estranha que você acabou de comprar na Internet.

1 peterh Oct 17 2020 at 02:59

Você não pode ser.

A única diferença é que, com um software de código aberto, há pelo menos alguma chance de que um backdoor seja revelado. No caso de código fechado, a chance é próxima de zero (talvez se o produtor mais homenageado cometer um erro ).

Observe que, na verdade, procurar brechas de segurança em um software é uma habilidade diferente de desenvolvê-lo, portanto, a complexidade do código não o defende contra uma auditoria de segurança tão fortemente quanto poderíamos pensar com olhos leigos. Existem muitos truques para usar, por exemplo, verificar sempre as diferenças do código ou usar várias ferramentas de software para verificar possíveis vulnerabilidades e, em seguida, analisá-las pelo cérebro humano.

O que poderia funcionar, se você usar uma combinação de softwares de código aberto para quebrar seu sistema, é preciso quebrar os dois. Por exemplo, usando um aplicativo de código aberto em uma máquina virtual - para crackear sua máquina host, tanto a VM quanto o aplicativo precisam ser crackeados.