Entenda porque o GNU/LINUX não pega vírus. Depois de ler este artigo, você não vai se preocupar nunca mais.
por Danilo Magrini – Twitter @DaniloMagrini
Muito se ouve falar sobre a não existência de vírus para GNU/Linux ou sobre o próprio sistema operacional ser imune a esses. Mas pior do que isso são os argumentos e explicações, muitas vezes fantasiosas, para sustentar tais afirmações. Vamos esclarecer nesse artigo, os reais motivos que ao longo do tempo foram resumidos em apenas uma frase: “O GNU/Linux não pega vírus”.
O principal argumento utilizado atualmente para explicar o motivo do GNU/Linux ser invulnerável a vírus, trojans e afins, é o seu baixo índice de utilização. Atingindo pela primeira vez a marca de 1% dos computadores do mundo em 2009 (os mais otimistas falam em atuais 5%), o GNU/Linux representaria um índice desprezível para os crackers criadores de vírus. Porém esse argumento está longe de ser o principal e na minha opinião, sequer deve ser considerado um argumento, uma vez que criar um vírus não é algo assim tão complexo a ponto de desmotivar um destruidor compulsivo por causa de uma quantidade baixa de usuários.
Então, o que pode ser considerado um argumento?
O que caracteriza o sucesso de um vírus de computador é o mesmo que caracteriza o sucesso de um vírus biológico, ou seja, seu poder de propagação. Um vírus precisa de uma taxa de reprodução maior do que sua taxa de erradicação para que ele possa se propagar com sucesso. No GNU/Linux não temos apenas um motivo para seu sucesso em relação a vírus, mas sim um conjunto deles. Vamos começar pelo mais comum.
Existem atualmente diversos tipos de vírus, que usando um linguajar menos técnico são os que destroem dados, os que roubam suas informações, os que usam seu computador como host para realizar outros ataques, entre outros; porém vamos deixar de lado essas várias vertentes e vamos falar sobre infecção de uma forma geral.
Para que um vírus possa fazer o seu trabalho, ele deve estar o máximo de tempo ativo na memória do seu computador e para que ele possa fazer isso é importante que ele se instale em algum programa essencial para o funcionamento do seu computador, ou seja, um programa que é carregado sempre que seu computador estiver em funcionamento. Dessa forma o vírus será carregado juntamente com esse programa e uma vez na memória ele poderá realizar qualquer tarefa que ele almeja.
Para que esse vírus possa “infectar” esses arquivos considerados essenciais, ele precisa de um acesso privilegiado a estes, ou seja, ele precisa ser executado por um usuário que tenha permissão de gravação/modificação desses arquivos essenciais e via de regra o único usuário com essa característica no GNU/Linux é o usuário root. É nesse momento que entra a primeira barreira a ser ultrapassada pelo vírus. A maioria das distribuições GNU/Linux voltada para usuários e atualmente até algumas utilizadas para servidores, não permitem que o sistema seja acessado através do usuário com superpoderes, o root.
Você não é capaz de fazer um login no sistema utilizando o root e só consegue permissão de superusuário após o login com um usuário menos privilegiado. Só depois, através de alguns comandos especiais, você poderá solicitar superpoderes de root para realizar ações especiais no sistema. É claro que através de algumas configurações você pode mudar esse comportamento, porém geralmente quem as utiliza são usuários mais experientes.
Uma vez que utilizamos o sistema através de um usuário menos privilegiado, nós só temos permissão de leitura nesses arquivos considerados essenciais, assim se por um acaso acionamos um vírus, o máximo que ele poderá atingir são seus arquivos pessoais e provavelmente apenas naquele momento uma vez que ao ser reiniciado o vírus não terá mais como se auto instalar na memória, a não ser que seja novamente executado pelo usuário. Se estivermos abrindo um e-mail, um arquivo de procedência duvidosa ou realizando uma tarefa que solicite permissões especiais, devemos nos certificar que esse realmente é um arquivo de confiança e só então digitar a senha e confirmar a operação. Em outros sistemas operacionais que utilizam usuários com super-poderes para realizar tarefas banais, essa tela de confirmação não é necessária e quando você percebe, o vírus já se alojou nos arquivos essenciais.
Se alguém não sabe sobre qual tela de permissão de super-poderes que eu estou falando, abaixo está um exemplo:
Por isso é muito importante utilizarmos sempre um usuário comum para as tarefas do dia a dia e somente executarmos com superpoderes os aplicativos de confiança. Fique de olho na tela acima e só prossiga se estiver certo da origem do aplicativo que está solicitando as permissões. É aqui que entra a segunda barreira pelo qual o vírus deve passar.
Por ser um sistema de código livre, e na maioria das vezes gratuito, podemos instalar e utilizar softwares originais sem nenhum problema, a maioria das vezes instalamos a partir de repositórios oficiais que por padrão já vem configurado na maioria das distribuições. Isso já limita a ação do vírus de forma considerável e podemos fornecer permissão administrativa a esses softwares, uma vez que são provenientes de uma fonte confiável. Mesmo que o software desejado não faça parte do repositório oficial, não faz sentido ficarmos navegando em sites não oficiais procurando por versões “alternativas”, conhecidas também como crackeadas, para usarmos esses softwares, sendo que o mais inteligente é baixá-lo diretamente do fornecedor oficial.
Softwares como TweetDeck, Picasa, Opera, são softwares que não fazem parte do repositório oficial do Ubuntu, mas que podem ser baixados livremente através do site oficial de cada fornecedor. Mas se ainda assim você é fã de sites estilo baixaki (ieca!) você ainda pode verificar o checksum do arquivo. Talvez eu fale mais sobre checksum em um outro artigo, mas de forma resumida o checksum é uma “impressão digital” de um arquivo de qualquer formato, isso garante que o arquivo que você baixou é o mesmo disponibilizado pelo fabricante oficial, ou seja, se alguém alterou 1 byte sequer seja por boa intenção ou para adicionar um trojan, você pode se certificar pegando o checksum (ou hash) no site do fabricante e comparando.
Agora qual o motivo de você ir no site oficial baixar um checksum e depois baixar o arquivo por outro site não me pergunte. Talvez seja interessante se você está baixando por torrent ou algo do gênero. Portanto segue um exemplo rápido de como eu poderia validar o checksum do Banshee versão 1.9.0:
sha256sum banshee-1-1.9.0.tar.bz2
O que me retornaria:
90f70897b99574b82df65c5435c0691760a5f88f488d25b5bd2ad0a7a2cb986c banshee-1-1.9.0.tar.bz2
Depois seria só comparar com o valor oficial em http://download.banshee.fm/banshee/unstable/1.9.0/banshee-1-1.9.0.sha256sum
Com esse simples procedimento você pode assegurar que nenhum código malicioso estará embutido em um arquivo de origem duvidosa antes de “executá-lo”.
Pegando um gancho na palavra “executá-lo” podemos considerar este como sendo outra barreira para que o vírus ultrapasse. O sistemas GNU/Linux não possuem arquivos executáveis, o que determina se ele poderá ou não ser executado é a permissão de execução que você atribui a um arquivo. Dessa forma um arquivo descarregado no seu computador não pode ser autoexecutado pelo sistema operacional como um .SCR por exemplo. Antes, você terá que atribuir uma permissão de execução para que este possa ser executado e se ele precisar acessar arquivos restritos voltamos a etapa inicial da barreira que são as permissões de superusuário.
Conclusão
É esse conjunto de barreiras, e não um efeito isolado, que faz com que o GNU/Linux tenha um nível mínimo de infecção por vírus e é pela dificuldade de proliferação e não pelo número de usuários que não se tem interesse em desenvolver vírus para esse sistema operacional.
Lembre-se de que um software ou sistema operacional pode aumentar sua imunidade a vírus e afins através de uma arquitetura inteligente, porém os principais anticorpos de um sistema operacional são seus usuários que devem procurar obter o maior conhecimento possível do produto que estão utilizando.