《電子技術應用》
您所在的位置:首頁 > 微波|射頻 > 設計應用 > 面向RFID系統的SQL注入攻擊檢測和防御算法
面向RFID系統的SQL注入攻擊檢測和防御算法
2015年電子技術應用第10期
王民川1,管 磊2
(1.中州大學,河南 鄭州450007;2.河南廣播電視大學,河南 鄭州450008)
摘要: 針對RFID系統中傳統的SQL注入攻擊(SQLIA)檢測算法成本較高且檢測率較低的問題,提出了一種基于數據完整性策略的SQL注入攻擊檢測和防御算法。利用數據完整性策略,確保輸入數據為強類型、語法正確、在長度邊界內、僅包含允許的字符、正確簽名數字且數字在范圍邊界內等約束,以防御SQL注入攻擊。通過檢測查詢是否符合意圖符合條件、大小符合條件和標識符符合條件來檢測SQL注入攻擊。實驗結果顯示,算法具有較高的執行效率,消耗時間僅為節點序列比對算法的29.7%,僅為快速比對算法的76.0%。算法的檢測率比常用的檢測工具BSQL Hacker和Pangolin分別高出13.8%和20.6%,表明本算法能夠保證正常查詢,可有效檢測和防御SQL注入攻擊。
中圖分類號: TP391
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.10.030

中文引用格式: 王民川,管磊. 面向RFID系統的SQL注入攻擊檢測和防御算法[J].電子技術應用,2015,41(10):111-114.
英文引用格式: Wang Minchuan,Guan Lei. A detection and prevention algorithm of SQL injection attacks for RFID system[J].Application of Electronic Technique,2015,41(10):111-114.
A detection and prevention algorithm of SQL injection attacks for RFID system
Wang Minchuan1,Guan Lei2
1.Zhongzhou University,Zhengzhou 450007,China;2.Henan Radio & Television University,Zhengzhou 450008,China
Abstract: For the issues that traditional SQL injection attacks(SQLIA) detection algorithms has high cost and low detection rate in RFID system, a detection and prevention algorithm of SQL injection attacks based on data integrity policy is proposed. It uses data integrity policy to ensure that the data is strongly typed, correct syntax, within length boundaries, contains only permitted characters, and that numbers are correctly signed and within range boundaries, to prevent SQLIA attacks. It detects the SQL injection attacks by observe whether the intention conformity condition, the size conformity condition and the identifier conformity condition observe the intention conformity condition, the size conformity condition and the identifier conformity condition. The experimental results show that proposed algorithm has high execution efficiency. The consumption time of proposed algorithm is only 29.7% of node sequence alignment algorithm and 76.0% of fast alignment algorithm. The detection rete of proposed algorithm is higher than two commonly used detection tools BSQL Hacker and Pangolin with 13.8% and 20.6%, respectively, which indicates that proposed algorithm can ensure the normal query and effectively detect and defense the SQL injection attacks.
Key words : RFID system;detection of SQL injection attack;data integrity policy;attacks prevention

  

0 引言

  射頻識別(Radio Frequency Identification,RFID)技術是一種標簽技術[1],它能夠自動識別不在視線內的實體,大大提高了自動化效率[2]。然而,RFID系統存在許多安全性問題,其中一個主要問題為SQL注入攻擊(SQL Injection Attacks,SQLIA)[3,4],增加了RFID標簽的潛在威脅[5]。因此,檢測和防御RFID系統中SQLIA對RFID的應用至關重要。文獻[6]提出了一種基于數據完整性策略的SQL攻擊檢測算法,通過運行監控確保產生的查詢符合條件,一定程度上提高了安全性。然而,該算法期望存在原始SQL結構,需要人工干預建立所有組件,成本較高。

  本文提出一種新的SQL注入攻擊的檢測和防御算法,利用數據完整性策略和意圖符合條件、大小符合條件和標識符符合條件來檢測和防御SQL注入攻擊。實驗結果表明了本算法的有效性及高效性。

  1 SQL注入攻擊問題

  擁有RFID惡意軟件檢測和防御機制對于維護能RFID系統非常重要[7],本文中SQLIA問題如下[8]:

  已知:動態產生SQL查詢q和I=t1,t2,…,tn輸入數據集;

  問題:SQLIA檢測問題是設計一種算法A,在下列約束下確定q是否為SQL注入攻擊:

  (a)I=t1,t2,…,tn輸入數據集僅來源于RFID標簽;

  (b)中間件基于I=t1,t2,…,tn輸入數據集生成q;

  (c)q能執行企業數據庫的數據插入、數據更新、數據刪除和數據檢索操作。

  2 提出的SQLIA檢測和防御算法

  定義1(動態SQL查詢):給定應用程序P和n條輸入數據d1,d2,…,dn,通過映射RFID標簽輸入到常量查詢字符串,P構建動態SQL查詢q:

  q←P(d1,d2,…,dn)(1)

  部分查詢靜態配置于中間件中,而其他部分從輸入參數導出。

  定義2(惡意SQL):將利用源自RFID標簽的輸入d1,d2,…,dn數據形成的動態SQL查詢q,若滿足下列任意條件,則視為惡意SQL:

  (1)意圖符合:substr(qi)∈{substr(d1),…,substr(dm)}

  (2)大小符合:M<F

  (3)標識符符合:di.vki.v|v∈{op,artry,type,size}

  意圖符合條件確保正常SQL語句不能是用于產生動態查詢的程序的輸入字符串元素。大小符合條件確保輸入數據的大小(F)不能大于標識符數據的大小(M)。標識符符合條件嚴格限制每個輸入數據(如d1,d2,…,dm),使其遵守標識符的屬性。

001.jpg

  圖1描述了提出的SQLIA檢測和防御算法的整體結構,包含數據完整性策略、意圖符合、大小符合和SQL符合部分。

  2.1 數據完整性策略

  SQLIA攻擊依賴于不合法結構的數據成功輸入,為了解決這一問題,使用數據完整性策略在數據庫標識符值上定義一組約束,每個動態生成的SQL語句包含一組標識符:

  I=〈k1〈P〉,…,kn〈P〉〉(2)

  每個標識符ki∈I有一組屬性ki〈P〉=〈p1,…,pn〉,例如數據類型和數據位允許的最大尺寸。

  這種策略用以確保數據為強類型、語法正確、在長度邊界內、僅包含允許的字符、正確簽名數字且數字在范圍邊界內。策略對每個標識符使用一組數據完整性規則,通過驗證每個標識符聲明的屬性來定義這些輸入數據完整性規則。

002.jpg

  圖2為使用巴科斯范式表示系統標識符的約束,“op”性質規定“創建、讀、更新、刪除”中的哪些操作允許在標識符上執行。SQL編程中,4個基本函數(創建、讀、更新、刪除)對應于INSERT、SELECT、UPDATE(SET)和DELETE[9]。類型性質規定無論它們持有什么,都將視為字符串或數值,而不是任意代碼。大小性質規定可存儲的數字或字符的最大數量。

  2.2 SQL注入攻擊檢測和防御

  本文算法使用有關SQL語法知識的架構和策略檢測一個查詢是否為SQLIA,如算法1所示。算法的輸入為動態產生的SQL語句、從RFID標簽獲得的數據集D={d1,d2,…,dm}和用于程序P生成SQL的輸入參數集S={t1,t2,…,tn}。

  在運行過程中,當由中間件產生的SQL查詢的語法結構與RFID應用程序開發者所設定的SQL語法結構不同時,SQL注入攻擊發生。將SQL語句寫成查詢集Q={q1,q2,…,qn},使用分號“;”和注釋“—”作為代碼內多個查詢的分隔符,然后處理每個查詢qi∈Q(一次一個),若任一查詢qi∈Q不遵守意圖符合條件、大小符合條件和標識符符合條件,則拒絕該SQL語句。

  算法1:SQLIA檢測算法

  1.輸入: SQL,D={d1,d2,…,dm},S={t1,t2,…,tn}

  2.BEGIN

  3.  Q←SQL中查詢集

  4.  FOREACH  qi∈Q DO

  5.計算M和F

  6.IF(M≥F)∧(qiD)THEN

  7.  I←qi中標識符集

  8.  IC=IdentifierConformity(I,D,S)

  9.  IF (IC==FALSE) THEN

  10.REJECT;EXIT

  11.ENDIF

  12.  ENDIF

  13.ENDFOR

  14.END

  2.2.1 大小符合

  期望和實際輸入數據的大小能夠表示純凈SQL語法和受污染SQL語法之間的差異,每個動態生成的SQL語句包括一組標識符I=k1,…,kn,每個標識符ki∈I有一組屬性P=p1,…,pn,其中一個為允許標識符持有的數據最大尺寸。該算法計算輸入字符串的總大小(即d1,d2,…,d|D|)和標識符允許的總數據大小(即k1,k2,…,k|I|),如下:

  GVW[M2E1WQN6I)~KW0G0L}B.png

  若實際輸入和期望輸入不匹配或存在空數據輸入時,設置F=0。對于滿足大小符合約束的查詢qi∈Q,輸入數據的總和不能超過設計時定義的參數總大小。

  2.2.2 意圖符合

  將SQL語句劃分為一組獨立SQL語句Q={q1,q2,…,qn},對于每個查詢qi∈Q,算法檢查是否符合下列意圖符合條件:

  5RM7]WTUT%EZXW5@HH7PAHP.jpg

  式(5)規定qi∈Q不能為輸入字符串的元素,若查詢qi∈Q不符合意圖符合條件,則拒絕原始SQL語句。

  2.2.3 標識符符合

  算法2描述了針對每個查詢qi∈Q執行的標識符符合算法的偽代碼,算法的輸入為RFID標簽數據集D={d1,d2,…,dm}、例如保留關鍵字和操作符的非文本標記集R={t1,t2,…,tn}和標識符集I={k1,k2,…,kn}。

  強制執行下列兩個數據完整性驗證規則:

  (1)如果D={d1,d2,…,dm}和R={t1,t2,…,tn}的交集非空,則認為輸入數據受到污染,拒絕SQL語句。

  (2)對于每個ki∈I,檢查下列操作和類型完整性條件:

  Operation integrity:(di.op≠ki.op)∧(di.artry≠ki.artry)

  (6)

  Type integrity(di.type≠ki.type)∧(di.size≠ki.size)(7)

  若不滿足上述兩個條件任一條,則拒絕SQL語句。

  算法2:標識符符合檢測算法

  1.輸入:D,I,R

  2.輸出: clean=True

  3.BEGIN

  4.  IF(R∩D)THEN

  5.clean=False;EXIT

  6.  ENDIF

  7.  FOR 每個標識符 ki∈I DO

  8.IF(di.op≠ki.op)∧(di.artry≠ki.artry)THEN

  9.  clean=False;EXIT

  10.ELSEIF(ki∈I≠table)THEN

  11.  IF((di.type≠ki.type)∧(di.size≠ki.size))THEN

  12.clean=False;EXIT

  13.  ENDIF

  14.ENDIF

  15.  ENDFOR

  16.END算法

