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

理解Web應(yīng)用程序的安全挑戰(zhàn)

原創(chuàng)
安全
隨著信息技術(shù)的告訴發(fā)展,企業(yè)中的信息系統(tǒng)越來越復(fù)雜,就目前的趨勢而言,Web應(yīng)用程序在企業(yè)中占據(jù)主要地位,因此企業(yè)越來越依賴于Web應(yīng)用程序,目前在安全方面考慮最多的可能是在服務(wù)器前部署防火墻,開啟SSL協(xié)議和主機(jī)加固,但遺憾的是攻擊的主要目標(biāo)現(xiàn)在已經(jīng)逐漸轉(zhuǎn)移到Web應(yīng)用程序本身了,這些保護(hù)措施已經(jīng)變得越來越?jīng)]有用了。

【51CTO.com 獨(dú)家特稿】隨著信息技術(shù)的告訴發(fā)展,企業(yè)中的信息系統(tǒng)越來越復(fù)雜,就目前的趨勢而言,Web應(yīng)用程序在企業(yè)中占據(jù)主要地位,因此企業(yè)越來越依賴于Web應(yīng)用程序,目前在安全方面考慮最多的可能是在服務(wù)器前部署防火墻,開啟SSL協(xié)議和主機(jī)加固,但遺憾的是攻擊的主要目標(biāo)現(xiàn)在已經(jīng)逐漸轉(zhuǎn)移到Web應(yīng)用程序本身了,這些保護(hù)措施已經(jīng)變得越來越?jīng)]有用了。

是什么使Web應(yīng)用程序變得脆弱的呢?

按照OSI參考模型來看,信息的傳輸要通過多層網(wǎng)絡(luò)協(xié)議,處于頂層的應(yīng)用層包括HTTP、FTP等協(xié)議,本文的重點(diǎn)放在HTTP協(xié)議上,傳統(tǒng)的防火墻不能有效地阻止這一層協(xié)議,因此許多攻擊者都喜歡在網(wǎng)絡(luò)層構(gòu)造虛假的HTTP請求,在其中夾雜攻擊代碼。

HTTP攜帶式攻擊允許無限制地對數(shù)據(jù)庫訪問,并可以執(zhí)行任意系統(tǒng)命令,甚至修改網(wǎng)站內(nèi)容。由于缺乏和不重視對Web應(yīng)用程序的安全管理和測試,很容易將系統(tǒng)漏洞暴露給攻擊者。主要有下面三方面的原因:

(1)分析人員和設(shè)計(jì)人員在考慮安全問題時(shí),只考慮了網(wǎng)絡(luò)安全,只有少數(shù)安全專家才會(huì)認(rèn)證對待和思考應(yīng)用層安全。

(2)開發(fā)團(tuán)隊(duì)認(rèn)為應(yīng)用程序安全是一個(gè)模糊的概念,或者在交付使用時(shí)發(fā)表聲明,要求客戶做好保護(hù)工作,使得安全性測試實(shí)施變得非常困難。

(3)即使進(jìn)行了安全測試,也是放在軟件生命周期的后期了,即由攻擊者發(fā)起的攻擊性測試。常見的Web應(yīng)用程序攻擊類型針對Web應(yīng)用程序的攻擊種類很多,切入點(diǎn)也有很多,通常,在一個(gè)Web系統(tǒng)中有下面這些攻擊切入點(diǎn),也正是要保護(hù)的點(diǎn),如圖1所示。

圖1

圖1     Web應(yīng)用程序的安全問題

從上圖可以看出,攻擊者要發(fā)起攻擊,有很多的入口點(diǎn),那我們該怎么辦呢?通常應(yīng)該選擇符合自己需要的防范措施和技術(shù)手段,而不應(yīng)該一味地追求最新的攻擊方式保護(hù)。下面列舉出一些常見的攻擊類型和防范措施,也許對你的Web應(yīng)用程序有所幫助。

描述    常見原因    預(yù)防措施

(1)偽裝傳入一個(gè)不同用戶的身份憑據(jù)、修改cookie或修改參數(shù)偽裝成某個(gè)用戶,或?qū)ookie偽裝成來自某個(gè)用戶

[a]使用基于通信的身份認(rèn)證,允許訪問所有用戶的數(shù)據(jù)。

 [b]使用未加密的證書可能被捕獲和重用。

 [c]在cookie或參數(shù)中存儲(chǔ)證書

