Cómo proteger a Ubuntu de fork pump

71

Escuché a alguien hablar sobre un tenedor de bomba, investigué un poco y encontré información terrible sobre algunos personajes extraños que la gente puede tener que escribir en la línea de comando y, como resultado, hacer cosas malas en la computadora. Ciertamente no emitiría comandos que no entiendo, pero uno nunca sabe qué puede pasar.

Escuché que algunos sistemas operativos permiten que el administrador ponga un límite en los procesos del usuario para mitigar los efectos de las bombas de horquilla, ¿esta protección está en Ubuntu por defecto o una persona con privilegios sudo tiene que configurar esto? Si es así, ¿cómo?

    
pregunta dblang 27.01.2011 - 16:44

2 respuestas

70

Puede limitar fácilmente la cantidad de procesos que se pueden generar en Ubuntu y en la mayoría de las distribuciones de Linux modificando /etc/security/limits.conf

sudoedit /etc/security/limits.conf

A continuación, agregue esta línea al final de ese archivo:

*    hard     nproc     nnn

donde:

  • hard establece el límite en el nivel del núcleo para que no se pueda cambiar sin reiniciar.
  • nproc es la cantidad máxima de procesos por usuario.
  • nnn es un número que debe calcular para su sistema de la siguiente manera:

    ps aux -L | cut --delimiter=" " --fields=1 | sort | uniq --count | sort --numeric-sort | tail --lines=1
    

El comando anterior enumerará todos los procesos para todos los usuarios incluidos los hilos , los sumará y listará el nombre de usuario con la mayor cantidad de procesos. Para estar seguro, abra tantas aplicaciones como necesite antes de ejecutar el comando anterior y luego duplique ese número por seguridad.

Después de establecer este límite, deberá reiniciar, pero afectará a cada usuario no root en el sistema. Entonces, si un tenedor bomba es ejecutado por un usuario no root, tendrá ese límite estricto.

Los límites de grupo y comodín no se aplican al usuario raíz de forma predeterminada . Use el nombre de usuario literal root en las reglas si desea aplicar una regla al superusuario.

Además, si no está buscando reiniciar en el corto plazo, puede usar sudo ulimit -u 800 que colocará la restricción solo en la sesión de ejecución pero puede ser fácilmente eludido por una bomba de horquilla con privilegios de sudo !

Después de reiniciar, se usará lo que esté en /etc/security/limits.conf .

Alguna información adicional sobre las bombas de horquilla: no son malware ni nada espantoso. Por lo general, consisten en algo tan básico como un script que se llama a sí mismo dos veces, lo que aumenta su presencia en la máquina de forma exponencial. A pesar de que tienen una pequeña huella de memoria dado el rápido ritmo que multiplican, llenan rápidamente toda la memoria RAM disponible y la máquina se congela o se reinicia. El único peligro es perder información no guardada. Clasificaría una tenedorbombas como una broma mucho más que un software malicioso.

Un recordatorio importante:

Rara vez debes ejecutar algo en la línea de comando cuando no estás 98% seguro de su acción. Si no puede leer los comandos que está ejecutando, no lo haga. Esto aplica doble a bloques ilegibles de caracteres hexadecimales / base64, que pueden usarse para oscurecer todo tipo de maldad. Si no está seguro de un comando, siempre puede buscar sus acciones en Ubuntu Manpages y tener precauciones adicionales al usar sudo desde ese momento. se ejecutará como el usuario raíz.

    
respondido por el Marco Ceppi 27.01.2011 - 16:52
0

Una forma sencilla que me gusta es crear un alias aunque los alias 'no siempre se aplican, compruebe la respuesta anterior.

alias :="echo No."

Ahora

$ :(){ :|: & };:

bash: syntax error near unexpected token '('

    
respondido por el Adrian Webster 02.01.2016 - 03:27

Lea otras preguntas en las etiquetas