Estou olhando o emacs helm especificamente, que possui as seguintes propriedades:
- tem milhares de commits
- é amplamente mantido por um usuário
- o mantenedor não possui outros perfis (mídias sociais etc.) que encontrei em algumas pesquisas
- é mantido ativamente (hoje)
Como estou prestes a instalar um código arbitrário no meu computador para usar no meu editor de texto, eu queria verificar se isso passou por algum processo de revisão. Eu gostaria de dizer "bem, é de código aberto", mas realmente estou longe da capacidade da elisp de auditar todo o código. Eu gostaria de assumir que outros membros da comunidade o revisaram, mas um que provavelmente é falso e dois existem confirmações atualizadas. Faltam outras estratégias?
Para o registro, o vetor é simples: "código aberto" não importa muito se o colaborador estiver trabalhando em uma conta descartável ou se não houver um processo de revisão.
mapatoms
poderia ser colocado no grupo "perigoso" junto comstart-process
,eval
efuncall
. É claro que haveria alguns falsos positivos, mas se o pacote não usar nenhuma dessas funções, poderá ser marcado como inofensivo com grande certeza.make-process
, bem comocall-process
,dbus-<foo>
,make-network-stream
, e, em seguidavc-do-command
,vc-git-command
, .... E se você colocareval
efuncall
na categoria "perigoso", então a maioria / todos os pacotes são perigosos.Respostas:
A resposta curta é: a menos que você mesmo leia o código, estará confiando bastante. Dito isto, confiar em um projeto proveniente de um SCM upstream é um pouco mais seguro do que aquele que foi extraído diretamente do Emacs Wiki, por exemplo. No entanto, fundamentalmente, você confia no autor do pacote para não se tornar mal e abusar da capacidade de executar código arbitrário na sua sessão do Emacs.
Existem algumas coisas que podem fazer você se sentir mais seguro:
Embora os pacotes populares não sejam revisados automaticamente, o fato de terem mais usuários significa que as chances de um comportamento malicioso ser detectado antes de afetá-lo aumentam.
No github, você pode ter uma visão bastante boa do histórico de contribuições dos projetos. Mesmo que o autor principal faça a maioria dos commits com uma ampla variedade de autores, mostre que há outras pessoas com um interesse ativo na estabilidade e na eficácia do código.
Embora morar no limite tenha um certo apelo para quem deseja os mais recentes recursos brilhantes, significa que você pode ser o primeiro a aceitar o último comprometimento em seu ambiente. Mesmo que não seja malicioso, você pode obter um pacote em um estado de fluxo, enquanto uma versão "oficial" terá pelo menos algum tipo de revisão superficial. Por exemplo, os pacotes GNU ELPA serão confirmados apenas pelos usuários do emacs-devel com direitos de confirmação.
Por fim, tenho certeza de que, em algum momento, haverá uma violação de segurança através do sistema de pacotes, mesmo que seja apenas uma prova de experimento de conceito. Esse será o ponto em que você precisará confiar em seus backups regulares.
fonte