[d]使用未經(jīng)驗(yàn)證的認(rèn)證方法或認(rèn)證來自于不受信任的域。

[e]客戶端軟件不驗(yàn)證主機(jī)。

使用以下手段為證書提供嚴(yán)格的驗(yàn)證和保護(hù):

[a]操作系統(tǒng)提供的框架

 [b]加密令牌,如會(huì)話cookie [c]數(shù)字簽名 #p#

(2)篡改未經(jīng)認(rèn)證就修改或刪除資源(如丑化網(wǎng)站界面,修改傳輸途中的數(shù)據(jù))

 [a]未經(jīng)驗(yàn)證就信任數(shù)據(jù)源。

[b]清洗輸入數(shù)據(jù),避免不想運(yùn)行的代碼執(zhí)行。

 [c]運(yùn)行的權(quán)限越來越大。

 [d]敏感數(shù)據(jù)位加密。

 [a]使用操作系統(tǒng)鎖定文件、目錄和其它資源。

 [b]驗(yàn)證你的數(shù)據(jù)。

[c]在數(shù)據(jù)傳輸過程中散列和簽名(如使用SSL或IPsec)。

(3)否認(rèn)試圖破壞、隱藏或修改已經(jīng)發(fā)生的事實(shí)(如刪除日志,模仿一個(gè)用戶請求修改)

[a]使用的是比較弱或缺乏授權(quán)的驗(yàn)證程序。

 [b]不恰當(dāng)?shù)娜罩居涗洝?/P>

 [c]允許敏感信息在無任何保護(hù)的信道中傳輸。

 [a]使用嚴(yán)格的認(rèn)證、事務(wù)記錄是數(shù)字簽名。

 [b]審核

(4)信息泄露泄露個(gè)人身份信息,如密碼和信用卡數(shù)據(jù),加上信息來源和主機(jī)信息

[a]允許授權(quán)用戶訪問其它用戶的數(shù)據(jù)。

 [b]允許敏感信息在不安全的信道上傳輸。

[c]選擇了弱的加密算法和密鑰。

 [a]在會(huì)話上存儲(chǔ)個(gè)人身份信息而不是永久性存儲(chǔ)。

 [b]無論何時(shí),對敏感數(shù)據(jù)都使用散列和加密。

 [c]以用戶身份匹配用戶數(shù)據(jù)

(5)拒絕服務(wù)(DoS)

[a]洪水攻擊-同時(shí)向服務(wù)發(fā)送許多消息和請求。

 [b]封鎖-突然發(fā)送大量的請求,耗光資源使服務(wù)器響應(yīng)變慢,迫使應(yīng)用程序重啟

[a]在一臺(tái)服務(wù)器上放置了過多的應(yīng)用程序或在一臺(tái)服務(wù)器上部署了相互沖突的應(yīng)用程序。

 [c]忽略了全面的單元測試。

[a]使用防火墻過濾數(shù)據(jù)包。

 [b]使用負(fù)載均衡設(shè)備控制對單一資源的大量請求。

 [c]使用異步協(xié)議處理CPU密集型請求和錯(cuò)誤恢復(fù)。

(6)特權(quán)提升超過正常訪問權(quán)限獲得管理員特權(quán),訪問機(jī)密文件

[a]以root或Administrator用戶運(yùn)行Web服務(wù)器進(jìn)程。

 [b]使用了代碼出錯(cuò)時(shí)允許緩沖區(qū)溢出,將應(yīng)用提升到調(diào)試狀態(tài)。

 [a]無論何時(shí)盡可能使用最小的權(quán)限。

 [b]使用類型安全語言和編譯器選項(xiàng),預(yù)防或控制緩沖區(qū)溢出。

為Web應(yīng)用程序提供安全保障的基本原則

使用安全的方法創(chuàng)建的應(yīng)用程序可以避免受到表1中列出的那些攻擊,當(dāng)然對于現(xiàn)有的Web應(yīng)用程序也可以采取一些補(bǔ)救措施來加強(qiáng)安全保護(hù),包括:

(1)發(fā)現(xiàn)并建立基線

