国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Web應(yīng)用安全分析與解決方案研究

2012-04-29 00:44:03侯莉
電腦知識與技術(shù) 2012年20期
關(guān)鍵詞:漏洞

侯莉

摘要:隨著Internet的蓬勃發(fā)展,越來越多的企業(yè)將應(yīng)用系統(tǒng)架構(gòu)于Web網(wǎng)站之上,由此引發(fā)的應(yīng)用安全問題是所有Web應(yīng)用系統(tǒng)所面臨的重要課題,也得到更多企業(yè)的重視。通過對Web應(yīng)用安全領(lǐng)域所存在的風(fēng)險以及防范措施進行分析,并從安全軟件工程的角度提出了Web應(yīng)用安全的解決方案,闡述了如何在軟件開發(fā)的各階段全面引入安全管理方案。對企業(yè)進行信息安全建設(shè)具有一定的借鑒意義。

關(guān)鍵詞: Web應(yīng)用安全;安全軟件工程;Internet;SSL;漏洞

中圖分類號:TP393文獻標(biāo)識碼:A文章編號:1009-3044(2012)20-4823-03

Web Application Security Analysis and Solution Studies

HOU Li

(Air China Information Management the Southwest Information Division, Chengdu 610041, China)

Abstract:With the vigorous development of the Internet, more and more enterprises build the architecture of the application on the web site, the application security issues are an important issue facing, and also get more companies to pay attention to. Web application security risks and preventive measures are analyzed, and from the point of view of security software engineering, Web application security solutions are proposed, and it has certain reference significance for companies to develop information security system.

Key words:Web application security; security software engineering; Internet;SSL; loophole

Web安全框架包括物理層面、終端層面、網(wǎng)絡(luò)層面、數(shù)據(jù)層面、應(yīng)用層面以及貫穿這五個層面的管理層面。

1)物理安全:為信息系統(tǒng)的安全運行和信息的安全保護提供基本的計算機、網(wǎng)絡(luò)硬件設(shè)備、設(shè)施、環(huán)境、介質(zhì)等方面的全面支持。

2)終端安全:對信息系統(tǒng)中的終端以及主機節(jié)點進行安全評估、加固和安全維護,部署安全桌面系統(tǒng)等操作。

3)網(wǎng)絡(luò)安全:為信息系統(tǒng)在網(wǎng)絡(luò)環(huán)境的安全運行提供支持。一方面,確保網(wǎng)絡(luò)系統(tǒng)的安全運行,提供有效的網(wǎng)絡(luò)服務(wù)。另一方面,確保在網(wǎng)上傳輸數(shù)據(jù)的保密性、完整性、可用性、可控性和不可否認性等。通過訪問控制、入侵監(jiān)測、防病毒設(shè)備等安全設(shè)備實現(xiàn)網(wǎng)絡(luò)的安全,同時對網(wǎng)絡(luò)設(shè)備進行安全加固和維護。

4)數(shù)據(jù)安全:在物理安全的基礎(chǔ)上提供安全的操作系統(tǒng)和安全的數(shù)據(jù)庫管理系統(tǒng),以實現(xiàn)操作系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)的安全運行以及對操作系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)所存儲、傳輸和處理數(shù)據(jù)的安全保護。

5)應(yīng)用安全:在物理、系統(tǒng)、網(wǎng)絡(luò)等層面安全的支持下,實現(xiàn)用戶安全需求所確定的安全目標(biāo)。

6)安全管理:主要從安全相關(guān)制度規(guī)范的建立來加強和落實安全思想和安全操作規(guī)范。

該文通過對Web應(yīng)用安全領(lǐng)域所存在的風(fēng)險以及防范措施進行分析,并從安全軟件工程的角度提出了Web應(yīng)用安全的解決方案。

1 Web應(yīng)用安全風(fēng)險分析與防范

1.1 SQL注入

