Ultimamente tenho assistido ao aparecimento de novas maneiras de instalar programas em linux que me deixam preocupado e com bastantes dúvidas se este será um bom caminho a seguir, vejamos:
Normalmente quando se instalava um programa, este vinha num pacote compactado que tinha nele os ficheiros a instalar, informações de para onde cada ficheiro iria e mais algumas informações sobre o pacote e suas dependências... esse pacote não era um programa, não transmitia ordens ao processador. O pacote era descompactado (instalado) por uma ferramenta que já fazia parte do sistema (o dpkg, o rpm, etc...). Então o "root" (que é como um Deus para o sistema) apenas accionava a ferramenta de instalação que já pertencia ao sistema e não accionava nenhum dos ficheiros que vinham no pacote. Os ficheiros que vinham no pacote instalado eram para ser depois accionados por um utilizador normal, e em linux, um programa accionado por um utilizador fica sempre restringido a ter as mesmas permissões do utilizador que o accionou. Ou seja, se eu não tiver permissão de escrever em /etc então nenhum programa accionado por mim o terá também.
Este pormenor ajuda a manter o sistema quase invunerável a malware... acho mesmo que não é mentira nenhuma afirmar que este detalhe em combinação com muitos outros detalhes do funcionamento do sistema linux, o têm mantido livre de virus durante todos estes anos, porque sempre ouve barreiras muito difíceis de ultrapassar, e o malware não tinha nenhuma brecha por onde entrar.
Não é surpresa para ninguém dizer-se que um virus ou trojan precisa explorar um defeito ou facilidade do sistema para atacar.
Outro detalhe importante é para se ganhar permissões de administrador "root" é preciso introduzir uma password... tudo bem, passwords podem ser adivinhadas, roubadas, e até crackadas... mas isso normalmente leva tempo ou requer inteligência para se conseguir, e um programa malicioso não tem inteligência própria para adivinhar uma password, ele precisava de um processo de passar ao lado dela, o que não tem sido conseguido.
Agora, duas situações que me têm vindo a preocupar:
1-) Estão a aparecer programas para Linux cujo pacote é "auto-instalador", tal e qual como é comum no outro sistema que tão bem conhecemos. Um exemplo é o GoogleEarth, entre outros.
Podemos instalá-los como user normal, mas aí eles vão instalar para a nossa área pessoal, e além de começar a desarrumar o sistema (programas na nossa área pessoal onde é suposto estar apenas documentos) se um Pc tiver 10 utilizadores configurados e todos quiserem o programa, este terá que ser instalado 10 vezes... O melhor é instalá-lo para junto dos outros programas (para o sistema), mas aí terá que ser o root a instalá-lo, e aqui há uma grande diferença:
O root não vai estar a accionar uma ferramenta do sistema, vai estar a accionar um programa novo que chegou de fora... Notem que não estou a dizer mal do GoogleEarth, a minha preocupação é que se esta moda pega, vamos começar a accionar muitos auto-installers (como root) e este é um detalhe que pode ser fácilmente explorado pelos criadores de malware.
2-) "Recentemente" apareceram uma novas distros que estão a fazer bastante sucesso (e ainda bem) devido às suas facilidades de instalação e utilização, e estas distros não têm conta "root"... em vez disso usa-se o comando "sudo" para se ganhar permissão de escrever no sistema, com a agravante de qualquer "sudoer" poder usar "sudo" e ganhar permissões de administrador sem ter que introduzir uma password... considero esta situação de alto risco, pois está aqui um processo de um malware conseguir fácilmente permissões que não deveria ter. Confesso que não sei exactamente como o sudo funciona (nunca o usei), e no meu sistema debian, o pacote sudo tem esta descrição:
Sudo is a program designed to allow a sysadmin to give limited root
privileges to users and log root activity. The basic philosophy is to give
as few privileges as possible but still allow people to get their work done.
as few privileges as possible... ok, na ideia original o sudo não deve ser má ideia...
Mas, pelo que tenho lido, em Ubuntu e seus irmãos (kubuntu, etc), usa-se o sudo para fazer práticamente tudo: reconfigurações, instalar programas, arrancar/parar serviços, etc... e se um utilizador ganha essas permissões chamando apenas um comando (que é sempre o mesmo: sudo isto, sudo aquilo) então um malware vai certamente poder servir-se do mesmo processo, desde que o utilizador que o accionou seja um "sudoer". Ou seja, torna-se possivel para um programa "escalar" nas permissões, e não ficar restringido apenas às permissões do utilizador que o accionou. E nem existe uma password a ultrapassar... acho que era bom que os sudoers tivessem que meter uma password cada vez que usassem sudo, pelo menos isso ia evitar utilizações abusivas do sudo e ia meter um tampão nesta (a meu ver) vulnerabilidade.
Corrijam-me se estou a fazer ideia errada do funcionamento do "sudo" em Ubuntu.
Lembrem-se: se um programa malicioso ganhar permissões de administrador, ele vai ter permissão para fazer tudo o que quiser: destruir por completo o sistema (o mal menor), vai poder modificar as regras da firewall, instalar outros programas cumplices, criar portas secretas de acesso remoto ao Pc, actuar como um espião para roubar informação confidencial e crucial (como codigos de acesso ao net-banking), etc, etc, etc... e não vai haver nada a impedi-lo porque afinal, o root é Deus.
A minha preocupação é que, com estas e provavelmente outras alterações ao funcionamento original do sistema linux, um dia, os utilizadores de algumas distros se vejam obrigados a recorrer à triste situação de ter que usar anti-virus, anti-spywares, etc...
Espero estar enganado...