管理一個(gè)完整的應(yīng)用程序和系統(tǒng)產(chǎn)品目錄,包括技術(shù)信息,如ip地址,DNS,操作系統(tǒng)類型等,再加上一些商務(wù)信息,如誰批準(zhǔn)開發(fā)的,如果系統(tǒng)故障應(yīng)該通知誰,或誰負(fù)責(zé)處理。接下來完整掃描一次你的Web架構(gòu),找出其中的漏洞,檢查清單和bug跟蹤網(wǎng)站上有你操作系統(tǒng)、第三方應(yīng)用程序和Web服務(wù)器的全部已知威脅,在上系統(tǒng)前,確保服務(wù)器已經(jīng)打上所有的補(bǔ)丁,最后,測試應(yīng)用程序認(rèn)證和用戶權(quán)限管理功能,并終止未知的服務(wù)。

(2)評估和轉(zhuǎn)移風(fēng)險(xiǎn)

評估應(yīng)用程序和系統(tǒng)的風(fēng)險(xiǎn),主要集中評估數(shù)據(jù)存儲(chǔ)、訪問控制、用戶配置和權(quán)限管理。優(yōu)先考慮評估期間發(fā)現(xiàn)的應(yīng)用程序漏洞,評審組織、行業(yè)和政府政策的遵從性,確定哪些操作可接受,哪些操作不能接受。

(3)保護(hù)應(yīng)用程序避免危害擴(kuò)散

掌控已知的安全威脅,并及時(shí)打上各類補(bǔ)丁,如果漏洞補(bǔ)丁還未發(fā)布,最好使用應(yīng)用層防火墻限制訪問,禁用應(yīng)用或重定向到其它程序。

(4)持續(xù)的監(jiān)測和評審

使用文檔不間斷地進(jìn)行記錄,持續(xù)監(jiān)測,發(fā)現(xiàn)問題及時(shí)評審,最快做出響應(yīng)。系統(tǒng)生命周期內(nèi)的安全測試在Web應(yīng)用程序開發(fā)早期使用RUP框架準(zhǔn)則,這樣做在發(fā)現(xiàn)和修復(fù)漏洞方面具有良好的成本效益,越是到生命周期后面,發(fā)現(xiàn)錯(cuò)誤和漏洞時(shí)的補(bǔ)救成本越高。

一些開發(fā)團(tuán)隊(duì)在前期收集需求的階段不重視安全需求,忽略了這方面的需求分析,這樣設(shè)計(jì)開發(fā)出來的系統(tǒng)當(dāng)然不能很好地抵御威脅,在編碼階段,程序員也沒有獲得具體的安全需求,可能在代碼中混雜了很多具有缺陷的代碼,在移交給用戶方時(shí),常常缺少專業(yè)的安全人員進(jìn)行評估,用戶一味地信任系統(tǒng)開發(fā)方,當(dāng)然作為系統(tǒng)開發(fā)方而言,肯定也不愿意找安全專家在此時(shí)來評估系統(tǒng)漏洞,因?yàn)榇藭r(shí)發(fā)現(xiàn)的錯(cuò)誤和漏洞要修復(fù)成本非常高昂。

下面一一個(gè)表列出系統(tǒng)生命周期內(nèi)不同階段修復(fù)漏洞的成本。#p#

錯(cuò)誤類型 設(shè)計(jì) 編碼 集成 Beta 部署

設(shè)計(jì)    1x   5x      10x     15x     30x

編碼          1x      10x      20x     30x

集成                    1x       10x      20x

發(fā)現(xiàn)錯(cuò)誤時(shí)間越晚,修復(fù)的相對成本越高

選擇正確的測試方法

為了避免出現(xiàn)在部署時(shí)才發(fā)現(xiàn)問題,系統(tǒng)研發(fā)團(tuán)隊(duì)?wèi)?yīng)該建立一套良好的安全測試方法,在開發(fā)過程中和質(zhì)量管理一起形成一個(gè)有機(jī)的保障屏障。下面列出已知安全測試的方法及對應(yīng)的優(yōu)缺點(diǎn),以供大家參考:

描述    優(yōu)點(diǎn)    缺點(diǎn)

(1)手動(dòng)測試由安全專家利用工具和腳本進(jìn)行滲透和安全驗(yàn)收測試 對具體的應(yīng)用功能發(fā)起有針對性的測試

 [a]受限于測試專家

 [b]可能導(dǎo)致更高的錯(cuò)誤率和循環(huán)成本

 [c]由于時(shí)間限制,限制了應(yīng)用的覆蓋率

