[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Virus em Linux



Meu, sinceramente, me desculpe, mas você precisa aprender a aceitar quando
você está errado :)

On Tue, Nov 28, 2000 at 12:42:42PM -0200, Christoph Simon wrote:
> Não discuto que as permissões afeitam a segurança de um sistema. Nem
> discuto que um virus afeita a segurança de um sistma. Mas a segurança
> de um sistem afeita muito mais que um virus. Por outra parte sabemos
> que um atacante, seja ou não um virus, pode tentar conseguir
> permissões de superusuário, e às vezes consegue. Será um obstáculo e
> não um impedimento. Em qualquer caso, estavamos falando de virus em
> Linux. Que existe em Windows (incluindo ao NT/2k) é bastante bem
> conhecido.

	Falou, falou e não disse absolutamente nada.

> > 	99% dos "vírus" que eu já vi vão e trocam uma DLL fundamental
> > do Windows por algo próprio, como o Matrix e diversos outros que trocam
> > o wsock32.dll, se existisse uma flag consistente de sistema que impedisse
> > isso, você poderia sofrer com a consequência do vírus, mas não
> > o espalharia, contendo o estrago no primeiro nível de infecção.
> 
> Pois parece que não há visto muitos virus! É aqueles que atacam o MBR?
> E aqueles que simplesmente são ligados num executável. Podem, mas não
> precisam dos DLL. Em realidade não fazem isto muitas vezes. Do que
> está falando já é o efeito nocivo do virus, menos o virus
> mesmo. Lembra que existem dois partes de um vírus?

	Em um sistema GNU/Linux não existe esta possibilidade porque
como um usuário comum você não tem poder para escrever fisicamente
no disco. Graças ao já discutido sistema de permissões e níveis
de privilégio, ausentes no Windows 95/98, e presentes no Windows NT.

> > 	E você está argumentando que "eles estão cientes do problema
> > e dizem que nunca vão fazer, mas e se der a louca e eles fizerem?"
> > Ora, se fizerem alguém vai disponibilizar uma versão desprovida
> > desta característica ou desabilitada por default, que será certamente
> > adotada por ser mais segura.
> 
> Desculpa, mas perdi o contexto aqui. (??)

	Você havia dito que se o pessoal que está fazendo um programa
leitor de e-mail para GNU/Linux colocasse avaliação de scripts anexado
em e-mails o GNU/Linux estaria disponíve, mostrou ciência de que 
sabia que eles disseram que "nunca iriam fazer isso", e questionou que se
fizessem o GNU/Linux estaria tão vulnerável a ILOVEYOUs quanto o windows.
	Eu disse (resumindo) "E daí?" mesmo que eles resolvessem fazer este
absurdo teríamos a liberdade de retirar esta característica do programa
por questões de segurança, e como integrador que sou da Distribuição
Debian GNU/Linux eu conheço as normas e sei que assim seria feito. Nós
temos a liberdade de fazê-lo, pois o código fonte é livre.

	De qualquer forma como você mesmo disse que eles disseram "nós
nunca vamos fazer isso", logo não faz sentido você usar este tipo de 
suposição hipotética e irrelevante como argumentação.
> 
> > 	A característica fundamental dos sistemas e programas livres é
> > que não somos obrigados a aceitar o que nos fornecem, podemos modificar
> > da maneira que for conveniente para nós mesmos ou nossos usuários.
> 
> Bem; pode-me dizer que porcentagem dos usuários Linux em Brasil tem
> lido o código fonte do kernel e quantos teriam o conhecimento para
> alterá-o? Se depende de outras pessoas fazendo isto, também
> é possível

	E daí? Você pode me dizer quantas pessoas no Brasil tem
a possibilidade caso queiram de consertar um BUG do Windows? Eu sei,
nenhuma, ou então "uma fração muitíssimo menor das que podem
fazê-lo com GNU/Linux ou qualquer sistema livre".

	Eu digo muitíssimo menor, porque de fato conheço um amigo da
