De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 08 de outubro de 2013
Este texto é uma tradução livre do original em inglês "Understanding Bash fork() Bomb ~ :(){ :|:& };:", do portal NixCraft.
Você consegue explicar o significado da bomba fork()?
:(){ :|:& };:
A bomba fork() é um tipo de ataque de negação de serviço (DoS) contra um sistema GNU/Linux. Ele faz uso da operação fork.
:(){ :|:& };:
não é nada mais do que uma função bash. Este função
é executada recursivamente. É frequentemente usada por administradores
de sistemas para testar os limites dos processos de usuários. Os limites
de processos de usuários em sistemas Linux podem ser configurados através
do arquivo /etc/security/limits.conf
e PAM.
Uma vez que uma bomba fork() tenha sido ativada em um sistema, pode não ser possível retomar a operação normal sem o reboot do sistema, visto que a única solução para uma bomba fork() é destruir todas as suas instâncias.
ALERTA - ALERTA
Estes exemplos podem deixar o seu computador inoperante se forem executados.
:() - Definição da função chamada ":
". Esta função não aceita nenhum argumento. Em bash, a sintaxe para a definição de uma função é:
foo(){ arg1=$1 arg2=$2 echo 'Bar..' #do_something on $arg argument }
A bomba fork() é definida da seguinte maneira:
:(){ :|:& };:
:|: | Ela vai chamar a si mesma usando uma técnica de programação chamada recursão e e direciona (pipe) o resultado de sua execução para outra instância dela mesma. |
& | Coloca a chamada da função em background de forma que os processos filhos não se encerrem e comecem a consumir os recursos do sistema. |
; | Encerra a definição da função |
: | Executa a função ou ativa a bomba fork() |
Aqui está o mesmo código de uma forma mais legível:
bomb() { bomb | bomb & }; bomb
Um sistema GNU/Linux adequadamente configurado não cai quando a bomba fork() é ativada.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários