"Comando da morte"

Iniciado por Pedru, 07 de Agosto de 2010, 18:48

tópico anterior - próximo tópico

Pedru

Um amigo meu chegou no MSN e me disse para escrever este comando: : (){ : | : & };:
Pode não ter cara de comando, mas tenham certeza de que é sim! Eu não sou burro e então não tentei no meu Ubuntu, mas sim numa máquina virtual. O que houve? O sistema travou. Bom, pode não ser mais perigoso que o rm -rf /, mas é uma grande sacanagem.
Segundo um cara do LinuxHard.org, o comando funciona assim:
CitarFunciona assim, primeiro é declarada a função : (dois pontos)
As funções são declaradas da seguinte forma:
nome_da_função(){ comandos };
No caso o nome da função é : (dois pontos)
Os comandos são:
: | :&
ou seja, chama a própria função executando-a simultaneamente com ela própria via | (pipe), o & (e comercial) faz com que estes comandos sejam executados em segundo plano.
O : (dois pontos) no final do comando da morte chama a função depois de declará-la.
Resumindo este comando gera uma função que chama ela própria duas vezes, infinitas vezes, gerando um loop.
Espero que dê para entender o conceito.
Mas, como se prevenir contra esse comando do maaal?

1- O primeiro modo e mais simples é digitando
echo 'alias :="echo 1"' >>/etc/profile
Com isso o comando da morte já não irá mais funcionar, entretanto esta não é a solução ideal, apesar de ser o mais simples no caso de você não ter o pam. (Existem formas de encontrar brechas nessa solução, como o usuário criar uma nova alias, então só os outros modos são 100% garantidos)

2- O segundo modo é limitando um grupo de usuários quanto o número de processos (no caso mostro como limitar o grupo estudantes):
echo '@estudantes hard nproc 600' >>/etc/security/limits.conf
(Ou Edite o arquivo /etc/security/limits.conf)
-Não se esqueça de criar um grupo estudantes, em /etc/group e de colocar na frente dele o nome dos usuários em que se aplicara a permissão.

3- O terceiro modo é limitando todos os usuários quanto ao número de processos:
echo '* hard nproc 1000' >>/etc/security/limits.conf