用戶可以提交一段SQL查詢代碼,根據(jù)返回的結(jié)果獲取他想要知的數(shù)據(jù),攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙服務(wù)器執(zhí)行惡意的SQL命令,從而獲取想得到的密碼或其它信息,這個就是SQL注入(SQL Injection)。SQL注入具有隱蔽性強、攻擊時間短、危害性大等特點。SQL注入一般是在程序員編寫包含用戶輸入的動態(tài)數(shù)據(jù)庫查詢時產(chǎn)生的,因此主要通過使用參數(shù)化查詢、采用存儲過程、對用戶輸入進行轉(zhuǎn)義等方法進行防范。

1.2跨站腳本攻擊

跨站腳本攻擊(XSS)是指攻擊者往Web頁面里插入惡意html代碼,當(dāng)用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執(zhí)行,從而達到惡意用戶的特殊目的。XSS攻擊主要分為兩類:一類是來自內(nèi)部的攻擊,主要指的是利用Web程序自身的漏洞,執(zhí)行跨站語句。另一類是來自外部的攻擊,主要指自己構(gòu)造XSS跨站漏洞網(wǎng)頁或者尋找非目標(biāo)機以外的有跨站漏洞的網(wǎng)頁。

防止XSS攻擊,首先要阻止攻擊者利用在被攻擊網(wǎng)站上發(fā)布跨站攻擊語句。首先代碼里對用戶輸入的地方和變量都需要仔細檢查長度,對特殊字符做過濾;其次任何內(nèi)容寫到頁面之前都必須加以encode。另外,需要避免Cookie防盜,避免直接在cookie中泄露用戶隱私,或者通過使cookie和系統(tǒng)ip綁定來降低cookie泄露后的危險。盡量采用POST而非GET提交表單。

1.3錯誤的認證和會話管理

錯誤的認證和會話管理,就是攻擊者竊聽了用戶名和密碼,或者是會話,從而得到會話進程的sessionID,進而冒充授權(quán)用戶進行Http訪問的過程。與之相關(guān)的漏洞通常存在于Web應(yīng)用程序的某些特殊區(qū)域,如退出、密碼管理、超時、保密問題、賬戶更新等。這些漏洞可能導(dǎo)致部分甚至全部賬戶遭受攻擊。解決此問題的方法是需要全面審查應(yīng)用系統(tǒng)的架構(gòu),確保其認證機制本身必須是簡單、集中和標(biāo)準化的;在系統(tǒng)中使用容器提供標(biāo)準session id;用SSL(Secure Sockets Layer安全套接層)協(xié)議來保護密碼和session id。

1.4不正確的直接對象引用

不正確的直接對象引用是指一個已經(jīng)授權(quán)的用戶,通過更改訪問時的一個參數(shù),從而訪問到了原本并未被授權(quán)的對象。這種漏洞能損害參數(shù)所引用的所有數(shù)據(jù),攻擊者很容易就訪問到業(yè)務(wù)系統(tǒng)的所有數(shù)據(jù)。解決此問題的方法是必須控制Web應(yīng)用程序?qū)ξ募脑L問,對每一個用戶可訪問的對象(如對象數(shù)量、文件名)選擇一個適當(dāng)?shù)姆椒?,如:使用間接對象引用,防止攻擊者直接攻擊未授權(quán)資源。應(yīng)用程序?qū)⒚總€用戶間接引用映射到服務(wù)器的實際數(shù)據(jù)庫密匙中;檢查訪問,來自不受信源所使用的所有直接對象引用都必須包含訪問控制審核,以確保用戶對要求的對象有訪問權(quán)限。

1.5偽造跨站請求(CSRF)

偽造跨站請求(CSRF)是一種控制終端用戶在已登錄的Web應(yīng)用程序上執(zhí)行非法操作的攻擊方法。攻擊者只要借助少許的社會工程手段,就能迫使用戶去執(zhí)行攻擊者需要的操作。CSRF的防范機制常用的有以下三種:

