• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Web程序安全與防御機(jī)制研究

      2019-10-21 03:07:44楊晨霞涂風(fēng)濤
      科技風(fēng) 2019年5期
      關(guān)鍵詞:防御機(jī)制

      楊晨霞 涂風(fēng)濤

      摘 要: 本文主要基于Web程序安全機(jī)制的實(shí)現(xiàn)方法,探討幾種嚴(yán)重威脅Web程序安全性的漏洞的基本原理,以及相應(yīng)的漏洞挖掘和防御技術(shù),包括驗(yàn)證機(jī)制的安全性、會(huì)話管理機(jī)制的安全性等。

      關(guān)鍵詞: Web程序;程序安全;防御機(jī)制

      Research on Web Program Security and Defense Mechanism

      Yang Chenxia Tu Fengtao

      YuZhang Normal University Jiangxi Nanchang 330103

      Abstract: This paper is mainly based on the implementation method of Web program security mechanism,discusses the basic principles of several vulnerabilities that seriously threaten the security of Web programs,and the corresponding vulnerability mining and defense technologies,including the security of the authentication mechanism,the security of the session management mechanism,and so on.

      Key words: Web program;Program security;Defense mechanism

      一、緒論

      Web程序安全是網(wǎng)絡(luò)安全研究領(lǐng)域的熱點(diǎn)問(wèn)題之一。因?yàn)镮nternet上的大多數(shù)Web站點(diǎn)實(shí)際上都是應(yīng)用程序,它們功能強(qiáng)大,在服務(wù)器和瀏覽器之間進(jìn)行雙向信息傳遞。用戶(hù)從Web程序中獲取的內(nèi)容大部分屬于私密和高度敏感的信息,因此安全問(wèn)題至關(guān)重要,如果人們認(rèn)為某個(gè)Web程序不夠安全,他們就會(huì)拒絕使用。

      因?yàn)閃eb程序各不相同,所包含的安全問(wèn)題也不相同,而且許多Web程序常常是由幾位開(kāi)發(fā)人員獨(dú)立開(kāi)發(fā),但是他們可能根本不了解所編寫(xiě)的代碼可能引起的安全問(wèn)題,這就使得Internet上有相當(dāng)多的Web程序存在各種各樣的安全漏洞。更為嚴(yán)重的是,Web程序?yàn)榱藢?shí)現(xiàn)核心功能,通常需要與內(nèi)部服務(wù)器系統(tǒng)建立各種連接,而這些系統(tǒng)往往保存著高度敏感的信息。因此,一個(gè)潛在的Web程序漏洞可能造成極其嚴(yán)重的后果,帶來(lái)巨大的經(jīng)濟(jì)損失。

      二、Web程序安全問(wèn)題

      由于Web程序無(wú)法控制瀏覽器,用戶(hù)幾乎可以向Web程序提交任意惡意信息。攻擊者可以采取的手段包括:

      (1)修改瀏覽器與服務(wù)器之間傳遞的數(shù)據(jù),包括請(qǐng)求的參數(shù)、Cookie和HTTP報(bào)文頭部。例如,攻擊者可以更改隱藏在HTML表單中產(chǎn)品價(jià)格字段,從而以較低的價(jià)格購(gòu)買(mǎi)產(chǎn)品;或是修改在HTTP Cookie中傳送的會(huì)話令牌,劫持其他用戶(hù)的會(huì)話。

      (2)在多階段交互中,攻擊者可以打亂提交請(qǐng)求的順序,在每個(gè)階段重復(fù)提交請(qǐng)求或者不提交參數(shù)。他們的操作可能與程序預(yù)期的操作完全不同。

      (3)攻擊者使用多種瀏覽器訪問(wèn)Web應(yīng)用程序,或者使用輔助工具協(xié)助攻擊,自動(dòng)提交大量普通瀏覽器無(wú)法提交的請(qǐng)求,查找Web程序存在的安全問(wèn)題。

      如果一個(gè)Web程序必須接收并且處理未經(jīng)驗(yàn)證的可疑輸入,就會(huì)產(chǎn)生核心的安全問(wèn)題。更為嚴(yán)重的是,以下Web程序開(kāi)發(fā)過(guò)程中的各種潛在因素導(dǎo)致該安全問(wèn)題很難解決。

      (1)開(kāi)發(fā)人員缺少Web程序安全意識(shí)。雖然大多數(shù)IT安全人員掌握了不少網(wǎng)絡(luò)安全知識(shí),但是他們對(duì)Web程序安全有關(guān)的許多核心概念還是不太了解,使得對(duì)所用編程框架的安全性往往做出錯(cuò)誤假設(shè)。

      (2)基于應(yīng)用程序框架開(kāi)發(fā)的模式。Internet中存在許多提供現(xiàn)成代碼組件的應(yīng)用程序框架,可以處理各種常見(jiàn)的功能,包括身份驗(yàn)證,頁(yè)面模板和公告牌等,Web程序員基于這些框架可以快速方便地開(kāi)發(fā)出強(qiáng)大的Web程序。但是這些框架中也可能存在潛在的安全風(fēng)險(xiǎn)。由于許多公司可能會(huì)使用相同的框架,因此,只要框架中存在一個(gè)安全漏洞,就會(huì)影響眾多相關(guān)的Web程序。

      (3)Web程序的安全威脅發(fā)展迅速。Web程序的攻擊方法層出不窮,新概念和新威脅出現(xiàn)的速度很快,已有的Web防御技術(shù)在這些新的攻擊面前失去作用。因此,即使在Web程序開(kāi)發(fā)階段針對(duì)已有威脅已經(jīng)實(shí)現(xiàn)了相應(yīng)的安全防御機(jī)制,也可能到部署階段時(shí)會(huì)面臨許多未知的威脅。

      (4)程序開(kāi)發(fā)時(shí)間和可用資源十分有限。為了按時(shí)完成項(xiàng)目,開(kāi)發(fā)者往往會(huì)忽略一些安全問(wèn)題,程序部署時(shí)會(huì)存在安全隱患。

      另外,Web程序的安全問(wèn)題同時(shí)也改變了目標(biāo)系統(tǒng)的安全邊界,傳統(tǒng)的網(wǎng)絡(luò)防御技術(shù)可以在網(wǎng)絡(luò)邊界部署防火墻、IPS、VPN、惡意代碼防范等網(wǎng)絡(luò)安全組件,抵御外部攻擊者發(fā)起的攻擊。但是,當(dāng)用戶(hù)訪問(wèn)Web程序時(shí),防火墻必須允許用戶(hù)通過(guò)HTTP或HTTPS協(xié)議訪問(wèn)內(nèi)部服務(wù)器,Web程序需要連接后臺(tái)服務(wù)器通信。因此,當(dāng)Web程序存在漏洞時(shí),Internet的攻擊者只擊需要從瀏覽器提交專(zhuān)門(mén)設(shè)計(jì)的輸入數(shù)據(jù),就可以繞過(guò)這些防御組件,直接攻擊目標(biāo)系統(tǒng)的核心后端服務(wù)器。例如,攻擊者希望攻擊某個(gè)銀行網(wǎng)絡(luò),在銀行使用Web程序之前,他必須發(fā)現(xiàn)某個(gè)網(wǎng)絡(luò)服務(wù)中存在的安全漏洞,并利用它進(jìn)入銀行內(nèi)部某個(gè)網(wǎng)絡(luò),然后嘗試?yán)@過(guò)限制其訪問(wèn)關(guān)鍵網(wǎng)絡(luò)的防火墻,在關(guān)鍵網(wǎng)絡(luò)上確定重要的服務(wù)器,最后監(jiān)聽(tīng)或破解關(guān)鍵用戶(hù)的口令以進(jìn)行登錄。但是,如果銀行使用存在漏洞的Web程序,那么攻擊者很可能只需要修改隱藏在HTML表單字段中的一個(gè)帳號(hào),就可以達(dá)到相同的目的。

      因此,不管是對(duì)部署Web程序的組織,還是對(duì)訪問(wèn)它們的用戶(hù)而言,針對(duì)Web程序的攻擊都是很?chē)?yán)重的威脅。

      三、核心防御機(jī)制

      由于Web用戶(hù)的任意輸入都不可信,因此Web程序必須實(shí)施大量的安全機(jī)制來(lái)防御可能的Web攻擊。我們主要可以采用以下四個(gè)方面的安全機(jī)制。

      (1)處理用戶(hù)訪問(wèn)。每個(gè)用戶(hù)只能訪問(wèn)被授權(quán)訪問(wèn)的信息。絕大部分Web程序都使用三種相互關(guān)聯(lián)的安全機(jī)制處理用戶(hù)訪問(wèn),即身份驗(yàn)證、會(huì)話管理和訪問(wèn)控制。

      ①身份驗(yàn)證。身份驗(yàn)證機(jī)制是Web程序處理用戶(hù)訪問(wèn)的最基本機(jī)制,絕大部分Web程序程序都采用經(jīng)典的身份驗(yàn)證模型,即要求用戶(hù)提交賬號(hào)和口令。在一些安全性要求很高的Web程序中,往往會(huì)結(jié)合其他證書(shū),如客戶(hù)端數(shù)字證書(shū)、智能卡,或者采取多階段登錄過(guò)程來(lái)增強(qiáng)身份驗(yàn)證過(guò)程。

      ②會(huì)話管理。會(huì)話管理機(jī)制的安全性取決于令牌的安全性,令牌生成過(guò)程中的缺陷有可能使得攻擊者可以猜測(cè)發(fā)布給其他用戶(hù)的令牌。如果令牌傳輸過(guò)程中沒(méi)有加密,令牌就可能被攻擊者監(jiān)聽(tīng)并截獲。

      ③訪問(wèn)控制。當(dāng)Web程序從HTTP請(qǐng)求中正確識(shí)別發(fā)出請(qǐng)求的用戶(hù)身份后,訪問(wèn)控制機(jī)制需要考慮各種相關(guān)領(lǐng)域與不同類(lèi)型的功能,需要支持各種擁有不同權(quán)限的用戶(hù)角色,限制每位用戶(hù)只允許訪問(wèn)Web程序的部分?jǐn)?shù)據(jù)。

      (2)處理用戶(hù)的輸入,防止錯(cuò)誤輸入造成潛在危險(xiǎn)。必須假設(shè)所有的用戶(hù)輸入都是惡意的,大量針對(duì)Web程序的攻擊都與提交惡意輸入有關(guān)。因此,安全處理用戶(hù)的輸入是保證Web程序安全的一個(gè)基本要求。輸入確認(rèn)(Input validation)是防御這些攻擊的常用手段。

      我們根據(jù)輸入的多樣性,可以采用以下方法。

      ①白名單。輸入確認(rèn)機(jī)制僅接收與白名單匹配的輸入。例如,程序在查詢(xún)用戶(hù)的身份證號(hào)碼時(shí),可能會(huì)確認(rèn)其僅包含數(shù)字信息,長(zhǎng)度必須為18,未通過(guò)白名單匹配的輸入將會(huì)被拒絕。這種方式是處理惡意輸入的最有效方法。

      ②凈化。凈化(sanitizing)指Web程序把接收到的各種惡意字符刪除,只留下已知安全的字符,或者在對(duì)輸入進(jìn)行處理之前對(duì)惡意字符進(jìn)行適當(dāng)編碼或轉(zhuǎn)義。例如,對(duì)于試圖執(zhí)行非授權(quán)目錄中的文件操作的惡意輸入串“..\\..\\..\\..\\windows\\system32\\cmd.exe”,可以執(zhí)行凈化操作,刪除所有的“..\\”字符,凈化后的輸入串為“windows\\system32\\cmd.exe”,該輸入串會(huì)因?yàn)椤爸付窂讲淮嬖凇倍痪芙^訪問(wèn)。凈化方法十分有效,也是處理惡意輸入問(wèn)題的通用解決辦法。

      ③完全編程。許多時(shí)候,使用不安全的編程方式處理用戶(hù)提交的數(shù)據(jù)是Web程序存在漏洞的根本原因。只要保證處理過(guò)程絕對(duì)安全即可避免有關(guān)漏洞。例如:在數(shù)據(jù)庫(kù)訪問(wèn)過(guò)程中正確使用參數(shù)化查詢(xún),即可有效避免SQL注入攻擊;再如,禁止向操作系統(tǒng)直接提交用戶(hù)輸入作為命令執(zhí)行,即可有效避免命令注入。

      ④語(yǔ)義檢查。在一些Web攻擊過(guò)程中,攻擊者提交的輸入與正常用戶(hù)提交的輸入在語(yǔ)法上完全相同,此時(shí)只能執(zhí)行嚴(yán)格的語(yǔ)義檢查。例如,攻擊者可以修改隱藏的表單字段,提交較低的產(chǎn)品價(jià)格,Web程序必須確認(rèn)所提交的產(chǎn)品價(jià)格與存儲(chǔ)在數(shù)據(jù)庫(kù)中的產(chǎn)品價(jià)格是否一致。

      (3)防范Web攻擊,即使Web程序成為攻擊目標(biāo)時(shí),程序依然可以正常運(yùn)轉(zhuǎn)。當(dāng)Web程序成為攻擊者的直接攻擊目標(biāo)時(shí),應(yīng)該能夠處理并應(yīng)對(duì)這些攻擊,這是Web程序安全機(jī)制的一項(xiàng)主要功能。Web程序?yàn)樘幚砉舳扇〉拇胧┌ㄌ幚礤e(cuò)誤、維護(hù)日志、報(bào)警、主動(dòng)響應(yīng)。

      ①錯(cuò)誤處理機(jī)制。程序部署后,Web程序不應(yīng)該在頁(yè)面響應(yīng)中返回任何系統(tǒng)生成的消息或者其他調(diào)試信息。大多數(shù)Web開(kāi)發(fā)語(yǔ)言都提供良好的異常處理機(jī)制,Web程序應(yīng)充分利用這些機(jī)制處理各種錯(cuò)誤。

      ②維護(hù)日志。日志一般會(huì)記錄每件事情的發(fā)生時(shí)間、發(fā)起主機(jī)的IP地址和通過(guò)驗(yàn)證的用戶(hù)賬號(hào)等。日志文件本身必須受到安全保護(hù),避免被非授權(quán)修改和訪問(wèn)。一種有效的方法是將日志保存在一個(gè)單獨(dú)的主機(jī)或服務(wù)器上,并且只與Web程序進(jìn)行安全的信息交互。

      ③報(bào)警。報(bào)警機(jī)制必須即能夠準(zhǔn)確報(bào)告每次真實(shí)的攻擊,又不能產(chǎn)生過(guò)多的虛警,需要在兩個(gè)相互矛盾的目標(biāo)之間取得平衡,并且在可能的情況下可以將多個(gè)事件進(jìn)行關(guān)聯(lián),集中到一個(gè)報(bào)警中,確定Web程序正在受到的攻擊。我們的做法是將報(bào)警與Web程序的輸入確認(rèn)機(jī)制和其他訪問(wèn)控制方法緊密結(jié)合,提供完全自定義的惡意行為報(bào)警,一旦防御機(jī)制對(duì)輸入進(jìn)行檢查后發(fā)現(xiàn)有任何異常,即可產(chǎn)生報(bào)警。

      ④主動(dòng)響應(yīng)。Web程序可以采取自動(dòng)的響應(yīng)措施阻止攻擊者進(jìn)行攻擊嘗試,例如減緩對(duì)攻擊嘗試的頁(yè)面響應(yīng)速度或者終止攻擊者的會(huì)話,這些措施能夠阻止很多Internet中的隨意攻擊行為,并為管理員贏得時(shí)間去采取其他進(jìn)一步的措施。

      (4)管理、監(jiān)控和配置Web程序的行為。任何有用的Web程序都需要管理與維護(hù),它是Web程序安全機(jī)制的重要組成部分,用于幫助管理員管理用戶(hù)賬戶(hù)和角色、應(yīng)用監(jiān)控和審計(jì)功能、配置Web程序等。

      四、總結(jié)

      幾乎所有的Web程序都存在相似的安全問(wèn)題,采用相同的核心安全機(jī)制,只是實(shí)現(xiàn)的形式存在巨大的差異。處理用戶(hù)訪問(wèn)和用戶(hù)輸入的安全機(jī)制最為重要,它們是攻擊者的主要攻擊對(duì)象,一旦被攻破,攻擊者就可以訪問(wèn)其他用戶(hù)數(shù)據(jù)或者執(zhí)行任意代碼。

      參考文獻(xiàn):

      [1]沈鑫剡.計(jì)算機(jī)網(wǎng)絡(luò)安全[M].北京:清華大學(xué)出版社,2009.

      [2]叮叮.常見(jiàn)十大Web應(yīng)用安全漏洞[J/OL].http://www.evget.com/article/2014/6/20/21209.html.

      [3]汪列軍.安全漏洞及分類(lèi)[J/OL].http://www.2cto.com/article/201405/299140.html.

      猜你喜歡
      防御機(jī)制
      大學(xué)生同伴排斥與學(xué)習(xí)投入的關(guān)系:自尊和成熟防御機(jī)制的鏈?zhǔn)街薪樾?yīng)
      中學(xué)生偶像崇拜與網(wǎng)絡(luò)欺凌的關(guān)系:自尊與防御機(jī)制的鏈?zhǔn)街薪樽饔?
      防御機(jī)制在醫(yī)學(xué)生抑郁的性別差異中的中介作用*
      網(wǎng)絡(luò)入侵后最優(yōu)逃避攻擊節(jié)點(diǎn)的選取與研究
      抑郁癥患者心理彈性、防御機(jī)制與抑郁的相關(guān)性分析*
      藏族和漢族首發(fā)精神分裂癥患者心理防御機(jī)制對(duì)照研究
      人防工程建設(shè)與城市可持續(xù)發(fā)展研究
      軀體形式障礙患者治療前后防御機(jī)制的對(duì)照觀察
      大學(xué)生防御機(jī)制及人際信任的相關(guān)研究
      不同防御機(jī)制對(duì)大學(xué)生健康狀況的影響路徑分析
      库伦旗| 广德县| 新安县| 金湖县| 芮城县| 辽中县| 新绛县| 广水市| 峨山| 固原市| 南溪县| 营山县| 永丰县| 从江县| 应城市| 彰化市| 新疆| 英吉沙县| 西和县| 岢岚县| 沙田区| 隆林| 武乡县| 阿拉善左旗| 台中县| 马关县| 安化县| 枣强县| 隆子县| 夹江县| 万载县| 永定县| 乌鲁木齐市| 离岛区| 杭州市| 龙州县| 金门县| 甘洛县| 邢台市| 出国| 吉水县|