對Windows安全軟件的思考

引用註明>> 【作者:張佩】【原文:www.YiiYee.cn/blog

最近以來,我重新翻閱了幾本Windows系統下的安全類書籍,同時上網查閱資料,很意外地發現,很多幾年前流行的牛叉技術,雖然還在書本和網頁上歷歷在目,但實際上多數已不能在新系統中使用了。我由此也發生了一些個人的思考,雖然多年不接觸安全技術,但思考的能力還在。

分析安全問題的來源

總是因爲存在安全隱患,纔有了攻擊動作的發生而因爲有了大量的攻擊,才繼而產生了安全防護的需求。所以一定要研究安全隱患的來源。總體上分類,安全問題可以劃分爲本地和分佈式兩種,所以安全攻擊的方法也可以分爲本地攻擊和分佈式網絡攻擊。

先看存在於本地機器上的安全隱患,也就是在一臺安裝了Windows系統的PC機內部的安全隱患,把它分成下面兩類:

第一類,是OS架構本身存在的結構性的設計缺陷或不周到,從而導致了被後門軟件利用,並據此發動的針對本地資源的攻擊。這些不周到主要體現在OS爲一系列的Hook技術提供了便利。存在於Windows系統上的Hook技術,從1990年代以來就一直很熱門。概言之,它包括靜態修改二進制文件和執行時動態修改運行邏輯這兩種方法。

但我發現,若干年以來微軟已通過一些很基礎的手段,基本上消除了這些缺陷或不周到。它通過數字簽名的方法,令大部分的靜態修改的方法失效。現在數字簽名只對運行於64位OS或啓動了Secure Boot的32位OS的驅動程序強制使用,以及對所有的Metro應用強制使用,但將來不排除它也會服務程序甚至桌面用戶程序應用強制使用。通過數字簽名的方法來檢查二進制文件的完整性,任何靜態修改都會破壞文件完整性,從而令文件加載失敗。

通過Patch Guard的方法,令OS的內核文件和關鍵數據得到保護,這令針對OS系統的運行時Hook完全失效。Patch Guard機制動態檢查系統的完整性,一旦檢測到修改就令系統藍屏。流行的IDT、SSDT和運行時補丁等Hook手法,從此全都失效了。

另外,微軟新OS不斷增強對Access Control List(ACL)的管理,強化系統對象的安全性。

這些基本架構的變化,足以令大部分傳統的後門技術失效。我想,這正是諾頓軟件驚呼“安全軟件已死”的原因所在。

第二類,我稱之爲特例性的軟件模塊中存在的設計失誤或代碼Bug。操作系統中還存在大量的軟件模塊,它們不是系統的基礎功能模塊,但依然被很多軟件所使用。這些模塊可能由微軟提供,也可能由第三方提供。但因爲這些軟件模塊數量龐雜,應用範圍侷限,通用性不強,接口不統一等特點,所以一般的安全軟件可能無暇顧及它們,或不能完全覆蓋它們,後門軟件也因此能找到生存空間。

比如前段時間爆發的基於Open SSL的Heart-bleed漏洞和Linux/Unix系統上的Bash Shell漏洞,都源於軟件實現中存在的代碼Bug。這類問題的本質是因爲軟件的設計和編寫都是由程序員完成的,人類天生做不到百分百面面俱到,只是看問題發生時的嚴重程度而已。

探索分佈式網絡應用的安全技巧

如果軟件模塊是運用在分佈式應用中的,則當其安全隱患爆發時,危害程度將非常地大,遠遠超過單機系統上產生的危害。所以值得對網絡安全做專門的思考。

對於一個存在於分佈式(網絡)協議和實現模塊中的設計不周,也可以通過一定的技術創新加以改善。我舉分佈式拒絕服務攻擊(DDoS)的例子來說明可能的情況:

當惡意攻擊者組織成千上萬的“肉機”對指定的服務器進行無效而巨量的網絡請求,以在短時間內急遽消耗其網絡資源,從而令其失去正常的響應能力,這是DDoS攻擊的實現方式。如果脫離技術細節來思考這個問題的話,會發現攻擊者總是使用非法的途徑來獲取他的“肉機”資源。因爲使用合法途徑來組織這些機器不僅過於昂貴而且很容易被發現。攻擊者將木馬程序種入到目標系統令其感染,從而成爲其“肉機”。可見肉機本身也是受害者。在DDoS攻擊過程中,成千上萬的受害者“肉機”,懵懵懂懂地向受害者“服務器”發起攻擊,令事件變成了兩位受害者之間的戰爭,而真正的敵人永遠躲在幕後。

從我收集到的資料看,當前的服務器一般採用消極防禦的策略躲避肉機轟炸,沒有辦法採取主動措施以制止肉機的攻擊。作爲同病相憐的兩個人,如果能夠做到聲氣相通的話,肉機未必不會幡然悔悟。但基於C/S的架構下,如果沒有client的配合,server端沒法主動投遞消息或指令給客戶端。在此例中,客戶端是木馬程序,也根本不可能響應server端的請求。但不妨讓我們想一想一種可能性,就是恰好在肉機端存在一個能解析server指令的client軟件。當server檢查到此肉機參與到DDoS攻擊後,就嘗試向此Client投遞消息。最低效果是,當Client收到消息後向用戶彈出一個風險警示的提示框,建議用戶緊急採取查殺木馬的措施。用戶可能會立刻採取有效的措施,也可能不會,但如果命中率達到一定高度,將能有效並快速減緩DDoS攻擊的力度;從長遠看,肉機作爲攻擊者最有價值的資源,通過此方式,將大大削弱攻擊者所擁有的有生力量。

我將此種方法稱爲“雲防護”,即不僅僅依靠服務器單機的力量,也同樣把受裹挾的肉機拉攏到己方陣營,與服務器協同作戰

客戶端的普及是有效實施“雲防護”的基礎。國內BAT公司的客戶端軟件有很大的裝機量,如果加以利用,應該很有前景。

遠見創新

在過去的若干年中,我逐漸領悟到一個知識,通過對基礎框架的分析和研究而進行的理論和實踐創新,遠比單純的技術複製和實現重要得多。在計算機生態環境發生重要改變,從重單機PC端運用轉向輕客戶端的雲互聯運用的當下,安全的內涵與外延也註定會發生重大改變。

當諾頓感概“安全軟件已死”時,他們所感慨的是伴隨XP及更老OS而遠逝的因OS本身漏洞叢生而造就的安全輝煌,但諾頓自己當然非常清楚,安全是永不日落的永恆話題,只是對象發生了悄然改變而已。這不,最新消息顯示,諾頓現在已經開始對服裝(口袋)進行安全認證了。這是諾頓進行轉變和創新的一端。其他的客商如何呢?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章