Linux 為什麼沒有病毒?為什麼沒有人攻擊?
文章來源:我來說Linux下的病毒!Linux是「不怕」病毒,不是Linux「沒有」病毒!轉帖
- Linux是「不怕」病毒,變成了Linux「沒有」病毒,這個論調歪的可以。確實,還有很多人在類似的一系列軟體上關於安全(的理解)有誤解,比如:firefox可以被病毒感染的,因為firefox沒有自帶殺毒軟體,所以firefox的安全也是神話。其實一點(也)不是,firefox的內部隔離制度,以及對ActiveX和VB的不支持本身就難以讓病毒利用。同理,關於Linux下的病毒少的原因,開始有人說Linux誕生年代少的有之,其實Linux作為一款Unix-like的系統,上面運行了多少BSD系列的程序,其設計思想和軟體都有經過比windows時間長的多的考驗。另外說病毒少的,或者運行Linux機器少的有之,經濟利益低下,以致於黑客不屑。其實真正運行大型商業數據的很多是Linux。而且Linux中心型的大型網站太多了,最起碼任何一個版本都有一個以上這樣的中心,如果按照數量論的說法,只要這些網站其中任何一個有問題都會大規模爆發,但是實際上沒有出現過這種問題。所以這些概念根本是在混淆視聽,如果真的這些能導致危害,Linux的經濟背景和數量一點不少,可惜,這些都是胡說。
- 其實從計算機病毒的概念來說,不就是惡意程序么,帶有自繁殖和破壞等特性。如果說系統不會有病毒,那麼就是說寫不出這種程序了,這本身不可能。雖然概念有些抽象,但是一個程序員惡意目的的寫一個能夠複製和增殖自己的程序有什麼難的,一個菜鳥Linux玩家也不用多久就能寫出(shell做這個很簡單,而Linux的shell又那麼好)。但是安全不是什麼防火牆和殺毒軟體以及一個「小心」或者「看」這樣簡單的辭彙來解決的,Linux早有一套對這種問題如何防範的方法了。
- 訪問控制矩陣是一個,Linuxer不厭其煩的輸入密碼再輸入,有時也非常討厭,但是很好的保證的系統缺少被惡意軟體修改的機會,一個病毒最多在非常有限範圍內實現增殖和內存消耗,但是無法危害整個系統。線程保護做得也不錯,那種許可權提升的空間被擠壓。每個版本自帶的過濾器,防火牆,很多版本是直接安裝的,雖然不配置不會怎麼好,但是好過沒有。而且快速的升級和修補,使得系統被利用的漏洞非常難以見到,而軟體的修補更加快速。
- 我記得有人這麼說:微軟的內核代碼是封閉的,按說應該更安全,但是有些時候偏偏比較奇怪,Linux開發的源碼更好的可以把病毒隱患消除在內核的層面。Linux經常暴內核漏洞,這是正常現象,不是缺點,這是優點,那是好多都是無數人在想在做這件事,為的是更加安全,不必大驚小怪,他們總是想:「這樣寫的內核,可能有什麼安全問題呢?」於是進行了修改,所以我們內核的升級和補丁不是被動的,而是很多時候主動的出現的,這種做法在Unix-like的系統中很常見,比如安全著稱的OB就是通過這種檢查方法從根本上減少安全問題,所以才有了問世6年時間無漏洞出現而10年時間只有2個輕微漏洞被發現的佳績。也就是說Unix-like類的系統一旦補上一個補丁,就消除了無數條隱患。而windows思維的就相反,windows很少能夠從內核級別打補丁,升級速度非常緩慢,所以很多補丁是治標的,不能治本,而且很多不是windows光補丁就能解決的,比如線程許可權控制,不可能因為病毒的存在,windows的結構就因此改變了。
- 而Linux軟體的開放性的另外一個好處是:他開源,他就接受大眾的監督和統一管理,病毒代碼很難藏身,而且現在Unix-like系統的軟體大部分不是像windows那樣隨意下載傳播,而是都有人維護和上傳的,一旦發生問題,很快就能定位,找出病毒來源。我很少見人不是從自己的源中安裝軟體,即使不是自己的源,也是sorceforge之類的網站,而二進位的安裝需要編譯,這就讓病毒傳播途徑截斷了,病毒在這裡遇到的是一個悖論:病毒要起作用就要讓形成可執行文件,而形成可執行文件病毒就失去作用。(ps:承認自己的無知,其實我不知道編譯會使病毒消失,這個不是我的研究結論)。對於大部分源內的二進位包,一般Linux軟體管理器都有強制的md5驗證機制,所以如果有病毒篡改,很容易就發現了。想散播病毒?Linux通過軟體來機會太少了。
- 當傳播途徑被截斷,利用漏洞被修補,觸發條件不能達成的時候,病毒——惡意程序——也無法成為效果上的病毒,只能算是多餘的程序罷了,而且很多時候他們連感染的能力都沒有了,來了的時候來,然後溫順的等到連同病毒文件一起被刪除。所以雖然Linux下也有不少殺毒軟體,主要是對付跨平台操作時windows上的病毒的。
- 總之:Linux「不怕」病毒,而不是Linux「沒有」病毒,借用某篇文章的結論:現在存在的 Linux 病毒僅僅是技術上的好奇;現實是沒有能養得活的 Linux 病毒。
謝 @biao bro。(呃...12年的問題...)
以往知乎有 先問是不是再問為什麼 的風氣,但是...算了,先不糾結這個,看完後也許會發現根本不是題主問的這回事。
為了通俗起見,題主所說的「病毒」應該是指包括 病毒、木馬等各類惡意軟體的總稱。
1、病毒為何而生?
為利益。當然你也可以說N年前大家仰望的黑客與黑客精神、炫技什麼的,但擱現在其數量不值一提。
考慮投入產出比,相對來說Windows投入少收益大,Linux嘛...軟體環境是一關,在Ubuntu發行版興風作浪的也許到Fedora這一發行版搞不好編譯都成問題;用戶質量又是一關,相當多的用戶自己都會寫代碼。大量的產出卻未必有期待的回報。如果是以利益為目標,在目標不清晰的情況下想靠在Linux撒網...我不知道他在想什麼...
當然,基於Linux的安卓因為改變了環境與用戶質量,所以它的病毒也就多了起來。
2、攻擊誰?
題主也許是基於個人PC用戶的角度說Linux沒人攻擊。剛才說了,是個吃力不討好的事情。
但是你要對於伺服器/集體組織(如公司、政府等),那就兩說了。在巨大的利益前(除了錢,包括為競爭對手帶來負面影響,竊取機密等),都不是問題。何況攻擊手段不僅僅局限在一個操作系統上,尤其人這種突破口也許更加有效。
當然有人說,Linux之所以安全是因為開源、社區驅動什麼的,相比之下並不是主要因素。
所以問題應該修正為:
為什麼Linux的PC個人用戶很少有病毒及攻擊?
拋開限定,這個問題就不成立了。
剛剛想放一個自己曾經答過的:為什麼這兩年沒再聽說有什麼大規模的電腦病毒爆發? - 翼風Fly 的回答
為什麼莫名消失了...[懵逼臉]
算了,先放這個吧:
翼·風:怎麼設置Windows的安全選項以達到不需要使用安全軟體的目的?
剛才我在上傳文件幫你 查毒的網站maldun,可以看到別人上傳文件的文件名,其中有兩個.deb,是linux的,還發現病毒了
推薦閱讀:
※效率源稱已破解比特幣勒索病毒是真是假?
※分析經典病毒熊貓燒香
※美國國安局「武器庫」泄漏,全球百餘國家遭殃,朝鮮或成最大贏家