用什么措施來保護(hù)危在旦夕的應(yīng)用程序?
雖然應(yīng)用程序安全的威脅問題在變化,企業(yè)的規(guī)模大小不一,與應(yīng)用程序相關(guān)的安全事件的影響程度也不同,但如果企業(yè)還沒有為應(yīng)用程序部署安全防護(hù)措施,是時候抓緊了。因?yàn)檫@會對企業(yè)產(chǎn)生積極的影響。
數(shù)據(jù)竊賊首先通過登錄到保留其信用卡號的網(wǎng)站上,進(jìn)入網(wǎng)站后,他們會將各種賬戶數(shù)字插入到位于瀏覽器地址欄中的一個文本串中,從而在不同的賬戶之間跳轉(zhuǎn)。黑客的代碼系統(tǒng)自動并大量地執(zhí)行這種操作,使其可以捕獲關(guān)鍵的私密數(shù)據(jù)。
在應(yīng)用程序安全方面,這種問題叫做直接對象引用。攻擊者能夠操縱對一個內(nèi)部實(shí)施對象(如一個文件,目錄或數(shù)據(jù)庫的密鑰等)的直接引用來訪問未授權(quán)的數(shù)據(jù)時,就會發(fā)生這種攻擊。
這不是危言聳聽,本文將引導(dǎo)企業(yè)關(guān)注應(yīng)用程序安全,并采取措施捍衛(wèi)應(yīng)用程序。
為什么現(xiàn)在必須著手解決應(yīng)用程序的安全問題
成功的企業(yè)都能從應(yīng)用程序的安全中獲益。這有多方面的原因。首先是應(yīng)用程序安全威脅狀況的動態(tài)屬性。據(jù)報(bào)道,在已報(bào)告的安全漏洞中,有近一半都與Web應(yīng)用程序有關(guān),公司不但要應(yīng)對各種臭名昭著的漏洞,還要應(yīng)對新出現(xiàn)的漏洞(如移動平臺應(yīng)用程序中的漏洞)。其次,是典型的應(yīng)用軟件組合的規(guī)模和種類。很多企業(yè)使用的應(yīng)用程序種類多達(dá)上百種上,其中包括內(nèi)部開發(fā)的各種軟件,以及開源軟件、商品軟件,外包軟件等。此外,一次安全事件的實(shí)質(zhì)影響所帶來的成本會更高。應(yīng)用程序的安全事件,其發(fā)生的可能性、發(fā)生頻率、發(fā)生后的影響都是很高的。適時地解決此類型事件,可以有效地減少成本。
從何處開始
根據(jù)其功用,我們逐個來看一下可以有效解決應(yīng)用程序安全問題的重要舉措:
1、 確認(rèn)應(yīng)用程序組合
如前所述,企業(yè)使用的應(yīng)用程序種類很多,且隨著業(yè)務(wù)的變化,幾乎每年都在增加。而且,使用應(yīng)用程序的終端用戶數(shù)量也在增加,這些因素都會極大地增加面向互聯(lián)網(wǎng)的企業(yè)應(yīng)用程序被攻擊和滲透的可能性。顯然,首先要調(diào)查企業(yè)已擁有的應(yīng)用程序都有哪些。
2、 確認(rèn)最大的風(fēng)險(xiǎn)
幾乎沒有哪家公司能同時修復(fù)所有應(yīng)用程序的安全漏洞。事實(shí)上,并非所有的應(yīng)用程序漏洞都是一樣的(不妨回想一下其發(fā)生的可能性、發(fā)生的頻率、每次安全事件所生產(chǎn)的經(jīng)濟(jì)影響)。所以,最合適的做法是把最高的優(yōu)先權(quán)給與最大的風(fēng)險(xiǎn)。
例如,基于Web的前端應(yīng)用程序,.NET應(yīng)用程序,基于Java的Web應(yīng)用程序,以及Web2.0應(yīng)用程序被許多公司認(rèn)為是具有最大風(fēng)險(xiǎn)的程序。由于企業(yè)中移動設(shè)備(如智能電話、平板電腦等)的增加,可以預(yù)見,在不遠(yuǎn)的將來,企業(yè)級移動應(yīng)用程序?qū)S升為具有極大風(fēng)險(xiǎn)的程序。
3、 理解并使用自己的工具
滲透測試、應(yīng)用程序漏洞掃描、人工源代碼檢查是應(yīng)用程序安全領(lǐng)域最常見的技術(shù)。此外,還有靜態(tài)源代碼分析、動態(tài)源代碼分析等。
公司不但要知道目前正在使用、計(jì)劃、評估哪些技術(shù)和工具,更要知道哪些工具與其同類公司相關(guān),從而達(dá)到更好的結(jié)果。要將性能和結(jié)果與人員的能力、過程、技術(shù)結(jié)合起來,用以提供最佳的防護(hù)。
4、 選擇最佳的部署方案
有多種方案可供企業(yè)選擇。例如,本地軟件、按需解決方案或軟件即服務(wù)(SaaS)。企業(yè)的部分選擇要以公司內(nèi)部的熟練安全技術(shù)人員為轉(zhuǎn)移;例如,對有些企業(yè)來說,按需TaaS(測試即服務(wù))可能是開始工作時最具成本效益的方法。而對其他公司來說,本地動態(tài)測試則可能是最恰當(dāng)?shù)姆椒?,同時,配合企業(yè)需要的外部專家會是確保成功的明智方法。
確立明確的權(quán)責(zé)
要求一個管理人員或團(tuán)隊(duì)負(fù)責(zé)一項(xiàng)企業(yè)范圍內(nèi)應(yīng)用程序安全,這對保證企業(yè)業(yè)務(wù)的可持續(xù)性發(fā)展至關(guān)重要。例如,將開發(fā)人員的部分時間用來解決應(yīng)用程序漏洞掃描和滲透測試工具所確認(rèn)的高風(fēng)險(xiǎn)漏洞,這樣做是否更為有效?
確認(rèn)漏洞及其修復(fù)的優(yōu)先順序
沒有哪家企業(yè)能夠同時修復(fù)所有的漏洞,況且所有應(yīng)用程序的安全漏洞是動態(tài)變化的,所以一個高效的分類系統(tǒng)是至關(guān)重要的。要高度重視修復(fù)那些被評估為具有潛在影響和發(fā)生可能性的漏洞。應(yīng)用程序掃描和測試工具可以幫助你確認(rèn)特定的應(yīng)用程序漏洞,借助于工具以及你自己的經(jīng)驗(yàn)和判斷你可以確定需要解決的漏洞的優(yōu)先順序。
讓IT安全與應(yīng)用程序開發(fā)聯(lián)合起來
通常情況下,通過對單位已經(jīng)部署的應(yīng)用程序?qū)嵤呙韬蜏y試技術(shù),IT安全團(tuán)隊(duì)將是開始應(yīng)用程序安全工作的人員。你需要避免的是,IT安全團(tuán)隊(duì)找到了漏洞,然后將其交給應(yīng)用程序的開發(fā)團(tuán)隊(duì)去解決。如前所述,開發(fā)人員的職責(zé)主要是增加應(yīng)用軟件的功能,加速版本的更新等,而不是解決由主動掃描和測試所確認(rèn)的漏洞。只有當(dāng)IT安全和應(yīng)用程序的開發(fā)團(tuán)隊(duì)在思考問題時考慮的是“我們”而不是區(qū)分為“我們”和“他們”時,才能真正為解決問題起到建設(shè)作用。
在IT安全、操作、應(yīng)用程序的開發(fā)團(tuán)隊(duì)之間建立良好的交流將有助于確認(rèn)和修復(fù)應(yīng)用程序的安全漏洞。
采用一種主要的策略
在你主動解決問題的早期階段,你可以將主動掃描和測試中得到的結(jié)果,作為向應(yīng)用程序開發(fā)團(tuán)隊(duì)提供的確鑿證據(jù)。你最終將涉及討論的核心問題,即在規(guī)范的應(yīng)用程序開發(fā)周期的重要階段:分析、設(shè)計(jì)、實(shí)施、測試、發(fā)布、部署、持續(xù)支持。只有這樣,你才能認(rèn)識到應(yīng)用程序的安全漏洞如何以最恰當(dāng)?shù)姆绞絹泶_認(rèn)和修復(fù)。
在這個問題上,正確的看法應(yīng)當(dāng)是:公司應(yīng)當(dāng)從源頭上解決安全問題,也就是將安全的應(yīng)用程序開發(fā)工具和方法集成到軟件的開發(fā)周期中,而不是在查找、修復(fù)漏洞的旋渦中掙扎。
雖然“源頭安全”是目前最常見的方法,但它不可能一蹴而就,應(yīng)在開發(fā)應(yīng)用程序的過程中時刻牢記此觀念。
培訓(xùn)開發(fā)人員
事實(shí)上,在應(yīng)用程序安全策略中的教育和培訓(xùn)中,不同的公司之間并沒有什么明顯的差距。因此公司還有很多改進(jìn)的空間。簡言之,不要僅僅告訴開發(fā)人員說“你弄錯了”,而要讓其認(rèn)識到如何正確地安全地開發(fā)程序。
與管理層交流
管理部門不僅要確立應(yīng)用程序安全的優(yōu)先權(quán),而且要分配必要的工具和資源。安全管理人員要明明白白地表達(dá)真實(shí)的安全事件,這樣企業(yè)的領(lǐng)導(dǎo)人就會有時間來思考安全問題,從而確保資源的分配與企業(yè)的戰(zhàn)略保持一致。
總結(jié)
應(yīng)用程序所帶來的安全威脅局勢,以及企業(yè)應(yīng)用程序組合的規(guī)模和種類都在發(fā)生著變化,一次真正的安全事件的實(shí)質(zhì)影響是企業(yè)在應(yīng)用程序安全方面進(jìn)行投資的最顯著動因。但最重要的因素是,投資于應(yīng)用程序安全可以給企業(yè)帶來巨大的投資回報(bào)。最好的做法就是現(xiàn)在行動。企業(yè)不妨采用一種基于風(fēng)險(xiǎn)的方法:1、確認(rèn)你的應(yīng)用程序組合,理解企業(yè)已經(jīng)擁有的應(yīng)用程序種類和數(shù)量。2、確認(rèn)最大的風(fēng)險(xiǎn),把最高的優(yōu)先權(quán)給與特定的應(yīng)用程序。3、確認(rèn)特定應(yīng)用程序的漏洞,根據(jù)應(yīng)用程序安全工具的使用和自己的經(jīng)驗(yàn)和判斷,區(qū)分應(yīng)用程序修復(fù)的優(yōu)先順序。
而且要理解并使用自己的工具,要充分利用應(yīng)用程序漏洞的掃描、滲透測試和人工源代碼檢查、靜態(tài)源代碼分析和驗(yàn)證、動態(tài)源代碼分析。實(shí)踐證明,這些工具和技術(shù)正是在安全問題上區(qū)分不同公司的關(guān)鍵所在。當(dāng)然,企業(yè)必須選擇可以給企業(yè)最大靈活性的解決方案。