人們在日常生活中所遇到的計算機安全問題,一部分是由于某項產品的缺陷所導致,還有一部分則是在使用產品時人為錯誤所致。有關專家開發出類似這些問題的清單,稱之為“十個不變的安全性法則”。
別費神等待防止以下所討論問題發生的補丁程序上市。微軟或其它軟件廠商不可能“修好”這些問題,因為這些問題是因計算機的運作方式而產生。但也別完全絕望,明智的判斷力是防止這些問題在您身上發生的關鍵。如果您牢記這些法則,便可以顯著的改善您系統的安全性。
法則一 如果動機不良的人能夠說服您在自己計算機上執行他的程序,那么該計算機便不再屬于您。
這是計算機科學不幸的事實:當計算機程序執行時,不管該程序是否有害,它會遵照程序指示作業。當您選擇執行一個程序時,這個決定便把計算機的控制權托付給該程序。一旦程序開始執行,可能會做任何事情,但不會超越您在計算機上所能做的事。程序可以監視您的按鍵輸入并傳送到網站、打開計算機上的每一個文件,并將所有文件中的“會”這個字變更為“不會”、傳送粗魯無禮的電子郵件給您所有的朋友、安裝病毒、建立“后門”讓他人遠程控制您的計算機、撥接到尼泊爾加德滿都的 ISP,或者把您的硬盤重新格式化。
所以這點非常重要:永遠不要從不能信任的資源執行甚至下載程序,而“資源”所指的是寫程序而不是給您程序的人。執行程序與吃三明治是很好的模擬:如果有個陌生人走到您面前,給您一塊三明治,您會吃嗎?恐怕不會吧;如果是您最好的朋友給您三明治呢?您可能會吃,也可能不會吃,得看她是自己做的還是在路上撿到的。將三明治情境中使用的判斷思考應用到程序上,您多半會很安全。
法則二 如果動機不良的人能夠在您的計算機上變更操作系統,那么該計算機便不再屬于您。
操作系統最終不過是一系列的 0 與 1,被處理器解譯時,會引發計算機做特定的事件,而 0 與 1 改變時,會完成不同的事件。0 與 1 儲存在哪里呢?就是與其它東西共同存在計算機上!它們只是文件,但如果其它使用計算機的人可以變更這些文件,那就不妙了。
要了解原因,就要把操作系統文件,想象成計算機中最能夠信任的文件,且通常是以系統層次的特殊權限執行,也就是說它們可以做任何的事情。此外,可以信任它們管理使用者賬戶、處理密碼變更,以及執行誰可以做什么的支配規則。如果一個動機不良的人變更這些文件,這些文件就變得無法信任,并且會做此人叫它們做的事,因此沒有什么他辦不到的事。他可以竊取密碼,讓他自己成為計算機的系統管理員,或是新增全新的功能到操作系統。為預防這類型的攻擊,請確定系統文件 (與登錄文件) 的保護周全 。
法則三 如果動機不良的人能夠無限制地實體存取您的計算機,那么該計算機便不再屬于您。
如果一個動機不良的人能夠使用您的計算機,他可以做的事情不少。這里列出從石器時代到太空時代的取樣:
·他可以發動技術性極低的拒絕服務攻擊,并用大錘砸爛您的計算機。
·他可以把計算機的插座拔掉,把它運到大樓外面,然后以它要挾贖金。
·他可以用磁盤開機,重新格式化您的硬盤。但是等一等,您說:“計算機開機時,計算機上的 BIOS 有設定提示輸入密碼。”這沒什么難的,他大可打開計算機機殼,變更系統硬件,更換 BIOS 的芯片 (其實,還有很多更容易的方式)。
·他可以把您的硬盤從您的計算機移除,然后把它安裝到他的計算機并閱讀里面的東西。
·他可以復制您的硬盤然后帶回他的窩。在那里,他有足夠的時間進行暴力攻擊,例如嘗試所有可能的登入密碼。有可用的程序自動化這個工作,假如時間足夠,毫無疑問的他會成功。成功后,前述的法則 1 與法則 2 就派上用場了。
·他可以將您的鍵盤替換成裝有無線發報機的鍵盤,監視您輸入的所有訊息,包括您的密碼。
要永遠確定計算機實體的保護與其價值成正比,并記住計算機的價值不是只有硬件的部分,還包括其中的數據以及動機不良之人得以存取您網絡的價值。商業關鍵性的機器,至少要放在上鎖的機房,只讓系統管理員或維修人員存取。但是您可能也要考慮保護其它的計算機,并可能使用額外的保護措施。
如果您帶著筆記型計算機旅行,對它的保護絕對很重要。體積小、重量輕等讓筆記型計算機成為旅行良伴的特性,也是讓它們非常容易遭竊的原因。目前有筆記型計算機可用的鎖與警鈴,有的計算機還能讓您取下硬盤并隨身攜帶。您也可以使用像是 Windows 2000 加密文件系統的功能,有人成功竊取計算機時可以減輕損害。但是可以讓您完全確定文件數據安全與硬件未被變動的唯一方式,就是在旅行時永遠將筆記型計算機隨身攜帶。
法則四 如果您允許動機不良的人上載程序到您的網站,那么該網站便不再屬于您。
這個法則基本上與法則 1 相反。在法則 1 的狀況中,動機不良的人耍花招,讓受害者下載有害的程序到他的計算機并執行該程序。在法則 4 的狀況中,動機不良的人則上載有害的程序到別人的計算機里,并自行執行該程序。雖然當您隨時讓陌生人聯機到您的計算機時,就會有這樣的危險,但是網站涉及的案例絕大多數都是這一種。許多營運網站的人為了自己的好處而過于好客,讓訪客上載與執行程序。如同前面所述,如果動機不良的人能夠在您計算機上執行程序,令人不悅的事就會發生。
如果您手上有網站在營運,必須限制訪客所能做的事情。在您的網站上,應該只允許自己或可信任之開發者所寫的程序。但這些措施可能還不夠,如果您的網站是與其它網站裝載于共享的服務器上,您需要特別小心。如果動機不良的人有辦法拖累其它網站之一,那他很有可能會擴充他的控制到服務器本身,因而可以控制所有在上面的網站,包括您的在內。如果您是在共享服務器上,了解該服務器系統管理員的政策是什么就很重要 (順道一提,在使您的網站公開化前,要確定您已經遵循 IIS 4.0 與 IIS 5.0 的安全檢查清單的指示)。
法則五 強大的安全性敵不過脆弱的密碼。
登入程序的目的在于建立您的身份。一旦操作系統知道您的身份,就可以適當的授與或拒絕對系統資源的要求。如果動機不良的人取得您的密碼,他便可用您的身份登入。事實上對操作系統而言,這個動機不良的人就是您。您在系統上能做什么他都可以做,因為他就是就是您。或許他要讀取您儲存在計算機上的敏感信息,例如您的電子郵件;或許您在網絡上比他的權限大,所以借用您的身份便可以做平時不能做的事;或許他只想做壞事然后怪罪到您身上;不管如何,保護您的信譽是值得的。
永遠使用密碼。令人驚訝的是,有許多賬戶竟然使用空白密碼。請選擇一個復雜的密碼,不要使用狗的名字、周年紀念日期或地方球隊名稱,還有,別用 ”password” 這個字當密碼!選一個混合英文、字母大小寫、數字、標點符號等等的密碼,讓它愈長愈好,并且常常變更。一旦選取了穩當的密碼,要適當加以處理,不要寫下
來。如果您一定要把它寫下來,至少把它放到安全或可以上鎖的抽屜中。一個動機不良的人在找密碼時,第一個會找的地方就是在您屏幕旁邊的黃.色小標簽紙。不要告訴別人您的密碼,記得富蘭克林曾說:“若要兩個人保守秘密,只有其中一人死掉才有可能成立。”
最后,要考慮在系統中使用比密碼更強力的東西識別自己。舉例來說,Windows 2000 支持智能卡的使用,可以顯著加強系統所能執行的識別碼檢查。您也可以考慮生物測量 (biometric) 的產品,像是指紋與視網模掃描儀。
法則六 計算機的安全性只等同于可靠的系統管理員。
每臺計算機須有位系統管理員:這個人能夠安裝軟件、設定操作系統、新增與管理使用者賬戶、建立安全性政策,與處理所有其它有關保持計算機開機與運作的管理工作。根據定義,這些工作必須在系統管理員能夠控制計算機的情況下運作,如此系統管理員的地位有著無與倫比的力量。一位不可信任的系統管理員能反轉所有您采取的安全措施。他可以變更計算機上的使用權限、變更系統安全性政策、安裝有害的軟件、新增不存在的使用者,或是做其它各式各樣的事情。事實上,他可以破壞任何操作系統的保護措施,因為他就是控制操作系統的人,最糟的是他還可以掩飾他的行為。如果您有位不可信任的系統管理員,就很明顯的沒有安全性。
雇用系統管理員時,要認知系統管理員所具有之信任的地位,而且只能雇用能擔保那份信任的人。打電話給該系統管理員的推薦人,詢問有關他過去的工作紀錄,特別是在過去雇主公司有關安全性的事件。如果您的公司能夠接受銀行與其它安全意識高的公司所采取的步驟,您可以照樣操作,并要求系統管理員通過雇用時以及雇用后定期的完全背景檢查。不管您選用什么標準,都要貫徹實施。在您的網絡上,不要給任何人管理上的特殊權限,除非這些人已經過調查,對象包括臨時雇員與承包商。
下一步,采取行動幫助誠實的人保持誠實。使用登入/注銷工作表以追蹤誰曾出入服務器機房 (您一定有間上鎖的服務器機房,對吧?如果沒有,請重讀法則 3)。在安裝或為軟件升級時,采用“兩人”制度。盡可能把管理工作多元化,如此可以把每個系統管理員所擁有的權力降到最低。還有,不要使用系統管理員賬戶,取而代之,給每個系統管理員擁有系統管理員特殊權限的個別的賬戶,如此您可以知道誰在做什么。最后,考慮進一步讓系統管理員更難掩飾他的所作所為。例如,將稽核數據儲存在唯寫媒體,或是將系統甲的稽核數據放置于系統乙,并確定兩個系統的系統管理員是不同的人。當您的系統管理員愈可靠,您的問題就越少。
法則七 加密數據的安全性只等同于解密金鑰。
假設您安裝全世界最大、最強固、最安全的鎖在您家的前門,但是鑰匙就放在門前的墊子底下,那么不管您的鎖有多堅固也沒有用,不是嗎?關鍵因素在于鑰匙沒有好好的保存,因為如果小偷找到它,要開鎖可說易如反掌。加密數據的運作方式是一樣的-不管加密的算法有多強,數據的安全性只等同于能夠解密的金鑰。
許多操作系統與加密的軟件產品,讓您選擇把加密金鑰儲存在計算機里。這個作法的優點是方便-您就不必處理金鑰,但是所犧牲的是安全性。這些金鑰通常是隱藏的,有的隱藏方式非常好,但最后不管金鑰隱藏的多好,如果它就在計算機里,總是可以找得出來。最后一定會有軟件能夠找到金鑰,因此動機不良之士也可以找得到。只要有機會,請使用離線的存放區放置金鑰。如果機碼是一個字或詞,請予以牢記;如果不是,就將它匯出到磁盤上、制作備份復本,并把復本儲存到不同且安全的地點。
法則八 過期的掃毒程序比起沒有掃毒程序好不了多少。
病毒掃描儀的運作方式,是把計算機上的數據與一組的病毒“簽名”互相比較。每一個簽名是一種病毒的特征,掃描儀在文件、電子郵件或其它地方發現數據與簽名符合時,它就認定找到病毒。但是病毒掃描儀只能掃描它所知道的病毒。保持最新的病毒掃描儀簽名檔案是很重要的,因為每天都有新的病毒產生。
但問題其實比這個概念還要深一點。一般而言,新的病毒在其早期的生命階段會造成最大的損壞,正是因為很少人能夠偵測到它。消息一旦傳開,指出有新的病毒在散布,然后人們更新手上的病毒簽名文件,之后病毒的散布程度就大幅下降。重點是要趕在散布曲線的前端,意即病毒大肆散布前,在計算機上更新病毒簽名文件。
事實上每一家防毒軟件的供貨商都提供由網站取得免費簽名文件的方式。其實,許多廠商已經“推進”他們的服務,每當新的簽名文件發行時,他們會傳送通知。請您善加利用這些服務,同時,也要持續使用這些服務,讓掃描儀本身 (也就是掃描軟件) 更新。病毒的建立者會定期發展新的技術,使得掃描儀本身運作的方式也有變更的需要。
法則九 完全的匿名不管在現實或網絡上都不實際。
所有人類的互動都涉及某種的數據交換。如果有人組合足夠的數據,他們就可以識別您。仔細想想一個人在與您簡短的對談中能夠收集的所有信息。只要看一眼,他們就可以判斷您的身高、體重與大概的年紀。您的口音可能會告訴他們您來自哪個國家,或是來自國內的哪一區域。如果您談話的內容不是只有天氣,您可能會告訴他們一些與您的家庭、興趣、住處與以何維生有關的事情。他人要了解您是誰,并不需要花很長的時間收集信息。如果您渴望絕對的隱姓埋名,最好的方式是住在山洞里,不與任何人接觸。
在因特網上的情形也是一樣。如果您瀏覽一個網站,網站擁有者如果有心,他就有辦法查出您的身份。畢竟由 0 與 1 所組成的網站工作階段,一定能夠找到通往目的地的路,而那個目的地就是您的計算機。有很多的方式可以掩飾位,例如,您可以使用網絡地址轉譯,為您實際的 IP 地址加上屏障;訂閱匿名服務將位,由以太網絡的一端轉送到另一端,以掩飾您的位;為其它目的使用別家的 ISP 賬戶;只從公共信息站瀏覽特定的網站等等。這些方式讓人更難判定您的身份,但并非全無可能。您確定知道是誰在操作這些匿名的服務嗎?可能就是您剛瀏覽之網站的擁有者!您昨天瀏覽提供您 10 元折價券的無害網站呢?或許該網站的擁有者愿意與其它網站擁有者共享您的數據。如果是這樣,第二個網站所有者或許可以把兩個網站的信息相互關聯,進而判定您的身份。
難道這代表網絡上的隱私權是不可能的嗎?一點也不。那意味著在因特網上保護您隱私的最好方式,與保護您日常生活的隱私沒有不同-都是經由您的行為。閱讀您瀏覽網站的隱私權聲明,并且只與您能接受其做法的網站交易。如果您擔心 Cookie,就停用該功能。最重要的是,請避免毫無選擇地瀏覽網站-如同絕大多數的城市都有治安不好的區域,因特網也是一樣。但是如果您要的是徹底與全面的匿名,還是著手找一個山洞比較好。
法則十 技術不是萬能藥。
技術能夠做到令人驚奇的事情。近年來,前所未有的廉價、更具威力的硬件與利用硬件的軟件日漸開發,因而為計算機使用者、加密技術的發展與其它科學打開了新的領域。如果我們努力研究的程度足夠,很難不相信技術可以帶來一個沒有風險的世界
。但是這完全是不實際的。
完美的安全性需要一層不存在的極至境界,而事實上也不太可能存在。這對軟件與人類有興趣的所有領域而言都是事實。軟件開發是一個不完美的科學,所有的軟件都有問題,其中有些可被利用而造成安全性漏洞,那不過是嚴酷的生活現實面。即使軟件能夠做到十全十美,還是無法解決所有的問題。就某個程度而言,大部分的攻擊牽涉到人性的操縱-這通常稱為社交工程學 (social engineering)。
增加成本與攻擊安全性技術的困難度,動機不良之士會將焦點由技術轉向在控制臺的人,作為響應。了解您在維護堅固安全性的角色很重要,否則您可能會成為自己系統保護的裂縫。
解決方法在于認知兩個重要的部分。第一,安全性是由技術與政策兩者所組成,也就是說,組合技術與使用它的方法,最終會決定您系統安全的程度。第二,安全性是一個過程而不是目的,它不是一個可以一次永遠“解決”的問題,而是好人與壞人之間一連串的行動與對抗。關鍵是要確定您有良好的安全性意識與穩健的判斷力。