建構安全的電腦上網環境與入侵防範
作者: TWNIC• 蔡更達 (2005/12/15)

隨著科技的進步,網路的快速普及,讓人們可以用較迅速的管道進行資訊的分享和交換,而寬頻網路的發展,更使一般使用者可以很容易地存取網路,獲取大量資訊。拜網路普及之賜,接取網路的成本降低,部分使用者甚至已經能夠由資訊的消費者,轉而成為資訊的提供者,利用個人上網的主機建置站台來提供服務。然而,網路的普及也意味著使用者上網習慣的改變。隨著 P2P 軟體的普及及尋找檔案的快速與方便性,許多使用者會將電腦 24 小時開機,以存取更多的網路資源。於是乎,連上網路的時間增長,遇到問題的機會便增加了。

因為電腦的作業系統與程式是由人所撰寫的,既然是由人所撰寫的,或多或少會有一些問題,差別在於會不會影響系統的運作或是有沒有被人發現,另外有些比較嚴重的問題會造成所謂的安全弱點 (vulnerability) 。 “ 安全弱點 ” 與一般軟體所含的 “ 臭蟲 (bug)” 、程式錯誤有些類似,但是是有一些區別的,最主要的差別在於一般的臭蟲可能只會使應用程式當掉,或者運算及處理錯誤,而安全弱點除了這些現象之外,還可能產生安全上的漏洞,例如讓遠端入侵者取得管理者權限,或者在系統上種植後門、讓電腦無法正常運作、達到阻斷攻擊的目的等等。因為網路的普及,利用這些安全弱點的攻擊也變的更為泛濫,而當使用者的電腦連上網路的時間愈長,意圖攻擊的人便有更充裕的時間尋找入侵目標、探測該目標含有多少可以利用的安全弱點,進而設計出可行的入侵方式。由於各種軟硬體都可能含有安全弱點,這些弱點的存在將導致使用者遭遇各種探測或入侵行為。面對這個情況,使用者該如何自保?在可能的入侵發生之前,使用者可以採行下列幾點建議,以防範入侵的發生,並降低入侵造成的損失。


一、系統與程式最小安裝


要確保我們的電腦能夠達到最安全的狀態,最好能夠從安裝作業系統開始,如此我們
才能夠掌握所有的資訊。如果需接手一部他人使用過的電腦,最好能夠將整個作業系統重新安裝一次,或者讓系統或軟體回復到安裝預設值,因為我們不曉得或是不清楚前一個使用者的習慣,或是他不小心自己也在無意中安裝了有問題的軟體,在系統中成為攻擊者進出的後門。一般而言,作業系統或應用程式通常會有 “ 安裝預設 ” 的選項,以決定哪些元件安裝與否。同時,為了因應不同的用途和不同層級的使用者,這些軟體可能會有不同的版本或不同的安裝預設值,也會讓更進階的使用者自行挑選需要安裝的元件。在這部分有個原則就是,不需要的軟體 / 元件不要安裝,亦即最小安裝。類似前言所述,使用者上網時間的增長讓入侵者有更多機會,使用者安裝軟體的增加也會有相同的效果。在一個用於工作的主機而言,不必要的軟體就不應該安裝。而已知有安全弱點的軟體也應該捨棄不安裝,或者安裝較新、較安全的版本。


二、修改預設的設定值

除了設計不週全造成的安全弱點之外,有不少的問題出自於不安全的設定值。舉例來說,有許多郵件主機 (SMTP server) 被檢舉散發大量廣告信,就是因為該 server 並沒有在設定檔中限制可以使用該主機寄發信件的使用者或來源 IP ,因此發送廣告信的業者便利用這些主機,發送大量廣告信,而不會被追查到。又例如部分版本的 DNS server ,並未限制使用 Zone Transfer 的查詢指令,使得所有人皆可以查得該網域內所有主機的相關資訊,甚至網路架構,導致極大的安全威脅。類似的情況在各個系統或軟體中皆可見到。因此,在我們仔細過濾需要安裝的元件之後,接下來的步驟便是檢查這些系統或軟體設定檔是否有設定上的疏忽。這部分包含範圍很廣,從儲存使用者密碼採用的編碼方式、密碼的長度、限制登入的次數,到軟體的功能限制、檔案系統的存取限制,以及上述對外提供服務的各種限制等,端視該主機所安裝的軟體及所要提供的功能來決定。這也是系統 / 網路管理的一項重要工作。管理者在設定檔這部分,除了考量功能性之外,最主要必須留意伴隨安裝預設值而來的不安全的設定檔。這一類的資訊通常會包含在各廠商發布的安全通報或修正程式當中。


三、安裝安全修正程式

