每個人都知道Linux沒有病毒,或者類似的東西。有人進而推論認為Linux對病毒之類的東西是免疫的,因為它設計的太棒了,Macs也是如此。其實這種觀點是錯誤的。
名為foobar的博客者在Geekzone中發表了一篇名為5個步驟寫出一個Linux病毒的文章,文章雖然名義上是寫如何制造Linux病毒的,實際卻是告訴讀者現實世界中病毒是如何工作的以及Linux是多麼的脆弱。
而且foobar文章的難點不在於如何在Linux上寫出攻擊性代碼,更重要的是如何感染其他Linux操作系統電腦。實際上,foobar的病毒攻擊基本上也就是特洛伊木馬攻擊,而且foobar明確指出特洛伊木馬攻擊是Windows病毒的常用模式。
有人指出foobar的攻擊並非嚴格意義上針對Linux的,而是GNOME或者KDE或者其他更高端軟件,這也的確是事實。實際上這給用戶提供了防范信息:許多人的電腦運行Linux,也便會有許多電腦運行GNOME或者KDE,攻擊後兩者便是攻擊Linux。當初對Windows的攻擊不也是先從攻擊Office、Flash和Acrobat等軟件開始的嗎?
Foobar采用在e-mail中添加附件來傳播病毒(當然郵件的標題要有吸引力來誘使用戶點擊),這種方式也不甚妥當。因為Windows上的e-mail程序會去除那些可執行的附件,而且Webmail服務器有AV殺毒浏覽,所以現在經常采用的方式是在e-mail中附加web鏈接來傳播病毒。在這一點上,Windows和Linux沒有太大的不同。
很重要的一點是如何讓病毒在Linux上執行,這也是一個難點。在Windows中,用戶一旦下載了文件並運行,只有執行許可(execute permissions)運行了他才可以執行文件。Windows有執行許可(execute permissions),但默認它們是開的。而foobar采用的方法與此類似:KDE 和GNOME有個叫做launchers的設備(其文件名的末尾是".desktop"),它可以不需要執行許可的詳細設置就執行一個單獨的命令。這是一個長久以來就存在的問題,也是foobar利用的Linux的主要弱點(應該說是KDE 和GNOME的主要弱點)。
Foobar博客的核心內容對我們而言並不陌生,但由此我們可以看到Windows上的病毒之所以多,並不是因為操作系統自身對病毒更友好,而是一些漏洞。而且幾乎每一種阻止病毒在Linux上發展的東西都采用在了Vista SP1中。
用戶如何應對呢?foobar建議不要點擊Linux上不明的附件,當然在Windows中還不要點擊web鏈接。而且他個人建議解決KDE 和GNOME中.desktop的漏洞。我懷疑這會遭來強烈的反對,因為作為終端用戶系統這大大降低了可用性和讀取性。
Foobar博客還揭示了其他問題:有許多特權提升(privilege elevation)的漏洞在各種需要本地讀取的Linux中,如果用戶沒有升級完全(Windows用戶也需要警惕這一點),foobar的病毒就會獲取你的本地讀取,同時攻擊決定利用哪一個特權提升(privilege elevation)bug。很多Linux用戶不知道如何升級漏洞補丁來阻擋特權進程(如Samba),從而將漏洞暴露給了黑客。