Como o Linux não é propenso a vírus, malware e esse tipo de coisa?

71

Como o Linux está protegido contra vírus?


Esta pergunta foi uma pergunta da semana para superusuários .
Leia a entrada do blog para obter mais detalhes ou contribua com o blog você mesmo

ykombinator
fonte
2
Veja também superuser.com/questions/11969/…
Robert Munteanu
11
Eu acho que você quer dizer bolacha. Veja: cs.utah.edu/~elb/folklore/afs-paper/node9.html Hacker é um termo não específico.
jnewman
11
Para o Linux, muitos softwares são de código aberto; portanto, se o criador de vírus for de código aberto, a comunidade ajudará a reparar essa bela mente. E se o escritor desejar escolher a maneira proprietária de código-fonte próximo, deverá rotular o programa como "software malicioso proprietário".
kaykay
Eu acho que tem algo a ver com a estrutura de arquivos no Windows e similares que tornam os suscetíveis a vírus, já que a maioria dos vírus ataca a estrutura de um arquivo, o registro e similares. no entanto, no Linux, o sistema de arquivamento e a estrutura juntos são muito mais estáveis ​​e não podem ser manipulados tão facilmente. Certa vez ouvi de um vírus Trojan apenas sentado em um desktop Linux sem fazer nada, pois não poderia atacar todos os arquivos ...
ThunderToes

Respostas:

104

Bem, na verdade não é ... é apenas menos sujeito a hackers que desenvolvem vírus direcionados a sistemas Linux. Os computadores de consumo geralmente são executados no Windows e, portanto, ao atingir um grande público, o Windows é o caminho a percorrer.

Não entenda mal o Linux e os vírus. Definitivamente, existem vírus no Linux.

Algumas distribuições possuem camadas de proteção adicionais, como o SELinux (veja aqui ) no Ubuntu, por exemplo. Depois, há o firewall padrão e o fato de que arquivos alienígenas não têm permissão automática para serem executados. É necessário conceder permissão de execução específica antes que a execução seja possível. (Veja aqui )

Além disso, existem vários outros fatores que tornam o Linux um local difícil para vírus, geralmente os usuários não-root nos sistemas Linux não têm à disposição poucos arquivos executáveis ​​que permitiriam que os vírus permanecessem despercebidos e se propagassem. Alguns programas exigem apenas o login como raiz (ou pelo uso de sudo) antes de serem executados ou o acesso / modificação de diretórios diferentes da sua casa. É muito mais difícil desenvolver um vírus viável que se espalhe tão bem quanto no Windows.

ATUALIZAR:

Como mencionado abaixo, a maioria das máquinas que executam o Linux são servidores executados por pessoas que sabem uma coisa ou duas sobre o que estão fazendo. As pessoas que executam o Linux para uso em desktop geralmente escolhem e também sabem o que estão fazendo. Quase todos os analfabetos de computadores executam o Windows e, portanto, é muito mais fácil infectar esses computadores. " Ei, esta máquina me diz que tenho vírus e tenho que comprar esse programa antivírus chamado 'FAKETrojanHunter' para me livrar dele ... Ok, vamos lá! "

Como nenhuma distribuição / instalação do Linux é igual em si mesma, é mais difícil desenvolver malware que os infectaria da maneira mais eficiente possível. Além disso, quase todos os softwares executados no Linux são de código aberto, tornando o malware muito mais facilmente detectável, pois sua fonte é aberta ao público.

