Duda sobre bomba fork

Iniciado por crazykenny, 18 Febrero 2021, 19:38 PM

0 Miembros y 1 Visitante están viendo este tema.

crazykenny

Hola, veréis, quisiera abrir este tema para hacer una pregunta relacionada con la prevención de Malware, y mas concretamente sobre Bombas Fork.

Entonces, y, yendo directamente a la duda principal; ¿hasta que punto es posible prevenir y/o "limitar" los efectos de una Bomba Fork?.

Y, por otra parte, ¿seria posible "aplicar" medidas de seguridad equivalentes y/o similares para poder prevenir sus efectos en S.O. Windows y en Linux (tales como limitar la cantidad de procesos por usuario)?.

Muchas gracias por vuestra atención, y, bueno, saludos.
A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
http://informaticayotrostemas.blogspot.com.es/2013/12/situacion-de-la-educacion-actual-en.html
https://informaticayotrostemas.blogspot.com/

Buster_BSA

La respuesta es muy sencilla: para prevenir ese y muchos otros tipos de ataque lo único que tienes que hacer es descargar software de sitios confiables y no ejecutar programas de origen desconocido.

Si te ves en la situación de tener que ejecutar un software del cual no tienes la seguridad de que es confiable puedes hacerlo de varias formas. Yo te recomiendo estas dos:

- Ejecutar el programa dentro de una máquina virtual.

- Ejecutar el programa dentro de una sandbox como Sandboxie.

De hecho gracias a mi colaboración con el autor original del Sandboxie, Ronen Tzur, este programa cuenta con protección contra bombas fork. Lo que tienes que hacer para activar la protección es añadir estas dos líneas a la sandbox donde vayas a probar el software:

ProcessLimit1=20
ProcessLimit1=30

Extraído de la documentación del programa:

ProcessLimit1 and ProcessLimit2 are sandbox settings in Sandboxie Ini. They limit the maximum number of processes that Sandboxie allows in the sandbox at the same time.

   .
   .
   .
   [DefaultBox]
   ProcessLimit1=100
   ProcessLimit2=200
         

ProcessLimit1: Once the sandbox has more than X programs at the same time, each new program will be delayed for ten seconds before it starts to run. X is the number specified in ProcessLimit1. The length of the delay, ten seconds, is not configurable.

ProcessLimit2: Once the sandbox has more than Y programs at the same time, each new program will be immediately terminated. Y is the number specified in ProcessLimit2.

The default numbers are 100 and 200 as mentioned above. ProcessLimit2 cannot be smaller than ProcessLimit1.

Creative values can turn off one or both modes. For example,

   ProcessLimit2=999999
         

will effectively disable the termination feature. On the other hand,

   ProcessLimit1=50
   ProcessLimit2=50
         

will effectively disable the delaying feature.

el-brujo

Las "bombas fork" en Linux pueden ser limitadas con el fichero  /etc/security/limits.conf

Citar
#Following will prevent a "fork bomb":
alex hard nproc 300
@student hard nproc 50
@faculty soft nproc 100
@pusers hard nproc 200

De hecho puedes limitar muchas más cosas, procesos, memoria, ficheros abiertos,

Citar<value> can be one of the following:
core – limits the core file size (KB)
data – max data size (KB)
fsize – maximum filesize (KB)
memlock – max locked-in-memory address space (KB)
nofile – max number of open files
rss – max resident set size (KB)
stack – max stack size (KB)
cpu – max CPU time (MIN)
nproc – max number of processes
as – address space limit
maxlogins – max number of logins for this user
maxsyslogins – max number of logins on the system
priority – the priority to run user process with
locks – max number of file locks the user can hold
sigpending – max number of pending signals
msgqueue – max memory used by POSIX message queues (bytes)
nice – max nice priority allowed to raise to
rtprio – max realtime priority
chroot – change root to directory (Debian-specific)
Warning: This will have no effect on the root user or any process with the CAP_SYS_ADMIN or CAP_SYS_RESOURCE capabilities are not affected by this kind of limitation on a Linux based system.

De hecho por ejemplo con MySQL (MariaDB) en la documentación oficial se recomienda en vez de reducir, aumentar varios valores

https://mariadb.com/kb/en/configuring-linux-for-mariadb/


/etc/security/limits.conf:

mysql soft nofile 65535
mysql hard nofile 65535

mysql soft core unlimited
mysql hard core unlimited



Pero lo que te comenta Buster_BSA  es más sensato, si vas ejecutar un software que no sabe lo que hace y no sabes analizarlo previamente, mejor usar una máquina virtual o un entorno controlado como sandbox

Incluso Windows 10 trae por defecto un Windows 10 sandbox por defecto (Espacio aislado de Windows)


crazykenny

Entiendo, y, bueno, os agradezco mucho las respuestas que me habéis dado en este tema, Buster_BSA y el-brujo, ya que era lo que estaba buscando,.

Muchas gracias por vuestra atención, y, bueno, saludos.
A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
http://informaticayotrostemas.blogspot.com.es/2013/12/situacion-de-la-educacion-actual-en.html
https://informaticayotrostemas.blogspot.com/