[首頁] [RSS] [電子報] [網路電視]

2008年11月26日

[轉載] 防毒軟體的必要性

我認為防火牆是必要的。


有板友舉了許多的例子,認為防火牆是多餘的累贅,但是有許多的觀念我不贊同。
我很喜歡用機車作為例子,我認為實體安全和網路安全常有很多接近的地方:

在台灣機車被竊是很常見的事,而大家也知道機車停在路邊要鎖大鎖,
但是鎖大鎖不代表不會被盜,甚至碟煞鎖暗鎖磁石鎖都鎖了還是可能整台搬走,
而鎖了大鎖,遇到謝文苑教官之類的神手,可能十秒就開了。

"鎖了大鎖還是有被偷的可能","大鎖根本防不住真正的高手",這都是眾所皆知的事實,
但是我們把機車停在路邊還是會乖乖的鎖大鎖,這是為什麼呢?

最主要的原因是:
1.車子可能會被偷,但是我們不希望車子被偷
2.鎖大鎖可以降低被偷的風險
3.鎖大鎖的成本很低(只要一分鐘,而且大鎖買一次可以用很久)

同理:
1.電腦可能中毒,但是我們不希望電腦中毒 / 個人資料外洩
2.安裝防毒軟體 / 防火牆可以降低中毒 / 個人資料外洩的風險
3.防毒軟體 / 防火牆的成本(價格或是運算資源)可以很低,視你的選擇而定


◎ 下面我將一項項的描述我的觀點:

1.電腦可能透過網路而中毒 / 被入侵

定期的更新作業系統與應用軟體,可以降低中毒 / 被入侵的機會,
但是當一個弱點被發現,軟體卻還沒有更新,你的電腦就存在著被侵入的風險,
所謂的0-day Exploit(漏洞)就是指這種狀況。不偉大,但是它很危險,很容易快速擴散,
尤其是在防毒軟體的特徵碼還無法辨識該種病毒的時候(註1),
只要你的電腦接上網際網路,就會有被新的弱點攻擊的可能性。

另一種常聽到的說法是:我只是個無名小卒,我的電腦又沒什麼重要的資料,
駭客(Cracker)沒事何必來入侵我的電腦?因此不用裝防火牆也沒有關係。
這種說法,有點低估了你的電腦對駭客的價值。

首先,發動攻擊的往往不是本領高超的駭客,而是自動擴散的蠕蟲(worm),
這些惡意的程式進入受害者的電腦後,便開始全自動的在網路上隨意搜尋其他的電腦,
如果找到了存在著漏洞的電腦,就透過漏洞複製一份自己,感染這台新的電腦後,
再一次的週而復始的尋找下一個受害者。

這些蠕蟲寫作者最終的目的,除了個人資料之外,更可能連電腦的控制權一起拿走,
於是,某個人就可以利用你的電腦作為跳板,來攻擊其他人的電腦而避免追查;
(更慘的是,如果有什麼犯罪行為,追查下去,查到的會是你的電腦的IP Address)(註2)
或是在感染的電腦累積到一定數量後,動用這些電腦對某人進行大規模的分散式攻擊,
這些被控制的一大群電腦我們俗稱botnet,而這些電腦的使用者往往完全不知情。

如果某個利用0-day漏洞的蠕蟲問世,那麼就可能造重大的危害。
抱著"下一個不會是我"的僥倖心態,而讓自己的電腦缺乏保護,
不但可能害了自己,也可能會造成更多的感染。



2.安裝防火牆可以降低中毒 / 個人資料外洩的風險

運作正常的防火牆,可以防止蠕蟲攻擊,甚至是0-day攻擊,
因為,防火牆可以阻擋外來的,不正常的連線進入,進而降低被攻擊的風險,
用來觸發漏洞的不正常的連線被擋下來了,自然漏洞就無法用來被攻擊。(註4)

有板友提到"防火牆遇到規則沒定義的就放行",這邊有一點錯誤,
任何功能完整的防火牆,遇到未知規則時,預設動作應該是阻擋或是詢問,而不是放行;
如果對未知的規則做放行,那不是防火牆本身功能不完整,就是設定有誤。

另外有板友提到,防火牆列出的記錄檔(log)洋洋灑灑列了一大堆,
其目的根本是威脅要你購買商業軟體的理論,我認為是有一點多心了。
正常的防火牆軟體,只會把所監控到的事實給寫入記錄檔,
而事實就是每天來自蠕蟲的攻擊次數,遠遠的超過一般人的想像。
正因為如此,防火牆才是這麼的必要。

另一種情況,如果電腦被木馬(trojan)感染了,而防毒軟體沒有偵測到這個病毒,
那麼,運作正常的防火牆,應該也可以偵測到不明的程式試著向外連線(註3),
此時,我們也可以發現異常,並且做出處裡。
甚至有時候,明明是正常的軟體,我們卻不希望它存取網路時,防火牆也可以派上用場。

