:(){ :|:& };:,叉子炸彈指令:它是如何運作的以及如何保護自己

  • 「fork 炸彈」是一種 DoS 攻擊,透過遞歸過程使系統資源飽和。
  • Unix/Linux 系統容易受到攻擊; Windows 需要更複雜的方法來複製攻擊。
  • 使用“ulimit”和 cgroup 有助於減輕影響並防止執行 fork 炸彈。

叉子炸彈

在電腦世界裡, 某些命令 乍一看它們似乎無害,但它們隱藏著破壞性的力量,如果惡意或意外使用,可能會導致整個系統崩潰。在這些命令中,最著名的(或不為人知的)和令人恐懼的命令之一是所謂的 叉子炸彈,或叉子炸彈。

Fork 炸彈只不過是一種拒絕服務 (DoS) 攻擊, 旨在消耗可用的系統資源例如CPU、記憶體等,到了無法使用的程度。如果您想知道這個命令是如何運作的,為什麼它如此有害,以及您可以採取哪些步驟來保護自己,在這裡您將找到您需要了解的所有內容,並以易於理解和詳細的方式進行解釋。

什麼是叉子炸彈?

叉子炸彈,也被稱為“兔子病毒”,因為它具有指數複製的傾向,是一種技術 使用大量進程創建來使系統飽和 操作。這是透過使用 Unix 和 Linux 系統上可用的 fork 功能的命令來實現的。 fork 函數允許程序建立自身的精確副本,稱為子程序。

與相關的最具代表性的命令 叉子炸彈 它是以下內容:

:(){:|:&};:

該命令的結構雖然緊湊,但功能卻非常強大。它的作用是定義一個名為的函數 :,它遞歸地調用自身,透過運算符在每次執行中產生兩個新進程 | 並在背景執行 &。結果是進程呈指數級增長,導致系統在幾秒鐘內崩潰。

叉式炸彈如何運作?

命令 :(){:|:&};: 一開始可能看起來很混亂,所以讓我們逐步分解:

  • ::此符號代表函數的名稱。實際上,您可以使用任何名稱。
  • () { }:此語法定義不帶任何參數的函數。
  • :|::一旦定義,函數呼叫自身,並且運算符 | 將其輸出重定向到其自身的新實例。
  • &:該符號在後台執行調用,允許同時建立進程。
  • ;:用作函數的定義與其初始執行之間的分隔符號。
  • ::最後,最後一個符號執行該函數,該函數啟動級聯進程。

一旦運行,fork炸彈會迅速消耗系統資源, 阻止運行新進程的能力 並且通常會強制強制重新啟動電腦。

易受攻擊的系統

幾乎 任何基於 Unix 或 Linux 的作業系統,例如 Ubuntu、Debian 或 Red Hat,很容易受到 fork 炸彈的攻擊,因為所有這些都使用 fork 系統呼叫。然而,系統 Windows 它們不易受到這種特定類型的攻擊,因為它們沒有分叉等效功能。相反,在 Windows 上,您必須以類似的方式建立一組新進程,但這需要更複雜的方法。

各種語言的叉子炸彈範例

La 叉子炸彈 它並不是 Bash 獨有的;它可以用其他程式語言實作。以下是一些範例:

Python 叉子炸彈

#!/usr/bin/env python import os while True: os.fork()

Java叉子炸彈

public class Bomb { public static void main(final String[] args) { while (true) { Runtime.getRuntime().exec("java Bomb"); } } } }

C叉炸彈

#包括int main(void) { while (1) { fork(); } } }

叉子炸彈的影響

叉子炸彈的主要影響是 系統過載。 CPU、記憶體和行程輸入等資源快速消耗,導致系統變得不穩定或無回應。在大多數情況下,您需要一個 強制重啟 重新取得控制權。此外,災難期間突然的應用程式行為也存在很大的資料遺失風險。

預防措施

儘管叉子炸彈具有毀滅性, 有一些方法可以減輕甚至預防其影響。 完全地:

1.限制進程數

命令 極限 在 Linux 中,它允許您設定使用者可以建立的最大進程數的限制。例如:

ulimit -u 5000

這限制了用戶最多擁有 5000 個活動進程.

2. 配置持久限制

若要永久套用限制,您可以修改文件 /etc/security/limits.conf。 例如:

硬用戶 nproc 5000

這確保了即使在用戶登出後限制仍然存在。

3. Cgroup的使用

在現代 Linux 系統上, 小組 (控制組)讓您對系統資源建立更精細的控制,包括系統資源的數量 允許的進程.

不要關注你在社群網路上看到的內容

這些類型的命令可能會作為惡作劇出現在社交網路上,因此我們必須小心,不要將它們告訴我們的內容輸入到終端中。不進一步,如果我們在 X 中放入“叉子炸彈”,我們會看到 對帖子的回复 上面寫著「你好,叉子炸彈」。不久前分享的原始貼文說有一隻貓的名字是 :(){ :|:& };: 並且你把它放在終端機裡。我們已經解釋了它的作用,所以不要這樣做。

叉子炸彈雖然概念簡單, 對脆弱的系統有深遠的影響。了解它的工作原理、影響以及緩解方法對於保護現代計算環境至關重要。它提醒我們一個簡單的命令如何導致災難性後果,也提醒我們適當的系統管理和設定安全邊界的重要性。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。