1. 程式人生 > >Linux系統下為何病毒少?原因竟是這個?

Linux系統下為何病毒少?原因竟是這個?

  Linux系統下為何病毒少?原因竟是這個?

  可能不少人持這樣一種觀點,認為 Linux 病毒少是因為Linux不像Windows那麼普及,其實這種觀點很早已經被人批駁過了,一個最有力的論據是:如果寫病毒的人寫 Windows 病毒是因為 Windows 使用者多而因此破壞性大,那麼 Internet 上大多數伺服器都是基於 Unix/Linux 的,攻擊這些伺服器,破壞性豈不是更大麼?

Linux系統下為何病毒少?原因竟是這個?

  對一個二進位制的 Linux 病毒,要感染可執行檔案,這些可執行檔案對啟動這個病毒的使用者一定要是可寫的。而實際情況通常並不是這樣的。實際情況通常是,程式被 root 擁有,使用者通過無特權的帳號執行。而且,越是沒有經驗的使用者,他擁有可執行檔案的可能性就越小。因此,越是不瞭解這種危險的使用者的主目錄越不適合病毒繁殖。

  即使這個病毒成功地感染了這個使用者擁有的一個程式,由於這個使用者許可權受限,它進一步傳播的任務也會非常困難(當然,對於執行單使用者系統的 Linux 新手,這個論證可能不適用。這樣的使用者可能會對 root 帳戶比較粗心)。

  Linux 網路程式構建地很保守,沒有使現在 Windows 病毒如此快速傳播變的可能的高階巨集工具。這並不是 Linux 的固有特徵;它僅僅是兩種使用者基礎的不同和這種不同導致的在這兩種市場中的成功產品的不同的反映。通過觀察這些問題學到的經驗也會被用到將來的 Linux 產品中。

  Linux的應用軟體和系統軟體幾乎都是開源的。這對病毒有兩方面的影響。首先,病毒很難藏身於開源的程式碼中間。其次,對僅有二進位制的病毒,一次新的編譯安裝就截斷了病毒一個主要的傳播途徑。雖然 Linux 發行商也提供大量的二進位制軟體包,但是使用者大都是從發行商提供的可靠的軟體倉庫中下載這些軟體包,大都具有 md5 驗證機制,安全性極高。

  這些障礙每一個都是病毒成功傳播的一個重要阻礙。然而當把他們放在一起考慮的時候,基本的問題才浮現出來。

  一個計算機病毒,像生物病毒一樣,要想傳播開來,其繁殖速度必須超過其死亡(被消滅)的速度。上面提到的障礙有效地降低了 Linux 病毒的繁殖速度。如果它的繁殖速度降到取代原來種群所需要的閾值之下,那麼這個病毒的厄運從一開始就註定了——甚至在潛在受害人意識到它們之前。

  我們沒有看到一個真正的 Linux 病毒瘋狂傳播,原因就在於存在的 Linux 病毒中沒有一個能夠在 Linux 提供的敵對的環境中茁壯成長。現在存在的 Linux 病毒僅僅是技術上的好奇;現實是沒有能養得活的 Linux 病毒。

  當然,這並不意味著永遠沒有 Linux 病毒能夠流行。然而它確實意味著一個成功的 Linux 病毒要在不適合生存的 Linux 生態系統中存活下來必須是精心製作並具創新的。