3 實驗結果與分析

  3.1 實驗環境

  為了評估提出的SQLIA檢測和防御算法的性能,構建模塊化測試平臺,如圖3所示。

003.jpg

  實驗使用的RFID系統是UHF RFID閱讀器和SkyeTek、Intermec公司的兩類標簽。本文創建了三個虛擬克隆RFID標簽,用來發送各種類型SQLIA。中間件運行在筆記本電腦上,使用MySQL數據庫,中間件通過MySQLC API連接到數據庫。

  實驗測試了可能在RFID系統中動態生成的各類SQL查詢(例如SELECT、UPDATE、INSERT),通過克隆標簽和合法標簽產生的700個SQL注入攻擊和1 300個合法請求,組成大約2 000個查詢來測試提出的算法。其中,SQL注入攻擊包含一些攻擊類型(如重言式、聯合查詢、后置貪心查詢等)。

  3.2 SQLIA檢測結果

  實驗運行2 000個查詢,共有700種惡意查詢,包括280個SELECT類查詢、251個UPDATE類查詢和169個INSERT類查詢,惡意查詢的比例可從5%至35%之間變化。

004.jpg

  圖4描述了在存在不同比例惡意查詢情況下,接受和拒絕查詢的百分比。結果表明,由于所有惡意查詢至少不滿足意圖符合、大小符合、標識符符合條件之一,采用三個條件連同數據完整性策略能夠有效的遏制SQLIA,同時很好地保證了合法查詢。

  當查詢不符合意圖符合、大小符合、標識符符合條件之一時,算法就會跳過其他過濾條件,直接判斷為惡意查詢,從而大大降低了算法開銷,提高了性能。

3.3 比較及分析

  3.3.1 耗時比較

  在互聯網上選取一個存在SQL注入漏洞的網頁,將本文算法與基于節點序列的比對算法[4]、快速比對算法[6]進行比較,處理100到10 000個查詢,運行200次,取各個算法查詢時間的平均值,如表1所示。

