生活中,任何人只有自己掌握“真功夫”,才能更好地保護和發展自己;對于網絡中的應用程序也是如此。即使防火墻再健全,如果應用程序本身漏洞百出,又怎能抵御漏洞利用的種種伎倆?所以,只有應用程序自身足夠強健,才能在面臨各種網絡攻擊時真正做到“敵軍圍困萬千重,我自巋然不動”。
在未來的幾年中,影響企業應用程序及企業安全的一個戰略性問題就是,如何利用基于風險的安全感知和自我保護技術。
完全安全的環境是不可能的,但企業可以利用更高級的風險評估和遷移工具來提升安全性。其中包括安全感知的應用程序設計、動態和靜態的應用程序安全測試,運行時應用程序的自我保護與積極的環境感知、自適應訪問控制等。
應用程序的“自我感知”,其本意是可以在某些惡劣條件(威脅、錯誤)下保護和自動地重新配置而無需人為的干預。
如何理解這種技術?
提高應用程序安全性的一種方法就是編寫更安全的代碼。而靜態的應用程序安全測試可以在部署應用程序之前更好地實施保護,它也有助于提高安全性。另一種方法就是實施特定應用程序的訪問安全(在這一點上不妨考慮一下Web應用防火墻),其目的是為了在網絡層上檢測應用程序的入侵。
第三種方法是使應用程序能夠更好地感知潛在的安全問題,或是將防御構建到應用程序內部。這就是應用程序的感知安全,即在應用程序部署之后保護應用程序的問題。
自我感知和自我保護的應用程序可以將安全控制和動作直接嵌入到應用程序代碼中。對于移動應用,黑客的主要攻擊就是要在面向公眾的應用商店中找到流行應用進而嵌入惡意軟件,并通過第三方商店發布惡意程序的副本。
而自我保護的應用程序可以使惡意行為的實施更困難。而且,自我保護的應用還可以通過加密數據保護來應用程序接收或發送的數據。
例如,將安全控制嵌入到正在運行的Web應用中就是運行時應用程序的自我保護的一個例子。這些控制位于應用程序的虛擬機中,并可以截獲對系統的所有調用。從本質上說,這種技術就是將數據請求的確認和驗證直接嵌入到應用程序中。
利弊一覽
在強化總體的安全性方面,自我感知或自我保護的應用程序可以給企業帶來諸多益處。例如,保護應用程序的傳統方法一般都是由人工創建實施的,其速度可能很慢,而且,保護主要是基于靜態的后續部署。這是一種非常被動的方法,且不能實時地適應新威脅。而自我保護的應用程序可以保證在已知的狀態中的有效性。
在強化總體的安全性方面,這種應用程序可能無法清除漏洞,卻可有助于移除被感染的組件。當然,日后打補丁可以修補漏洞,并使影響最小化。創建自我保護的應用程序要求開發團隊和操作人員之間的密切協作。
運行時應用程序的自我保護技術可以監視(正如Web應用防火墻的許多功能一樣)更多的細節。通過強化應用程序并將其部署在可以監視所有進入請求、數據庫操作、虛擬機調用甚至是操作系統調用的地方,那么,運行時應用程序保護這種技術就可以更詳細地監視系統的動作。與其它方法相比,這種方法有助于提高準確性。
與自我感知或自我保護應用程序有關的一個問題可能是,在應用程序執行自我救治過程時,可能會有性能影響。最糟糕的情況是,對業務產生重大影響。從投資收益角度來說,驗證這種應用程序可能會比較困難,因為有時自我救治的應用程序要求較高的冗余度,這會增加成本。
在使用這種應用程序時,企業必然有一種學習曲線。企業必須考慮在應用程序的自我救治、聲譽降低、失效轉移過程中,應用程序狀態可能發生的狀態轉換。這可能與企業的固定預算、更短的開發及發布周期相沖突。
關于自物保護和“容錯”的困惑是另一個問題。雖然容錯是好事,但在出錯后,自我保護如何實施卻是問題的關鍵。
期望
就方案的可用性來說,應用程序的自我感知和自我保護可謂年富力強,也非常具有創新性,它把安全數據分析的邊界推向了云和本地應用中。
從強化和封裝安全性的角度看,這種技術在移動領域中有很大的吸引力,在將來也會繼續增長和發展。
目前,由于安全性、性能、可用性是重大問題,所以,我們期望將來有更多的自我保護框架和軟件廠商可以幫助企業的開發人員開發出更強健的應用程序。