1)檢查HTTP頭部Refer信息,是防止CSRF的最簡單易行的方式。根據(jù)RFC對于HTTP協(xié)議中Refer的定義,Refer信息跟隨出現(xiàn)在每個Http請求頭部。Server端在收到請求之后,可以檢查頭信息,只接受來自本域的請求而忽略外部域的請求。

2)使用一次性令牌:對于Get請求,在URL里面加入令牌,對于Post請求,在隱藏域中加入令牌。這個令牌由server端生成,編程人員在客戶端發(fā)送請求時攜帶本令牌然后在Server端進行驗證。

3)使用驗證圖片,可防止暴力攻擊。在CSRF防范上,應(yīng)用程序結(jié)合驗證圖片和一次性令牌來做雙重保護。這種方式很難被惡意程序在客戶端識別,因而能提高更強的保護。1.6安全性誤配置

安全性誤配置可能存在于Web應(yīng)用的各個層次,開發(fā)人員需要和網(wǎng)絡(luò)管理人員共同確保所有層次都合理配置。這個漏洞往往使得攻擊者能夠訪問未被授權(quán)的系統(tǒng)數(shù)據(jù)和功能,有時甚至可能導(dǎo)致整個系統(tǒng)被破壞。防范這個漏洞的唯一方法就是盡可能對系統(tǒng)的所有方面都做好安全配置,包括:安裝最新版本的軟件及補??;最小化安裝;Web文件/數(shù)據(jù)庫文件不存放在系統(tǒng)盤上;不在Web/數(shù)據(jù)庫服務(wù)器上運行其他服務(wù);嚴格檢查所有與驗證和權(quán)限有關(guān)的設(shè)定;權(quán)限最小化;不使用默認路徑和預(yù)設(shè)賬號等。

1.7限制遠程訪問失敗

系統(tǒng)雖然對URL訪問做了限制,但通常僅限于表示層的訪問控制,攻擊者能夠輕易偽造請求直接訪問未被授權(quán)的頁面,從而造成限制遠程訪問失敗。為此,需要建立起適當(dāng)?shù)纳矸蒡炞C和授權(quán)機制,如:基于角色進行認證和授權(quán),拒絕所有的默認訪問,明確授予特定的用戶和角色訪問每個頁面。如果頁面參與了工作流,檢查并確保在認證條件滿足的狀態(tài)下才允許訪問頁面。

1.8未驗證的重定向和傳遞

Web應(yīng)用中重定向很普遍,并且通常重定向的URL帶有參數(shù)。如果重定向未被驗證,那么攻擊者就可以引導(dǎo)用戶訪問一些有風(fēng)險的站點。這種重定向可以嘗試安裝惡意軟件或欺騙用戶泄露密碼或其他敏感信息。轉(zhuǎn)發(fā)也很普遍,不安全的轉(zhuǎn)發(fā)可能允許繞過訪問控制。為了保障重定向和轉(zhuǎn)移的安全,可以避免使用重定向和轉(zhuǎn)移;如果用到了,不要在目標(biāo)中涉及用戶參數(shù);如果目標(biāo)參數(shù)無法避免,需要確保參數(shù)的有效性。

1.9不安全的加密存儲

大多數(shù)Web應(yīng)用程序?qū)γ舾袛?shù)據(jù)加密是一種關(guān)鍵的步驟。在實際應(yīng)用中,使用有缺陷的加密算法,或者使用不合適的密鑰,或者沒有正確的使用密鑰,都會導(dǎo)致敏感數(shù)據(jù)泄漏,從而造成攻擊者能夠獲取或篡改信息,并進行進一步的攻擊。在系統(tǒng)開發(fā)時,不能使用自創(chuàng)的不安全的加密算法,不要使用安全強度不強的弱算法。離線生成密鑰,謹慎保護私鑰,確保在磁盤中加密的數(shù)據(jù)不會被解密。確保所有的證書、密鑰和密碼都被安全存放;具有安全的密鑰分發(fā)和應(yīng)急處理方案。

