フォークボムとは?定義、コード、防止、除去

更新済み: 2024年08月30日 読了目安時間: ~

 

この記事は機械翻訳されました。

 

フォーク爆弾は、サービス拒否攻撃です。小さなコードの一部がプロセスをレプリケートし、そのたびに、プログラムの新しいインスタンスが使用可能なシステムリソースをさらに枯渇させます。攻撃によってサーバーが限界に達すると、ITはクラッシュします。

フォーク爆弾は新しいものではありません。これらの攻撃の最初の例の1つは、1969年に起こりました。しかし、古い脅威が新しい脅威と同様に、システムをオフラインにする際にも同じように機能することがあります。

フォークボムはどのように機能しますか?

コンピュータ上でプロセスのインスタンスを何百、何千もの開くことを想像してみてください。ファンが回転し、パフォーマンスが遅れ、最終的にはデバイスがクラッシュします。フォーク爆弾もほぼ同じように機能します。

フォーク爆弾コードは、プログラムのコピーを作成します。新しいインスタンスが実行されると、フォークが再び行われます。このプロセスは、無期限に発生する場合もあれば、IT 部門が使用可能なすべてのメモリを使い果たすまで発生する場合もあります。 このような サービス拒否攻撃 は、壊滅的な被害をもたらす可能性があります。

フォーク爆弾の実装は、経験豊富なハッカーにとって比較的簡単です。ここでは詳しく説明しませんが (間違った考えを誰かに与えたくないため)、多くの場合、必要なコードはごくわずかです。

フォーク爆弾を防ぐことはできますか?

すべての developer の肩越しに座って、あなたに害を及ぼす可能性のあるコードを含めるのを防ぐことはできません。 しかし、フォーク爆弾がシステムをダウンさせる可能性を低くするために、2つの重要なことを行うことができます。

まず、1 人のユーザーが所有できるプロセスの最大数を制限します。これは、Linuxでは非常に簡単なタスクです。ユーザーが一握り以上のプロセスを所有しないようにすると、このような攻撃がすぐに発生することはありません。

また、プロセスごとのメモリ使用量を制限することもできます。設定した制限を超える制限がプロセスに必要な場合は、重複に対処している可能性が高く、すぐに実行を拒否できます。この簡単な手順で、フォーク爆弾がサーバーの容量を枯渇させるのを防ぐこともできます。

攻撃者がフォーク爆弾であなたを攻撃した場合は、サーバーをリセットする必要があります。そして残念ながら、攻撃を止めるためには、コードのすべてのインスタンスを削除する必要があります。

Linux環境で身を守るためのさらに多くの方法を探している場合は、 Linuxサーバーへの最小権限アクセスの強制に関するホワイトペーパーをご覧ください。 また、ご不明な点がございましたら、お気軽にOktaにご相談ください。

参考文献

Bash Fork Bomb コードを理解する。(2019年1月、ニックスクラフト。

Linuxベースのシステムでのフォーク爆弾攻撃に対するセキュリティ。(2019年4月)アドベントテクノロジーの研究の国際ジャーナル。

アイデンティティ施策を推進