BloodPhilia
fonte
47
+1 parathere definitely ARE Linux viruses
Sathyajith Bhat
13
Lembre-se de que a maioria (bem, muitos ...) de servidores rodam Linux, então há uma enorme base de instalação que vale a pena atacar. A maioria desses servidores não executa antivírus e não apresenta problemas. Existem explorações em pacotes, mas geralmente elas não permitem a execução remota de código arbitrária.
Rich Bradshaw
5
Na verdade, o linux não é mais seguro contra ataques de vírus do que o Windows para a grande maioria das explorações. Em algumas classes, o linux melhora (por exemplo, os arquivos executáveis ​​enviados por email são mais difíceis de infectar os usuários ... mas não são impossíveis). Os mesmos vetores de ataque funcionam no Linux (estouros de buffer em programas que acessam a Internet principalmente). E estúpido .. er i significa que usuários inexperientes são tão propensos a tomar as medidas extras para fazer um executável anexo de email se é algo que eles querem (fotos nudie, protetor de tela bonito, etc ..)
Erik Funkenbusch
4
@ Rich: Claro. Também há muitos servidores Windows. No entanto, os servidores geralmente são executados por pessoas com uma pista sobre computadores e segurança e, portanto, são muito mais difíceis de atacar. Existem muitos computadores mantidos por pessoas que não entendem computadores. A grande maioria deles é o Microsoft Windows, o restante é principalmente o Mac OSX e o Linux quase não existe, pois quase todos os usuários pessoais do Linux o executam porque entendem os computadores e optaram pelo Linux.
David Thornley
4
@ Jase21: Eu não entendo como você pode dizer que o Linux tem "melhores práticas de codificação", a menos que você tenha trabalhado em ambas as plataformas e tenha visto o código-fonte para ambas as plataformas. @BloodPhilia: +1 para a resposta aqui que mais aponta diretamente para a raiz do problema, e não para a trombeta do FUD.
Billy ONeal
37

Um dos motivos são os privilégios de usuário.

Os sistemas GNU / Linux são do tipo Unix e isso significa que eles foram criados para serem sistemas multiusuários desde o início. Isso significa que há uma forte separação de responsabilidades entre os usuários. Como resultado, um usuário normal não pode realmente danificar o sistema porque não possui privilégios necessários. Embora agora também existam contas limitadas disponíveis nos sistemas Windows, nos sistemas GNU / Linux é naturalmente esperado que o usuário use uma conta limitada para uso diário e mantenha a conta raiz apenas para alterar as configurações (algumas distribuições por padrão nem sequer permitem os usuários registrem como root porque existem outros mecanismos mais seguros para usar a conta root para modificar as configurações).

Por outro lado, muitos usuários do Windows foram criados na era do Windows 9x ou essa era teve uma grande influência sobre eles. Naquela época, apenas uma conta de usuário era administrador e tudo era permitido para esse usuário. Ainda hoje em sistemas Windows descendentes do Windows NT multiusuário, muitas vezes é necessário (ou pelo menos esperado) que o usuário use uma conta com privilégios administrativos e o uso de contas limitadas é bastante baixo entre os usuários domésticos.

AndrejaKo
fonte
4
+1 por mencionar permissões - sudo é meu amigo.
Thomas O
6
Você pode obter a mesma proteção no Windows executando como um usuário limitado e elevando via UAC quando necessário. Apenas dizendo. :)
badp
2
O UAC é irritante e, até onde eu sei, muitos usuários o desativam. Então, novamente, eu uso o Ubuntu, então talvez eu seja tendencioso.
Thomas O
@ Thomas O é o que eu estava procurando quando escrevi minha resposta. No Windows, o UAC é irritante e geralmente são necessários privilégios elevados. No GNU / Linux, privilégios elevados não são necessários com tanta frequência. Também em muitas distribuições, alterar as configurações do usuário é mais fácil porque elas "lembram" a senha por algum tempo, enquanto o prompt do UAC é exibido para cada ação.
AndrejaKo
5
@ Thomas - o que Hello71 está dizendo é que o UAC funciona em uma área de trabalho protegida e não tem permissão para interagir com a área de trabalho de usuários interativos; portanto, qualquer aplicativo em execução lá não pode "mover o mouse" e clicar nele. Parece que o UAC geralmente é mal interpretado dessa maneira por pessoas que não sabem nada sobre isso.
Erik Funkenbusch
22

Uma vantagem que o Linux tem sobre o Windows é que, para que o arquivo seja executável, você precisa definir suas permissões especificamente.

