自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何保證Web應(yīng)用程序安全性

安全
Web應(yīng)用程序是當(dāng)今多數(shù)企業(yè)應(yīng)用的前沿陣地。Web應(yīng)用程序在一個(gè)復(fù)雜的混合性架構(gòu)中可以發(fā)揮多種不同的功能。其涉及范圍極廣,從在最新的云技術(shù)上運(yùn)行的面向服務(wù)的方案,到較老的多層Web應(yīng)用程序,再到準(zhǔn)許客戶訪問大型主機(jī)上老應(yīng)用程序的Web入口,都有其應(yīng)用。

Web應(yīng)用程序是當(dāng)今多數(shù)企業(yè)應(yīng)用的前沿陣地。Web應(yīng)用程序在一個(gè)復(fù)雜的混合性架構(gòu)中可以發(fā)揮多種不同的功能。其涉及范圍極廣,從在最新的云技術(shù)上運(yùn)行的面向服務(wù)的方案,到較老的多層Web應(yīng)用程序,再到準(zhǔn)許客戶訪問大型主機(jī)上老應(yīng)用程序的Web入口,都有其應(yīng)用。

管理與這些復(fù)雜的Web應(yīng)用程序相關(guān)的風(fēng)險(xiǎn)是公司的必然要求,而且運(yùn)行這些Web應(yīng)用程序的底層代碼的安全性直接影響到公司應(yīng)用程序可用數(shù)據(jù)的風(fēng)險(xiǎn)態(tài)勢。不幸的是,開發(fā)可重復(fù)的高效Web應(yīng)用程序的安全實(shí)踐并非一項(xiàng)簡單任務(wù)。許多單位試圖運(yùn)用后生產(chǎn)(post-production)解決方案來提供安全控制,如Web應(yīng)用防火墻和入侵防御系統(tǒng)等。

但是一直等到生命周期的生產(chǎn)階段才部署安全機(jī)制有點(diǎn)兒太遲,其效用也太小。設(shè)計(jì)或架構(gòu)問題在生命周期的早期階段更容易解決,如果等到應(yīng)用程序投入生產(chǎn)之后再“亡羊補(bǔ)牢”,其所花費(fèi)的成本將極其高昂。Web應(yīng)用程序的安全漏洞可導(dǎo)致數(shù)據(jù)泄露、違反策略,而且,在部署后再打補(bǔ)丁或進(jìn)行全面的代碼修復(fù)都會極大地增加總成本。

為保證效益和效率,Web應(yīng)用程序的安全必須從需求的定義階段開始,直至最后的接收階段。這種方法要求全體設(shè)計(jì)人員在整個(gè)過程中能夠作為一個(gè)團(tuán)隊(duì)通力合作。在實(shí)施和測試等階段,使用遵循策略的自動化工具能夠支持可重復(fù)的測試,并且隨著測試過程的標(biāo)準(zhǔn)化可以使開發(fā)周期更快。

在開發(fā)過程的最初階段就著手構(gòu)建安全性未必很復(fù)雜。在整個(gè)開發(fā)周期實(shí)施安全檢查和平衡,可以實(shí)現(xiàn)更快的發(fā)布周期,并可以極大地減少Web應(yīng)用程序的漏洞。

在開發(fā)周期的后期實(shí)施安全測試的高昂成本

將安全檢查點(diǎn)加入到開發(fā)過程中,確實(shí)可以減少總體交付時(shí)間。這聽起來有點(diǎn)兒違反直覺,但是,在Web應(yīng)用程序部署進(jìn)入生產(chǎn)階段之后,與糾正設(shè)計(jì)錯誤和代碼錯誤相關(guān)的成本是極其高昂的。

例如,在許多開發(fā)環(huán)境中,安全和審核專家往往出現(xiàn)在開發(fā)周期結(jié)束之時(shí)。此時(shí),應(yīng)用程序已經(jīng)完成,任何延誤都被看作是多余的瓶頸。企業(yè)方面要求軟件產(chǎn)品快速推出,這種巨大的壓力意味著可能會忽略安全控制,導(dǎo)致Web應(yīng)用程序沒有經(jīng)過恰當(dāng)?shù)陌踩珜彶?。在這種時(shí)間極端敏感的環(huán)境,即使掃描工具報(bào)告了大量的漏洞但卻沒有經(jīng)過驗(yàn)證,也沒有確定其優(yōu)先次序,這種掃描也是弊大于利。

在開發(fā)過程的后期進(jìn)行安全審計(jì),而不是在整個(gè)開發(fā)周期中協(xié)力完成,會導(dǎo)致發(fā)布時(shí)間延遲,特別是在發(fā)現(xiàn)了某些嚴(yán)重的錯誤時(shí)尤其如此。在開發(fā)周期的后期修復(fù)設(shè)計(jì)和編碼錯誤的成本遠(yuǎn)遠(yuǎn)高于早期發(fā)現(xiàn)錯誤所花費(fèi)的成本。根據(jù)美國國家科學(xué)基金會的一項(xiàng)研究估計(jì),如果在需求和設(shè)計(jì)階段發(fā)現(xiàn)和糾正了嚴(yán)重的軟件問題,其成本要比將軟件投入生產(chǎn)之后再發(fā)現(xiàn)問題所花費(fèi)的成本大約低100倍。#p#

在Web應(yīng)用程序中構(gòu)建安全性時(shí),在多數(shù)情況下,其目標(biāo)并不是構(gòu)建固若金湯的Web應(yīng)用程序,或者清除每一處可能的漏洞。相反,目標(biāo)應(yīng)當(dāng)是將所要求的特性與經(jīng)認(rèn)可的關(guān)于Web應(yīng)用程序的風(fēng)險(xiǎn)預(yù)測匹配起來。在整個(gè)Web應(yīng)用程序的開發(fā)周期中,其目標(biāo)應(yīng)當(dāng)是實(shí)現(xiàn)軟件擔(dān)保,即與特定Web應(yīng)用程序相適應(yīng)的功能和敏感水平,能夠有理由保證軟件將會持續(xù)地實(shí)現(xiàn)其所要求的特性,即使軟件遭受攻擊也能夠如此。

整合方法的好處

當(dāng)來自不同小組的開發(fā)人員作為一個(gè)團(tuán)隊(duì)協(xié)同工作時(shí),就會造就Web應(yīng)用程序開發(fā)過程的高效率。雖然安全專業(yè)人員常??畤@商務(wù)主管完全不理解軟件風(fēng)險(xiǎn),但是安全專業(yè)人員熟悉商業(yè)風(fēng)險(xiǎn)也很重要。通過適當(dāng)?shù)能浖?dān)保水平來構(gòu)建Web應(yīng)用程序,要求在商業(yè)需要、可用性和安全性之間進(jìn)行風(fēng)險(xiǎn)管理權(quán)衡。為了達(dá)到適當(dāng)?shù)钠胶?,必須收集所有開發(fā)人員的需求。

從軟件開發(fā)的開始階段,需求定義和應(yīng)用程序的設(shè)計(jì)就應(yīng)當(dāng)考慮安全需求以及功能需求和商業(yè)需要。在編寫代碼之前,這種信息就應(yīng)當(dāng)傳達(dá)給設(shè)計(jì)師和軟件開發(fā)人員。這種方法可以防止多數(shù)甚至是全部安全設(shè)計(jì)漏洞和架構(gòu)漏洞。

然而,關(guān)注安全的軟件設(shè)計(jì)并不是排除與Web應(yīng)用程序相關(guān)的所有漏洞。開發(fā)人員自身必須接受關(guān)于安全編碼技術(shù)的培訓(xùn),以確保在應(yīng)用程序的設(shè)計(jì)期間,并不會帶來安全漏洞。讓開發(fā)人員洞察開發(fā)語言和運(yùn)行環(huán)境的安全方法可以支持更好的編碼實(shí)踐,并會使最終的Web應(yīng)用程序出現(xiàn)的錯誤更少。將安全性納入到設(shè)計(jì)過程中的另一個(gè)效率上的利益是,能夠在需求和設(shè)計(jì)期間建立誤用情形。 在測試和接收階段這樣做可以節(jié)省時(shí)間,并有助于消除瓶頸。