(2)自動(dòng)化測試包括兩種方法:

 [a]自底向上 - 測試具體的個(gè)別功能,有開發(fā)人員自己實(shí)現(xiàn)

 [b]自頂向下 - QA團(tuán)隊(duì)從最終用戶的角度建立測試 質(zhì)量高,減少測試和迭代開發(fā)過程 比手動(dòng)測試需要更大的開銷

(3)黑盒或系統(tǒng)測試只查看系統(tǒng)的輸入輸出,修改正常的用戶輸入查看應(yīng)用程序的行為 使用成熟度非常高的自動(dòng)化測試工具,學(xué)習(xí)難度較低

 [a]可能只有當(dāng)所有應(yīng)用程序組件都就緒后才能開始測試(通常是在產(chǎn)品開發(fā)后期或在生產(chǎn)環(huán)境中使用)

[b]可能產(chǎn)生無法忽略,無法回退的事務(wù)

(4)白盒測試為特定功能錯(cuò)誤評估個(gè)別組件,通常結(jié)合代碼掃描工具和同級(jí)評審 可以使用與開發(fā)IDE環(huán)境集成的工具

 [a]不能暴露需求和設(shè)計(jì)缺陷

 [b]可能不會(huì)暴露包含在多個(gè)組件內(nèi)的漏洞,或在單元測試時(shí)段可能不會(huì)暴露

 [c]需要編碼人員承擔(dān)安全測試表3 Web應(yīng)用程序安全測試方法說了半天,那究竟該如何保護(hù)Web應(yīng)用程序呢?下面就談?wù)劚Wo(hù)Web應(yīng)用程序的四個(gè)最佳實(shí)踐。

保護(hù)Web應(yīng)用程序的四個(gè)最佳實(shí)踐

(1)增強(qiáng)安全意識(shí)這包括通過培訓(xùn)、交流增強(qiáng)團(tuán)隊(duì)成員的安全意識(shí),當(dāng)然有一個(gè)安全專家作顧問就更好了。最少每年也得在團(tuán)隊(duì)成員之間開展一次安全培訓(xùn),包括開發(fā)人員、質(zhì)量保證人員、分析人員和部門經(jīng)理。

描述當(dāng)前的攻擊方式和推薦的補(bǔ)救措施,討論組織的當(dāng)前安全實(shí)踐,開發(fā)人員必須參加培訓(xùn),要掌握框架內(nèi)置的安全功能。另外值得一試的是持續(xù)收集和整理其它團(tuán)隊(duì)分享的經(jīng)驗(yàn),團(tuán)隊(duì)之間經(jīng)常保持交流,團(tuán)隊(duì)內(nèi)部更是應(yīng)該經(jīng)常開展安全編程討論。

(2)分類應(yīng)用程序風(fēng)險(xiǎn)和責(zé)任每個(gè)組織的資源都是有限的,必須為其設(shè)置優(yōu)先級(jí),通過以下手段可以幫助你設(shè)置安全優(yōu)先級(jí):

 [a]定義風(fēng)險(xiǎn)閥值,指定什么時(shí)候安全團(tuán)隊(duì)?wèi)?yīng)該終止應(yīng)用程序服務(wù)。

 [b]按風(fēng)險(xiǎn)因素對應(yīng)用程序進(jìn)行分類,如互聯(lián)網(wǎng)、局域網(wǎng)和外部網(wǎng)。

 [c]定期進(jìn)行安全掃描,生成安全報(bào)告。

[d]創(chuàng)建一個(gè)數(shù)據(jù)庫,按風(fēng)險(xiǎn)分析和排列應(yīng)用程序。

(3)建立零誤差執(zhí)行政策在開發(fā)和部署階段建立零誤差執(zhí)行政策,可以降低部署含有缺陷的系統(tǒng)的風(fēng)險(xiǎn),在開始階段就要確定好在系統(tǒng)真正部署前必須經(jīng)過什么測試才能上線,并把這個(gè)決定通知給所有團(tuán)隊(duì)成員,在開始編碼前必須評審需求說明書和設(shè)計(jì)說明書,真的不能少了這些必要的步驟,這點(diǎn)時(shí)間是節(jié)約不得的。

