マルウェア
フォーク爆弾
別称: ウサギ型(Wabbit), ラビットウイルス
定義
プロセスが自身を再帰的に fork し続けることでプロセステーブル・メモリ・CPU を枯渇させるサービス妨害手法。
フォーク爆弾は、子プロセスを再帰的に生成して各サイクルで倍増させ、カーネルの上限・メモリ・CPU を飽和させて、システムを応答不能に追い込む悪意あるあるいは事故的コードである。POSIX の典型例 `:(){ :|:& };:` は、関数が自身の二つのコピーを起動して切り離すパターンを示す。ワームのようにネットワークを介して拡散することはなく、影響は局所的だが、マルチユーザーホストや CI ランナーでは非常に効果が高い。対策としては、ユーザーごとのプロセス制限(`ulimit -u`、cgroups、PAM `pam_limits`)、cgroup の PIDs コントローラ、アカウント分離、信頼できないコード用のサンドボックス、プロセス生成システムコールのレート制限などが挙げられる。
例
- DoS デモとして知られる Bash の一行コマンド `:(){ :|:& };:`。
- 無限ループ内で誤って fork する不具合のある CI スクリプト。
関連用語
ワビット
単一ホスト上で自己複製を繰り返し、ネットワーク経由では拡散せずに資源を枯渇させる古典的なマルウェア。
サービス妨害攻撃 (DoS)
システムの帯域・処理能力・メモリ・アプリケーション資源を枯渇させ、正当な利用者がサービスを利用できなくする攻撃。
ロジックボム
プログラム内に潜伏し、特定の論理条件が満たされた場合にのみ悪意あるペイロードを発動させるコード。
システムハードニング
不要な機能の削除、設定の引き締め、安全な既定値の強制によりシステムのアタックサーフェスを縮小する取り組み。
ファイルレスマルウェア
ディスク上の従来型実行ファイルを使わず、主にメモリ上で動作して正規のシステムツールを悪用するマルウェア。
マルウェア
コンピュータ、ネットワーク、データを妨害・破壊したり、不正にアクセスしたりする目的で意図的に作成されたソフトウェアの総称。