Como você verifica as bibliotecas de código aberto em busca de registradores de pressionamento de tecla?

8

Uma pessoa aleatória na internet me disse que uma tecnologia era segura (1), segura de usar e não continha keyloggers por ser de código aberto. Embora eu possa detectar trivialmente o registrador de pressionamentos de teclas nesse aplicativo de código-fonte aberto , o que os desenvolvedores (2) podem fazer para se proteger contra comprometedores rouge em projetos de código-fonte aberto?

Fazendo uma análise detalhada das ameaças em envelope, se eu fosse um desenvolvedor desonesto, faria uma divisão no git e promoveria o download, pois ele teria suporte ao twitter (e um registrador de pressionamento de tecla secreto). Se fosse um repositório SVN, eu criaria apenas criar um novo projeto. Melhor ainda seria colocar o código malicioso nas rotinas de atualização automática.

(1) Não vou mencionar isso porque só posso lidar com um tipo de fanático por vez.

(2) Usuários comuns estão à mercê de seu software de detecção de vírus e malware - é absurdo esperar que a avó leia a fonte do código do código-fonte do processador de texto de código-fonte aberto para encontrar o registrador de pressionamentos de tecla.

MatthewMartin
fonte

Respostas:

7

Recentemente, tive a oportunidade de realizar uma análise de segurança de software no FileZilla, eMule e Shareaza. Eu executei o código através do cppcheck, RATS e ITS4. Nenhuma ferramenta será capaz de discernir se um pedaço de código é benigno ou prejudicial. Requer inspeção visual - foi o que eu fiz. Passei duas semanas examinando linha por linha cada parte do código-fonte. Eu provavelmente perdi alguma coisa. É por isso que meu trabalho foi apoiado por outra pessoa que também encontrou o mesmo ou mais do que eu. Por exemplo, o FileZilla utiliza um script PHP para determinar seu endereço IP externo no modo PASV. O que esse script PHP faz? Quem realmente sabe? Eu vejo o seu ponto e ponto bem entendido. Dependendo da sua estratégia, você deve adotar uma estratégia de mitigação de riscos e examinar a fonte por conta própria ou contratar consultores externos. Dessa forma, você garantirá que o software esteja seguro.

Brian
fonte
E o eMule? Realmente interessado em saber o que está fazendo coisas impertinentes.
@ The Mouth of a Cow: Chama para alguns scripts php externos, como em Emule.h na Linha 27: " porttest.emule-project.net/connectiontest.php ". Chama para uma ferramenta de atualização de versão externa no WebServer.cpp. Grupo de erros de programação, estouros de buffer em potencial, vulnerabilidades LoadLibrary, vulnerabilidades ShellExecute, etc. #
187 Brian Brian
Você microscópio eletrônico os chips no seu teclado fabricado na China? Se você é um contratado de defesa?
Martin Beckett
@ Martin: Depende de quão seguro você quer ser, suponho.
Brian
@MartinBeckett É certo que, a menos que o motorista coopere, o chip sucha não conseguiria muito. Suponho que ele poderia tentar se conectar a um WiFi não seguro, mas acho que isso acabaria sendo percebido eventualmente.
Llamageddon
5

Isso se enquadra na categoria "confie nele, seu código aberto". Se um número suficiente de pessoas estiver visualizando o código de um projeto, é improvável que alguém possa usar algo nefasto. Além disso, observe a reputação da parte que está apoiando o projeto. É J. Random Coder, ou Apache Software Foundation? Obviamente, quanto menor a base de código, mais difícil é inserir algo. E o projeto de código aberto depende de bibliotecas externas que não sejam de código aberto? Se um projeto é uma ramificação personalizada de um projeto obscuro hospedado em um site desconhecido ... bem.

Além disso, eu não me preocuparia especificamente com keyloggers, mas com mais segurança em geral. Isso inclui violações acidentais de segurança, com maior probabilidade de ocorrerem em um projeto pequeno. Backdoors, privacidade mal implementada e acesso necessário ao sistema são todos os riscos mais prováveis ​​do que um keylogger intencional.

Mike Miller
fonte
3

Os desenvolvedores podem impedir comprometedores desonestos em seus projetos de código aberto, não concedendo privilégios a todos e seus pingüins. O princípio distintivo do Software Livre / Código Aberto não é que o desenvolvimento seja de origem coletiva (embora possa ser), mas que é possível dividir projetos.

As pessoas que estão baixando software precisam executar um pouco de cuidado, e isso é verdade tanto para o F / OSS quanto para o software proprietário / de código fechado. O software que você obtém de uma fonte respeitável geralmente é bom (em ambos os casos); É mais provável que o software de um voo noturno tenha malware.

David Thornley
fonte
0

Não é como se alguém tivesse acesso a qualquer projeto de código aberto. E mesmo que alguém cometa código malicioso, ele pode ser descoberto, pois a fonte é pública. Se você não confia nos gerentes do projeto, sempre pode contratar alguém como 0A0D para inspecionar o código. Não é perfeito, mas é melhor que a alternativa;

Para um projeto de código fechado, basta confiar no fornecedor. Como você sabe que não há backdoors no software de código fechado? Você não Código malicioso pode ter sido adicionado por um funcionário insatisfeito, alguém procurando uma maneira de ganhar dinheiro, um zelador malvado que por acaso teve acesso ao repositório da empresa ... No software de código fechado, não há como saber.

Martin Vilcans
fonte
Eu tinha em mente o código aberto como no forge e no github, e não no código aberto, como publicado. Se houver um fornecedor, você tem alguma garantia de que o código não é malicioso porque pode levar um fornecedor conhecido a tribunal e obter danos civis e punições criminais. Um projeto de código aberto é um grupo de colaboradores mais ou menos anônimos que você não pode levar a tribunal, ou, se o fez, eles não terão muito a perder por isso. De qualquer forma, se malfeitores e malfeitores estão por toda parte, o código de terceiros de código aberto e de código aberto é igualmente perigoso de usar.
MatthewMartin
Código aberto é uma marca comercial, portanto, quando digo código aberto, quero dizer com a definição da OSI. Mas há um fornecedor, mesmo para software de código aberto. Não sei se um fornecedor não pode reivindicar responsabilidades de codificar obviamente malicioso, mas a maioria dos projetos de código aberto tenta, pois a licença geralmente contém uma cláusula "sem garantias".
Martin Vilcans