| ![]() | |||||||||||||||||||||||||||||||||||||||
我們在 Microsoft Security Response Center 每年都會調查數千份安全性報告。在某些情況下,我們發現報告描述我們其中一個產品的瑕疵造成真正的安全性弱點;若發生此情況,我們會儘快開發修補程式來更正該錯誤。(請參閱〈Microsoft Security Response Center 導覽〉)。在另外一些情況下,所報告的問題直接導因是,某人在使用產品時犯下的錯誤。但有許多情況是介於這兩者之間。它們討論真正的安全性問題,但問題並非導因於產品瑕疵。過去幾年來,我們研擬過像這樣的議題清單,我們稱它為「安全性的十大不變法則」。 請勿屏息等待一個會保護您避開以下討論的議題的修補程式。Microsoft (或任何軟體廠商) 無法「修正」它們,因為它們是因為電腦操作方式而造成的。但不要放棄任何希望,合理的評斷是保護自己避開這些議題的關鍵,如果您記住它們,就可以大幅增進系統的安全性。
電腦科學有一個令人遺憾的事實:當電腦程式執行時,它會根據原來設計的程式去執行,即使它的設計有害亦然。當您選擇執行程式時,等於決定要該程式接管電腦的控制權。一旦程式執行,它就可以執行任何事,但不超出您自己可在機器上執行的動作。它可以監視您的按鍵並將它們傳送至網站。它可以在機器上開啟每一份文件,將所有文件中的 "will" 這個字變成 "won't"。它可以傳送未加工的電子郵件給您所有的朋友。它可以安裝病毒。它可以建立一道 "後門",讓某人從遠端控制您的機器。它可以在加德滿都撥接 ISP。或者,它只是重新格式化您的硬碟機。 這就是為什麼絕對不從不信任的來源執行、甚至下載程式。而其中的「來源」指的是撰寫它的人,而不是把它提供給您的人。執行程式和吃三明治之間有一個很好的比喻。如果陌生人走向您,交給您一個三明治,您會吃它嗎?可能不會。如果是最好的朋友給您三明治又是如何呢?許或您會吃,或許您不會吃,這取決於這三明治是她做的,還是她在路上撿到的。對程式套用您對三明治套用的相同吹毛求疵的想法,通常就會很安全。
最後,作業系統只是一連串零和一,當處理器加以解譯時會造成機器執行特定動作。變更一和零,它就會執行不同的動作。零和一儲存在何處?還用問嗎?當然是在機器上,就和其他一切一樣!它們只是檔案,如果使用該機器的其他人獲准變更那些檔案,那就「完蛋了」。 若要瞭解原因,請想想看,作業系統檔是電腦上大部份信任檔案中的檔案,一般它們都是以系統層級專用權執行。也就是說,它們絕對可以執行任何動作。除了別的以外,它們獲信任可管理使用者帳戶、處理密碼變更及強制執行在電腦上支配誰可以做什麼的規則。如果壞人可以變更這些內容,現在不值得信任的檔案會按照他的吩咐,而且不限制他可以做什麼。他可以偷竊密碼,使自己成為機器上的系統管理員,或在作業系統中增加全新功能。若要避免此種攻擊類型,請確定系統檔案 (就此而言,還有登錄) 受到完善保護。(Microsoft Security 網站上的安全性檢查清單將幫助您進行做這項工作)。
對了,如果壞人可以傷害您的電腦,那麼他可能做哪些事呢!以下只是範例,從石器時代到太空時代:
一定要確定電腦受到名副其實的保護,並記住,機器的價值不只包括硬體本身的價值,還包括它裡面的資料,及存取網路的價值,壞人可能進入您的網路。至少,重要商業機器如網域控制站、資料庫伺服器及列印/檔案伺服器一定要放在上鎖的房間內,只有負責管理和維護的人可以接近。但您也想要使用其他保護措施來保護其他機器。 如果您外出時攜帶一台筆記型電腦,一定要好好保護它。讓筆記型電腦非常適合外出攜帶的相同特性 – 體積小、重量輕等等,這也使它們容易遭竊。筆記型電腦有各種不同的鎖定及警報器可用,有些機型可讓您取出硬碟機,單獨攜帶。如果有人順利地偷走電腦,您也可以使用像 Windows 2000 中的加密檔案系統功能來減輕損失。但是,能夠 100% 確定自己資料安全無恙且硬體沒有被竄改的唯一方式,是在外出時隨時讓筆記型電腦跟在自己身邊。
基本上這就是法則 #1 的另一面。在該案例中,壞人哄騙他的犧牲者下載有害的程式到他的機器上並執行它。在這個案例中,壞人上載有害的程式到某一部機器上並親自執行它。雖然每當您允許陌生人連接到您的機器時此案例就很危險,但這些案例多半涉及網站。許多操作網站的人太過好客,允許訪客上載程式到其網站並執行它們。誠如以上所看到的,如果壞人的程式可以在您機器上執行,事情就不妙了。 如果您要經營網站,您需要限制訪客的行為。您應該只允許網站上出現您自己撰寫的程式,或是您信任的開發人員所撰寫的程式。但這樣還不夠。如果您的網站是架設在共用伺服器上的其中一個,則您需要額外小心。如果壞人可能危及伺服器上的其他網站之一,那麼他可能會將控制權擴充到伺服器本身,這樣他就可以控制該伺服器上的所有網站 – 包括您自己的網站。如果您是在共用伺服器上,一定要瞭解伺服器管理者原則是什麼。(順便一提,在向公眾開放網站之前,請確定您有遵循 IIS 4.0 和 IIS 5.0 的安全性檢查清單)。
有登入處理程序的目的是要證實您的身份。一旦作業系統知道您的身份,它就可以適當地授與或拒絕系統資源的要求。如果壞人知道您的密碼,他就會以您的身份登入。事實上,就作業系統而言,他就是您。不論您可以在系統上做什麼,他都可以做,因為他就是您。或許他想要閱讀您儲存在電腦上的機密資訊,如電子郵件。或許您在網路的專用權比他更多,冒充您的身份,可讓他執行通常不能做的事。或者,也許他只想要做點壞事,然後怪罪給您。不論在什麼情況下,都要切記保護您的認證。 請務必使用密碼 – 有這麼多帳戶都是空白密碼,真是令人感到驚訝。請選擇一個複雜的密碼。不要使用您小狗的名子、您的週年紀念日或當地足球隊的名稱。也不要使用 "password" 這個字!請挑選一個混合了大小寫字母、數字、標點符號等等的密碼。儘量長一點。而且要經常變更。一旦您挑選了強化安全密碼之後,請正確處理它。請勿寫下來。如果您非寫下不可,至少要將它保存在一個安全或上鎖的抽屜 – 壞人要尋找密碼時首先會檢查螢幕旁邊的黃色自黏便箋,或最上層抽屜。不要告訴任何人您的密碼。記住,富蘭克林 (Ben Franklin) 曾經說過:兩人可以保守秘密,但其中一人必須已死。 最後,請考慮使用比密碼更強大的功能向系統識別您自己的身份。例如,Windows 2000 支援使用智慧卡,它大幅加強系統可執行的身分識別檢查。您也可以考慮購買生物測定產品 (如指紋和視網膜掃描器)。
每一部電腦都必須有系統管理員:此人可以安裝軟體、設定作業系統、新增及管理使用者帳戶、建立安全性原則及處理所有與保持電腦運作的其他管理工作。根據定義,這些工作需要他對機器擁有控制權。這使系統管理員的地位擁有無與倫比的權力。一個不值得信任的系統管理員會否定您所採取的每一項安全性措施。他可以在機器上變更權限,修改系統安全性原則、安裝惡意軟體、新增虛假的使用者,或其他數不清的事。他可以推翻作業系統上幾乎任何的防禦措施,因為他控制作業系統。最糟糕的是,他可以掩飾他的蹤跡。如果您有一個不值得信任的系統管理員,則您毫無安全性可言。 在雇用系統管理員時,請瞭解該系統管理員的可信任程度如何,只雇用值得信任的人。打電話給他的推薦人,詢問關於他以前的工作記錄,尤其是在前任雇主那邊有無發生任何安全性事件。如果對組織可行的話,您也可以考慮採取銀行和其他重視安全性的公司的作法,要求系統管理員在雇用期間必須通過一項完整的背景檢查,以後並在定期間隔進行檢查。不論您選取何種條件,請提交董事會核准。請勿在網路給予任何人系統管理權限,除非他們已經過調查 – 而這也包括臨時員工和承包商。 接下來,請採取步驟幫助誠實的人保持誠實。使用存回/取出單來追蹤誰曾在伺服器房內。(您有一個鎖了門的伺服器機房,對吧?如果沒有,請重讀法則 #3)。在安裝或升級軟體時請實施「兩人」規則。儘量使管理工作多樣化,藉此減少任一位系統管理員擁有的權力。同時,不要使用使用系統管理員帳戶 – 相反地,請提供具有系統管理權限的個別帳戶給每一個系統管理員,這樣您才知道誰在做什麼。最後,考慮採取步驟,使騙人的系統管理員更難以掩飾他的蹤跡。例如,在唯寫媒體上儲存稽核資料,或將 System A 的稽核資料存放在 System B,並確定這兩個系統有不同的系統管理員。系統管理員越值得信賴,就越不容易產生問題。
假設您已在前門安裝了全世界最大最強最安全的鎖,但是您把鑰匙放在前門的踏墊下。那麼不論鎖有多強都無濟於事,不是嗎?重要因素是保護鑰匙的差勁方式,因為如果一個夜賊找到了它,他就可以任意打開鎖了。加密資料也是如此,不論加密法有多強,資料安不安全取決於解密的金鑰。 許多作業系統及密碼軟體產品可讓您選擇將密碼金鑰儲存在電腦上。優點是方便 (您不必處理金鑰) 但卻犧牲了安全性。金鑰通常是混亂的 (亦即,隱藏起來),有些混亂方法相當不錯。但最後,不論金鑰多會隱藏,如果它在機器上,還是會被找到。它必須被找到,畢竟,軟體可以找到它,有足夠動機的壞人也可以找到它。如果可能,請使用離線方式儲存金鑰。如果金鑰是一個字或詞彙,請記住它。如果不是,請將它匯出到軟碟,製作備份,然後將備份儲存在個別的安全位置。(所有系統管理員都是使用 Syskey 及 "local storage" 模式 – 您要馬上重新設定伺服器,對嗎?)
掃毒程式的運作方式是比較您電腦上的資料與病毒「簽章」集合。每一個簽章是特定病毒所特有的,當掃毒程式發現檔案、電子郵件或其他地方的資料與此簽章相符,它會斷定找到病毒了。不過,掃毒程式只能掃描它知道的病毒。使掃毒程式簽章檔保持最新很重要,因為每天都有新的病毒產生。 不過,問題其實沒這麼簡單。一般而言,新病毒在其生命週期初期會造成最大損害,這確實是因為很少人可以偵測到它。一旦聽說有新病毒跑出來,人們就會更新其病毒簽章,病毒擴散的機會即大大降低。重點是要站在趨勢之前,並在病毒入侵之前更新您機器上的簽章檔。 幾乎每一個防毒軟體的標記都提供一種方式從其網站取得免費更新的簽章檔。事實上,許多 "push" 服務會在每次有新的簽章檔發行時傳送通知。請使用這些服務。同時,使掃毒程式本身 (亦即,掃毒軟體) 保持更新。病毒作者會定期開發新技術,所以掃毒程式需要變更其操作方式。
所有人的互動都涉及交換某種資料。如果某人把該資料編在一起,就可以辨別是您。想想看,一個人在與你簡短的交談中可以搜集到所有資訊。只要看一眼,他們就可以測量出您的身高、體重和大概年紀。您的口音可能告訴他們您是哪一國人,甚至告訴他們是哪一個地區。如果您談論的是天氣以外的事,您可能會告訴他們關於您的家庭、興趣、居住地方以及從事何種行業。某人不需要多久時間,就可以收集到足夠資訊來猜出您的身份。如果您請求絕對匿名,那您的最佳選擇就是住在洞穴裡,迴避所有人類的接觸。 網際網路也是如此。如果您造訪某網站,網站擁有者若有足夠的動機就可以了解您的身份。畢竟,構成 Web 工作階段的零和一必須能夠找到他們所屬的位置,這個位置就在您的電腦上。您有許多方法可以偽裝這些位元,您使用的方法越多,位元就會偽裝得越徹底。例如,您可以使用網址轉換來遮罩實際 IP 位址,訂閱一項匿名服務來洗滌位元,其方法是從太空的一端轉遞到另一端,針對不同目的使用不同 ISP 帳戶,只從公共電話亭搜索特定網站...等等。這一切會讓人更難判斷您的身份,但沒有一樣是不可能的。您知道是誰在操作匿名服務嗎?或許就是您才造訪的網站的擁有者!或者,您昨天造訪過的安全網站如何?它想要寄給您一張免費的 $10 元折價券。或許該擁有者想要與其他網站擁有者分享資訊。如果是這樣,第二個網站的擁有者可以使兩個網站的資訊產生關聯,來判斷您的身份。 這表示 Web 上的隱私權一無是處嗎?才不是。它表示在網際網路上保護隱私權的最佳方式與您在正常生活中保護隱私權的方式是相同的,即,透過您的行為。請閱讀所造訪的網站上的隱私權聲明,同意這些常規之後才進行交易。如果您擔心 cookie,請停用它們。最重要的是,要避免亂無章法的 Web 搜索。要知道,就像大部份城市一樣有它壞的一面要儘量避開,網際網路也是如此。但如果您想要完全匿名,最好開始找個洞鑽進去。
技術可以帶來一些令人驚奇的事物。近幾年來,我們看到開發更便宜且功能更強大的硬體、控制硬體為電腦使用者開啟新遠景的軟體、以及加密和其他學科的進步。讓人相信,只要我們夠努力,技術一定可以帶來零風險的世界。然而,這種想法根本不切實際。 完美的安全性需要的完美層次根本不存在,事實上,從未存在過。軟體和幾乎所有人類感興趣的領域都是如此。軟體開發是一門不完美的學科,所有軟體都有問題。有些問題可加以運用而造成安全性漏洞。這就是生命的真相。但即使軟體可以完美呈現,它也無法完全解決問題。在某種程度上,大部份攻擊均涉及一些人性的操作。這通常稱為社交工程 (social engineering)。提高攻擊安全性技術的成本和困難度,壞人的回應就是將焦點從技術轉移到主控台的人。您一定要瞭解自己在維護真正安全性上所扮演的角色,否則您可能變成自己系統盔甲上的漏洞。 解決方案是要瞭解兩大要點。首先,安全性是由技術及原則所組成。也就是說,它是技術及最後決定系統有多安全的使用方式兩者的組合。其次,安全性是旅程,而不是目的地。它不是可以一次「解決」的問題;它是在好人和壞人之間一連串的行動和相反行動。關鍵是要確保您有好的安全性體認並運用周全的判斷。有一些資源可幫助您這麼做。例如,Microsoft Security 網站上有數百份白皮書、最佳實例手冊、檢查清單及工具,而且我們一直在部署更多東西。結合最棒的技術和周全的判斷,您就可以擁有固若金湯的安全性。 |