CyberGlossary

マルウェア

フォーク爆弾

別称: ウサギ型(Wabbit), ラビットウイルス

定義

プロセスが自身を再帰的に fork し続けることでプロセステーブル・メモリ・CPU を枯渇させるサービス妨害手法。

フォーク爆弾は、子プロセスを再帰的に生成して各サイクルで倍増させ、カーネルの上限・メモリ・CPU を飽和させて、システムを応答不能に追い込む悪意あるあるいは事故的コードである。POSIX の典型例 `:(){ :|:& };:` は、関数が自身の二つのコピーを起動して切り離すパターンを示す。ワームのようにネットワークを介して拡散することはなく、影響は局所的だが、マルチユーザーホストや CI ランナーでは非常に効果が高い。対策としては、ユーザーごとのプロセス制限(`ulimit -u`、cgroups、PAM `pam_limits`)、cgroup の PIDs コントローラ、アカウント分離、信頼できないコード用のサンドボックス、プロセス生成システムコールのレート制限などが挙げられる。

  • DoS デモとして知られる Bash の一行コマンド `:(){ :|:& };:`。
  • 無限ループ内で誤って fork する不具合のある CI スクリプト。

関連用語