今天早上,我读了后,描述了一个Linux系统的明显漏洞。 这实际上是一个字符序列-如果从命令行启动-创建一个无限循环,导致块RAM和CPU饱和。 所以这不是一个Linux的不足,但那些抛出字符串来砸所提供的任何操作系统上的一个明显的逻辑上的谬误。 该职位的建议,然而,最简单有效的方法来克服微观,但危险的脚本的影响。

也许这篇文章可能是有用的打击有点“歉意色调与他称赞钢的GNU / Linux操作系统是一个字符序列很少,如果输入,发送到终端的整个系统推向深渊。 这里是有问题的代码:

: () { : | : & };:这个简短而神秘的字符串: () { : | : & };:怎样才能造成这种破坏吗? 在现实中发生的事情是很正常的,识字bash脚本的解释,如下:在bash的功能。

在bash中的职能,声明的语法:
nomeFunzione() { comando1; comando2; ... comandoN; } nomeFunzione() { comando1; comando2; ... comandoN; }和调用通过键入自己的姓名和正常对照组。 因此,举例来说,下面的代码:
saluta(){ echo "ciao"; };saluta ,不申报的功能致敬,他在终端上打印单词Hello,并调用它。 有问题的代码功能被称为:(冒号)。

是的,虽然它是一个bash的功能,特别是外来的法律名称。

正如你可以看到现在,鉴于此,一度被称为功能调用本身和它的输出重定向到另一个调用本身通过管道(竖线)。 如果你没有不知道的管道,其上有是无须以住的解释而言,详细,上有是充足的文件反过来,只知道,他们将打开并行最多的2命令它们出现的,所以代码:|:在函数体中出现两次,在并行调用该函数,从而引发(双)递归。

最后,在命令的末尾有在后台运行的影响。

现在的功能推出时,自称为两次分岔(叉),这两个分支中的每个反过来,平行,分裂,等等。 确保您已创建(因此,这两个分支和他们的后代),terminandone(例如kill命令),将不会在轮到他们终止将是正常的功能在后台运行的事实。 这势不可挡的启动功能,它的收益指数,最终达到饱和的资源(CPU和内存)和后一段时间到达时,系统冻结。

解药。 为更胆小的解毒剂为这些叉炸弹和有则干脆把上的进程数的限制,用户可以启动。

原贴:

http://www.tuxbay.org/index.php?option=com_content&task=view&id=152&Itemid=1

分享这个内容:
  • del.icio.us
  • Google Bookmarks
  • Digg
  • Facebook
  • Technorati
  • MySpace
  • Twitter