◆李鏡湖 楊建平 周 兵
(1.云南農(nóng)業(yè)大學大數(shù)據(jù)學院 云南 650201;2.云南農(nóng)業(yè)大學理學院 云南 650201;3.云南省高校農(nóng)業(yè)遙感與精準農(nóng)業(yè)工程研究中心 云南 650201)
隨著“互聯(lián)網(wǎng)+”時代的來臨以及政府扶持力度的不斷加大,Web 服務的應用十分廣泛,農(nóng)村電子商務發(fā)展十分迅猛。然而,由于互聯(lián)網(wǎng)具有開放性和交互性的特征,Web應用系統(tǒng)結(jié)構(gòu)的復雜性,數(shù)據(jù)的海量性。及網(wǎng)絡安全法和相關(guān)保障機制不健全,使電商網(wǎng)絡不可避免的存在一些安全問題。近些年針對電商平臺的網(wǎng)絡攻擊頻度和復雜度在不斷加劇,出現(xiàn)了網(wǎng)站數(shù)據(jù)和個人敏感信息被竊取的情況,這些網(wǎng)絡安全問題嚴重制約了中國農(nóng)村電子商務的發(fā)展。因此,基于網(wǎng)絡安全視域,針對農(nóng)村電商的現(xiàn)狀,對制約農(nóng)村電商發(fā)展的網(wǎng)絡安全因素進行分析,并提出對應的網(wǎng)絡安全策略以實現(xiàn)農(nóng)村電商能夠健康快速地發(fā)展。
目前農(nóng)村電商平臺以基于B/S模式架構(gòu)的Web應用為主。由于 Web應用程序自身的缺陷、開發(fā)者網(wǎng)絡安全意識的欠缺、程序員對于站點的網(wǎng)絡安全防范措施做不到位以及相關(guān)技術(shù)維護人員的安全防護技能較為薄弱等原因,導致農(nóng)村電商平臺存在大量的安全隱患。本文就Web攻擊中的SQL注入問題為對象,展開研究。針對SQL注入攻擊,提出有效的農(nóng)村電商平臺網(wǎng)絡安全防范策略,使得農(nóng)村電商平臺不受外來惡意攻擊,用戶的個人信息和財產(chǎn)安全受到保護不受威脅。
中國目前的農(nóng)村電商平臺以 Web應用為主。當今電商平臺面臨的主要安全威脅已由網(wǎng)絡層轉(zhuǎn)向應用層。主要表現(xiàn)在如下幾個層面:采用B/S構(gòu)架的Web應用程序不斷增多,隨之帶來的安全漏洞也越來越多;隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,被黑客用來進行攻擊的工具越來越多,且經(jīng)濟利益驅(qū)動性體現(xiàn)得非常明顯;一般做開發(fā)的程序員未經(jīng)過特殊的安全訓練,缺乏相關(guān)的網(wǎng)頁安全知識和技能;訓練有素且有很好經(jīng)驗的開發(fā)者,雖能最大限度的規(guī)避一些常見的安全問題,但是由于 Web應用非常廣泛,而其自身存在著不可避免的缺陷,導致容易受到外界的攻擊。
(1)Web應用的主要攻擊
當今 Web應用程序具有的優(yōu)越性使其被各界廣泛使用,但其存在漏洞且容易被攻破。主要的Web攻擊有:SQL注入、XSS攻擊和DDOS攻擊。OWASP在2013年的十大關(guān)鍵Web應用安全漏洞報告中將SQL注入攻擊排在首位,且SQL注入攻擊是目前公認危害最大的Web應用攻擊。原因是SQL注入漏洞可以被攻擊者利用從而直接訪問數(shù)據(jù)庫,甚至能夠進一步獲取數(shù)據(jù)庫所在服務器的管理員權(quán)限[8]。
(2)SQL注入攻擊的原理及特點
SQL注入是一種數(shù)據(jù)庫代碼注入攻擊手段。其原理是用戶在客戶端提交特殊的SQL代碼,從而非法獲取服務器信息。即:攻擊者把惡意代碼插入到 Web應用程序的輸入?yún)?shù)中,通過提交的方式再傳遞到數(shù)據(jù)庫服務器中去執(zhí)行。最后根據(jù)返回的提示和結(jié)果,在獲得所需的數(shù)據(jù)之后進一步發(fā)動攻擊,對數(shù)據(jù)庫進行未經(jīng)授權(quán)的訪問和直接檢索,造成數(shù)據(jù)庫信息泄露,實施竊取、偽造和篡改用戶敏感信息,甚至獲取服務器管理員權(quán)限,最終實現(xiàn)完全控制。如此一來,對于農(nóng)村電商最大的威脅莫過于平臺管理員權(quán)限被奪取。
SQL注入攻擊的三個顯著特點:低難度:SQL注入攻擊不依賴于環(huán)境,且目前網(wǎng)上有諸多開放、便捷、易用的SQL自動化注入攻擊工具;普遍性:SQL注入以利用SQL語句的靈活性實現(xiàn)攻擊,因此只要和數(shù)據(jù)庫存在交互的Web頁面就極有可能存在SQL注入漏洞;高危害:遭到SQL注入攻擊的后果,輕則被竊取敏感數(shù)據(jù),重則丟失服務器的控制權(quán)。
Web應用安全滲透測試技術(shù)是一種通過模擬惡意攻擊者的技術(shù)和方法,挫敗目標系統(tǒng)安全控制措施,取得訪問控制權(quán),利用滲透測試報告證明站點存在安全隱患的一種安全測試與評估方式。我們利用“滲透測試”技術(shù),使用SQL自動化注入工具對某個授權(quán)的農(nóng)村電商平臺進行探測,并分析其網(wǎng)絡安全狀況。以實例化方式為進一步提出針對性的防范措施打下基礎。在測試過程中的所有操作均以遵守網(wǎng)絡安全法為前提,不對站點做任何的破壞。
(1)滲透測試工具Sqlmap
Sqlmap是一款非常強大的開源SQL自動化注入工具,可以用來檢測和利用 SQL注入漏洞,目前支持多種數(shù)據(jù)庫類型,如MS Server、MySQL、oracle等。Sqlmap采用了四種SQL注入技術(shù),其具有數(shù)據(jù)庫提取、訪問目標文件系統(tǒng)、獲取操作權(quán)限時實行任意命令等廣泛的功能。
(2) Sqlmap應用實例
對我們實驗室取得授權(quán)的某個農(nóng)村電商平臺進行實例化測試,整個過程目的在于查找站點潛在的高危漏洞和安全威脅,同時也是對站點安全防護技術(shù)的驗證。
具體步驟如下:
第一步:檢查站點是否存在注入點。命令:sqlmap.py -u http∶//**.com/**.php?nid=63;
第二步:查看用戶。sqlmap.py -u http∶//**.com/**.php?nid=63--users -v 0;
第三步:查看庫。sqlmap.py -u http∶//**.com/**.php?nid=63--dbs -v 0;
圖1所示,使用sqlmap通過命令來查看SQL注入的基本信息。
圖1 sql注入查看基本信息
注入結(jié)果顯示:
該站點存在SQL注入點;注入?yún)?shù)id為GET注入;
注入類型為:boolean—based blind;
Web應用程序技術(shù):Apache 2.4.16 、PHP 5.6.27;
數(shù)據(jù)庫類型:MySQL;
存在兩個可用數(shù)據(jù)庫:henecia、information_schema。
第四步∶爆出庫下的表。sqlmap.py -u http∶//**.com/**.php?nid=63 --tables -D “**”。
圖2所示,用命令查看數(shù)據(jù)庫里所包含的表項。
圖 2 爆出數(shù)據(jù)庫henecia下的表
結(jié)果顯示:
數(shù)據(jù)庫“henecia”下有35個表,有管理員表、用戶表等等。
第五步:爆出指定表的字段。 sqlmap.py -u http∶//**.com/**.php?nid=63 --columns -D “**” -T “**”。
圖3所示,爆出的是指定表的字段,包括字段名和字段類型。
圖 3 爆出表TM_ADMIN_MAEMBER的字段
結(jié)果顯示:
表“TM_ADMIN_MEMBER”有7條字段,包括:注冊賬號、密碼等。
第六步:爆出字段內(nèi)容。 sqlmap.py -u http∶//**.com/**.php?nid=63 --dump -D "**" -T "**" -C"login_uid, login_pwd"。
圖4所示,爆出的是指定字段的內(nèi)容,也是我們希望得到的管理員賬號和密碼,是攻破站點的關(guān)鍵信息。
圖 4 爆出字段內(nèi)容
結(jié)果顯示:
該條字段爆出了管理員賬號和密碼。
到此,拿到該測試電商網(wǎng)站的管理員賬號和密碼,即:SQL注入成功。
SQL注入對該網(wǎng)站已形成了極大的安全威脅。說明該電商平臺防SQL注入的安全防護技術(shù)仍需升級,應采取更有效的防護措施,以保證電商平臺的安全。
(1)使用參數(shù)化語句查詢。參數(shù)化方法就是用戶在與數(shù)據(jù)庫鏈接并訪問數(shù)據(jù)時,需要提交的數(shù)據(jù)不是直接賦值,而是使用參數(shù)(Parameter)來給值。如此一來,含有參數(shù)的內(nèi)容將不會被數(shù)據(jù)庫服務器視為SQL指令的一部分來處理,而參數(shù)是在數(shù)據(jù)庫完成SQL指令的編譯之后才被執(zhí)行。所以即便是參數(shù)中含有攻擊者構(gòu)造的惡意指令,也不會被執(zhí)行。
(2)輸入信息的過濾和驗證。在服務器端正式處理客戶端提交的數(shù)據(jù)之前,須對提交信息進行充分的過濾,并對其合法性進行嚴格的驗證。譬如,通過設置字段的“長度”屬性來限制用戶輸入文本的長度,Web應用系統(tǒng)會根據(jù)先前設置好的長度而拒絕用戶輸入任何大于規(guī)定字符數(shù)的字段名,從而起到輸入信息的過濾作用。檢查用戶輸入信息的合法性,則是頁面中輸入特征為漢字的輸入框,不允許輸入數(shù)字或字母。
(3)加密并合理分配權(quán)限。在程序中對用戶敏感信息采用MD5函數(shù)進行加密。由于MD5是不可逆算法,因此即便是經(jīng)過MD5加密的信息被攻擊者獲取,在很大程度上也可以保證數(shù)據(jù)安全。合理分配數(shù)據(jù)庫權(quán)限,為訪問 Web應用程序數(shù)據(jù)庫的使用者單獨創(chuàng)建低權(quán)限賬號,只提供單一的查詢、修改或是刪除等操作。開發(fā)者通過限定用戶訪問數(shù)據(jù)庫的權(quán)限和控制其可執(zhí)行的操作,可以實現(xiàn)最大限度的保護數(shù)據(jù)庫且防止其不被非法用戶進行訪問和篡改。
(1)Web應用防火墻(WAF)。WAF是集Web防護、網(wǎng)頁保護、負載均衡于一體的 Web整體安全防護設備,它可以在事前主動防御,智能分析應用程序的缺陷,并屏蔽惡意請求,防止頁面篡改,阻止應用程序被攻擊,進而全面保護Web應用程序。事中智能響應,快速定位攻擊,阻止風險擴散。事后行為審計,深度挖掘訪問行為、分析攻擊數(shù)據(jù)、提升 Web應用價值。通過部署WAF可以有效地防止SQL注入攻擊。
(2)屏蔽錯誤信息。Web應用程序在提供給用戶使用的過程中,會因用戶的非規(guī)范性操作而反饋一些錯誤提示信息。開發(fā)者在編寫代碼的過程中,需要根據(jù)報錯信息來調(diào)試應用程序。SQL注入多是利用服務器端回顯的錯誤信息來進行攻擊,故關(guān)閉網(wǎng)站的錯誤回顯功能,可以減少被攻擊的可能性。
(3)Web服務器日志檢查。管理員啟用Web服務器的日志記錄,將可以記錄訪問者的訪問時間、路徑、文件、IP地址和其他信息。發(fā)生SQL注入攻擊則會出現(xiàn)短時間內(nèi)大量訪問某一頁面文件的現(xiàn)象,日志文件會因此而急劇增加。所以,用戶通過檢查日志文件的內(nèi)容和大小,可以判斷站點是否發(fā)生過 SQL注入攻擊。
農(nóng)村電商網(wǎng)絡安全防御是一個動態(tài)、與時俱進的過程,本文以SQL注入攻擊問題為研究重點,提出了農(nóng)村電商平臺網(wǎng)絡安全有效的防范策略,以完善農(nóng)村電商平臺在技術(shù)層上的不足。并力求在良好的政策環(huán)境下鼓勵和支持開拓創(chuàng)新,大力培養(yǎng)農(nóng)村電商人才,配合完善農(nóng)村物流服務體系,為農(nóng)村電子商務快速、穩(wěn)健發(fā)展提供更有力的保障和支撐。基于此,今后工作的開展將以農(nóng)村電商平臺網(wǎng)絡安全態(tài)勢分析為核心。
[1]李鑫,張維緯,隋子暢,鄭力新.新型SQL注入及其防御技術(shù)研究與分析[J].信息網(wǎng)絡安全,2016.
[2]王丹,趙文兵,丁治明.Web應用常見注入式安全漏洞檢測關(guān)鍵技術(shù)綜述[J].北京工業(yè)大學學報,2016.
[3]朱振,徐和平.法律視域下農(nóng)村電子商務發(fā)展現(xiàn)狀及對策研究[J].湖南科技學院學報,2016.
[4]吳斌,劉循.SQL注入攻擊及漏洞檢測防范技術(shù)[J].網(wǎng)絡安全技術(shù)與應用,2017.
[5]李海光.計算機網(wǎng)絡安全技術(shù)與防范策略[J/OL].電子技術(shù)與軟件工程,2017.
[6]王瑜,李卓,姚微娜.Web安全威脅與防御技術(shù)研究[J].長春理工大學學報(自然科學版),2017.
[7]OWASP 2013 top 10 risks[EB/OL].https://www.owasp.org/index.php/ Top_10_2013-Top_10,2015.
[8]李志星,張威.大中型企業(yè) Web應用程序中SQL注入的檢測與防御[J].河南電力技術(shù),2017.
[9]王溢,李舟軍,郭濤.防御代碼注入式攻擊的字面值污染方法[J].計算機研究與發(fā)展,2012.
[10]張馳,羅森林.基于端口和編號的漏洞代碼匹配方法研究[J].信息網(wǎng)絡安全,2014.
[11]隋亮.基于滲透測試的 SQL注入漏洞檢測與防范[D].東華大學,2014.