搜尋此網誌

2009年1月17日 星期六

更新-說的比做的容易多了

在我之前的文章-Metasploit 初體驗-中,我們看到一個未經更新的系統,多麼容易就遭受到惡意份子的入侵。又在一份由Secunia所發表的報告中,顯示只有不到2%的電腦,是處於”完整”更新的狀態。更新,更新,更新!這個已經喊了多年,而且已經擁有許多自動化機制執行的功能,為什麼還是有這麼多電腦沒有辦法落實呢?

首先,我們必須知道目前的攻擊手法,已經從早期的作業系統,延伸到應用程式本身。當然,目前的趨勢是繼續朝攻擊應用系統的方向衍伸,但是這個部分產生的議題遠不只於更新而已。而目前自動更新機制,大多是作業系統自己的更新。以微軟來說,它可以更新作業系統,也可以更新它銷售的其他程式工具。但是對於電腦內所安裝的非微軟牌軟體,可就沒有任何更新的機制可以加以保護。而對於Linux而言,如果你是透過套件(RPM)的方式加以安裝,可以使用自動更新的方式。而自行下載安裝的程式,同樣無法提供保護。

作業系統如此,對於一般的應用程式呢?現在有越來越多的應用程式具備了檢查更新或自動更新的功能,但是問題在於並不是所有的應用程式都有這樣的功能。另外一個問題就是就算是具備了檢查或自動更新,當你使用應用程式開啟一個會攻擊這個應用程式的檔案時,應用程式本身可能在檢查的同時已經開啟完畢該攻擊用的檔案。Game Over!這樣的設計其實是可以理解的,因為如果都要檢查更新完畢才啟動的話,可能會造成使用者使用上的不順暢。這個問題的判斷,端看軟體廠商的取決。以Firefox而言,是採用先檢查才啟動的方式,不過也確實出現了抱怨的聲音。

以目前而言,沒有一個機制可以有效幫電腦找出所有需要更新的所有程式,所以也難怪幾乎沒有電腦處於”完整”更新的狀態了。進一步分析,電腦沒有更新的的原因往往包含了下列幾項:

  1. 電腦不適合自動更新(作業系統)。這個原因通常是對企業而言。因為企業有一些重要的系統,必須保持不中斷的運作。而自動化更新的結果,可能使得更新後的作業系統跟運作其上的應用系統不相容,所以必須經由人工的方式加以確認並更新。而對於微軟的作業系統,更新後頻繁的自動開機行為,更是對不中斷系統的一大限制。
  2. 電腦沒有辦法自動更新。有一些電腦因為公司政策的關係,沒有辦法連結網際網路,自然使得使用自動更新受到限制。這部分可以透過建置內部使用的更新伺服器加以解決。
  3. 使用盜版軟體或是付費更新服務期限已經過期。前者雖然是非法的行為,但是不可否認仍有不少使用者的電腦屬於此類。後者則可能存在於企業內使用如RedHat Linux這類必須付費的系統。不論原因為何,兩者都無法使用自動更新的機制,而必須透過手動的方式加以更新,而這樣的要求是違反一般人的習性。
  4. 應用程式千百種,沒有所謂版本標示的統一標準。為了判斷所謂的更新,除非是自己手動建立更新的資料庫,不然最簡單且方便的方法就是比對版本的編號,有新的版本編號就表示有了檔案可以更新。但是因為每個應用程式有自己版本編號的方式,要如何判斷出何為新的版本編號,往往不是這麼容易的工作。舉例來說ABC 2008跟ABC 2009算是更新還是不算?另外ABC 2008英文版跟ABC 2008中文版是同一個版本還是不同,不同的話要怎麼分別?這些都是自動化會遭遇的問題。
  5. 全世界的應用程式太多了,沒有單一組織可以收集完全,更別說去追蹤這些應用程式是不是有了更新檔。
  6. 有些應用程式的更新,其實只是新功能的加強,並不是原先的版本有甚麼安全性的問題。當然,這類的更新通常也表示你必須再花一筆錢,以便進行檔案的更新。
  7. 應用程式已經變成了孤兒。原因可能包含原先開發的人員或廠商,已經不在這個市場了。另外一個原因,就是產品本身已經進入了生命結束(End-of-Life)的階段。像微軟或RedHat這類具規模或是銷售重要軟體系統的公司,對於產品各個階段會有明確的時間表。但是其他應用程式,通常就是發生了你才知道(或者還不知道)。嚴格來說,如果發生這樣的問題,當然不算沒有更新,只能說你的電腦裡有了不安全的應用程式。但不管分類為何,結果都是一樣,就是電腦面臨了安全的威脅。
  8. 綠色軟體造成的”不便”。因為檢查更新的機制,需要先掃描電腦系統已經安裝的應用程式,然後據此加以比對而找出需要更新的程式。而綠色軟體的特色就是不需要安裝即可以馬上使用,所以造成更新程式無法判斷電腦系統內有此一應用程式的存在,自然就不會出現在建議更新的清單中。

是的,情況的確是不太樂觀。但是既然我們離不開電腦的使用,我們能做的就是盡量維護它的安全。好在有一些工具可以幫助我們解決這樣的問題,下一篇我就會介紹一些這樣的工具。

沒有留言:

張貼留言

About