faculdade que trabalha na Microsoft em Seattle, e ele tem acesso ao código
de alguns produtos da Microsoft, e ele pode consertar bugs porque é do
time de desenvolvimento. Bem ele é a única pessoa que eu conheço,
e não é no Brasil ;)

	Você conhece algum?

	O fato não é ter capacidade ou não, eu tenho capacidade de
olhar o código do kernel e aprender. Não tenho hoje o tempo disponível
mas caso eu queira/precise posso fazê-lo, de fato já consertei um bug
que afetava minha placa de som uma vez. Qualquer um pode, como eu se aventurar
não é a questão se alguém se interessa, a questão é que 
todos podem e muitos fazem. Com o windows é ilegal a não ser que
você seja funcionário MS. Mas de novo estamos fugindo do assunto aqui.

> que lo faza uma empresa sem open source. Eu sou usuário de Linux e
> usuário de free software e open source faz muitos anos. Mas o fato de
> open source não facilita ou impede a criação de um vírus. São temas
> totalmente independentes.

	Em princípio sim... pode-se criar um vírus. Mas ele não
vai conseguir infectar nada que não seja programas dos usuários, e
no nosso caso não há como características que permitam vírus
como os do windows serem integradas ao nosso software de e-mail porque 
ele é continuamente auditado em inúmeros níveis, desde o 
desenvolvimento até a integração em uma distribuição.

	O que ocorre, como já foi citado são falhas de segurança
que podem ser exploradas, mas os vírus do Windows e Worms e Trojan
Horses ou o que mais você quiser citar usam problemas de design em sua
maioria e não problemas de segurança. Scripting em e-mail (ainda
por cima habiltiado por default) é algo inconcebível... esconder
partes de nomes de arquivo (seila.jpg.pif por exemplo) do usuário
é algo inconcebível e completamente inútil, são falhas de
design que seriam certamente barradas nos inúmeros processos de 
revisão do software.

	Veja que apesar de tudo, isso continua a existir nos programas
da MS. As pessoas culpam o vírus e não os problemas de design que
não são consertados e permitem o vírus.

> > Claro, podemos tornar um software tão 
> > absurdamente inseguro quanto quisermos, o fato é que não queremos.
> > E temos toda a motivação contrária. Ninguém seria idiota o
> > suficiente de mandar um programa que executa por default scripts enviados
> > por e-mail. Ooops... isso acontece por aí com software comercial. ;)
> 
> Einstein disse que há duas coisas infinitas: o universo e a estupidez
> humana. No caso de universo, ele não tinha a certeza absoluta. No
> outro caso pode ser, porque não só existe software comercial que faz
> isto, senão millões de pessoas respetuosas, que usam isto! Vi uma
> reportagem da CNN sobre o I Love You, citando as grandes empresas e
> instituições danificadas. Foi um certificado de probreza mental
> universalizado, incluindo o ministério de defensa norte-americano.

	Você está tentando justificar o uso de um produto só porque
a maioria usa? E você se considera um expert? :)

	Eu concordo com você em parte. É um atestado de burrice 
justificado, a maioria das pessoas vai dizer "eu não tenho culpa" o
problema é do software e a ms vai dizer que os usuários pedem estas
características e pagam por elas e que não tem nada de errado em um
sistema operacional permitir por default que se ludibrie o usuário quanto
ao tipo de arquivo que ele está recebendo (ala iloveyou.txt.pif).

	Se você considera que é justificável usar um sistema 
operacional com problemas reconhecidos só porque a grande maioria concorda
com isso, então só me resta concordar com Einstein ;)