005.jpg

  從表1可看出,本文算法消耗時間僅為節點序列比對算法的29.7%,僅為快速比對算法的76.0%,體現了本文算法的高效率。結果表明,本文算法對系統的額外開銷很少,因為本文算法使用簡單字符串比較。

  3.3.2 檢測性能比較

  將本文算法在攻擊檢測系統中的有效性與當前常用的兩款檢測工具BSQL Hacker[9]和Pangolin[10]進行比較,分別對測試樣本進行檢測。首先通過表2的關鍵語句在Google中搜索出一定的URL以構建測試樣本集,然后對獲取的URL測試樣本進行SQL攻擊檢測,根據對獲取的URL添加不同的注入命令的返回頁面與正常頁面的異同來判定URL是否存在攻擊。判定后,采取措施進行攻擊防御,檢測結果如表3所示。

006.jpg

  從表3可看出,本文工具的消耗時間略多于其他兩種攻擊,但檢測到的URL總數明顯最多,且檢測率分別比BSQL Hacker和Pangolin高13.8%和20.6%,表明本文算法能夠保證正常查詢,可有效檢測和防御SQL注入攻擊。

4 結束語

  本文提出一種能夠準確檢測并防御RFID系統中的SQL注入攻擊算法,利用數據完整性策略來防御SQLIA攻擊。通過檢測查詢是否符合意圖符合條件、大小符合條件和標識符符合條件來檢測SQL注入攻擊。本文算法成功阻止了所有攻擊,并保證了所有合法的查詢。相比現有的檢測算法和檢測工具,本文算法簡單有效,具有程序計算開銷低、檢測率高等優點。

參考文獻

  [1] 白婷,黃春明,李楠,等.基于RFID的局域網安全管理的研究[J].計算機測量與控制,2012,20(4):1067-1069.

  [2] MAHDIN H,ABAWAJY J.An approach for removing redundant data from RFID data streams[J].Sensors,2011,11(10):9863-9877.

  [3] FERNANDO H,ABAWAJY J.Securing RFID systems from SQLIA[C].Algorithms and architectures for parallel processing.Springer Berlin Heidelberg.2011:245-254.

  [4] ABAWAJY J.SQLIA detection and prevention approach for RFID systems[J].Journal of Systems and Software,2013,86(3):751-758.

  [5] DOGBE E,MILLHAM R,SINGH P.A combined approach to prevent SQL injection attacks[C].Science and InformationConference(SAI),2013.IEEE,2013:406-410.

  [6] ABAWAJY J,FERNANDO H.Policy-based SQLIA detectionand prevention approach for RFID systems[J].Computer Standards & Interfaces,2015,38(3):64-71.

  [7] 楊曉明,張翔,王佳昊,等.基于有限自動機的RFID入侵檢測[J].電子科技大學學報,2014,43(5):775-780.

  [8] 田蕓,陳恭亮,李建華.針對RFID身份認證協議——ARAP協議的攻擊及改進[J].中國電子科學研究院學報,2012,6(6):556-560.

  [9] LEE I,JEONG S,YEO S,et al.A novel method for SQL injection attack detection based on removing SQL query attribute values[J].Mathematical and Computer Modelling,2012,55(1):58-68.

  [10] 曹崢,馬建峰,楊林,等.RFID安全協議的數據去同步化攻擊[J].華中科技大學學報(自然科學版),2013,41(4):


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久久99精品久久久久子伦 | 激情六月婷婷开心丁香开心 | 99精品久久久久久久免费看蜜月 | 精品国产一区二区三区2021 | 亚洲在成人网在线看 | 91麻豆国产福利精品 | 天天狠天天天天透在线 | 国产精品精品国产一区二区 | 国产亚洲人成网站在线观看 | 欧美国产一区二区二区 | 国内精品一区二区三区αv 国内精品一区二区三区app | 91亚洲自偷手机在线观看 | 欧美日韩视频在线观看高清免费网站 | 国产福利在线永久视频 | 国产黄色自拍视频 | 成人77777| 久久精品国产99久久久 | 国产一级视频播放 | 国内精品一区二区 | 国产三区视频 | 狠狠操综合网 | 免费视频99 | 婷婷激情综合 | 黄色大片aa| 日本精品久久久久久久久免费 | 高清精品一区二区三区一区 | 开心激情播播网 | 四虎影院色 | 999无色码中文字幕 999视频精品全部免费观看 | 欧美视频区 | 日韩欧美一区二区精品久久 | 77777影视视频在线观看 | 成人看的羞羞视频免费观看 | 亚洲六月婷婷 | 五月婷婷丁香 | 久久99久久精品国产只有 | 欧美视频在线一区 | 222www免费视频 | 国产精品香蕉在线观看 | 大香伊人中文字幕精品 | 精品一区二区久久久久久久网站 |