(4)從開發(fā)到交付的整個(gè)周期要不停地測試通過不停的測試、評審對設(shè)計(jì)、開發(fā)都有正面影響,在整個(gè)軟件生命周期內(nèi)都應(yīng)該有測試活動(dòng),并且確定你的測試框架包括以下內(nèi)容:

 [a]使用自動(dòng)化測試工具,使得測試工作可以隨時(shí)開始。

 [b]包括單元測試和系統(tǒng)測試。

[c]允許在生成系統(tǒng)中進(jìn)行審核測試。

 [d]包括事件驅(qū)動(dòng)測試。

[e]使用一個(gè)敏捷的開發(fā)方法。

 [f]可以在編碼、測試、集成和生成時(shí)運(yùn)行測試。

因?yàn)樵降胶竺嫒毕菪迯?fù)的成本越高,故做好前幾個(gè)階段的工作,能夠提前預(yù)知可能發(fā)生的潛在風(fēng)險(xiǎn)那是最好不過了,因此本文限于篇幅,也只限于整理開始階段和建模編碼階段的建議。

(1)開始階段 - 定義好安全需求應(yīng)用相關(guān) 要考慮的限制和需求應(yīng)用環(huán)境

(1)確定并認(rèn)可組織安全策略

(2)認(rèn)識(shí)基礎(chǔ)設(shè)施的限制,如防火墻、協(xié)議和服務(wù)

(3)確定托管環(huán)境的限制,如VPN

(4)確定應(yīng)用程序部署配置

(5)確定網(wǎng)絡(luò)域結(jié)構(gòu)、集群和遠(yuǎn)程應(yīng)用服務(wù)器

(6)確定數(shù)據(jù)庫服務(wù)器

(7)確定環(huán)境支持哪些安全通信功能

(8)確定可擴(kuò)展性和性能指標(biāo)輸入數(shù)據(jù)校驗(yàn)

安全性考慮    詳細(xì)說明   建議編碼實(shí)踐

(1)未測試時(shí)不要減少或修改默認(rèn)安全設(shè)置

(2)代碼不要含糊

(3)不要暴露不需要的信息

(4)盡早發(fā)現(xiàn)并修復(fù)安全錯(cuò)誤

(5)不顯示堆棧跟蹤或有關(guān)敏感信息輸入數(shù)據(jù)校驗(yàn)

小結(jié)

縱觀這幾年信息技術(shù)的發(fā)展勢頭,越來越多的政府機(jī)關(guān)和企事業(yè)單位都積極投身于自身的信息化建設(shè),幾乎每個(gè)企業(yè)都運(yùn)行有與自身相關(guān)的業(yè)務(wù)系統(tǒng)和網(wǎng)站。

而且今后的發(fā)展趨勢會(huì)是Web化,集成化,越來越多的數(shù)據(jù)在網(wǎng)絡(luò)上傳輸,而且正在逐步向互聯(lián)網(wǎng)方向進(jìn)化,攻擊事件逐年遞增,攻擊手段越來越先進(jìn),越來越傻瓜化,安全如果不從源頭抓起,那就只是一句空話,過分信任安全設(shè)備和軟件廠家潛在的風(fēng)險(xiǎn)實(shí)在太大,只有多方積極配合,相互協(xié)調(diào)才能真正應(yīng)對Web應(yīng)用程序未來的挑戰(zhàn)。

【51CTO.COM 獨(dú)家特稿,轉(zhuǎn)載請注明出處及作者】

責(zé)任編輯:Oo小孩兒 來源: 51cto.com
相關(guān)推薦

2014-02-19 15:38:42

2013-11-19 15:35:01

2012-03-20 10:28:43

2011-02-13 14:36:35

2013-02-18 16:12:55

2023-08-01 08:00:00

SQLWeb應(yīng)用安全

2023-06-14 11:22:49

2020-09-23 10:59:37

應(yīng)用安全

2022-01-04 13:54:57

應(yīng)用程序IT監(jiān)測

2009-12-21 09:54:54

Web應(yīng)用程序安全測試

2009-04-01 14:33:33

2009-07-09 16:47:26

Servlet的Web

2018-04-11 10:59:53

2014-01-06 14:47:41

2009-09-15 23:40:52

2021-11-17 08:00:00

SLOSLI監(jiān)測

2022-05-05 16:37:44

云原生網(wǎng)絡(luò)安全

2016-10-23 20:17:40

Web應(yīng)用程序測試Android應(yīng)用

2010-05-20 09:48:36

2011-03-22 14:12:17

LAMP
點(diǎn)贊
收藏

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