Existe um processo para garantir que não haja malware? Não. Não há garantias.
Existem, no entanto, vários mecanismos para tentar detectá-lo, mas embora eu não queira ficar muito pessimista, se formos honestos, provavelmente você não estará tão seguro quanto gostaria ser.
-
Um projeto primeiro precisa ser adicionado ao Ubuntu. Como Rinzwind diz, as verificações são feitas nesta fase, mas isso é apenas a ponta do iceberg que é a vida de um pacote no Ubuntu.
-
A primeira linha real de defesa para pacotes de longo prazo são os mantenedores do projeto. Essas pessoas cuidam de seus projetos e aceitam patches para melhorá-los. Eles são humanos. Eles cometem erros e perdem as coisas. E alguns podem ser preguiçosos.
É possível que uma pessoa ruim possa passar algum malware por eles, incluindo melhorias genuínas junto com o malware.
Se algo ruim for admitido em um projeto por seu mantenedor, exceto por uma auditoria bem-sucedida, é provável que o código acabe nas máquinas dos usuários do Ubuntu.
-
As auditorias de segurança são o segundo passo. Isso é examinar o código e executá-lo nos monitores para detectar coisas ruins. Até onde sei, não existe uma equipe oficial da Canonical dedicada à segurança, mas há duas equipes da comunidade (Ubuntu Security e MOTU SWAT) que lidam com todos os pacotes entre eles.
A auditoria realmente funciona se todas as linhas de código forem verificadas corretamente antes de serem enviadas aos usuários. Isso não é realmente prático para a quantidade de código e o número de atualizações que estamos falando. Seria preciso muito tempo e dinheiro para fazer isso dessa maneira.
Existe uma suposição no mundo do código aberto de que só porque alguém pode visualizar a fonte, ele tem. Este é um ethos muito perigoso para manter.
As correções de segurança são amplamente reacionárias para as pessoas que encontram e divulgam buracos. O que acontece se alguém revela um buraco que encontra?
-
Outros problemas de geração de relatórios com "usuários finais" são os mecanismos reais de detecção e, sejamos honestos, um bom malware não permitirá que o usuário saiba que há um problema até que seja tarde demais para fazer a diferença. Bem escrito malware não vai virar sua tela ou roubar toda a sua largura de banda, ele vai ficar lá em segundo plano, registrando todos os seus dados bancários antes de publicá-los todos para algum lixo anônimo em algum lugar.
Todo o processo depende de projetos de upstream para manter seus próprios níveis de segurança. Se alguém escorregou algo além do mantenedor da calculadora Gnome, as chances são de que todo mundo faltará. Uma equipe de segurança nunca suspeitará disso.
Felizmente, os mais mantenedores são bons no que fazem. Eles conhecem sua base de código e, se não entenderem os patches, eles os rejeitarão com base no fato de que não são suficientemente claros.
Em termos de avaliação de risco, usando algo que é muito menos popular, provavelmente há menos olhos verificando o código. Mas da mesma forma, provavelmente há menos commits, então, desde que o mantenedor não seja preguiçoso (ou malvado), eles podem ter mais tempo para lidar com cada commit. É difícil dizer exatamente quanto você está correndo risco. A segurança do software de código aberto depende de pessoas capazes que observem o código.
Por outro lado, os itens de código fechado (nos repositórios de parceiros e de compras) não são totalmente auditados pela comunidade. A Canonical pode ter algum acesso à fonte, mas francamente duvido que eles tenham os recursos para dar auditorias completas, mesmo se tivessem acesso à fonte e quisessem.
Da mesma forma com os PPAs, você recebe muito pouca proteção, a menos que queira mergulhar na fonte. Os usuários podem adicionar o que quiserem ao código-fonte e, a menos que você faça o check-out (e você é capaz de detectar malware), você é uma ovelha cercada por lobos. As pessoas podem reportar PPAs ruins, mas algo acontecendo depende de outras pessoas verificando e confirmando o problema. Se um site grande (por exemplo, o OMGUbuntu) recomendou um PPA (como costuma fazer), muitos usuários podem ter problemas ao longo do processo.
Para agravar o problema, a menor participação de mercado do usuário do Linux significa que há menos software disponível para nós caçarmos códigos ruins. Eu odeio dizer isso, mas pelo menos com o Windows, você tem dezenas de empresas gastando todos os dias úteis, descobrindo como o software funciona mal, como detectá-lo e como removê-lo. Esse foi um mercado nascido da necessidade e, embora eu odeie dizer isso também, as coisas provavelmente vão piorar aqui antes de melhorarem.
Para os paranóicos de segurança, escrevi um pequeno artigo há pouco: O Linux não é invulnerável. Não diga que é. . Sneaking coisas no repositório provavelmente não vai ser o vetor de ataque primário para os asshats que distribuem malware.É muito mais provável (IMO) que eles joguem com a ganância e a estupidez dos usuários em fazer com que instalem o .debs infectado.