> Acho que sim conheço a palabre pre-emptivo. É um termo da
> economía. Não sou economista, mas se bem lembro é o fato que
> determinadas pessoas tem o direito de decidir se querem uma adquisição
> antes que outros. Nos sistemas operacionais no final afeita quem tem
> direito de usar ou acessar os recursos físicos de uma máquina. E não
> estamos falando de multiusuário. Que usuário é o kernel? Nenhum! O
> kernel não executa em nome do root! Ele tem privilégios que nem o
> `root' tem. É o modo `supervisor' que permite a um virus fazer o que
> quer fazer. Nem o root pode executar um programa que tome controle
> sobre o sistema, porque é o kernel tem este controle
> `pre-emptivamente', antes que qualquer outra entidade. Os velhos TSR
> no DOS, são exemplos obvios como pode ser feito. Hoje é um pouco mais
> complicado, especialmente no NT, mas não é imposível. O Linux ainda
> não atingiu o 100% de este controle, mas está muito perto.

	Mas como um vírus vai obter o privilégio sobre o sistema 
operacional? Se você escrever um vírus como um módulo do kernel
alguém com privilégios de root vai precisar dar um "insmod virus.o" 
para que ele possa "fazer o que quiser". Se o usuário não usa a conta
de root o design do sistema operacional multitarefa e as características
de segurança implementadas impedirão que ele cause problemas a qualquer
coisa, a não ser aos arquivos do próprio usuário, e não ao
sistema. De novo caímos naquele "a implementação impede o vírus"
que você insiste em negar. Vírus só são possíveis se o sistema
ou aplicativos dão características para sua implementação.

> > Multitarefa significa que vários processos podem estar ativos ao mesmo
> > tempo. Multiusuário significa que vários usuários possam compartilhar
> > a máquina, e ter segurança e distinção de propriedade dos recursos
> > da mesma. O Windows 9X não é multiusuário, deixando o controle
> > de perfis para as aplicações. Embora seja multitarefa, podendo executar
> > diversas aplicações ao mesmo tempo (embora conteste-se a eficiência
> > com que faz isso).
> 
> Certo. O fato que os win9x não são multiusuário mas multi-tarefa, e o
> fato que exitem vírus para eles, prova que estamos falando de
> multi-tarefa e não multi-usuário. Pelo menos eu acho que o tema era o
> vírus, não a segurança em geral. Certo?

	Agora você me deu motivos para encerrar este empolgante debate.
Se você não consegue enxergar o problema de vírus como sendo parte
da discussão de segurança de sistemas e como consequência dela,
então você não tem a menor qualificação para debater sobre
este assunto.

> > > Não lembro ter visto nenhum update para linux com respeito a vírus.
> > 
> > Simplesmente porque não houve necessidade, graças ao design 
> > dos sistemas Unix! :)
> 
> Certo, e particularmente o design da pre-emptividade que não há
> proceso que não pode ser controlado pelo kernel. O problema do vírus
> no Windows é que
> 	kill -9 `pidof virus`
> não funciona. Mas isto não é uma exclusividade do Unix mas si uma
> carência dos WinX.

	Sim, e?

	Graças a esta "carência" que eu chamo de "falha de design"
vírus são possíveis, você contesta, contesta, contesta e
concorda comigo sem perceber :)

	Só que ninguém pode consertar estas "carências" do windows,
exceto a MS. Que se não se interessa por fazer, não sou eu quem terá
que especular motivos.

> > Você viu algum vírus de GNU/Linux? O máximo que se pode fazer hoje
> > é mandar
> > um programa que diz que faz uma coisa e faz outra... mas se o usuário
> > seguir a norma básica de segurança de não usar o sistema como "root"
> > nada vai conseguir fazer com que uma biblioteca do sistema seja substituída,
> > ou o sistema torne-se inutilizável graças aos níveis de privilégios.
> 
> Dois vezes errado. Primeiramente um programa assim não é
> (necessariamente) um vírus. Para isto precisa de muito mais controle
> sobre a máquina. E segundo, basta com usar uma variável de entorno
> para incluir outro diretório na lista, e o sistema usará outras
> bibliotecas, provavelmente no espaço e diretório do usuário. É uma das
> coisas que adoro no Unix, porque permite manter diferentes versões de
> prova. Posso instalar uma coisa no meu diretório casa ou em *local*
> sem deletar o software já existente. Se funcionar, fica, caso
> contrário basta deletar o novo, e o velho vai ser usado sem ação
> adicional; não preciso de uma re-instalação porque nunca foi
> desinstalado. Não preciso das permissões de root para usar uma
> biblioteca não padrão. Por outra parte são os trojan horses que sim

Concordo, é até uma observação bastante inteligente e pertinente.
mas como esta biblioteca modificada será instalada pelo vírus (ou como
quer que se chame) com as permissões do usuário comum que o executou
ele não terá a menor chance de ganhar acesso a nada, porque para isso
você precisa executar como root. De qualquer forma *TODO MUNDO SABE* ou
deveria saber (e nós do Debian GNU/Linux nos certificamos de contar ao
usuário durante a instalação sobre isso e tomar outras precauçoes)
que não se deve usar um sistema UNIX como root no dia a dia.

> conseguem fazer isto mesmo no nível de root, isto é, com efeito para
> todos os usuários. O problema é que um trojan horse é um trojan horse
> e não um vírus. São duas coisas diferentes. Nota: Um programa que usa
> uma biblioteca alterada, mesmo executado por root pode ser matado.
> Você não pode matar um vírus porque não existe na tabela de processos
> do kernel; se for assim, o kernel tería controle sobre ele. Isto é uma
> contradição direta com a definição do vírus.

Então eu desconheço este vírus ao qual você se refere. Este
tipo de vírus não existe. E se existir, você precisa do root para
instalá-lo. Nos sistemas GNU/Linux você tem root/não root, no
Win9X não tem. Lá todo mundo é root.

Será que agora você está convencido? Se não me descreva em detalhes
como uma biblioteca alterada ou um programa instalado/executado sem 
privilégios de root pode causar um dano ao sistema operacional.

> Mas concordo em um ponto. Cada día é mais difícil fazer um vírus. Os
> sistemas são muito mais complexos (i.e., os desenhadores de OS não
> deixam o campo tão fácil como antes, mesmo aqueles da Microsoft) que
> nos días do DOS, e cada vez há menos pessoas com capacidade de
> pentetrar tão profundamente. Uma teoría pessoal minha é que com a
> Internet e os programas de Multimídia, mesmo os script kiddies estão
> bem entretenidos, e não pensam tanto em estudar. Sim. Eu acho que as
> novas gerações são menos preparadas que as velhas, mas precisaríam de
> bem mais. Assim hoje encontramos bastante poucos vírus, só alguns
> scripts idiotas para fazer um worm que aproveitam a estupidez de
> algumas casas comerciais e millões de usuários confiados.

Sim... e se aproveitam do fato de que sistemas Win 9X não foram feitos
para receber uma placa de rede ou um modem e serem utilizados em um ambiente
como a Internet.

> > E se NT deixa isso acontecer (o que eu acho que não, a não ser que
> > o usuário Administrador execute o vírus) é por problemas de design
> > do sistema operacional, porque até onde eu sei as barreiras estão
> > lá.

 [snip]

> > De qualquer forma um usuário não deveria sair executando o que mandam
> > por e-mail pra ele, e isso vale para qualquer sistema operacional.
> 
> Veja a citação de Einstein. :-)

:-)

> O Minix foi o primeiro sistema operacional que eu usei faz muitos
> anos. Conheço o livro e conheço a discussão com Linus sobre os
> sistemas operacionais monolíticos (que certamente vem ao caso).

Neste caso não vem :)
> 
> Eu nunca escribei que os níveis de permissões num sistema de arquivos
> não sejam importante para a segurança. Mas o tema aqui são os vírus, e
> como estes operam num nível de kernel, o sistema de arquivos com a sua
> segurança fica debaixo dele, totalmente indefenso. Não é relevante AQUI.

Hmmm... acho que entendi sua posição... mas como os vírus passam
a executar dentro de um kernel sem terem antes passado pelo sistema de 
arquivos? Me explique isso :)

> PD. Acho um inconveniente fazer um crosspost tão cumprido. Além disso
> acho que não tenho permissões de responder na maioría das listas que
> você inclue no CC. Assim me permiti reduzir esta lista de endereços.

Ok...

--macan
macan@debian.org
Eduardo Maçan
Engenheiro de Computação



Reply to: