Você pode limitar facilmente a quantidade de processos que podem ser gerados no Ubuntu e na maioria das outras distribuições do Linux, modificando /etc/security/limits.conf
sudoedit /etc/security/limits.conf
Em seguida, adicione esta linha ao final desse arquivo:
* hard nproc nnn
onde:
-
hard
define o limite no nível do kernel para que não possa ser alterado sem reinicializar. -
nproc
é o número máximo de processos por usuário. -
nnn
é um número que você deve calcular para seu sistema:ps aux -L | cut --delimiter=" " --fields=1 | sort | uniq --count | sort --numeric-sort | tail --lines=1
O comando acima listará todos os processos para todos os usuários incluindo threads , os resumirá e listará o nome do usuário com a maior quantidade de processos. Para garantir, abra quantos aplicativos forem necessários antes de executar o comando acima e, em seguida, duplique esse número por segurança.
Após esse limite ser colocado, você precisará reiniciar, mas isso afetará cada usuário não-root no sistema. Então, se uma bomba bifurcada for executada por qualquer usuário não-root, ela terá esse limite rígido.
Os limites de grupo e curinga não se aplicam ao usuário raiz por padrão .
Use o nome de usuário literal root
nas regras se você quiser aplicar uma regra ao superusuário.
Além disso, se você não quiser reiniciar tão cedo, use sudo ulimit -u 800
, que colocará a restrição somente na sessão em execução , mas poderá ser facilmente contornado por uma bifurcação com sudo
privileges !
Após a reinicialização, o que estiver em /etc/security/limits.conf
será usado.
Algumas informações adicionais sobre garfos bomba: Eles não são malware ou algo terrível. Eles normalmente consistem em algo tão básico quanto um script que se chama duas vezes - aumentando assim sua presença na máquina de forma exponencial. Mesmo que tenham uma pequena pegada de memória, dado o ritmo rápido, eles rapidamente preenchem toda a RAM disponível e a máquina congela ou reinicia. O único perigo é perder informações não salvas. Eu classificaria uma forkbomb muito mais como uma brincadeira do que um software malicioso.
Um lembrete importante:
Você raramente deve executar qualquer coisa na linha de comando quando não tiver 98% de certeza de sua ação. Se você não consegue ler os comandos que está executando - não faça isso. Isso se aplica a partes ilegíveis de caracteres hex / base64, que podem ser usadas para obscurecer todo tipo de maldade. Se você não tem certeza de um comando, pode sempre procurar por suas ações nas Manpages do Ubuntu e ter precauções extras ao usar sudo
desde então será executado como usuário root.