資料來源:
台灣電腦網路危機處理中心通訊 第五十七期 2003/07
http://www.cert.org.tw/document/newsletter

*************

近代科技發展快速,一日千里。網路的興起,讓人們可以用較迅速的管道進行資訊的分享和交換,而家用寬頻網路的技術,更使一般使用者可以很容易地存取網路,獲取大量資訊。拜網路普及之賜,接取網路的成本降低,部分使用者甚至已經能夠由資訊的消費者,轉而成為資訊的提供者,利用個人上網的主機建置站台來提供服務。然而,家用寬頻網路的普及也意味著使用者上網習慣的改變。在過去使用電話線撥接上網的時期,使用者多半會斤斤計較連線的時間,但在寬頻網路計費方式的驅使之下,許多使用者會將電腦24小時開機,以存取更多的網路資源。於是乎,連上網路的時間增長,遇到問題的機會便增加了。

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

一、系統與程式最小安裝

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

二、安全的設定

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

除了一些設定檔預設值的問題之外,這邊也要留意到系統記錄的設定。設定系統與應用程式在何情況下必須留下記錄,有助於在往後若受到入侵,可以有些記錄可供追蹤。在Windows 平台上,可以在“系統安全性原則”內設定一些記錄項目,在 Unix-like 平台上,則可以設定使用 syslog 來進行記錄。

三、安裝安全修正程式

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

四、安裝安全防護程式

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

1.防毒/掃毒程式

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

2.防火牆

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

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

3.入侵偵測系統

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

(1)找出組織中最有價值、最可能吸引入侵的部分;
(2)找出組織中最脆弱、最容易被入侵的部分;
(3)取得 (1) 和 (2) 交集的部分,這些交集的部分就是企業中的網路需要部署防火牆及入侵偵測系統的地方。

對個人而言,單機版的 IDS 很容易拖累主機的效能,同時IDS的誤判經常造成使用者不必要的恐慌,因此若非必要,個人型的 IDS 並不建議安裝。

五、定期檢查與稽核

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

1.病毒掃描

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

2.木馬/後門程式掃描

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

3.通訊埠掃描

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

4.弱點掃描

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

六、良好使用習慣

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

另外,對於網路的使用,若能夠採用加密通訊,則能降低受到入侵的可能性,因為若採用明文傳輸,在網路上容易引來他人的好奇心,進而引發入侵的意圖。目前大部分的網路服務都已經提供加密的版本,例如遠端主機登入可使用SSH,收信使用的POP3及寄信使用的SMTP都支援SSL加密,網頁的連結亦提供了SSL加密。對於重要主機的存取,更需要利用加密通訊。目前許多單位規定使用者在辦公室之外存取辦公室內主機時,必須透過 VPN 連線,即是很好的方式。  

然而,關於使用習慣方面,使用者最需要注意的應該還是“社交工程”的攻擊。目前仍時常傳出有使用者被騙取密碼的事件,因此使用者不可不注意。由於這是技術層面無法顧及的部分,唯有靠使用者自己的警覺,以及企業組織安全政策的推行,才能較有效率的防止。

結論

在本文中,我們將系統受到可能入侵之前的時間分為數個階段,一一說明可能的安全問題及建議的解決方式。事實上,預防入侵最主要的關鍵在於平常能夠定期的對系統進行檢測及記錄,如此一來當懷疑發生入侵事件時,才能夠有充足的資料可以作為判斷的依據。

此外,由於家用寬頻網路的普及,家庭網路所涵蓋的IP區段已經成為入侵者最喜愛的目標了。不少入侵者在這些保護不週的家用主機上建立了為數不少的後門網路,藉此進行資源竊用,或者作為攻擊跳板或前哨站。面對這種新的威脅,除了網管人員必須小心監控網路上各種異常行為外,每一位使用者都可以透過上述幾個步驟,來增進個人使用主機的安全性,以減少被攻擊的機會,達到預防勝於治療的效果。