1.10不足的傳輸層保護

不足的傳輸層保護也是一種缺少對敏感數(shù)據(jù)保護的漏洞,它更關(guān)注數(shù)據(jù)在網(wǎng)絡(luò)上的傳輸。由于未能識別所有的敏感數(shù)據(jù),或者未能識別敏感數(shù)據(jù)發(fā)送的位置,或者未能在每個位置對敏感數(shù)據(jù)提供合理的保護,從而造成攻擊者能夠獲取或篡改信息以進行進一步攻擊。在系統(tǒng)開發(fā)時,需要對敏感數(shù)據(jù)的傳輸提供合理的保護機制,如:在傳輸前對數(shù)據(jù)加密,在傳輸前對信息簽名;合理管理密鑰和證書,并在使用前驗證SSL證書。

2軟件全生命周期的安全規(guī)劃

通過對Web應(yīng)用安全的風(fēng)險與防范分析,企業(yè)在信息安全建設(shè)工作中,除了要關(guān)注信息安全基礎(chǔ)設(shè)施的建設(shè),還需要逐步實施安全軟件工程,從需求、設(shè)計、編碼、測試、運行維護的軟件全生命周期進行安全規(guī)劃、實施,以全面的保障應(yīng)用系統(tǒng)安全。

2.1需求階段

確定系統(tǒng)安全需求和風(fēng)險點,提供針對性的安全目標(biāo),確定安全假設(shè),確認數(shù)據(jù)流,保護邊界,并且通過安全威脅分析,建立需求控制矩陣,從而在需求階段就考慮安全需求:詳細說明安全與保密要求;把安全保密分配到處理流程中;確定用戶數(shù)據(jù)的敏感等級;確定安全計劃,建立安全模型,盡可能的降低脆弱性。

2.2設(shè)計階段

確認安全原則,根據(jù)系統(tǒng)實際網(wǎng)絡(luò)環(huán)境和安全需求分析,以及系統(tǒng)的重要性,架構(gòu)合理的安全架構(gòu),主要從物理安全、網(wǎng)絡(luò)安全、系統(tǒng)安全、應(yīng)用安全、終端安全等方面進行系統(tǒng)的安全架構(gòu)設(shè)計。在設(shè)計階段,需要驗證安全模型的正確性,設(shè)計整體安全機制和安全方案,把安全要求分解到相關(guān)模塊中,把對數(shù)據(jù)的安全要求體現(xiàn)在安全數(shù)據(jù)庫的設(shè)計中。

2.3編碼階段

1)安全編碼原則

根據(jù)安全編碼原則進行代碼的編寫:進攻面最小化原則:在軟件架構(gòu)中將最少的功能性代碼開放給用戶。如:功能代碼和界面代碼分離,內(nèi)核代碼和用戶任務(wù)處理代碼分離等;深度防衛(wèi)原則:在軟件代碼開發(fā)中注重代碼安全性加入安全防護功能代碼,如:防溢出處理,防注入代碼,防跨站代碼等;最小權(quán)限原則:對軟件用戶或軟件運行權(quán)限進行最小化,防止使用者惡意突破權(quán)限限制非法操作。

2)代碼審計

代碼審計的實質(zhì)是一次風(fēng)險評估,核心就是找到系統(tǒng)的架構(gòu)失敗與編碼失敗,并與常見的攻擊模式進行校驗。結(jié)合代碼評估工具和手工驗證的方式來確認代碼中存在的缺陷(設(shè)計缺陷、實現(xiàn)缺陷)。設(shè)計缺陷包括:不正確產(chǎn)生的隨機數(shù)、不正確的產(chǎn)生加密Key。實現(xiàn)缺陷包括:不正確的函數(shù)。