那麼防火牆軟體如果本身有漏洞的話,是不是反而會造成電腦的弱點?
沒錯,而且這種狀況也有發生過,像早期就出現過針對ZoneAlarm的弱點攻擊的蠕蟲,
但是我認為,防火牆軟體的漏洞被攻擊的可能性,
比起其他軟體,甚至是作業系統的漏洞被攻擊的可能性要低的多,

因此我認為,安裝防火牆可以降低電腦被入侵 / 中毒的可能性。



3.防火牆的成本

這裡所指的成本,包含兩個項目,一個是軟體授權的價格,一個是運算資源的成本。

市面上有很多防毒軟體都有內建防火牆的功能,比起單獨防毒軟體的版本約貴了數百元,
也有許多需要付費的軟體防火牆,價格在數百元到數千元不等。
是不是有這個需求,或是軟體值不值得這個價錢,則要看各人而定。

但是,經濟不景氣的狀況下,在板上大家最常推薦的還是免費軟體,
目前有很多防火牆除了付費版外,另有提供免費的版本,
這些免費軟體大多可以滿足一般使用,甚至有些功能上還超越部分付費軟體,
如果你是Unix-Like作業系統的使用者,更是有ipfw或是pf之類的軟體可供選擇,
如果不想再額外安裝軟體,WindowsXP在SP2以後也內建了半套的防火牆(註3)。

在不用錢的狀況下,我們所需要考慮的就剩下運算資源的成本了。
軟體是免費的,但是任何的軟體都會佔用CPU / 記憶體 / 硬碟的資源,這些也是成本,
但是,以我個人的經驗,防火牆在今日的個人電腦,其資源佔用量都不會太大。
以我手邊現在有的軟體來說:
Comodo Personal Firewall常駐約佔掉22MB的虛擬記憶體,硬碟空間57MB(不含LOG),
ZoneAlarm在常駐時約佔掉32MB的虛擬記憶體,硬碟空間32MB(不含LOG);
CPU使用率難以觀測,在我的AthlonX2 3800+上,開啟跟關閉Comodo感覺不到任何差異,
在我的P3-800上面,ZoneAlarm平時常駐的狀況,CPU使用率約在0% - 1% 之間擺動。

如果你的電腦速度不快,或許你可以考慮較省資源的產品,有很多選擇可供參考。
但是,以今日電腦的運算能力與記憶體大小,防火牆應該不會是太大的負擔。



電腦在網路(網際網路或是區域網路)上被攻擊的次數很頻繁,
被入侵後所造成的損失可能會很大,而且可能連帶的危害到別人,
但是只需要少數的運算資源,就可以降低電腦被入侵 / 中毒的可能性,

因此我認為,防火牆軟體是必要的。




如果是不了解網路相關知識,只會會基本操作的使用者,
我建議開啟Windows內建的防火牆,一般使用上感覺不到差異,卻可以避免很多危險。

如果你了解網路,並且對電腦操作小有心得,我建議你選擇一套軟體防火牆,
依照自己的需求自訂規則,把規則以外的連線設為"詢問",藉以掌握自己的連線狀況。



另外,我認為軟體防火牆使用上,有下面幾點要注意的:

首先,防火牆也要定期更新,才能避免防火牆自己的漏洞變成弱點的可能性,

接著,防火牆應該設為常駐,並且當出現警示時,仔細的閱讀訊息後,再做出判斷。
就像板標說的,裝了防火牆設為不防護那裝它幹麻......

最後,也是最重要的,保持良好的習慣,才是保持自己電腦安全的最好方法。
沒有一套防毒軟體可以100%保證使用者不會中毒,
也沒有一套防火牆可以100%保證絕對不會被入侵,不管是硬體或是軟體防火牆。



如果內文有誤,或是有遺漏之處,歡迎各位先進補完。

補充:
如果有人有興趣想轉載本篇文章,本篇文章採用CC-BY-NC-SA 2.5的方式授權,請參考
http://creativecommons.org/licenses/by-nc-sa/2.5/tw/


註1:這也是很多防毒軟體要加入啟發式掃描 / 行為腳本的原因;
但是這篇主題不是防毒軟體,所以不想扯太遠。

註2:數位鑑識(digital forensic)是一門很大的學問,不是只有紀錄IP位址而已,
但是一般受到了什麼攻擊,第一個得到的資訊大概就是LOG中的IP位址,
至於被作為跳板的電腦能不能查到原來的兇手是誰,則很不一定。
現實的狀況是,往往被作為跳板後,計中把你的IP停權,而不會把你的電腦拿來找真兇。

註3:微軟在WindowsXP內建的防火牆似乎只監控外面連入的連線,
而無法監控從內連外的連線,因此我認為他只算是半套防火牆。
但是就算是半套,能擋下不請自來的外部連現已經可以檔下很多的攻擊了。

註4:這和漏洞的位置是在哪裡也有關聯。
如果在packet handler就有漏洞,那可能還沒到防火牆那層就爆了......

這也是IP分享器可以拿來充當簡易硬體防火牆的原因,
因為它內部是一個NAT,所以躲在NAT後面外面鐵定連不進來,
除非你要把機器的RTOS給攻下來,這又是另一種狀況了......


來源:PTT