恶意软件
Fork 炸弹
别称: Wabbit, 兔子病毒
定义
通过让进程不断派生(fork)自身,耗尽主机进程表、内存与 CPU 的拒绝服务技术。
Fork 炸弹是一种恶意或意外的代码,它递归地创建子进程,每轮翻倍直至触及内核进程上限、内存或 CPU 饱和,使系统无法响应。经典的 POSIX 单行命令 `:(){ :|:& };:` 即为典型:一个函数调用自身的两个副本并脱离父进程。与蠕虫不同,Fork 炸弹不通过网络传播,而是本地生效,但在多用户主机和 CI 执行器上极具破坏力。缓解措施包括为用户设置进程上限(`ulimit -u`、cgroups、PAM `pam_limits`)、使用 Linux cgroup PIDs 控制器、隔离账户、对不可信代码使用沙箱,以及对进程创建系统调用进行限速。
示例
- 经典的 Bash 单行 DoS 演示 `:(){ :|:& };:`。
- 在无限循环内意外调用 fork 的有缺陷 CI 脚本。