Existem duas maneiras pelas quais o atacante pode ir: injetar código-fonte malicioso ou injetar binários maliciosos. Se o atacante quiser ir a rota de origem, ele deve:
- Injete seu código-fonte malicioso.
- Sem que ninguém perceba. (Praticamente todos os programas de código aberto têm o histórico de alterações de seu código-fonte na Web.)
- Sem que ninguém perceba o tráfego de rede indevido, perda de bitcoins, etc. devido ao seu malware.
Isso não é impossível, mas é bem difícil. Houve tentativas raras de injetar código no Linux e em outros softwares livres. Claro que ninguém tem estatísticas sobre as tentativas não detectadas, por definição.
Se o invasor quiser seguir a rota binária, ele precisa:
- Injete seu binário malicioso.
- Faça com que as pessoas instalem, mesmo que esse binário não tenha sido assinado.
- Sem que ninguém perceba o tráfego de rede indevido, perda de bitcoins, etc. devido ao seu malware.
A maioria das distribuições Linux fornece pacotes assinados criptograficamente, o que torna o # 2 complicado. Claro que existem pessoas que vão clicar no aviso de qualquer maneira, mas isso significa que uma violação é garantida para ser notada muito rapidamente. Existe uma maneira de contornar isso: se o atacante conseguir quebrar a infra-estrutura de construção de uma distribuição, ele poderá passar seus pacotes como legítimo.
Note que injetar um aplicativo malicioso relacionado a bitcoins não é a única maneira de roubar bitcoins. Qualquer outro aplicativo lançado pelo usuário pode ler os arquivos e tentar pegar a senha do usuário.
Um invasor que consiga injetar malware nessa escala provavelmente não estaria atrás de bitcoins. Apenas uma pequena fração dos usuários que instalaram o malware teria uma carteira de bitcoin em primeiro lugar. O retorno provavelmente será maior, vendendo mais ativos genéricos, como informações de cartão de crédito, envio de spam, slots gerais de botnets, etc.
Veja também: