潘秋紅,崔展齊,王林章,2,3+
1.南京大學 計算機科學與技術系,南京 210023
2.南京大學 計算機軟件新技術國家重點實驗室,南京 210023
3.江蘇省軟件新技術與產業化協同創新中心,南京 210023
4.北京信息科技大學 計算機學院,北京 100101
SQL(structured query language)注入是攻擊者由外部輸入向程序中原有的數據庫執行語句中插入惡意SQL語句片段,篡改SQL執行命令來操作數據庫的安全漏洞。無論是對于Web應用還是移動應用,SQL注入都是一個嚴重的安全問題。攻擊者可以利用SQL注入漏洞竊取用戶敏感信息,惡意篡改數據庫中的內容,提升權限等,引發嚴重后果。根據OWASP(Open Web Application Security Project)發布的Web應用十大安全威脅中,從2010年至2017年4月,注入類漏洞都高居榜首[1]。
SQL注入漏洞對軟件安全產生了巨大威脅,對SQL注入的檢測和防范是開發者在開發軟件時必須考慮的一個重要因素。已經提出了很多方法用于檢測Web應用中的SQL注入漏洞,主要可分為靜態分析[2]、動態測試[3]兩類。靜態分析方法如符號執行技術,其將符號作為值賦給變量,對程序的路徑進行模擬執行,精確分析程序的代碼屬性[2]。動態測試則要通過運行軟件來得到程序的動態行為信息,包括分析軟件的覆蓋率、監控內存的狀態、分析執行軌跡、提取程序不變式等[3]。同時,針對Web應用中的SQL注入漏洞已有很多工具得到了廣泛應用,如HPFortify SCA[4]、Coverity[5]等。
近年來,隨著無線通信技術和移動互聯網迅猛發展,移動終端普及率快速提高。據CNNIC(China Internet Network Information Center)第39次《中國互聯網絡發展狀況統計報告》[6],截至2016年12月,我國手機網民規模已達到6.95億,臺式電腦、筆記本的上網比例則持續下降,網民上網設備進一步向移動端集中?!?br>