整合性合成測試的好處

軟件測試的整合性的合成分析方法可以更大地提升效率。集成開發(fā)環(huán)境的特定插件在發(fā)現(xiàn)用戶的編碼錯誤時(shí)會向編碼人員發(fā)出警告。靜態(tài)分析,也稱為“白盒”測試,在將不同的模塊組裝成最終的產(chǎn)品之前,開發(fā)人員和審計(jì)人員就對其使用此技術(shù)。靜態(tài)分析在代碼水平上提供了一種內(nèi)部人員對應(yīng)用程序的檢查分析。靜態(tài)分析對于發(fā)現(xiàn)語法錯誤和代碼水平的缺陷是很有效的,但并不適于決定一個(gè)缺陷是否會導(dǎo)致可利用的漏洞。

動態(tài)分析和人工滲透測試對于驗(yàn)證應(yīng)用程序是否容易受到攻擊是有效的。它也被稱為“黑盒測試”,主要展示的是外部人員對應(yīng)用程序的檢查分析,可以對投入生產(chǎn)的應(yīng)用程序進(jìn)行深入檢查,查看攻擊者是否容易利用其漏洞。然而,動態(tài)測試技術(shù)僅能用于軟件開發(fā)的后期,只能在生成后階段。動態(tài)測試的另一個(gè)局限性是它很難找出代碼中導(dǎo)致漏洞的代碼源。

這就是將靜態(tài)測試和動態(tài)測試結(jié)合起來以“灰盒”或組合的方法進(jìn)行混合測試的原因。通過將代碼水平的內(nèi)部檢查和動態(tài)的外部檢查結(jié)果結(jié)合起來,就可以充分利用兩種技術(shù)的長處。使用靜態(tài)和動態(tài)評估工具可以使管理人員和開發(fā)人員區(qū)分應(yīng)用程序、模塊、漏洞的優(yōu)先次序,并首先處理影響最大的問題。組合分析方法的另外一個(gè)好處是動態(tài)測試確認(rèn)的漏洞可以用靜態(tài)工具追溯到特定的代碼行或代碼塊。這便有利于測試和開發(fā)團(tuán)隊(duì)進(jìn)行合作性交流,并使得安全和測試專家更容易向開發(fā)人員提供具體的可操作的糾錯指導(dǎo)。

將安全性構(gòu)建到軟件的生命周期中:實(shí)用方法

構(gòu)建安全性需要人員、過程以及技術(shù)、方法。雖然有大量的工具可有助于自動化地強(qiáng)化Web應(yīng)用程序的安全,但是,如果沒有恰當(dāng)?shù)倪^程和訓(xùn)練有素的人員來創(chuàng)建、測試Web應(yīng)用程序,那么,任何工具都不會真正有效。

這個(gè)過程應(yīng)當(dāng)包括一個(gè)正式的軟件開發(fā)周期及所公布的策略。此外,為所有的開發(fā)人員建立角色,并且指派檢查和監(jiān)管責(zé)任也是很重要的。安全和業(yè)務(wù)在軟件開發(fā)周期的每一個(gè)階段都應(yīng)當(dāng)?shù)玫奖憩F(xiàn),從而可以在每一個(gè)步驟處理風(fēng)險(xiǎn)管理。

在軟件的整個(gè)開發(fā)周期,一個(gè)有益的永恒主題就是教育。教育對于開發(fā)人員是很重要的,它對于Web應(yīng)用程序開發(fā)所涉及到的全體人員都很有益。因?yàn)榘踩庾R既需要從上而下,也需要從下而上。不要低估教育管理人員認(rèn)識到Web應(yīng)用程序的漏洞如何影響企業(yè)的重要性。告訴一位管理人員Web應(yīng)用程序易于遭受跨站請求偽造(CSRF)可能會令他感到茫然,但是如果向他展示軟件錯誤如何會導(dǎo)致客戶數(shù)據(jù)的泄露,就能夠有助于使其意識到不安全的Web應(yīng)用程序所造成的切實(shí)后果。應(yīng)該準(zhǔn)備特定的案例和度量標(biāo)準(zhǔn)用以闡明潛在的各種成本節(jié)約。例如,在開發(fā)人員檢查其代碼之前,就演示對開發(fā)人員的培訓(xùn)和IDE的靜態(tài)分析插件投資可以阻止軟件應(yīng)用中的數(shù)據(jù)泄露根源。#p#

