一、fork bomb介绍
fork炸弹(fork bomb)在计算机领域中是一种利用系统调用fork(或其他等效的方式)进行的阻断服务攻击。与病毒与蠕虫不同的是,fork炸弹没有传染性,而且fork炸弹会使有进程/程序限制的系统无法开起新工作阶段,对于不限制进程数的系统则使之停止回应。以fork炸弹为代表的自我复制程序有时亦被称为wabbit。
二、原理
fork炸弹以极快的速度创建大量进程(进程数呈以2为底数的指数增长趋势),并以此消耗系统分配予进程的可用空间使进程表饱和,而系统在进程表饱和后就无法运行新程序,使系统的正常运作受到严重影响。
除了恶意触发fork炸弹破坏的情况外,软件开发中有时也会不慎在程序中嵌入fork炸弹,如在用于监听网络套接字并行使客户端-服务器结构系统中服务器端职责的应用程序中可能需要无限地进行循环(loop)与派生(fork)操作(类似下节示例程序所示),而在这种情况下源代码内的细微错误就可能在测试中“引爆”fork炸弹。
三、攻击手段
- linux fork炸弹:
:() { :|:& };:
或者
bomb()
{
bomb|bomb&
};
bomb
可以更改格式注解下:
:()
{
:|: &
}
;
:
注解:
- 第 1 行说明定义一个函数,函数名为:,没有可选参数。
- 第 2 行表示函数体开始。
- 第 3 行是