共用方式為


安全性監控量子安全性的原則

Jesper M. Johansson

以一般人意想不到卻又相當有用的東西作為話題交談,是件很開心的事。過去這一陣子以來,我一直用海森堡不確定原理來解釋安全性概念 (只要聽過我講獨角獸故事的人,都知道我喜歡從其他專業領域提出基礎理論來闡明我的觀點)。雖然看似奇怪,

不過在科學的其他領域當中,有些基礎概念還真的能夠拿來推論資訊安全性呢。

海森堡不確定原理源自量子物理學,是以 [圖 1] 所示的方程式為基礎。原理本身敘述粒子 (p) 的位置與粒子 (x) 的動量彼此關聯,如果提高測量位置的精度,就會降低測量動量的精度。而作為兩者精度界限的,則是一個小小的普朗克常數 (Planck's constant) 固定倍數。換一種淺顯易懂的方式來說,就是您無法以完全精度同時觀察一個粒子的多種特定事實。

Figure 1 Heisenberg Uncertainty Principle

Figure 1** Heisenberg Uncertainty Principle **

這就直接關係到不確定帶 (uncertainty band) 的預估,也就是預估您對於一個粒子幾種事實狀態的不確定度有多高。無法預估不確定帶,就無法準確預估兩個變數對於它們所在的電腦網路安全性會產生什麼影響,這一點必須特別注意。

另外,您也必須做出取捨。也許在資訊安全性方面您並未受到普克朗常數的限制,但是在另一方面還是受到限制了。在這些取捨當中,要屬安全性與可用性 (或有用性) 的折衷最為明顯。如果您有片刻時間疏於注意可用性 (坦白說,我覺得安全人員除了阻斷服務攻擊之外,不應該為可用性負責),最簡單的方法就是關閉它,只要關閉它,就不會再受到駭客入侵。不過這麼一來,有用性就會暴跌。

同樣的,您也可以實作昂貴的預防資料遺失產品,來抑制因為資料外洩而大幅損失的成本,這個作法比每年傳送一封電子郵件給所有員工,提醒他們即時傳訊應用程式不能作為商業用途,更能防止機密資料外洩。但問題是貴公司願意把錢花在預防資料遺失產品上嗎?您現在可以瞭解量子物理與安全性之間的關聯性,比您想像中更加密切了吧。

薛丁格的貓

「薛丁格的貓 (Schrödinger's Cat)」寓言詮釋的是另外一種相關但又不一樣的量子物理概念。故事起源於 20 世紀兩位傑出的物理學家艾文薛丁格 (Erwin Schrödinger) 與愛因斯坦 (後者您也許已經耳聞其名) 長期以來針對重疊 (superposition) 概念的爭論。薛丁格發現量子力學領域在兩種狀態的重疊當中,存在一些不合理的元素。

為了闡述他的理論,薛丁格提出一個假想實驗,假設有一隻貓被關在密封的盒子裡。除了貓之外,盒子裡還放了一個裝有毒氣的容器,毒氣的釋放是由一種 (想像的) 次原子放射性粒子所控制。放射性粒子一旦產生蛻變,就會釋放毒氣毒死貓咪。

這個遵循量子力學定律的次原子放射性粒子,是存在於重疊狀態當中。由於原子貓的狀態完全取決於次原子粒子的狀態,因此貓也存在於這個重疊狀態當中。只有實際觀察貓的狀態,才能夠確定貓生或貓死的狀態。

當然薛丁格的用意是為了告訴大家,量子力學中有某些定律在套用到原子系統時有多不合理。但是以一般人的術語來說,他舉的例子常被稱為「觀察者效應」。儘管這個觀察者效應並未套用到量子力學中的次原子系統,我們這些安全性專家對它倒是很感興趣。簡單的說,它的意思是您在觀察某個東西時,同時也改變了那個東西。

觀察者效應

讓我們舉一杯茶作為例子,進一步說明這個效應的原理。現在您在杯裡放進一只溫度計,測量茶的溫度。假設您放進溫度計的時候,茶是攝氏 80 度,而溫度計本身是 22 度 (室溫)。溫度計一放進茶中,便開始吸收茶的熱度,而茶也釋出本身的熱度為溫度計加溫。最後茶和溫度計的溫度就融合為一。但是,溫度計不會是 80 度,也不會是 22 度 — 而是介於兩者之間。也就是說,您測量茶溫的動作,改變了茶的溫度。

觀察者效應也與 infosec 密切相關。每當您執行某個動作來緩和安全性問題時,也可能會因為改變系統,而改變了安全性狀態。我實在想不出更好的詞彙,就姑且稱之為安全性狀態流動效應 (Security Posture Fluidity Effect,SPFE) 吧。

服務帳戶相依性就是其中一個比較單純的範例。我在《Protect Your Windows Network》(protectyourwindowsnetwork.com) 第 8 章中提到,您可以在系統上安裝入侵偵測服務 (IDS) 來偵測攻擊。但是 IDS 會登入中央系統,要求具備高度授權來存取被監視的系統。在大部分的情況下,這是指服務採用高度授權的服務帳戶。

萬一其中任何一個系統受到攻擊,攻擊者便會取得服務帳戶認證的存取權,除了停用 IDS 本身之外,還會存取其他所有的系統。這可說是最佳的 SPFE 範例。為了保護環境安全而安裝某個東西,卻也因此製造了新的潛在安全性問題。

其他關於 SPFE 的例子多不勝數。Steve Riley 針對 802.1x 在有線網路上的問題所提出的說明 (microsoft.com/technet/community/columns/secmgmt/sm0805.mspx),也是一個很好的例子。目前主機型防火牆儼然已經成為許多環境迫切需要的最愛,但是與 802.1x 併用卻也為某種攻擊製造了乘隙而入的機會,而這是以前不可能發生的情況。同樣的,安全性技術改變了環境的安全性狀態,使得之前被阻隔在外的攻擊有機可乘。

但這不表示那些方法毫無用處,能免則免,而是您必須全面考慮您的所作所為,對於安全性可能造成哪些隱憂。當您在進行風險管理時,必須採取專門針對風險的動作和預防措施。在執行緩和措施時,一旦實施對策之後,就不能隨意喊停。說得更明白點,安全性是一種程序。您必須採用深度防禦策略,但同時也要考慮這個防禦動作會對安全性狀態產生哪些改變,以及如何面對因它產生的威脅。

完善的強化策略

我從事強化導引 (hardening guidance) 已有 10 年以上的時間。回顧最初所做的導引,我發現我只是列出我和同事認為您應該開啟的設定而已。當時一般人所用的安全性策略仍很天真 — 基本上只要是專門提供安全性的東西就得開啟,並未想過有什麼需要關閉它的正當理由。

但是後來我漸漸明白,要有效進行強化工作,必須經過深思熟慮,把系統接踵而來要面對的威脅全部考量在內。《Windows 2000 安全性強化指南》(go.microsoft.com/fwlink/?LinkID=22380) 所列出的案例,就是根據後來揭露的這個觀念所衍生。經過自然演進之後,強化導引逐漸被分成三個威脅層級,相關資訊請參閱《Windows Server 2003 安全性指南》(go.microsoft.com/fwlink/?linkid=14846)。

那時候我一直納悶,為什麼所有的導引都開啟並就位了,還是擋不住系統受到攻擊的機率。原來是因為漏了某些修補程式,或是其中一個操作實例容我進入,或者是安裝了不安全的協力廠商軟體所致。

結果證明那兩篇指南文章所寫的強化步驟,無法幫助我們匯聚安全性狀態,充其量只是點出幾項重點而已。事實上,至今我所建立過最安全的系統 (msdn2.microsoft.com/library/aa302370),只應用了那兩篇安全性指南所提到的四或五種調整做法,而且沒有一個能夠確實阻擋因它而起的攻擊。無奈的是,大家只求能有一個寫著「快來救我」的藍色按鈕,一按就能自動強化系統。但安全性可不是這麼容易打發的問題。

如何應付風險

要受到保護 (相對於有限的安全狀態),就必須採取適當的風險對策。您必須瞭解您所面對的是哪些風險,然後決定要緩和哪一項風險,並且瞭解如何緩和風險,而這絕對不是扳動開關就做得到的。

這些安全性開關通常是針對特定案例所設計,不見得會針對您的案例建立最佳設定,而是建立一個良好的基準起點。這些開關之所以廣為使用,主要是因為大部分的市場都要求具備這些快速強化調整功能。現今軟體多半都已預設備有這些開關;沒有具備的話,可能會引發重大的副作用。

尤其在扳動大量開關之後,可能會產生不穩定或無法支援的系統,無法執行您希望它們執行的工作 — 而這些工作都是為了減輕您尚未列舉出來的威脅。SPFE 和量子物理告訴我們在採取保護動作之後,還要再度重新分析,但是有太多公司就是辦不到。其實它們是無法先行分析威脅,如果一開始就能確實分析威脅,您會發現真正有用的方法,並不是針對列出帳戶名稱和批發存取控制清單變更施加匿名限制,

而是:一. 決定系統是否應該提供特定的服務、提供給誰,然後強制實施該項原則;二. 確保只有絕對需要與您溝通的系統和使用者,才能夠與您溝通;三. 確保所有使用者和應用程式一律以最低權限執行。總之,真正有效的方法就是採取明智的安全步驟,並且執行困難的分析,讓每一個系統都能為它自己的安全性負起全責。

這也是為什麼目前的安全對策都採用像伺服器及網域隔離 (請參閱 microsoft.com/sdisolation)、Windows Server® 產品專用的「資訊安全設定精靈」(SCW),以及在 Windows Server 2008 管理角色的「伺服器管理員」等工具。這些工具能夠逐步引導您瞭解您必須支援的案例,並且幫助您妥善的鎖定系統。當然這些工具並不會提供人人所需的萬靈丹,但至少它們能夠產生一個可以支援的設定,確實執行您購買該軟體所要執行的工作。

根據需要套用安全性

這句話的意思是,安全性不能指望其他實體或僅靠簡單的調整辦到。每一項資產都必須具備捍衛自己的能力,因為像「周邊網路」和「內部網路」等概念,在現在根本毫無意義。

大部分的公司網路充其量只具備部分敵對的能力。您必須瞭解這一點之後再採取適當的步驟,不要完全仰賴直覺式的強化導引。首先,您必須瞭解自己的需求,並且向其他瞭解您需求的人士取經。

最近網路廣播上有一位訪客建議小型企業使用者前往「聯邦國土安全部門」(Department of Homeland Security) 網站,下載 Internet Explorer® 的強化指南。笑話!難道要指望負責保護軍事和國家安全的政府機構告訴您如何保護小型企業的網頁瀏覽器嗎?如果說電腦安全性領域至今仍普遍存在某種錯誤邏輯的話,這就是最好的例子。這個邏輯覺得因為該指南是由三字母簡寫的政府機構所發出,所以具有高度安全性。

選擇通常採二元化表示:您可以選擇「高安全性」或「低安全性」。另一組更好的選擇方式是「高安全性」和「適度安全性」。聽好了,安全性可不是一成不變的僵化原則。

事實上,高安全性不見得適合每一個人 — 應該說,通常大部分的人都不適合!它並不是您應該努力的終極目標,而是針對禁不起系統受到任何攻擊的人所設計的設定。如果這個原則符合您的風險概況和威脅模型,那麼就採用高安全性。

如果不符合您的風險概況和威脅模型,最好還是改採更適當的選擇。目前您所能設定的調整功能,大部分已經妥善預設為中度風險概況。大部分的 Microsoft 產品皆普遍採用這個預設狀態,它在安全性和可用性、有用性以及效能之間,提供了相當合理的平衡。就強化而言,它都幫您打點妥當了。

您需要考慮的是其他的安全性步驟。您不妨從 TechNet 資訊安全中心 (https://www.microsoft.com/taiwan/technet/security/default.mspx) 開始著手,當然嘍,像《Windows Server 2008 Security Resource Kit》這類的書籍也不錯。

重點就是風險管理

現在您應該已經知道我的重點了:沒錯,就是風險管理。海森堡不確定原理所要傳達的關鍵訊息是您得做出取捨,這個部分並不難懂。

但是,「薛丁格的貓」所要傳達的訊息卻鮮少有人注意。您不僅要分析所有的問題層面,在取捨之間做出決定,同時還必須考慮您的解決方案會帶來哪些改變。健全的風險管理策略會考慮那些改變對系統所帶來的影響,以及那些改變是因為執行風險緩和策略,還是因為其他理由而產生。

年平均預期損失率

年平均預期損失率 (Annualized Loss Expectancy,ALE) 方程式 (如 [圖 2] 所示) 是量化風險常用的方法,也是許多安全性憑證課程所教授的方法。標準的 ALE 算法相當簡單,就是判斷事件發生的機率,以及算出每發生一次所耗費的成本,再將兩者相乘。這就是您每年預定為安全性事件支付的費用。如果風險成本高達某個程度,就得實作緩和措施。

Figure 2 ALE is the probability of a loss, multiplied by the cost of the loss per incident

Figure 2** ALE is the probability of a loss, multiplied by the cost of the loss per incident **(按影像可放大)

但問題是標準 ALE 無法公正評估緩和措施的成本。除了緩和措施本身的成本之外,許多緩和措施所產生的副作用也會耗費成本。

讓我們看看其中一個最標準的安全性調整:帳戶鎖定。許多公司部署帳戶鎖定,很明顯是為了防止攻擊者猜中密碼。您可以用數學方式計算攻擊者猜中任何單一密碼的機率。如果創意夠高,也可以估算彌補攻擊者順利猜中密碼所產生之漏洞的平均成本。許多公司就根據這兩個數字,判定 ALE 不符要求,轉而實施帳戶鎖定。

但是這種緩和方式會產生一種您可能不會注意到的成本。當然實作緩和措施本身一定有其成本 (雖然金額相當微小),但是為了精確起見,我們還另外加入緩和措施所產生的副作用成本。

首先是支援工程師為使用者解除鎖定的成本。即使帳戶鎖定時間不長 (假設 15 分鐘吧),還是會耗費失去產能的成本,而這個因數就是每一個事件的成本。接著我們再將它乘以該事件在指定時段中所發生的可能性。以這個案例來說,就是把成本乘以預期的鎖定事件數目 — 您的記錄也許已經有辦法達到這個數目了。

除此之外,您還得把使用者惡化因數算在裡面。根據一些有趣的證據指出,使用者在帳戶鎖定的管制下,會使用較不複雜的密碼,因為這樣比較不容易打錯。因此,即使在實作緩和措施之後,我們希望避免的事件機率也不會完全降到零。

最後一點,緩和措施可能會在系統產生一些漏洞,而這些漏洞是實作緩和措施之前所沒有的。就拿帳戶鎖定來說,攻擊者可以利用這個特點停用網路中所有的帳戶,方法很簡單,只要重複猜錯密碼就行了。除了每一個事件的相關成本之外,還有該事件發生的機率。

如果把這些因數全部納入考慮,就能夠很清楚的看出您必須修改預期損失率方程式了。首先,您必須修改事件的機率。雖然前面所顯示的事件發生機率尚未降到零,但是現在可能性應該會比之前稍低,而且每一個事件的成本也可能不同於前。您需要在產品中加上緩和措施本身的成本,這個成本是實作成本加上所有副作用的年度成本總和。每一項年度成本,都是發生副作用的機率,乘以該副作用的每一個事件成本得出的結果。把方程式表示法再稍加簡化之後,就能得出更精確的風險分析方程式,如 [圖 3] 所示。

[圖 3] 當中改良過的方程式,可提供您更精確的方法來分析特定問題的風險。許多公司已經採用這個方法來分析它們的風險了。但還是有太多公司仍秉持簡單的風險觀點,沒有充分指出分析緩和措施影響力的需要。但是使用經過修改的 ALE 方程式之後,就可以提升這項需求的重要性。

Figure 3 Considering the additional costs of mitigation

Figure 3** Considering the additional costs of mitigation **(按影像可放大)

到底歸根結底的重點是什麼?

如果您在讀完本文之後只有一個結論,那應該是質疑安全性策略所用的傳統智慧。我們在資訊安全性領域的做法,有太多是以千篇一律的老舊觀點為根據,但是許多假設已經過時。

現在的攻擊方式與過去早已不可同日而語,攻擊者都非常專業,攻擊目的不外乎為了金錢、國家主權,還有意識型態。您可不能把時間和金錢浪費在不能改善安全性的安全性調整,因為您負擔不了這個成本。換句話說,您必須採取更精密的方式來管理風險。

首先,您必須認清您所做的每一件事都會經過取捨,因此無法確切知道每一個細節。

其次,您必須瞭解您是在互相依存的系統當中作業。當您對系統做出安全性變更的同時,也會改變系統本身,因此必須將系統重新分析一次。

這個動作最好能在實際實作變更之前執行,因為這些變更常常會對系統造成莫大的影響,而且弊多於利。如果能夠使用更好的分析工具提醒您分析那些變更,可以大大降低健忘的機率。

最後一點,千萬不要忘記人為因素。您在資訊安全性方面所做的每一件事,都是為了讓企業和公司內部使用者盡可能安全地操作。

最近我在一項簡報當中指出,使用者購買電腦的目的可不是為了執行防毒程式。您的主要方針是安全性,但公司不是。公司忍受安全性,全是為了追求當下最佳的利益。千萬別忘記,是資訊安全性群組在服務企業,不是企業在服務資訊安全性群組。如果忽略這個原則,使用者一定會無所不用其極的完成工作,即使要規避他們不瞭解或不同意的安全性控制也在所不惜。

Jesper M. Johansson是負責安全性軟體的軟體架構設計人員,也是《TechNet Magazine》的特約編輯之一。他擁有管理資訊系統 (MIS) 的博士學位,研究安全性長達 20 多年,是 Microsoft 在企業安全性領域的最有價值專家 (MVP)。其最新著述為《Windows Server 2008 Security Resource Kit》。

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.