審計(jì)人員和評估人員可以從學(xué)習(xí)常見的編碼錯誤、后果評估以及與Web應(yīng)用程序“生態(tài)系統(tǒng)”(包括后端的支撐系統(tǒng)、現(xiàn)有的安全控制以及屬于Web應(yīng)用程序環(huán)境的任何服務(wù)或應(yīng)用程序)有關(guān)的依賴關(guān)系中獲益。測試者及質(zhì)量評價(jià)專家應(yīng)當(dāng)熟知誤用情形,并且知道誤用情形是如何區(qū)別于標(biāo)準(zhǔn)的應(yīng)用的,還要知道如何解釋安全測試結(jié)果,并能夠按照需要對結(jié)果區(qū)分優(yōu)先次序。

關(guān)注軟件開發(fā)周期中的具體步驟,在這些步驟中存在著增加效率同時(shí)又可以貫徹安全性和風(fēng)險(xiǎn)管理的機(jī)會。

需求

Web應(yīng)用程序的設(shè)計(jì)者對于定義功能和業(yè)務(wù)需求非常熟悉,但是未必理解如何定義安全需求。此時(shí),整個(gè)團(tuán)隊(duì)需要協(xié)同工作,決定哪些安全控制對最終的Web應(yīng)用程序至關(guān)重要。

將安全性集成到需求階段的步驟

1、根據(jù)公司策略、合規(guī)和規(guī)章要求,討論并定義安全需求。

2、安全和審計(jì)團(tuán)隊(duì)?wèi)?yīng)當(dāng)評估業(yè)務(wù)需求和Web應(yīng)用程序的功能,并且在測試和接受期間開始制定誤用案例(誤用情形)。

其好處有兩方面,一是提前清除或減少安全或違規(guī)問題,二是減少部署時(shí)間。

架構(gòu)和設(shè)計(jì)

由于已經(jīng)定義了Web應(yīng)用程序的架構(gòu)和設(shè)計(jì)方案,下一步就需要評估安全問題。正是在這個(gè)階段,成本高昂的、難以糾正的安全問題可以在其最易于解決的時(shí)間修復(fù)。為了防止損失慘重的錯誤,應(yīng)當(dāng)從性能和安全兩個(gè)方面評估程序的架構(gòu)。由于編制了詳細(xì)的設(shè)計(jì)規(guī)范,因而可以向開發(fā)人員展示出應(yīng)當(dāng)包括哪些安全控制,以及應(yīng)用程序的組件如何與完整的Web應(yīng)用程序進(jìn)行交互。

將安全性集成到架構(gòu)和設(shè)計(jì)階段的步驟

1、對于所建議的架構(gòu)和部署環(huán)境執(zhí)行風(fēng)險(xiǎn)評估,以決定設(shè)計(jì)是否會帶來風(fēng)險(xiǎn)。

2、評估應(yīng)用程序與原有系統(tǒng)進(jìn)行交互時(shí)的安全意義和風(fēng)險(xiǎn),以及不同的組件、層或系統(tǒng)之間的數(shù)據(jù)流的安全問題。

3、評述在實(shí)施或部署階段需要解決的任何具體的暴露問題(即依賴于應(yīng)用程序的部署方式和部署位置的漏洞)。

4、考慮依賴關(guān)系以及與混搭關(guān)系、SOA及合伙服務(wù)的交互所引起的漏洞。將最終的設(shè)計(jì)交付安全和審計(jì),以確定安全測試計(jì)劃和誤用情形。

其好處體現(xiàn)在五個(gè)方面:

1、可以精心協(xié)調(diào)風(fēng)險(xiǎn)評估分析過程和可重用的風(fēng)險(xiǎn)評估模型。

2、可以在早期階段確定由架構(gòu)環(huán)境或部署環(huán)境所帶來的風(fēng)險(xiǎn)。

