梁本來



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