Denegacion de Servicio en Unix (Linux, BSD, etc)
Atención: No dejes de leer los comentarios del editor sobre este post en un foro en Bombas y bombos.
Acabo de registrarme en Kriptopolis.org, y es para dar a conocer esta "bomba lógica" que afecta a la mayoría de los sistemas operativos basados y descendientes de Unix. Yo lo he probado en FreeBSD, OpenBSD, PcBSD, Slackware, Debian, SuSe, Mandriva, Gentoo, Ubuntu y un par de distribuciones destinadas a seguridad, y en todas por desgracia tiene efecto.
Esta bomba lógica produce un DoS (denegación de servicio) mediante un proceso que consume toda la memoria del sistema, dejando totalmente inutilizable el PC y obligando a reiniciar.
Paso a explicar un poco de qué se trata...
Todo se lleva a cabo introduciendo una serie de caracteres en una terminal. Estos caracteres fueron liberados por uno de los programadores del kernel Unix. Buscando datos por la web, no he encontrado ninguna solución.
Los caracteres a ingresar son:
:(){ :|:& };:
Con eso dejaran totalmente colgado su sistema.
Quien tenga alguna otra "bomba logica" para Unix o Windows, publíquela y así podremos intentar parchearla (por lo menos las de unix :-) )
Saludos
Z3R0 R34LI7Y

- 8860 lecturas
Twitter

Muy buena broma
Ya se lo he pasado a diversos amigos que utilizan linux como una gracia y todos los ordenadores petaron.
completamente de acuerdo...
parece ser un error que ni siquiera ubuntu 7 se salva y lo peor del caso es no se necesita ser root desde mi terminal de Gnome escribi la secuencia y obtuve un resultado identico al descrito , pero mi pregunta es si es error del Kernel o ???.... aunque seria raro que un usuario escribiera eso no debe existir ese tipo de errores, esperemos se resuelva pronto...
Eso no es un fallo
Eso no es un fallo, es una simple funcion recursiva mal empleada, lo mismo da eso que
a(){ a|a& };a
o cualquier otra combinacion.
Sobre parchearla....no se puede parchear la estipidez humana, las funciones recursivas son necesarias, y si, mal empleadas caen en bucles infinitos.
Por no decir que como chorrada es mas viejo que maria castaña.
Pam_limits lo controla
Para "parchearlo", hay que limitar el número de procesos que pueden ejecutar los usuarios, que por defecto son ilimitados. Con el módulo pam_limits se puede controlar sin problemas.
Sí es un bug
El bug es que el sistema permite que se coma todos los recursos, hice la prueba y se ha colgado instantáneamente, el sistema ha de repartir mejor los recursos entre los programas y los usuarios.
No pillo el chiste
¿«caracteres liberados por uno de los programadores del kernel Unix»?
¿Alguien me explica qué pinta este post aquí? :-?
Cuánto tiempo tarda
Cuánto tiempo tarda en actuar? Lo he probado en mi OS X y no lo tumba, de momento. La memoria libre se mantiene entre 30 y 35, sin bajar de 30 megas nunca. Aunque antes de poner el comando ya estaba así.
"Igualinto"
En OS X no ocurre ¿Por que?
Configuración predeterminada
El fork bomb es una técnica vieja como el demonio. El problema no está en el kernel, sino en la configuración predeterminada del sistema (lo que comentaron arriba del número de procesos por usuario: "ulimit -u"), y me parece muy raro que no venga ya configurado por defecto a un valor aceptable. De hecho me parece un poco negligente.
Por ejemplo, en mi Gentoo lo puse a 8191, y resiste perfectamente este tipo de ataques, y en mi ArchLinux me acabo de fijar y está a 3071, pero no recuerdo haberlo configurado. En mi OpenBSD no lo configuré, pero está a 64, y parece perfectamente inmune al ataque. Ya lo probaré en Solaris 10 y NetBSD cuando pueda...
En mi Arch...
Sin haberlo tocado devuelve 8190 y se cuelga al instante.