3、可重用的誤用案例可以節(jié)省測試階段的時(shí)間。

4、減少特定的設(shè)計(jì)漏洞。

5、如果有必要,可以調(diào)整或變更帶來風(fēng)險(xiǎn)的架構(gòu)限制,如果無法完全清除風(fēng)險(xiǎn),也可以用補(bǔ)償性控制來定義減輕風(fēng)險(xiǎn)的策略。

代碼執(zhí)行與編譯

在開發(fā)人員開始編寫代碼時(shí),他們對安全控制必須擁有一套完整的風(fēng)險(xiǎn)評估設(shè)計(jì)和清晰指南,或通過經(jīng)認(rèn)可的服務(wù)來使用這種安全控制。集成到IDE中的自動化靜態(tài)代碼工具可以在編寫代碼時(shí)向開發(fā)人員提供檢查和指南。自動化的工具還可在編譯期間用于對照策略模板檢查代碼是否違規(guī),并可以深入查看代碼水平的安全問題。#p#

將安全性集成到代碼執(zhí)行和編譯階段的步驟

1、安裝可與集成開發(fā)環(huán)境整合到一起的靜態(tài)源碼檢查工具。

2、作為一種選擇,開發(fā)人員在交付代碼之前可以用獨(dú)立的編碼工具來執(zhí)行自動化的代碼檢查。

3、安全和審核團(tuán)隊(duì)抽查代碼模塊,看其是否遵循合規(guī)要求,并在編譯之前使用自動化的或手動的代碼檢查來檢查其安全風(fēng)險(xiǎn)。

4、在編譯過程中,執(zhí)行自動化的靜態(tài)代碼掃描,查找安全問題和策略的遵循情況。

5、使用工具跟蹤開發(fā)人員的編碼錯誤,并對其帶來的安全風(fēng)險(xiǎn)提供解釋性反饋和原因說明。

這會帶來如下的好處:

1、可將更清潔的或漏洞更少的代碼提交給質(zhì)量評價(jià)人員。

2、隨著時(shí)間的推移開人人員可以提升安全編碼能力。

3、可重用策略可以提升風(fēng)險(xiǎn)分析的正確性。

4、在測試階段發(fā)現(xiàn)的編碼錯誤或漏洞更少,并會使開發(fā)周期更短。

質(zhì)量評價(jià)/測試

用于測試應(yīng)用程序的具體安全工具范圍很廣,其中有可以評估完整應(yīng)用程序的獨(dú)立解決方案和服務(wù),更有完全集成的套件,這種套件可以提供測試和對從教育到實(shí)施等多個(gè)階段的支持。集成的方案可以為那些對可重復(fù)的Web應(yīng)用程序的安全周期表現(xiàn)成熟的公司提供多個(gè)階段的支持。集成套件可以在進(jìn)程中的多個(gè)時(shí)點(diǎn)上實(shí)施,并可為持續(xù)的改善提供尺度和反饋。

那么,在質(zhì)量評價(jià)和測試階段,應(yīng)采取哪些集成安全和改善安全的步驟呢?

1、專注于發(fā)現(xiàn)某些資源的最重要問題。

2、在一個(gè)包括現(xiàn)有的補(bǔ)救控制(如防火墻和IPS)的應(yīng)用架構(gòu)中驗(yàn)證這些測試發(fā)現(xiàn)。

3、根據(jù)安全性和業(yè)務(wù)需要,區(qū)分所發(fā)現(xiàn)的漏洞的優(yōu)先次序。

4、對于代碼行或其所依賴的API、服務(wù)、庫等提出修復(fù)建議。

其好處也是顯而易見的:1、應(yīng)用程序開發(fā)人員之間可以更好地交流。2、似是而非的東西更少。3、修復(fù)周期更快。

部署/投產(chǎn)

Web應(yīng)用程序的安全性并不會終止于應(yīng)用程序的部署階段。一旦Web應(yīng)用程序投產(chǎn),還應(yīng)當(dāng)實(shí)施其它測試和監(jiān)視,用以確保數(shù)據(jù)和服務(wù)受到保護(hù)。實(shí)際的Web應(yīng)用程序的自動安全監(jiān)視能夠確保應(yīng)用程序正在如所期望的那樣運(yùn)行,并且不會泄露信息從而造成風(fēng)險(xiǎn)。監(jiān)視可由內(nèi)部人員完成,也可外包給能夠全天候監(jiān)視應(yīng)用程序的外部供應(yīng)商。

