梁本來
摘要:隨著Web應(yīng)用系統(tǒng)的廣泛使用,其安全漏洞帶來的危害也與日俱增。參閱大量相關(guān)文獻(xiàn),列舉當(dāng)今Web應(yīng)用常見的安全漏洞,分析了相應(yīng)漏洞概念及原理,并總結(jié)了相應(yīng)的防御機(jī)制,旨在為構(gòu)建更為安全的Web應(yīng)用系統(tǒng)提供思路。
關(guān)鍵詞:安全漏洞;防御機(jī)制;Web應(yīng)用;信息安全
中圖分類號:TP309? ? ? ? ?文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)01-0054-02
Abstract:With the wide use of web application systems, the harms of their security vulnerabilities increased steadily. Based on lots of the related literatures, the common security vulnerabilities of web applications were enumerated, whose concepts and principles were analyzed, and the defense mechanisms were summarized, which provide ideas for building the more secure web application systems.
Key words:security vulnerabilities;defense mechanisms;web applications;information security
1引言
隨著Web2.0技術(shù)的應(yīng)用與發(fā)展,互聯(lián)網(wǎng)應(yīng)用更加民主,更方便用戶訪問;而近些年,Web3.0技術(shù)也應(yīng)運而生,Web應(yīng)用更加智能,互動性更強(qiáng),應(yīng)用范圍也更加廣泛[1]。傳統(tǒng)的C/S模式的應(yīng)用逐漸被淘汰,Web應(yīng)用承載了絕大多數(shù)信息,其中不乏大量機(jī)密和隱私信息,攻擊Web應(yīng)用也成為黑客們獲取利益的重要方式。與此同時,Web應(yīng)用系統(tǒng)的安全風(fēng)險也隨之而來。時下流行的各類開發(fā)技術(shù)降低了Web應(yīng)用開發(fā)的難度,不少開發(fā)人員也欠缺足夠的安全意識,導(dǎo)致Web應(yīng)用中存在較多安全漏洞[2-3]。因此,現(xiàn)階段Web應(yīng)用安全正面臨前所未有的嚴(yán)峻威脅。
2 Web應(yīng)用安全漏洞及其原理
2.1 SQL注入
由于部分開發(fā)人員欠缺安全意識,導(dǎo)致程序忽略了對非法字符串的過濾,而這些非法字符可能包含對某些數(shù)據(jù)庫系統(tǒng)有特殊意義的符號或命令,讓攻擊者有機(jī)會操控Web應(yīng)用數(shù)據(jù)庫,獲取到Web應(yīng)用系統(tǒng)的關(guān)鍵信息,導(dǎo)致信息被竊取、甚至更改和刪除[4]。更為嚴(yán)重的后果可能導(dǎo)致Web應(yīng)用服務(wù)器被植入后門程序。SQL注入攻擊過程如圖1所示。
2.2跨站腳本(cross-site scripting,XSS)
由于開發(fā)人員的大意,Web應(yīng)用系統(tǒng)忽略了對用戶輸入字符的過濾,給攻擊者注入惡意指令代碼留下了可乘之機(jī)[5]。這些惡意網(wǎng)頁程序包括JavaScript、Java、VBScript、ActiveX、 Flash 以及HTML等。通過XSS攻擊,攻擊者可以竊取網(wǎng)頁內(nèi)容、會話和cookie等各種內(nèi)容。XSS攻擊過程如圖2所示。
2.3跨站請求偽造(Cross-site request forgery,CSRF)
黑客構(gòu)造好惡意網(wǎng)站,誘騙已經(jīng)登錄正常Web應(yīng)用(如某銀行官網(wǎng))的用戶去訪問,偽裝成該用戶向正常的Web應(yīng)用完成一系列非法操作[6]。與XSS的差別是,CSRF通過偽裝已登錄的正常用戶去請求受信任的Web應(yīng)用,而XSS必須盜取正常用戶的cookie才能發(fā)起攻擊。因此,CSRF更為隱蔽,更加難以防范。CSRF攻擊過程如圖3所示。
2.4文件上傳漏洞
由于開發(fā)人員的大意,Web應(yīng)用系統(tǒng)如果忽略了對上傳文件的驗證,或者是過濾不足,可能會出現(xiàn)此類漏洞。攻擊者將惡意腳本文件偽裝成正常的圖片、文本、視頻等文件上傳至系統(tǒng),可能會導(dǎo)致系統(tǒng)乃至服務(wù)器都被操控[7]。文件上傳漏洞攻擊過程如圖4所示。
2.5 文件包含漏洞
該類漏洞主要出現(xiàn)在PHP應(yīng)用系統(tǒng)中,在APSX、JSP等Web應(yīng)用系統(tǒng)中也有出現(xiàn),但相對較少。開發(fā)人員希望更加靈活的編寫代碼,會頻繁通過PHP函數(shù)引入文件,但如果沒有對該文件進(jìn)行嚴(yán)格的驗證,就可能會導(dǎo)致意外的文件泄露或者惡意的代碼注入[8]。當(dāng)攻擊者能夠控制函數(shù)的動態(tài)執(zhí)行變量時,就可以發(fā)起文件包含漏洞攻擊。
2.6Cookies欺騙
Cookies,是Web系統(tǒng)為了辨別用戶身份,進(jìn)行Session跟蹤而儲存在用戶本地終端上的數(shù)據(jù),由客戶端暫時保存的信息。儲存在Cookies中的大部分信息是普通的,但是不少Web系統(tǒng)使用Cookies來儲存針對私人的數(shù)據(jù),如:用戶名、密碼等信息。Cookies欺騙是通過盜取、修改、偽造Cookies的內(nèi)容來欺騙Web服務(wù)器,并得到相應(yīng)權(quán)限或者進(jìn)行相應(yīng)權(quán)限操作的一種攻擊方式[9]。
2.7命令執(zhí)行漏洞
由于開發(fā)人員的大意,Web應(yīng)用系統(tǒng)如果忽略了對可執(zhí)行的函數(shù)進(jìn)行嚴(yán)格過濾,可能導(dǎo)致攻擊者通過提交惡意構(gòu)造的命令行,繼承Web服務(wù)程序的權(quán)限去執(zhí)行系統(tǒng)命令,控制整個Web應(yīng)用甚至Web服務(wù)器,從而進(jìn)一步滲透內(nèi)網(wǎng)[10]。
2.8 反序列化漏洞
PHP、JAVA、Python等主流編程語言均具有反序列化問題。攻擊者可以利用反序列化漏洞,通過構(gòu)造惡意請求報文遠(yuǎn)程執(zhí)行命令,危害較大。以JavaEE常用的中間件WebLogic為例,攻擊者一旦利用此漏洞發(fā)起攻擊,便可以進(jìn)行內(nèi)網(wǎng)滲透,進(jìn)一步獲取服務(wù)器的系統(tǒng)權(quán)限[11]。
3 Web應(yīng)用安全防御機(jī)制
安全漏洞的出現(xiàn),很大程度在于應(yīng)用系統(tǒng)本身存在的問題,導(dǎo)致攻擊者可以通過SQL注入、跨站腳本、偽造請求、文件上傳等一系列非法操作獲取Web系統(tǒng)甚至服務(wù)器的權(quán)限[12]。總結(jié)相應(yīng)防御機(jī)制如表1所示。
4結(jié)論
本文列舉了當(dāng)今Web應(yīng)用常見的安全漏洞,分析了相應(yīng)漏洞概念及原理,并總結(jié)了相應(yīng)的防御機(jī)制。當(dāng)今大多數(shù)網(wǎng)絡(luò)應(yīng)用基于B/S模式,Web應(yīng)用漏洞層出不窮,且不斷涌現(xiàn)出新型攻擊手法,Web應(yīng)用的安全防御始終是一個動態(tài)的過程,需要相關(guān)開發(fā)人員、信息安全廠商、以及網(wǎng)絡(luò)管理人員等共同防御,才能最大限度降低Web應(yīng)用漏洞帶來的危害,從而保護(hù)Web應(yīng)用的安全。
參考文獻(xiàn):
[1] 劉雨晴. Web2.0向Web3.0 過渡下的網(wǎng)絡(luò)信息資源組織發(fā)展—以社會化媒體為例[J].電腦知識與技術(shù),2019, 15(36):33-35.
[2] 孫曉飛. Web應(yīng)用漏洞分析與檢測的研究[D].北京:北京郵電大學(xué), 2016.
[3] 譚劍. Web網(wǎng)絡(luò)及應(yīng)用運維安全策略研究[J].電子制作, 2020,(2): 74-76.
[4] 李明. Web應(yīng)用SQL注入漏洞分析及防御研究[J].福建電腦, 2020, 36(5):25-27.
[5] 劉建亮,喬興華.跨站腳本攻擊及防范方法研究[J].科學(xué)技術(shù)創(chuàng)新, 2020(10):137-138.
[6] 嚴(yán)亞萍,胡勇.淺析CSRF漏洞檢測、利用及防范[J].通信技術(shù), 2017(3): 558-564.
[7] 黃志華,王子凱,徐玉華,等.文件上傳漏洞研究與實踐[J].信息安全研究, 2020(2): 151-158.
[8] 周開東,魏理豪,王甜,等.遠(yuǎn)程文件包含漏洞分級檢測工具研究[J].計算機(jī)應(yīng)用與軟件, 2014(2): 21-23.
[9] 李強(qiáng),陳然,戚江一,等.基于主機(jī)特征的Cookie安全研究[J].保密科學(xué)技術(shù), 2011(4):23-25.
[10] 劉家棟. PHP網(wǎng)站常見安全漏洞及防范措施[J].計算機(jī)與網(wǎng)絡(luò), 2016(1): 82-83.
[11] 徐江珮,王捷,蔡攸敏,等. Java反序列化漏洞探析及其修復(fù)方法研究[J].湖北電力, 2016(11): 47-50.
[12] 沈子雷.基于Web應(yīng)用的網(wǎng)絡(luò)安全漏洞發(fā)現(xiàn)與研究[J].無線互聯(lián)科技, 2020(5):19-20.
【通聯(lián)編輯:代影】