Isso significa que o truque de extensão dupla (por exemplo, " brittany_spears_naked.jpg.exe ") não funcionará porque o usuário precisará torná-lo executável antes de infectá-los - e, com sorte, achará estranho que uma imagem precise ser executável.

Richard
fonte
14
O Linux não usa extensões de nome de arquivo.
AndrejaKo
9
Tecnicamente, não, mas o gnome e o kde os usarão para determinar se algo é, por exemplo, uma imagem ou um arquivo de música e passá-lo para o programa apropriado.
Richard
6
De fato, mas nem o GNOME, nem o KDE, nem qualquer outro ambiente de desktop assumirá que um arquivo pode ser executado com base em uma extensão de arquivo.
Ryan Thompson
Um arquivo não pode ser executado sem as permissões. Isso significaria que seu gerenciador de arquivos precisaria alterar as permissões para tentar executá-lo.
Thomas O
11
Na verdade, quis dizer que os ambientes de área de trabalho linux não iniciarão um arquivo da área de trabalho, a menos que o próprio arquivo da área de trabalho seja marcado como executável. Portanto, você não pode simplesmente baixar um arquivo .desktop que contém Exec=rm -rf /e executá-lo acidentalmente sem primeiro marcar o arquivo da área de trabalho como executável.
Ryan Thompson
19

O Linux é protegido, mas não invulnerável.

Contrastando o Linux / Unix com o Windows em um nível alto, do ponto de vista de segurança:

  • O kernel do Linux (onde as permissões do sistema são examinadas e aplicadas) é muito menor que o equivalente ao Windows. Menor significa mais simples; mais simples significa mais fácil de examinar, com menos interações inesperadas do sistema. "Menor" e "mais simples" são coisas boas na análise de segurança. O kernel do Windows continua crescendo a uma taxa alta.

  • Os usuários do Linux tendem a executar em níveis de permissão mais baixos que o Windows, dificultando a afetação de todo o sistema.

  • O Linux começou com um modelo de segurança simples e flexível. O Windows iniciou com requisitos de compatibilidade com sistemas anteriores que não tinham modelo de segurança.

  • O Linux sempre teve funções (por exemplo, chroot(2)) para facilitar as tarefas de programadores preocupados com segurança.

Nada disso torna o Linux invulnerável a malware. Isso significa que atacar um host Linux configurado corretamente é ainda mais difícil do que atacar um host Windows configurado corretamente.

mpez0
fonte
11
1. Na verdade, o Windows NT começou como uma competição para o OS / 2. Tudo é executado em cima do modelo de segurança DACL, que é mais flexível que as permissões POSIX. 2. A maioria dos argumentos aqui se aplica à era dos sistemas operacionais Win9x, não ao Windows NT. 3. Na verdade, a linha principal do Linux cresceu muito mais rapidamente que o kernel do Windows. A única coisa adicional que o kernel do NT faz é fornecer o subsistema Windowing - que não fica nem perto do código de segurança. 4. A afirmação de que tamanho afeta a segurança se aplica somente ao código de segurança. Adicionar btrfsao Linux não o torna menos seguro.
Billy ONeal
13

A resposta para sua pergunta depende do que você considera um "vírus".

Se você usa a definição correta de vírus - ou seja, código que modifica um executável existente -, a razão pela qual o Linux não é propenso a vírus é porque não é um mecanismo viável para espalhar código malicioso no Linux. O motivo é que os executáveis ​​do Linux raramente são transferidos diretamente de um computador para outro. Em vez disso, os programas são transferidos usando o software de gerenciamento de pacotes ou distribuindo o código-fonte. O fato de a maioria dos softwares Linux estar disponível gratuitamente a partir da fonte significa que as pessoas quase não têm muita intensidade para copiar programas de um computador para outro.

Se por "vírus" você quer dizer "worm" - um programa que se replica na Internet, o Linux não está imune a esse ataque. De fato, o worm original da Internet, o " Morris Worm ", replicou usando o Sendmail, um programa que ainda vem pré-instalado em muitos sistemas Linux. Quase todos os ataques bem-sucedidos contra máquinas Linux têm como alvo aplicativos vulneráveis ​​da Internet, como um servidor de email ou um aplicativo da web.

Finalmente, se você está se referindo a códigos maliciosos em geral - geralmente um "Cavalo de Tróia", o que protege o Linux é principalmente a cultura. O Linux é um sistema operacional raramente usado, que já limita seu valor como destino. Mas quando você acrescenta que o fato de os usuários do Linux serem excepcionalmente experientes e preocupados com a segurança, reduz ainda mais a probabilidade de um ataque bem-sucedido. Se, por exemplo, seu plano de ataque se basear em convencer um usuário a baixar e executar um programa para se infectar, é muito menos provável que você convença o usuário comum do Linux a fazê-lo do que o usuário médio do Windows. Portanto, os autores de malware ao escolher uma plataforma para segmentar seguem o alvo obviamente mais frutífero.

tylerl
fonte
12

O Linux tem uma comunidade nerd altamente dedicada trabalhando para isso. Mesmo que algum malware seja gravado, sempre há uma solução para ele.

ykombinator
fonte
5
Se as empresas de antivírus estão de olho nessa plataforma, o mesmo conjunto de geeks pode ser empregado para trabalhar no desenvolvimento de vírus. Afinal, a indústria de vírus e antivírus é movida por dinheiro e não por pessoas reais de crackers / hackers.
Mahesh
@ Mahesh Ahh, eu sabia que haveria uma teoria da conspiração aqui. (Não estou dizendo que não é verdade, apenas chamando-o que é.)
jnewman
11
@ Josh, LOL. Talvez você se sinta assim como uma teoria da conspiração, mas as pessoas que trabalham para a catcom, ePC e muitas outras empresas de antivírus lhe darão uma idéia melhor. ;)
Mahesh
12

Existem muitos aspectos que contribuem para isso:

  1. Ambiente heterogêneo
    • Existem muitos sabores diferentes e muitas configurações diferentes;
    • Mesmo na mesma distribuição, o leque de possibilidades diferentes é enorme;
    • Cada distribuição fornece vários kernels, suporta patches extras;
    • Cada grande empresa geralmente lança seu próprio sabor do kernel.
  2. Abordagem aos usuários e histórico de forte aplicação correta
    • O Linux está naturalmente à frente nessa área devido ao longo histórico de desenvolvimento orientado a servidor.
  3. Os vírus são ineficazes
    • O Linux é o sistema mais instalado no mundo, mas não há muitos PC / desktops com o Linux;
    • ataques a servidores são muito mais eficientes quando direcionados;
    • ataques em sistemas embarcados (roteadores, televisões, etc ...) geralmente não valem o esforço devido à funcionalidade limitada do sistema.
  4. O foco atual dos criadores de vírus simplesmente não combina com o ecossistema Linux
    • Os criadores buscam o que é mais fácil.
  5. Os vírus são muito mais difíceis de esconder no Linux
    • O Linux é um sistema aberto que expõe todas as informações, não é tão fácil esconder alguma coisa.
  6. Código aberto
    • Embora a Microsoft possa afirmar o contrário, ter milhares de revisores para cada linha de código e ainda mais pessoas capazes de corrigir uma falha de segurança em vários segundos definitivamente afeta positivamente a qualidade e a segurança do código.
Deixe me ser
fonte
3
"O Linux é o sistema mais instalado no mundo"?
GeneQ 5/10/10
@GeneQ Claro, que outro sistema seria? OK, com toda a justiça, não estou considerando aqueles sistemas SO superespecíficos que são usados ​​para chips incorporados produzidos em massa (sim, alguns vêm com um sistema operacional real).
Let_Me_Be
2
Isso é factualmente incorreto. A maioria dos chips incorporados não executa nenhuma forma de sistema operacional. Os sistemas operacionais POSIX são comuns para servidores e para alguns tipos de telefones celulares, mas não para carros e aparelhos de televisão, e é aí que as estatísticas impressionantes de computadores pequenos são muito mais comuns do que computadores de mesa.
Billy ONeal
5

Eu acho que o fato de o Linux executar principalmente software de código aberto é um grande bônus aqui. É muito mais difícil alguém fazer coisas maliciosas no seu sistema quando alguém pode ler o código.

Se você instalar apenas o software a partir dos repositórios oficiais de pacotes das distribuições Linux, provavelmente estará muito mais seguro do que no Windows, onde precisará baixar executáveis ​​e instaladores aleatórios da Web para obter o software.

É claro que existem outras maneiras pelas quais as pessoas podem obter código malicioso para executar no seu sistema, mas acho que vale a pena mencionar de qualquer maneira.

Jacob Stanley
fonte
2
Só porque o software é de código aberto não o torna inerentemente seguro. O código aberto pode ajudar a determinar se um design é seguro ou não, mas o código aberto não faz nada para causar segurança por si só.
Billy ONeal
+1 Sim, é claro, o software não pode ser seguro apenas porque é de código aberto, mas ter muitas pessoas capazes de examinar o código certamente ajuda. Por outro lado, eu diria que o software proprietário é inerentemente inseguro porque é fácil para um desenvolvedor incluir malware em seu software sem o conhecimento do usuário.
26510 Jacob
5

A principal razão é que os geeks do Linux não fazem alvos ricos.

O crime organizado visa as pessoas que compram um sistema mais simples com um desktop e todos os seus aplicativos já instalados e bem conhecidos. E atualmente a grande maioria dessas pessoas está usando o Windows, o que torna o Windows um alvo muito mais lucrativo.

Se houvesse tanto dinheiro a ganhar depois do Linux, tenho certeza de que o esforço maciço que hoje gera milhares de novas variantes de vírus e sites falsos por dia em breve também deixaria o Linux de joelhos. E com o Linux sendo de código aberto, os hackers nem precisariam descompilar nada.

Para todo programador inteligente, há um mais inteligente, apenas aquele que é um pirata ...

harrymc
fonte
3
Eu meio que discordo deste. Nos anos 90, o Windows tinha uma enorme diferença no número de vírus em relação ao Mac, mas ainda não havia dinheiro para ganhar com os vírus. Isso pode existir, mas como principal motivo, não é válido.
91310 Rich Homolka
@ Rich Homolka: Segundo as estatísticas, o Windows não tem hoje mais vulnerabilidades conhecidas do que outros sistemas operacionais. A única diferença que resta logicamente é o fato de os hackers não estarem concentrados nisso.
harrymc
2
Entendo o seu ponto de vista, mas discordo da sua conclusão. O mais assustador dos vírus do Outlook é que o Outlook funcionou exatamente como a Microsoft havia projetado. Não havia 'vulnerabilidade' no sentido normal desse termo. O design era simplesmente um propagador de vírus eficiente.
Rich Homolka
11
@ Rich Homolka: Você está certo sobre o passado e também pode listar ActiveX, BHO, DAV da Web e outras estupidez da Microsoft. No entanto, um esforço de alguns anos melhorou muito a situação hoje a ponto de a segurança ser comparável ao Linux. Atualmente, a maioria dos ataques é orientada ao navegador e requer correção nos principais navegadores. Os novos ataques aos roteadores são, na verdade, explorações do Linux.
harrymc
5
  • multiusuário, sistema operacional multitarefa
  • construído para viver no mundo da rede (sem portas RFC abertas por conveniência)
  • não existe ActiveX (bom vetor para contaminação)
  • também há uma boa separação de código dos dados dos arquivos de configuração
  • todos os aplicativos e programas do sistema operacional estão atualizados graças a um repositório central
  • nenhum incentivo para visitar sites desconhecidos e baixar software a partir daí
  • atualizações ocorrem quando há um problema para corrigir, não "quinta-feira negra"
  • extensão de arquivo não significa nada para o sistema operacional
  • Nenhuma bagunça oculta, como o registro
  • graças às separações de privilégios - mesmo se você receber "algo", é muito difícil sobreviver a uma reinicialização (conforme as definições de um vírus)
jato
fonte
É trivial fazer com que um aplicativo, malicioso ou não, "sobreviva a uma reinicialização" no Linux. Se você ganhar root, poderá inserir módulos, modificar o kernel e adicionar ou modificar um script init. Inferno, mesmo se alguém apenas compromete a sua conta de usuário que podem apenas acrescentar algo ao ~ / .bashrc que seria executado toda vez que você entrar.
é trivial, mas você disse "se", certo? E boa sorte com isso
jet
Você disse 'mesmo se você receber "alguma coisa", (sic) é muito difícil sobreviver a uma reinicialização', o que implica que você já a recebeu. Então você já está ferrado. Fim de jogo.
sim, por exemplo, sequestrado Flash plug-in (Adobe ninguém) e sim jogo não é mais a menos que você navegar como root
jet
3

Há um número crescente de pessoas que não sabem muito sobre computadores (ou que migraram do Windows) para distribuições modernas como Ubuntu, LinuxMint ou Fedora.

Eles lerão qualquer guia ou instruções e farão o download de qualquer script ou programa e executarão como root ou sudo. Estes podem ser alvos fáceis de cavalos de Troia. Na verdade, sinto que a segurança da área de trabalho é difícil, a menos que você restrinja o que os usuários podem fazer com seus computadores.

Xolve
fonte
2

Os criadores de malware desejam um mercado-alvo maior. Muito mais pessoas executam Mac ou Windows do que Linux. É como criar um site - você deseja garantir que ele funcione nos principais navegadores antes de ir para os menos populares.

Joshua
fonte
Acredito que o @BloodPhilia também tenha um ponto excelente, em relação às muitas distribuições diferentes do Linux. Seria muito difícil / demorado desenvolver malware que pudesse efetivamente se adaptar e se espalhar pelas diversas distribuições Linux.
Joshua
Linux é Linux. Mesmo kernel, mesmas bibliotecas principais. O código malicioso é independente da distribuição. Encontrar uma maneira de realmente espalhá-lo pode ser mais difícil, porque se um projeto for comprometido e o código malicioso for adicionado a um pacote enviado aos usuários finais, isso afetará apenas essa distribuição. Algo tão simples como uma bomba de forquilha derrubará a maioria das distribuições Linux. perl -e 'while(1){fork();}'
2

Uma coisa que acho que as pessoas sempre ignoram nas comparações Linux / Windows são os usuários, quem são e como pensam, agem e reagem. Você pode achar interessantes os modelos populares de segurança de computadores .

O Linux (quase) nunca é pré-instalado. Como corolário, significa que (quase) todas as instalações são instaladas por opção, por alguém que pensou o suficiente para escolher o Linux em vez de outra coisa e por alguém que pelo menos sabe o suficiente para usar o instalador. Ter um filtro com o conhecimento mínimo do computador antes de usá-lo ajuda.

Por outro lado, o Windows é a instalação padrão na maioria dos computadores adquiridos. Você pode ter zero habilidades e comprar um computador com Windows e conectá-lo à Internet, sem saber nada sobre vírus, worms, cavalos de tróia, etc., e se tornar um zumbi rapidamente.

Eu também gostaria de dizer que não estou "culpando a vítima". Computadores são complicadas máquinas de estados infinitos. A segurança é difícil. Mas o design também é importante. O Mac OS X realmente não possui nenhum recurso de segurança atraente que o torne mais seguro que o Windows. Também é pré-instalado nos sistemas, o que significa que qualquer pessoa que possa comprar um Mac o executará, independentemente do nível de habilidade. Mas foi projetado como um sistema, com uma ideia de como o usuário pensa e irá interagir com o sistema. Isso reduz não as brechas de segurança, mas a probabilidade de um usuário permitir que ele seja explorado.

Rich Homolka
fonte