A mitologia da imunidade a vírus no Linux
Esse artigo fala sobre o vírus no mundo Linux de uma maneira a convidar um debate popular e refletirmos se não é hora do Linux parar de se expandir e pensar em ser mais seguro.
Introdução
Ao navegar na rede e entrar em alguns fóruns, vejo que o povo anda meio que subestimando o poder dos vírus que existem e que existirão para Linux, muitos usuários de Linux ou UNIX acham que basta se aplicar uma política com chmod ali, tirar um usuário root dali, usar um chroot acolá e criar boas senhas resolverá todos os problemas. Ora meus amigos!
Isso já é costume cultural em comunidades UNIX e Linux, isso só não é feito no mundo Windows, onde todos usuários débeis acham que o dono do computador por hierarquia deva ser o administrador e como ele tem de fazer tudo, tendo assim a sensação de poder e o uso de outros usuários restritos um estorvo.
No Linux os cuidados básicos quanto a isso já estão, eu diria, 75% acertados, então como o vírus nos atacaria? Muito simples: lembram da praga do buffer overflow? Bom, acho que já deu pra você imaginar tudo não é? O que mais se tem de erro em um sistema UNIX ou Linux é o buffer overflow, e o que é o buffer overflow a grosso modo?
Eu diria que são programas mal projetados em suas validações de IO, que ao estourar manda para um certo lugar da memória ou processador uma certa ordem, como é o caso daquelas fotos pornográficas que de maneira bem planejada têm em seu final comandos como c:\windows\cmd para "ferrar" o mal feito Internet Explorer.
Bom, sabemos que o Linux e UNIX dão um show nisso (vide sendmail e bind), então um vírus capaz de explorar um desses possíveis estouros de memória no Linux, pode muito bem ser feito para explorar um programa qualquer que rode como root e que seja usado em rede para entrar no sistema e depois baixar o que bem quiser para completar sua tomada de poder na máquina local, colocando qualquer política de chmod, chroot, chown e senhas no "chinelo". Depois de tomado o sistema (ownado) , o vírus altera o ps para não ser visto no sistema e por aí vai. Esse é o caso dos vírus Lion e Adore, que atacam vulnerabilidades no BIND.
Qual a minha previsão então? Se o Linux continuar crescendo e nenhum outro Unix-like superior tomar a cena no mercado desktop, os vírus crescerão drasticamente. Considerando que cada programa que existe para console, ao ser pesquisado em lugares como o CERT revela uma falha grave, o assunto fica ainda mais sério. Qual seria a solução? Ficar atualizando o sistema dia e noite? Bom, isso seria tão divertido que a pessoa não faria mais nada a não ser ficar atualizando todos os executáveis do sistema.
Usar antivírus? Não, isso é nojento e vicioso, assim como a medicina ocidental acha bom criar remédios para doenças, os antivírus acham bom termos vírus para lucrarem às custas de nossa ingenuidade.
Trocar o kernel? Não sei, até hoje o kernel cresceu, teve novidades, mas nada que fosse revolucionário em segurança ao meu ver, me desculpe a franqueza.
Pra mim os criadores do kernel deveriam encarar esse assunto com seriedade e não ficarem querendo apenas expandir o sistema pra servidores da IBM da vida.
O kernel 2.6 até prometia algo pra acabar com os buffers overflows, mas foi mais uma promessa do que realidade, deveria-se criar uma maneira de evitar que somente usuários poderosos pudessem fazer algo no sistema, os controles de permissões estão aí pra ajudar nisso, não entendo por que somente o root pode usar algumas portas TCP do sistema e os outros usuários não. O que adianta o usuário comum não poder fazê-lo e um atacante poder?
O kernel por fim deveria ter uma espécie de filtro que impedisse usuários comuns ou eventos incomuns tomassem poderes de root de uma hora pra outra, como é o caso do su, que deveria ser banido do console, deixando assim um usuário comum completamente isolado do root.
Isso já é costume cultural em comunidades UNIX e Linux, isso só não é feito no mundo Windows, onde todos usuários débeis acham que o dono do computador por hierarquia deva ser o administrador e como ele tem de fazer tudo, tendo assim a sensação de poder e o uso de outros usuários restritos um estorvo.
No Linux os cuidados básicos quanto a isso já estão, eu diria, 75% acertados, então como o vírus nos atacaria? Muito simples: lembram da praga do buffer overflow? Bom, acho que já deu pra você imaginar tudo não é? O que mais se tem de erro em um sistema UNIX ou Linux é o buffer overflow, e o que é o buffer overflow a grosso modo?
Eu diria que são programas mal projetados em suas validações de IO, que ao estourar manda para um certo lugar da memória ou processador uma certa ordem, como é o caso daquelas fotos pornográficas que de maneira bem planejada têm em seu final comandos como c:\windows\cmd para "ferrar" o mal feito Internet Explorer.
Bom, sabemos que o Linux e UNIX dão um show nisso (vide sendmail e bind), então um vírus capaz de explorar um desses possíveis estouros de memória no Linux, pode muito bem ser feito para explorar um programa qualquer que rode como root e que seja usado em rede para entrar no sistema e depois baixar o que bem quiser para completar sua tomada de poder na máquina local, colocando qualquer política de chmod, chroot, chown e senhas no "chinelo". Depois de tomado o sistema (ownado) , o vírus altera o ps para não ser visto no sistema e por aí vai. Esse é o caso dos vírus Lion e Adore, que atacam vulnerabilidades no BIND.
Qual a minha previsão então? Se o Linux continuar crescendo e nenhum outro Unix-like superior tomar a cena no mercado desktop, os vírus crescerão drasticamente. Considerando que cada programa que existe para console, ao ser pesquisado em lugares como o CERT revela uma falha grave, o assunto fica ainda mais sério. Qual seria a solução? Ficar atualizando o sistema dia e noite? Bom, isso seria tão divertido que a pessoa não faria mais nada a não ser ficar atualizando todos os executáveis do sistema.
Usar antivírus? Não, isso é nojento e vicioso, assim como a medicina ocidental acha bom criar remédios para doenças, os antivírus acham bom termos vírus para lucrarem às custas de nossa ingenuidade.
Trocar o kernel? Não sei, até hoje o kernel cresceu, teve novidades, mas nada que fosse revolucionário em segurança ao meu ver, me desculpe a franqueza.
Pra mim os criadores do kernel deveriam encarar esse assunto com seriedade e não ficarem querendo apenas expandir o sistema pra servidores da IBM da vida.
O kernel 2.6 até prometia algo pra acabar com os buffers overflows, mas foi mais uma promessa do que realidade, deveria-se criar uma maneira de evitar que somente usuários poderosos pudessem fazer algo no sistema, os controles de permissões estão aí pra ajudar nisso, não entendo por que somente o root pode usar algumas portas TCP do sistema e os outros usuários não. O que adianta o usuário comum não poder fazê-lo e um atacante poder?
O kernel por fim deveria ter uma espécie de filtro que impedisse usuários comuns ou eventos incomuns tomassem poderes de root de uma hora pra outra, como é o caso do su, que deveria ser banido do console, deixando assim um usuário comum completamente isolado do root.
Não sei bem, mas creio que essa sua parte do kernel ai está meio equivocada, já ouviu falar do PaX, grsecurity, SELinux?
Bom, eu uso linux há algum tempo e conheço muita gente que usa e fracamente, até hoje não vi nenhuma reclamação sobre virus no sistema.