3)安全培訓(xùn)

對系統(tǒng)的開發(fā)人員提供專業(yè)的安全編碼上的培訓(xùn),提高開發(fā)人員安全意識,同時也避免在開發(fā)中的一些代碼缺陷,逐漸實現(xiàn)代碼級的安全,從根本上預(yù)防安全威脅的出現(xiàn)。

2.4測試階段

黑盒測試:通過對網(wǎng)站實施模擬真實黑客入侵,采用多種攻擊方式對網(wǎng)站實施良性滲透,在測試階段以檢驗系統(tǒng)的安全性。

滲透測試:模擬非法用戶從互聯(lián)網(wǎng)用戶(外)和業(yè)務(wù)維護用戶(內(nèi))兩個角度對系統(tǒng)的所有業(yè)務(wù)進行業(yè)務(wù)(流程)滲透測試,測試內(nèi)容包括:驗證碼破解、認證漏洞測試、非法業(yè)務(wù)訂購測試、資源正常釋放、業(yè)務(wù)流程驗證等。

2.5運行維護階段

在完成安全基礎(chǔ)建設(shè)的基礎(chǔ)上,輔助以安全監(jiān)控、安全評估、安全加固、應(yīng)急響應(yīng)等措施,實現(xiàn)系統(tǒng)在維護階段的正常運行。

3小結(jié)

Web應(yīng)用安全是一個動態(tài)變化的過程,隨著技術(shù)的發(fā)展,會有越來越多的安全風(fēng)險產(chǎn)生。企業(yè)在信息安全建設(shè)工作中,通過逐步的夯實信息安全基礎(chǔ)架構(gòu),建立健全的安全管理制度,在軟件開發(fā)中逐步實施和完善安全軟件工程,在軟件開發(fā)的各個階段建立起相應(yīng)的安全管理措施,全面應(yīng)對不斷出現(xiàn)的安全風(fēng)險。

參考文獻:

[1]任偉.軟件安全[M].北京:國防工業(yè)出版社,2010.

[2](美)霍普等.Web安全測試[M].北京:清華大學(xué)出版社,2010.

[3](美)斯坎布雷.黑客大曝光:Web應(yīng)用程序安全[M].北京:機械工業(yè)出版社,2011.

[4]王嘉延. Web應(yīng)用生命周期安全防護探討[J].計算機安全,2011.

[5]丁妮.Web應(yīng)用安全研究[D].南京信息工程學(xué)院,2007.

[6]鄭明.企業(yè)應(yīng)用集成服務(wù)的安全策略設(shè)計與實現(xiàn)[J].微計算機信息,2009.

猜你喜歡
漏洞
漏洞
網(wǎng)絡(luò)安全漏洞管理與漏洞情報庫建設(shè)方案探討及研究
漏洞在哪里
基于selenium的SQL注入漏洞檢測方法
電子制作(2019年11期)2019-07-04 00:34:40
Windows 10被曝新零日漏洞涉及3大版本
偵探推理游戲(二)
三明:“兩票制”堵住加價漏洞
漏洞在哪兒
兒童時代(2016年6期)2016-09-14 04:54:43
Java 反序列化漏洞研究
高鐵急救應(yīng)補齊三漏洞
闸北区| 景宁| 峨边| 缙云县| 瑞昌市| 铁岭市| 天柱县| 上高县| 郁南县| 濉溪县| 乐都县| 寻乌县| 兴安县| 黄大仙区| 南陵县| 杨浦区| 辽宁省| 鞍山市| 兴城市| 沙河市| 巴里| 缙云县| 四子王旗| 延川县| 夏邑县| 满洲里市| 陵川县| 洪雅县| 吕梁市| 连城县| 巧家县| 冀州市| 阳西县| 靖州| 六安市| 澎湖县| 株洲县| 绥阳县| 阿克陶县| 萨迦县| 泾川县|