quarta-feira, 23 de setembro de 2015


"Lunar, um líder dos desenvolvedores no Projeto Debian Reproducible Builds, falou recentemente sobre uma séria falha de segurança que pode afetar todo o software open-source, incluindo muitas distribuições Linux. Ela tem o potencial de expor os usuários a um indesejável exame minucioso vindo de terceiros, incluindo agências de segurança. Seu projeto é desenhado para fechar esse buraco [falha].

Uma das grandes vantagens de software de código livre é que terceiros podem inspecionar o código para certificar que ele faz o que deve fazer. Se qualquer código malicioso estiver presente, é detectado e eliminado. Porém quando o programa é distribuído na forma de binários executáveis, há o risco que código malicioso (não presente no código fonte original) tenha sido adicionado.

Isso não necessariamente indica que o desenvolvedor pretende distribuir código corrompido. Se o desenvolvedor está a usar um compilador comprometido, este pode introduzir o malware e só então tornar o código um executável.

Isso pode soar como um pouco forçado, mas na verdade isso é uma preocupação de segurança real. O material revelado por Snowden revelou que a CIA está trabalhando em modos de explorar essa vulnerabilidade para instalar software de monitoramento nos dispositivos de clientes por todo o mundo.

Numa conferência recente organizada pela CIA, um time de desenvolvedores apresentou uma prova de conceito [(POC, sigla em inglês)]. Eles corromperam certificados da Apple para produzir uma versão corrompida do XCode, o compilador proprietário da Apple. Esse compilador é usado por desenvolvedores independentes para construírem aplicações para o IOS e o OS X. A versão corrompida embutia um spyware em qualquer aplicação compilada pelo desenvolvedor, sem o seu conhecimento. Essas aplicações iriam parar nas APP Stores, e potencialmente, dentro de milhões de aparelhos de clientes. Isso poderia dar permissão para que agências espionassem as conversas e mensagens privadas de milhões de usuários inocentes pelo mundo todo.

Se a Apple já seria um grande alvo, então o Linux seria ainda mais tentador. Usuários preocupados com segurança entendem o risco de plataformas comerciais, frequentemente usam Linux por seus recursos de segurança. Isso inclui pessoas que as agências de segurança estão MUITO interessadas em espiar.

Os anti-vírus poderiam detectar fragmentos de malwares conhecidos, mas isso somente seria possível se antes os mesmos tivessem sido descobertos e analisados. Isso não protegeria contra novos ou indetectáveis infecções de malwares. Resumindo, programas anti-vírus não são o bastante contra esse tipo de ataque.

O único meio de ter a certeza que o binário executável não inclui qualquer código malicioso é compilando o código fonte e comparar os dois executáveis. Se o executável recente não se parece com o binário executável durante os testes, deve ter código embutido, possivelmente um malware.

Enquanto tudo soa como uma ideia, existem as dificuldades. O código fonte para a maioria dos pacotes do Linux são escritos de maneira que, ao compilar, não se obtenha uma cópia idêntica a qualquer outra já feita. Existem bons motivos para que um arquivo compilado seja sempre diferente. Incluindo:

- Etiquetas de data e hora embutidas no código.
- Números incrementados na versão [(do programa)].
- Diferenças entre os diversos sistemas de arquivos, logo um binário compilado no meu computador é diferente de outro do seu computador.
- Pastas de arquivos de máquinas diferentes são embutidas no binário - computadores diferentes guardam fontes e o código em locais diferentes.
- Dados aleatórios da memória ou da CPU embutidos no arquivo compilado.
- Entre outras.

O problema de produzir "builds" reproduzíveis é a quantidade de mudanças que deveriam ser feitas:

1- O código fonte deveria mudar então as variáveis sempre seriam inicializadas em valores estáticos (sem valores dinâmicos da memória, o qual pode ser dinâmico).
2- Eliminar o uso de etiquetas de data e hora, pastas no código, e números de versão.
3- Especificar o ambiente exato da construção, que deveriam ser reproduzidos em computadores diferentes.

Como você deve imaginar, isso deve dar um trabalho gigante num único projeto. Mas o Projeto Debian possui mais de 20.000 pacotes, e a maioria deles precisam ser reformulados. Esta é uma tarefa importante, para dizer o mínimo.

Mas precisa ser finalizada. Um único pacote quebrado, pode resultar em milhares de computadores comprometidos."

--------------

Sem dúvidas essa falha deve ter sido usada por agências de segurança, no entanto ainda não houve nenhum registro disso (pelo menos no "mundo Linux"), logo não há motivo para pânico.

O melhor seria haver pessoas para executar o teste dos executáveis (como foi explicado na matéria), porém, de momento, isso parece ser inviável. Então a escolha certa seria mudar para o Linux e não utilizar software de terceiros (isso inclui não usar os repositórios "non-free" ou os de terceiros, como os famosos PPA's do Ubuntu), no mais aguardar as mudanças propostas pelo time de desenvolvedores do projeto que Lunar participa (o que não parece ser fácil nem rápido de se fazer imediatamente).

Também é claro que as dicas que muitos sabem de cabeça, como tomar cuidado com os downloads, sites desconhecidos, propagandas e anúncios, além de manter o software sempre atualizado, entre outras, são muito válidas.

Conheça mais sobre o Debian no site oficial (em inglês) clicando aqui.

Fonte (em inglês): http://www.linuxjournal.com/content/debian-project-aims-keep-cia-our-computers

Via Debian Brasil

Espero que os usuários preocupados com privacidade não estejam a usar o Windows e se estiverem, espero poder convencê-los de mudar para o mundo do software livre.

Dúvidas e sugestões, além de uma possível discussão, visite nosso grupo no Facebook.

Até a próxima!

0 comentários:

Postar um comentário

Subscribe to RSS Feed Follow me on Twitter!