Pronto! Nunca mais os usuários do SSH vão poder fazer essa brincadeira ! =[ Que pena.

Créditos da solução: Luciano Andress Martini em: http://linuxhard.org/site/archives/1156#more-1156

filipevix

legal, valeu pela dica amigo!

podia ser feito um tópico com os comandos que 'nunca' poderiam ser digitados.
"The Future is Open"

sigur

fico me perguntando: porque alguém  digitaria algo assim, sem nexo, só por diversão?!

Adriano R.N.

Citação de: sigur online 08 de Agosto de 2010, 16:36
fico me perguntando: porque alguém  digitaria algo assim, sem nexo, só por diversão?!


Eu me pergunto: Por que esses comandos da morte ainda funcionam no Linux?
Se são realmente necessários, o S.O. poderia ter barreiras, avisos assustadores e pedir confirmações antes de executar.
Boa sorte e Muito AXÉ!!!

Ubiracy_Mafra

Citação de: sigur online 08 de Agosto de 2010, 16:36
fico me perguntando: porque alguém  digitaria algo assim, sem nexo, só por diversão?!

O cara tem que ser muito babaca pra digitar um comando que ele não sabe para que serve.
É como diz o ditado: Chapéu de otário é marreta.....
Windows 7 Home Premium / Ubuntu 14.04

ucastrobr

É lógico que digitar rm -rf / só um burro para forçar a remoção da raiz do sistema seria como remover o c: do windows.
Mas esse comando   : (){ : | : & };:   é legal porque não danifica seu sistema apenas trava bastando dar um restart. A não ser que alguém já está com o hd meio velhinho cheio de setores corrompidos, daí um desligamento incorreto pode danificar o setor de boot e o sistema nem carregar mais.
Spock – "After a time, you may find that having is not so pleasing a thing, after all, as wanting. It is not logical, but it is often true."
("Depois um de tempo você vai perceber que ter algo pode não ser tão prazeroso quanto deseja-lo. Isto não é lógico, mas frequentemente é verdade.")

carlos_mac

Ainda não conhecia esse comando.... Mas que furo do linux eim... Testei com um usuário comun e travei o sistema.

Parece coisa de Windows, mas infelizmente é no linux.

Isso mostra que a segurança no Linux é fragilissima também.

carlosaluisio

Citação de: carlos_mac online 10 de Agosto de 2010, 11:14
Ainda não conhecia esse comando.... Mas que furo do linux eim... Testei com um usuário comun e travei o sistema.

Parece coisa de Windows, mas infelizmente é no linux.

Isso mostra que a segurança no Linux é fragilissima também.
Tente fazer o mesmo no seu Mac OsX, a chance de dar a mesma coisa é altissima, pois a estrutura NIX é muito parecida.
Veja o que dá, e nos reporte.
Abraços
Carlos
Ubuntu Lucid é 10 !!!

Kamei Hyoga

Citação de: carlos_mac online 10 de Agosto de 2010, 11:14
Ainda não conhecia esse comando.... Mas que furo do linux eim... Testei com um usuário comun e travei o sistema.

Parece coisa de Windows, mas infelizmente é no linux.

Isso mostra que a segurança no Linux é fragilissima também.

Não sei onde é frágil. A falta de segurança se dá pelo usuário digitar isso. Assim como seria no Mac OS ou no Windows. Tem que botar é um firewall no usuário kkkkk

irtigor

Citação de: carlos_mac online 10 de Agosto de 2010, 11:14
Ainda não conhecia esse comando.... Mas que furo do linux eim... Testei com um usuário comun e travei o sistema.

Parece coisa de Windows, mas infelizmente é no linux.

Isso mostra que a segurança no Linux é fragilissima também.
Loop infinito se faz em qualquer linguagem de programação e funciona em qualquer sistema, estude antes de falar, alguém menos informado que você pode realmente achar que existe um problema.

carlosaluisio

Citação de: irtigor online 10 de Agosto de 2010, 13:13
Citação de: carlos_mac online 10 de Agosto de 2010, 11:14
Ainda não conhecia esse comando.... Mas que furo do linux eim... Testei com um usuário comun e travei o sistema.

Parece coisa de Windows, mas infelizmente é no linux.

Isso mostra que a segurança no Linux é fragilissima também.
Loop infinito se faz em qualquer linguagem de programação e funciona em qualquer sistema, estude antes de falar, alguém menos informado que você pode realmente achar que existe um problema.

realmente, falar que é "fragilissima" por causa de um loop, que se faz até mesmo em bash, ou em C, qualquer porcaria, é exagerar mesmo.

Sendo que o loop é feito pelo proprio usuário. E outra, to jogando que acontece a mesma coisa no Mac. E, no windows, é só colocar uma instrução parecida no bat, que pode dar a mesma coisa.
Ubuntu Lucid é 10 !!!

Lugaid

LOL
Firewall para usuário foi boa.
Tem opções que não tem como tirar mesmo, vai que um dia o usuário precisa usar um loop infinito urgentemente =D
Agora, falar que isso faz do sistema fragil, já é exagero ne...

carlos_mac

Citação de: irtigor online 10 de Agosto de 2010, 13:13
Citação de: carlos_mac online 10 de Agosto de 2010, 11:14
Ainda não conhecia esse comando.... Mas que furo do linux eim... Testei com um usuário comun e travei o sistema.

Parece coisa de Windows, mas infelizmente é no linux.

Isso mostra que a segurança no Linux é fragilissima também.
Loop infinito se faz em qualquer linguagem de programação e funciona em qualquer sistema, estude antes de falar, alguém menos informado que você pode realmente achar que existe um problema.

Bem amiguinho, se quer saber se sou informado gostaria de falar que estou alguns meses de concluir minha Pós Graduação em Segurança da Informação, e um sistema se auto proteger faz parte sim dos principios de segurança. Sei que é muito dificil atender todos os requisitos, por exemplo o sistema central do banco do brasil é capaz de romper um processo quando detecta que um usuário que usuário faz bobagem. E o Linux como sistema operacional deveria startar um stop quando detectasse que um usuário iria estourar a pilha de memória com um loop. Se isso fosse no Windows usuários como você estariam descascando o sistema falando mil asneiras só porque é Windows. Sou usuário de Mac, Linux e Windows sei que cada um tem suas falhas. Mas esta do Linux chega a ser ridícula.  Respeite a opnião dos outros e terá a sua respeitada.

sigur

Citação de: Lugaid online 10 de Agosto de 2010, 13:53
LOL
Firewall para usuário foi boa.
Tem opções que não tem como tirar mesmo, vai que um dia o usuário precisa usar um loop infinito urgentemente =D
Agora, falar que isso faz do sistema fragil, já é exagero ne...

sou leigo, mas não consigo imaginar uma situação na qual se precise fazer isso!!!! rs


carlosaluisio

Citação de: carlos_mac online 10 de Agosto de 2010, 14:21
Citação de: irtigor online 10 de Agosto de 2010, 13:13
Citação de: carlos_mac online 10 de Agosto de 2010, 11:14
Ainda não conhecia esse comando.... Mas que furo do linux eim... Testei com um usuário comun e travei o sistema.

Parece coisa de Windows, mas infelizmente é no linux.

Isso mostra que a segurança no Linux é fragilissima também.
Loop infinito se faz em qualquer linguagem de programação e funciona em qualquer sistema, estude antes de falar, alguém menos informado que você pode realmente achar que existe um problema.

Bem amiguinho, se quer saber se sou informado gostaria de falar que estou alguns meses de concluir minha Pós Graduação em Segurança da Informação, e um sistema se auto proteger faz parte sim dos principios de segurança. Sei que é muito dificil atender todos os requisitos, por exemplo o sistema central do banco do brasil é capaz de romper um processo quando detecta que um usuário que usuário faz bobagem. E o Linux como sistema operacional deveria startar um stop quando detectasse que um usuário iria estourar a pilha de memória com um loop. Se isso fosse no Windows usuários como você estariam descascando o sistema falando mil asneiras só porque é Windows. Sou usuário de Mac, Linux e Windows sei que cada um tem suas falhas. Mas esta do Linux chega a ser ridícula.  Respeite a opnião dos outros e terá a sua respeitada.

E por acaso o Mac e o Windows tem essa tal "proteção contra loops" ?? Eu ainda não vi nenhum SO que tivesse declaradamente tal proteção. Posso estar enganado. E vou te perguntar de novo: Já fez no teu MAC isso ? vou falar novamente que a chance de acontecer a mesma coisa (que nem vou chamar isso de problema) é grande, pois a estrutura é a mesma.
E isso não é "falha de segurança do Linux", e sim, de aplicação proposital de loop. Sendo que o próprio Linux tem barreira para isso, como pode ser vista neste tópico que foi criado.
Ubuntu Lucid é 10 !!!