在作業系統及必要的軟體安裝完畢之後,有一個很重要的工作要做,那就是安裝安全修正程式。通常開發軟體的廠商在得知其軟體有臭蟲或是安全弱點的時候,都會發布安全公告及相對應的修改程式以方便使用者進行系統、軟體的更新、修補,以修正這些安全性的問題,但這些修正程式的發布有些廠商會採用固定時間定期發佈,有些廠商則是不定期的公告相關的資訊,較輕微的或者只是臭蟲的問題,可能就會在累積一段時日或是一定數量之後公佈。使用者在安裝完作業系統及應用軟體之後,應該要在一個受到保護與隔離的環境中 ( 如 NAT 隔開的內部網路 ) 立刻上網檢查廠商是否有提供安全修正程式,並進行安裝。通常修正程式的安裝分為兩種,一種是提供原始程式碼的修正部份,由使用者自行更新原始碼並進行重新編譯,另外一種則是直接取得更新過的二進位檔,進行替換或補充。以微軟的 Windows 作業系統為例,在 Windows 2000 之後開發的系統中內建有 Windows Update 程式,可以協助使用者方便進行線上更新,以確保使用者的系統處於目前最安全的狀態。對於沒有提供使用者自動線上更新的系統或應用程式,使用者就必須時常留意各廠商發布的安全通報及修正程式,及早將主機上的安全漏洞修補起來。


四、安裝安全防護程式


當我們完成系統安裝,修改了一些預設設定並執行了修正程式的安裝之後,這個主機大抵上已經算有一定的安全性,然而,並不是所有的安全弱點都有修正程式可以安裝,甚至有些安全弱點還未被發現。另外,還有一些安全問題並不能利用程式的更新來保護,例如電腦病毒的感染。因此,我們需要安裝一些安全防護程式。所謂的安全防護程式大抵分為下列三類:

1. 防毒 / 掃毒程式
關於防毒程式,應該是大家都很熟悉的了。早從 DOS 的時代,各種防毒軟體便已經相當競爭。隨著作業系統與應用程式的演進,防毒軟體防禦的也不再只是單純的開機型病毒或檔案型病毒。目前造成嚴重災情的病毒多半是網蟲型式,如 Blaster,Sasser 等,網蟲的散播管道包括自動散發郵件、自動連結網路、分享資料夾等,防毒軟體可以利用保護檔案的能力,偵測這些網蟲的感染活動,以保護系統不致中毒 ( 但系統弱點還是需要修補正更新 ) 。另外,巨集病毒及網頁病毒也是目前常見的病毒,使用者開啟含有巨集功能的文件時,由於本地端的執行程式有較高的執行權限,因此巨集病毒經常會造成蠻大的破壞。而網頁中內含 Java Script 或 VBScript ,當這些 script 是具有惡意的程式時,使用者瀏覽這些網頁便會造成一些問題。雖然 script 的 執行可以透過瀏覽器的設定來加以限制,其權限也沒有那麼高,但是一般使用者可能較不熟悉這些設定方式,同時也有一些無法將 script 功能關閉的情況,因此防毒軟體可以保護使用者瀏覽網頁時的安全性。

2. 防火牆
防火牆與防毒軟體一樣,都是歷史相當悠久的安全防護工具。前面提到並不是所有安全弱點都可以靠安裝修正程式來解決,因此一些尚無修正程式或是無法利用此方法的問題,就必須靠其他方式來防範。防火牆主要用在網路的存取控制,通常單位會利用防火牆來限制某些主機服務只能在單位內部存取,然而,若有些網路服務含有安全弱點,卻無法關閉也沒有修正程式,則可用防火牆阻擋這個服務的存取,達到保護的目的。

另外家用寬頻網路使用者可以安裝個人型的防火牆,以阻擋來自網路上的各種探測行為。由於部分的家庭使用者並沒有很深入的網路安全知識,對於家中的電腦並沒有因為連上寬頻網路而有進一步的保護,因此很容易被探測與入侵。若能夠安裝個人型防火牆,就可以初步保護自己的電腦。

3. 入侵偵測系統
關於防範入侵,或許目前大部分的人都會直覺地想到入侵偵測系統。事實上,入侵偵測系統對於企業組織的效用較大,對於個人的幫助則較小。由於企業的網路可能相當龐大與複雜,以人力來對單一系統進行檢查可能有困難之處,因此企業網路可以就其需求來部署入侵偵測系統。根據 CMU CERT/CC 的研究建議,企業決定如何部署防火牆或入侵偵測系統時,可以用下列三個步驟來找出適當方案。

01. 找出組織中最有價值、最可能吸引入侵的部分;
02. 找出組織中最脆弱、最容易被入侵的部分;
03. 取得 (1) 和 (2) 交集的部分,這些交集的部分就是企業中的網路需要部署防火牆及入侵偵測系統的地方。
對個人而言,單機版的 IDS 很容易拖累主機的效能,同時 IDS 的誤判經常造成使用者不必要的恐慌,因此若非必要,個人型的 IDS 並不建議安裝。


五、定期的檢查與稽核


  在安裝了各類的安全防護程式之後,我們算是完成了使用電腦的前置作業,之後便可以進行日常的操作使用。而後續的防護工作便是定期的對系統進行檢查與稽核,這是最重要的部分,因為未來若懷疑有入侵的發生,這些定期的檢查結果可以提供相當好的判斷依據,而定期的稽核則可以幫助使用者了解目前主機的安全情況。
下列幾項的檢查可以保護系統,或協助了解系統的情況:

1. 病毒掃描
  雖然防毒軟體平時可以開在自動防護的功能,確保每一次檔案的存取都不會遭受病毒攻擊,但是由於整個系統的檔案相當繁多,因此仍然需要定期的對整個系統進行病毒掃描比較恰當。

2. 木馬 / 後門程式掃描
  在 Windows 平台上,通常防毒軟體可以偵測大部分已知的木馬或後門程式。而在 Unix-like 平台上,則可以使用如 chkrootkit,rkhunt 等工具來檢查是否被植入後門。雖然並不是所有的後門程式都可以被檢查出來,但是這項檢測仍有助於對系統的了解。

3. 通訊埠掃描
  通訊埠掃描主要用來了解主機究竟開啟了多少網路服務。許多使用者透過這項掃描,才知道自己的主機儘管沒有提供對外的服務,卻仍然是大門洞開,其他人可以輕易地進入主機內瀏覽目錄及檔案。透過檢測結果,使用者應該視需要去關閉一些安裝後預設開啟的服務,或是利用防火牆將這些通訊埠的連線隔絕起來,以免被有心人士加以利用。

4. 弱點掃描
  弱點掃描可說是通訊埠掃描的進階,通常要檢查的是提供服務的這些伺服端程式 (server program) 是否有安全上的漏洞。這種掃描通常都是將一些較簡單的滲透測試的方法加以自動化,以非惡意的方式模擬入侵的行為,當受測的 server program 有某些形式的回應時,就代表這個程式有安全上的漏洞。而弱點掃描程式通常也會持續更新,當新的安全弱點被揭露時,新的檢測項目便會加入這個掃描系統。因此,使用者應該經常留意各單位所發布的安全通報,當發現自己安裝的軟體被找出新的安全問題時,盡速安裝修正程式,並利用相對應的檢測項目來確定是否已經沒有這個安全漏洞。


六、良好使用習慣

一般人經常以為,安裝了防毒軟體、防火牆,甚至是入侵偵測系統之後,便可以高枕無憂,從此不會再有網路安全的問題,其實這觀念是不正確的。最重要的,還是使用者對網路安全的知識是否足夠,以及是否有良好的使用習慣。有一部分習慣良好的使用者,甚至可以不必安裝上述的安全防護程式,但仍可以避免大部分的電腦病毒或是入侵行為,而也有更多的使用者,雖然裝了許多套防毒軟體、防火牆,卻仍然會中毒或被入侵。而究竟什麼是良好的使用習慣呢?除了上面已經提到的,系統及程式最小安裝,不需要的軟體不安裝,不需要的服務不要啟動等等,其他的還有例如密碼使用的習慣。大部分使用者都是以同一個密碼用在所有的場合,例如主機登入,網頁服務登入,郵件服務登入等等,而使用的密碼也都是簡單的英文單字或數字混合,極容易被密碼猜測程式破解。較好的密碼至少要有 八碼 ,並且混何利用字母、數字、特殊符號等,而不要用簡單的英文單字或是日期等容易被猜測的字串。同時也不要將密碼寫在任何地方,因為使用者所能想到藏匿密碼的地方,通常他人也能想到。

另外,對於網路的使用,若能夠採用加密通訊,則能降低受到入侵的可能性,因為若採用明文傳輸,在網路上容易引來他人的好奇心,進而引發入侵的意圖。目前大部分的網路服務都已經提供加密的版本,例如遠端主機登入可使用 SSH ,收信使用的 POP3 及寄信使用的 SMTP 都支援 SSL 加密,網頁的連結亦提供了 SSL 加密。對於重要主機的存取,更需要利用加密通訊。目前許多單位規定使用者在辦公室之外存取辦公室內主機時,必須透過 VPN 連線,即是很好的方式。然而,關於使用習慣方面,使用者最需要注意的應該還是 “ 社交工程 ” 的攻擊。目前仍時常傳出有使用者被騙取密碼的事件,因此使用者不可不注意。由於這是技術層面無法顧及的部分,唯有靠使用者自己的警覺,以及企業組織安全政策的推行,才能較有效率的防止。


本篇文章由TWNIC提供

1 2 3 4 5 6 7 8 9 10 11 12 13 14
 
 

財團法人台灣網路資訊中心
臺北市羅斯福路二段9號4樓之2 網路客服:http://www.twnic.net.tw/service/
Tel:+886-2-2341-1313 Fax:+886-2-2396-8832
版權聲明,禁止未經授權轉貼節錄