看了《在銷售鐵卷的過程中,我遇到的一些常見的問題》一文,有些話不吐不快。
先全文引用過來:
=================這就是傳說中沉魚落雁閉月羞花的分隔線=================
1. 企業的文檔保護需求可能導致的問題
1.1. 要求選擇性加密
某些企業在選擇電子文檔防泄密產品的時候,會提出這樣的要求:
對於同一種類型的文檔,我希望能由我們來選擇哪些文檔是需要加密的,哪些文檔是不需要加密的。這樣不會給員工帶來使用上的麻煩。
問題的分析:這個需求看似合理,但其實這個需求和企業文檔防泄密的初衷是相違背的。如果允許使用者選擇性加密,那麼可能導致的問題有:
如何防止文檔原作者的泄密?
只要公司內部保留了一份明文狀態機器密文檔,誰能保證這份明文的文檔不會傳播開去?
如果僅僅要求選擇性加密,那為何不採用將機密檔案加密碼打包壓縮的方式?
根據FBI和CSI的調查,企業內部資訊泄露事件中,70%以上都是內部人員的泄密造成的,因此,對於電子文檔放泄密產品來說,防止主動泄密是及其重要和關鍵的。
企業採購文檔防泄密軟體的根本目的就是為了保證電子文檔的安全,這是購買的初衷,也是購買的目的。脫離了這一點,功能再強大的防泄密軟體都將形同虛設。
因此,選擇性加密的需求是不符合企業的採購目標的。
1.2. 希望控制企業內部的文檔許可權
有的企業在採購的時候,會提出這樣的要求:
我希望你們的軟體能夠實現:即使在我們公司內部,也能實現很嚴格的文檔許可權控制,比如同樣一份文檔,張三能看李四能列印王五能編輯……
問題的分析:目前國內單位對電子文檔普遍是處在“管理無序”的狀態,要改變這一現狀,實際上還需要從技術與管理兩方面下手,一方面用技術手段實現加密(類似鐵卷 這樣的解決方案),另一方面要制訂相應的管理方法,並在實踐中將電子文檔逐步分級管理,做好標識工作,使之正常化。這兩方面工作完成之後,就可以最終從技術上建立一套完整的解決方案,對電子文檔進行加密和分權。
很明顯的一個例子是國外某著名資訊防泄露軟體,該軟體在國內有幾個應用案例,我們走訪了相關使用者,卻發現無一例外,所有使用者都是白花了這筆錢,軟體的功能沒用好,因為他們企業管理水平還沒有達到相應的高度,根本就沒有電子文檔的標識、密級、管理這一系列的管理制度和方法,這時候直接上一套軟體,使用者完全無所適從。
我們來設想如下的一個情境:
某員工A撰寫了一篇文檔,在儲存的時候,突然跳出來一個視窗讓A選擇他寫的這篇文檔誰能看,誰不能看。這時候,A一下子就不知道該怎樣選擇了,因為企業沒有規定什麼樣的文檔屬於什麼樣的密級,為了方便起見,A就選擇了這文檔所有的人都能看。
問題:這樣一來,有內部許可權控制和沒有內部許可權控制有何不同?有這個功能只會給使用者帶來需要選擇的不便而已。
我們再來設想一下另一個情境:
某員工A撰寫了一篇文檔,在儲存的時候,突然跳出來一個視窗讓A選擇他寫的這篇文檔誰能看,誰不能看。這時候,A一下子就不知道該怎樣選擇了,因為企業沒有規定什麼樣的文檔屬於什麼樣的密級,A想了想,覺得這個文檔是要發給B經理的。就選擇了一個只允許B看,其他人都不許看。並把這封文檔通過郵件發送給了B。
B看過A發來的這個文檔後,覺得寫的很好,覺得全公司的人都學習一下,就把這文檔轉寄給了公司所有的員工。可是下面的員工收到這封郵件後,卻打不開這個文檔。於是紛紛打電話給B經理,於是B經理一天接到了公司內部打來的幾百個電話……
B經理詢問過管理員是怎麼回事兒後,明白了原來是有內部許可權控制這麼個東西,於是以後就把所有發給他的文檔全部轉寄給了管理員,要求管理員幫他重新設定這些文檔的許可權,同樣,C經理,D經理,E經理……也都要求管理員幫他重新設定他們的所有檔案的許可權。管理員每天無法處理其他的事情,每天都在重新設定文檔的許可權……
公司領導對這次採購相當不滿意,一段時間後,該軟體被棄用。
上面是一個真實的例子,從上面的例子,我們可以看出,一個有著某種功能的軟體,此功能非但可能不適合企業的使用,還可能會給企業帶來相當大的麻煩。企業在選擇文檔放泄密軟體的時候,切不可抱著“攘外必先安內”的思想。根據企業的實際情況選擇產品,才是最符合企業本身需要的。
2. 文檔保護軟體產品的問題
2.1. 軟體的漏洞
某軟體產品的附加功能強大,在某企業的招標中一舉勝出。但是企業在應用的過程中,卻發現了該軟體的許多問題:
使用“另存新檔”這樣簡單的功能,就能將一個文檔輕鬆的由密文轉換為明文。
將某無關軟體改名為特殊的檔案名稱後,開啟密文的文檔,再儲存時即可使該密文文檔變成明文。
使用某些網上公開的工具,可以把一個密文文檔解密。
可以使用滑鼠拖拽等方式將機密文檔中的文字、圖片等內容複寫到其他不加密的檔案中去。
這些繞過的方式令該企業相當惱火。在多次聯絡該軟體的廠商後,廠商仍遲遲無法解決問題。該企業要求退貨,廠商不肯,該企業把該軟體廠商告上法庭。
2.2. 軟體設計不周
文檔防泄密軟體有個普遍的特點:使用者會要求在公司內部能夠正常的使用文檔,而一旦把資料帶出公司,就無法開啟(經過了合法授權的非機密文檔除外)。但某些特殊的情況,軟體廠商沒有為使用者考慮到:
軟體必須能離線工作,以滿足出差員工和回家辦公的員工的需要。
軟體必須能方便的解密某些文檔,以滿足非機密文檔外發交流的問題。
對於離線的情況,必須能由使用者發起請求,管理員來批准。並且離線是帶有時間限制的。不能無限制的永遠離線下去。離線的時候,使用的效果還必須和線上的時一樣,以防止離線時的泄密問題。
離線時必須考慮到:
使用者是否會使用時鐘回調等操作來惡意延長離線的時間?
若員工出差到了外地,無法串連上公司的伺服器,但真的需要延長離線的時間,是否有完美的解決方案?
對於檔案解密的問題,也必須能由使用者發起申請,管理員來批准。此時,要求每個部門都能夠設定“部門管理員”,因為一個總的管理員不可能對每個部門的文檔都非常瞭解。在不瞭解文檔是否機密的情況下,是不應有許可權做出允許或拒絕該文檔是夠該被解密的操作的。
隨著公司資訊化建設的發展,越來越多的資料採用了電子文檔的形式儲存,於是文檔防泄密這個概念在國內漸漸的被提了出來,文檔防泄密的軟體也賣的越來越火,但這個軟體市場上的產品良莠不齊,魚龍混雜,希望企業能夠從自己的需求出發,選擇到一款合適自己企業使用的文檔防泄密軟體。
=================這又是傳說中沉魚落雁閉月羞花的分隔線=================
下面是我的看法:
首先要說的是,客戶的需求總是“合理的”,確切的說是,總有合理的一面。必須承認,客戶的需求有時候會很奇怪,甚至是可笑的。碰到這種情況,我會和對方擺事實講道理,就像引文中那樣,列舉一些論據。但是,並不是把客戶說服、把產品賣出去就沒事了。我還會思考,為什麼我的產品不能在實現功能的前提下滿足客戶的需求呢?客戶的需求往往從他們實際的工作經驗和習慣中提煉出來,不是一句“不合理”就能打發的。
具體到文檔加密問題。客戶的需求是,能對每個文檔有選擇的加密保護。而鐵卷的功能是,對指定類型的文檔強制加密(希望我沒有理解錯)。必須使用強制加密的依據是“選擇性加密和防泄密相違背”。在我看來,這裡鐵卷又陷入了“驅動級透明加解密”的慣性思維中,認為只有強制的才是安全的。(我為什麼要說“又”?呵呵。)我想,造成這種想法的原因是,用驅動做強制加密太容易了,太“完美”了,以至於設計人員無法想象除去強制性後產品還能做啥。是啊,一切都自由了還有安全性可言嗎?我賣個關子,先來說說選擇性加密的合理性。
如果我公司明天要部署鐵卷,那現在我首先要做的事是把我所有資料(doc/xls/ppt甚至txt/cpp)備份到移動硬碟上。因為我電腦上有很多文檔不屬於機密,要隨時修改並與別人共用這些資料。如果把這些文檔加密保護,並且外來的普通文檔在我電腦上處理後就不能簡單的還給別人,這是我無法容忍的。雖然可以要求工作電腦和日常使用的電腦分開,但既成事實是,在家、在公司、出差時我都用同一台電腦,這樣才不會耽誤任何事。選擇性加密的合理性我還可以列出很多,都是我在和客戶交流時收集到的,不一一細說了。
本質上,強制加密面臨的主要問題是較嚴重的影響了普通文檔的流通。安全往往和方便相衝突,如果事情到了非使用物理隔離不可的地步,那就算再麻煩、再有抵觸也只能硬著頭皮上。但是,協調好安全性和易用性的關係,在保證安全的情況下最大限度的增加靈活性,正是一個好的安全產品的價值所在。
回到需求問題上。按照引文中的觀點,強制加密可以解決主動泄密問題。實際真是如此嗎?有更好的方案嗎?分兩種情況來討論:
第一種情況,客戶還沒有使用文檔保護產品,甚至沒有把重要文檔集中管理,所有文檔處在失控狀態。那麼在切入文檔保護機制的時候,勢必要付出一定的部署成本。
首先,不管是強制加密還是選擇加密,都不能防止有人在部署前先將資料明文備份到不受控的地方。這不是技術問題,而要依靠行政管理手段解決。
其次,部署時像鐵卷這樣“一刀切”,把所有指定類型的文檔都加密雖然痛快,但在易用性上卻是“此恨綿綿無絕期”。選擇性加密則給客戶至少兩個方案:一是由每個員工主動對自己擁有的文檔分類,將機密文檔上傳到伺服器上加密儲存,同時以管理手段監督和約束員工的這個操作;二是在每台電腦上運行一個自動化工具,將指定類型的文檔全部上傳到文檔伺服器,並刪除本地的文檔,然後由指定的人(如各部門領導)審查所有上傳的文檔,將機密文檔留下而把普通文檔還給員工。當然,還給員工的文檔不能再在終端上被強制加密了。實際部署時可以將兩個方案結合起來。比如由員工主動分類加密,但先全部明文備份到某台伺服器上做“案底”,一旦將來發現有人沒按規定加密重要文檔,備份伺服器上有據可查。或者對某些類型的文檔(紙)實行領導審查,另外一些類型(如doc)實行自主選擇。我和實際客戶交流之後發現,這些方案是可以被客戶接受的。
顯然,問題的關鍵是,部署時強制加密也無法阻止使用者事先偷偷備份機密文檔,那麼不加區分地強制加密所有文檔也就沒有意義了,選擇性加密才是更合理的方案。
第二種情況,部署完成之後,如何防止文檔原作者泄密。對這個問題,先要關注這個機密文檔是怎麼產生的。
如果文檔是憑空撰寫的,那麼作者只要找台“乾淨”的電腦再寫一遍就“泄密”了,這不是任何文檔保護產品所能管得住的。好在“天下文章一大抄”,撰寫文檔經常要引用其它文檔的內容,這就是加密保護的意義所在了。
如果機密文檔引用的全是普通文檔的內容,那麼邏輯上撰寫過程沒有發生泄密,那些普通文檔沒必要加密保護,因為真正的機密在作者的腦子裡。而且,是普通文檔則意味著其內容有可能通過部署了文檔保護產品的安全域以外的途徑(比如瀏覽網頁)來擷取。於是,脫離安全域作者照樣可以寫出一份“機密文檔”來。因此我認為,只是為了減少擷取普通資料的途徑,而用強制加密阻止普通文檔的簡單流轉的做法完全得不償失——安全性沒有實質提高,麻煩卻不少。
如果機密文檔部分或全部引用的是其它機密文檔的內容,那麼根據等級保護的思想,新的機密文檔首先必須是受保護的。即為了從其它機密文檔中直接複製內容,必須先把正在撰寫的文檔加密。在這種情況下,選擇性加密自動具有了“強制”的性質,不會造成安全性漏洞。
對於通過打字等方式將機密資訊抄錄到普通文檔中泄密的手段,看起來強制加密可以有效防禦,但實際上由於強制加密的檔案類型是有限的,泄密者只要換一種不會被強制加密的格式來抄錄就可以了。比如doc文檔,用txt來抄錄。txt也被加密還可以用rtf/html/cpp等等。如果是圖紙則繁瑣一點,記下元件的參數,到“乾淨”的系統上也可以同樣畫出來。而且,現在的“驅動級透明加解密”產品一般都通過檔案名稱和hash來識別應用程式。只要將文檔處理常式改個名字再加個殼,就能避免被強制加密。先用原應用程式開啟機密文檔,再用修改過的應用程式建立文檔,就能以同樣格式抄錄了。(雖然某些程式只能存在一個執行個體,但至少Word、Excel可以有多個,UG好像也可以。)
總之,強制加密防止主動泄密只是一個美麗的謊言,它並不能比選擇性加密做得更好,反而嚴重降低了靈活性。另外,選擇性加密的產品要實現強制加密是很容易的,不給使用者選擇的機會就是了。但反過來強制加密產品要提供選擇性加密功能,改動不小。這個改動可不是允許使用者自訂加密策略這麼簡單的,還涉及到很多使用者體驗方面的調整。從這個角度看,選擇性加密和強制加密機制哪個適用性更強是顯而易見的。
下面我來解決前面的疑問——除去強制性後還能做什麼。大家首先要明確一個觀點,不要試圖防止文檔的作者泄密文檔,那絕對是件吃力不討好的事,原因前面說過了。文檔保護的目的在於,對已經納入保護體系的機密文檔,確保其流轉和共用始終在可控的安全域中。不同產品之間設計思想和技術含量的高低就體現在能否做到安全性和靈活性的雙贏。我看中的方案是,將等級保護中的自主存取控制和強制存取控制結合。對於以私人文檔的形式儲存、流轉、共用的文檔,使用自主存取控制,由作者控制瀏覽者範圍和許可權。這部分文檔對某些人有價值,所以用自主存取控制防止被動失密。更重要的文檔由作者提交管理員審核或由管理員直接匯入,並評定密級,接受強制存取控制,每個使用者通過預定義的角色以不同的許可權訪問這些機密文檔。(這個方案看起來並沒什麼了不起的,但有趣的地方在細節上。不過本文就不詳細闡述了,那需要很大的篇幅,我可不是在寫論文。)
接下來我要說說企業內部文檔許可權控制問題。引文中認為“企業管理水平還沒有達到相應的高度”就不需要使用等級保護之類的許可權控制。我十分不贊同這個觀點。一個設計良好具備等級保護功能的產品,如果要簡化成保護/非保護兩種“等級”很容易。客戶如果覺得“無所適從”就暫時不用等級保護好了。如果一個產品明明實現不了等級保護,卻告訴客戶等級保護沒有用,“有了你們也用不好”,這是不是太自以為是了一點?!同樣地,如果僅根據引文中一個設計糟糕的產品的所謂案例,就得出“天下烏鴉一般黑”的結論,那實在有點“井底之蛙”了。等級保護同樣可以在很大程度上滿足“透明操作”的要求,根本不會出現ABCDE經理不斷找管理員這種事。
在資訊安全圈裡,一直有“三分技術七分管理”的說法。大家可以去看CISSP論壇的文章——“三分技術、七分管理,你怎麼看?”。其中詳細討論了管理和技術的關係,很有啟發性。我的想法是,不論管理和技術的比重如何,我們先補上“最短的木板”就對了。
對於被報道出現嚴重資訊安全事故的國內外大企業,我相信它們在管理上一直都有完善和嚴格的安全規範,只不過沒有有效落實而已。這是技術的責任。安全規範往往要求使用者改變原有的工作習慣,可以說必然與方便靈活的需求相衝突,而且“越安全就越不方便”。但技術出色的產品能較好的調和這個矛盾,增強使用者體驗,並在一定程度上確保(強制)規範的實施,還能提供全面的審計功能以便事後追查。因此,對於“有法不依”、“令行不止”的情況,無疑需要加強技術方面的投入。
國內企業更多的情況是,技術和管理都缺乏,或者管理嚴重滯後,怎麼解決?CISSP的討論形象地將技術比作西醫,管理比作中醫,得到很多人的贊同,我也覺得很有道理。“西醫見效快”,如果技術和管理都缺失,先加強技術可以立杆見影。那麼管理跟不上怎麼辦?我要說,等待管理水平慢慢進步的做法,是在逃避問題。站在軟體開發商角度看,我們賣的不僅是一個好產品本身,還是一個安全模型,或者叫安全理念。客戶有安全需求並且認同你的安全理念,才會接受你的產品。開發商應該做的是,設計出既嚴謹規範又靈活多變的文檔保護模型,適應客戶各種需求和不同管理水平的情況。就像微軟的SharePoint,不管是對團隊、小企業、大企業還是多家商業夥伴,都有合適的架構滿足需求。技術不是萬能的,它不能代替管理,但技術可以是“催化劑”,正所謂“科技改變生活”。企業可以通過部署靈活的文檔等級保護產品,從無到有,從隨意到規範,引導員工逐步接受企業的安全制度。
總之,企業選擇文檔保護產品時,眼光要長遠一點,不僅要看到現在的安全需求,也要考慮不久的將來必然增強安全需求。(不要太指望你買的產品將來會升級,並符合你的新需求,就算是這樣,那也不是白送的。)
最後說說漏洞問題。出現“另存新檔”、改名、拖拽和某種工具(估計是線程插入)能解密等漏洞,都是過分追求“透明”的後果。產品的設計、研發和測試人員應該為自己的懶惰感到羞恥。沒錯,就是懶惰!另外,這種“豆腐渣工程”應該在招標的時候就被淘汰。沒有提前發現問題,企業也有責任(他們應該請我去驗貨,呵呵)。至於離線訪問、離線控制、離線追加許可權都是“小菜一碟”,沒啥可說的。
以上一家之言,不當之處請多多包涵。