在部署和投產(chǎn)階段集成和改善安全性的步驟:

1、監(jiān)視誤用情況,其目的是為了確定測試中所謂的“不會被利用的漏洞”在投產(chǎn)后真得不會被利用。

2、監(jiān)視數(shù)據(jù)泄露,其目的是為了查找被錯誤地使用、發(fā)送或存儲的所有地方。

3、將部署前的風(fēng)險(xiǎn)評估與投產(chǎn)后的暴露范圍進(jìn)行比較,并向測試團(tuán)隊(duì)提供反饋。

4、實(shí)施Web應(yīng)用防火墻、IPS或其它的補(bǔ)救措施,其目的是為了減輕代碼修復(fù)之前的暴露程度,或是為了符合新的安全規(guī)范。

其好處有如下幾個(gè)方面:

1、改善能夠成功實(shí)施的漏洞利用的知識庫,從而改善在靜態(tài)和動態(tài)測試期間的掃描效益。

2、發(fā)現(xiàn)并阻止應(yīng)用程序的誤用情況。

3、在動態(tài)測試和投產(chǎn)中的應(yīng)用程序控制(如Web應(yīng)用防火墻或IPS)之間實(shí)現(xiàn)更好的集成。

4、滿足再次編寫代碼之前的合規(guī)需要。

5、使用反饋機(jī)制實(shí)現(xiàn)持續(xù)的改善。

小結(jié)

保障Web應(yīng)用程序的安全未必意味著延長開發(fā)周期。只要對所有開發(fā)人員進(jìn)行良好的教育,并采取清晰且可重復(fù)的構(gòu)建過程,企業(yè)就可以用一種高效而合作性的方式將安全和風(fēng)險(xiǎn)納入到開發(fā)過程中。

將安全構(gòu)建到Web應(yīng)用程序的交付周期中確實(shí)需要一種合作性的方法,需要將人員、過程和技術(shù)集成到一起。雖然Web應(yīng)用程序安全工具和套件有助于過程的改進(jìn),但它們并非萬能藥。為獲得最大利益,應(yīng)當(dāng)考慮選擇能夠理解完整開發(fā)周期的Web應(yīng)用程序安全工具廠商,還要有能在開發(fā)過程的多個(gè)階段提供支持的工具。

【編輯推薦】

  1. 建立應(yīng)用層防火墻規(guī)則基礎(chǔ)
  2. 霧里看花 如何選擇真正的萬兆防火墻
  3. 應(yīng)用防火墻
  4. 看防火墻進(jìn)化 論次世代防火墻技術(shù)
責(zé)任編輯:佟健 來源: IT168
相關(guān)推薦

2013-02-18 16:12:55

2022-06-22 09:00:00

安全編程語言工具

2024-06-11 08:00:00

.NET開發(fā)網(wǎng)絡(luò)攻擊

2011-03-31 13:05:10

2011-03-31 13:11:45

Web應(yīng)用程序

2011-03-31 13:03:04

2011-03-31 13:07:00

Web應(yīng)用程序漏洞

2011-03-31 09:40:46

2012-03-20 10:28:43

2011-11-03 09:41:35

Android簽名安全性

2021-07-20 09:44:34

云原生應(yīng)用程序安全云安全

2010-01-27 10:28:47

2010-01-11 10:43:16

應(yīng)用程序安全性

2010-01-23 20:34:02

企業(yè)網(wǎng)絡(luò)應(yīng)用程序安全

2019-03-12 18:00:33

httpWeb安全Javascript

2012-05-10 09:50:53

云計(jì)算安全

2019-12-04 07:12:41

前端后端web安全

2013-11-19 15:35:01

2019-08-21 17:10:13

安全技術(shù)網(wǎng)絡(luò)安全網(wǎng)站

2023-07-13 07:35:19

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號