◆徐 茂
(萊蕪市公安消防支隊 山東 271100)
淺析面向SQL數據庫注入攻擊的Java Web防御措施
◆徐 茂
(萊蕪市公安消防支隊 山東 271100)
隨著信息時代的發展以及互聯網計算機技術的普及,網絡安全逐漸成為了社會關注的重點。現階段,各行各業的信息化建設使得網絡系統管理的地位日益提升,與企業相關的各種數據信息也被儲存于強大的網絡數據庫中。然而這些數據庫往往是網絡黑客的入侵目標,由此可見信息安全受到了較大的威脅。鑒于此,本文主要分析常見的網絡攻擊形式,即向SQL數據庫中注入攻擊,探討Java Web應用過程中防御措施。
SQL數據庫;攻擊;Java Web應用;防御措施
現階段,大部分的網頁存在較大的SQL數據庫注入漏洞。網絡黑客以數據庫的漏洞為突破口,憑借著自身擁有的較高計算機技術,通過網絡服務器侵入到管理員的服務區域內,從而偷取相關的重要信息數據。在我國,這種網絡入侵,盜取資料信息的案例時有發生,嚴重威脅到了網絡信息的安全,違背了相關的法律法規和社會道德。因此,本文對Java Web應用過程中防御措施的探討具有重要價值。
1.1 SQL數據庫注入攻擊后系統的內部變化
在數據庫管理平臺系統內存在客戶終端和數據終端,很多網絡黑客通過客戶終端輸入一些違反規定的SQL語句,當正常的SQL語句遇到違規語句時會產生一定的混亂,從而降低了數據庫系統信息的安全,由此便導致了SQL數據庫注入攻擊。當SQL數據庫注入攻擊以后,數據庫信息便面臨了較大的安全隱患,重要的數據信息很有可能被盜取。當攻擊者的目標不是數據庫中的信息數據時,很有可能威脅到系統服務器的安全,從而造成更大的損失[1]。
當網絡黑客入侵到管理者區域內以后,便取得了一定的網絡信息控制權,從而會安裝一些威脅信息安全的木馬病毒,使得眾多的網民信息安全受到威脅。可見,SQL數據庫注入攻擊以后,其危害領域與范圍是較大的,后果不堪設想。
1.2 結構化查詢語言的特點
SQL是中文“結構化查詢語言”的英文簡稱,這種語言模式可以為相關的數據庫管理編寫出一個功能較全的程序化軟件,其表達轉譯的過程主要通過SQL語句完成。SQL數據庫語言的功能主要表現在實現數據庫之間的信息交流,在接收指令和執行操作的過程中主要以SQL語句指令為標準,從而保證在數據庫管理平臺發出指令時,數據系統作出相應的反應[2]。
SQL數據庫語言與關系型數據庫密切相關,這也是一般關系型數據庫均使用SQL數據庫語言的重要原因。大部分關系型數據庫在使用SQL語句時,可以得到較好的程序表達,其在表達過程中受到其它數據庫的影響較小。
2.1 加強客戶端與服務端雙向檢測力度
一般情況下,在檢測數據庫的過程中,比較注重客戶端方面的檢測,服務端檢測力度不夠,相關的保護程序不完善。由此增加了網絡黑客侵入的機會,使得SQL數據庫注入攻擊的可能性增大。因此,為了降低網絡攻擊的概率,需要在客戶端和服務端分別進行檢測[3]。
客戶檢測過程中要注重對攻擊可能性的劃分以及攻擊危害性的規劃,對于不同程度的網絡攻擊,要控制好網絡流量,保證服務器的承載處于標準范圍內。此外,隨著時代的發展以及現代技術的進步,網絡黑客的技術水平也越來越高,在實施網絡攻擊的過程中,會選擇避開客戶端直接攻擊系統服務器。由此可見,加強服務端檢測力度是十分必要的。
服務器在檢測過程中要對信息保持敏感的嗅覺,即任何形式的可疑信息均要實施抵制,并且進行強制性的停止信息操作。為了保證服務端與客戶端的統一性,在服務端出現抵制其信息操作時,要將信息錯誤的提醒傳輸到客戶端,從而保證可以及時的應對攻擊[4]。
2.2 完善數據庫基本配置,實施定期更新,保證數據安全
為了保證數據的安全性,需要完善數據庫的基本配置,定期更新數據庫,并實施最小權利法則標準。軟件安裝過程中會存在一些賬號信息和相關的權限提醒,為了使得數據庫的基本配置,即相關軟件的安全性,需要及時的將與賬戶信息安全有關的信息刪除掉,從而避免形成網絡黑客注入漏洞。
當數據庫出現攻擊現象以后,系統便感知了內部存在的漏洞,為了避免網絡攻擊的連發性,官方會提供一些數據庫更新補丁,從而填補系統漏洞。數據相關系統在接收更新提醒以后,要進行及時的更新操作,從而提高數據安全。為了加強對系統數據安全性的防范,官方系統可以實施定期更新機制,從而防患于未然。
Java Web應用程序與數據庫之間只存在特定的賬戶權限,通過這種唯一性的設置可以保證在用戶完成相關操作以后,網絡黑客不會借助其它形式的軟件進行再次登錄,從而可以保證數據庫不會被其它惡意軟件所攻擊[5]。
2.3 通過對數據庫實施編碼字符防范,保證內部深層次加護效果
編碼字符防范可以實現對數據庫的深層次防護,編碼字符防范的實質是指在Java Web應用程序實施操作的過程中只能識別出自身設置的編碼,在輸送過程中會通過既定的編碼形成一定的系統識別語句。在實現數據輸入的過程中,系統會將數據以編碼函數的形式完成到另外一組預定編碼字符中的輸入,從而不給網絡黑客留下追蹤編碼的機會。
在實施編碼字符防范的過程中存在一個較大的問題,即網絡黑客的攻擊手段也是通過一定的代碼破譯形式。雖然編碼字符在系統實施編制的過程中會表現出一定的復雜性,但是與攻擊手段相比,顯然還存在一定的差距。函數編碼雖然可以實現對數據原有編碼的替換,增加編碼破譯的難度,但是在系統設計編碼字符防范的過程中,依然要注意加強編碼函數的復雜性,從而增加攻擊者入侵的難度[6]。
2.4 建立SQL數據庫注入防范系統,確保對接受信息的準確判斷
為了加強對SQL數據庫的保護,可以選擇在客戶端與服務端中間部位設置一個區別于一般防范系統的數據庫注入防范系統,即SQL數據庫注入防范系統是獨立于服務器系統本身的特殊系統。SQL數據庫注入防范系統的設置目標主要是了抵制病毒的二次入侵,在數據完成傳輸之前將其分解。
一般情況下,網絡系統在完成數據傳輸的過程中需要遵循一般的HTTP協議,協議內設置了基本的數據傳輸請求的格式以及服務器發生響應的對應標準,即只有在符合HTTP協議的基礎上,網絡系統才會完成傳輸工作。SQL數據庫注入防范系統的功能主要為了分析從客戶端傳入的信息規范性,將HTTP協議內的傳輸報告內容承包,并加以分析和處理,從而保證系統響應的安全性。
在實現數據傳輸的過程SQL數據庫注入防范系統中包含了解析系統、解碼器和語句判斷系統,即首先接受到客戶端傳入的信息請求,將這些信息送入解析系統分析,解析系統主要是對信息的深層分析,從而得到用戶的輸入部分。在得到用戶輸入信息以后,將其輸送到解碼器內,解碼器的功能主要是實現不同編碼字符的統一轉化,即使得輸入信息轉化成統一的語句,也可以稱之為標準語句,這些標準語句的轉化一般可以與客戶輸入信息保持一致[7]。
將標準語句送入到判斷系統執行語句的判斷,在判斷系統沒有顯示異常時,可以將其運輸到Java Web應用服務器中運行。當判斷系統出現異常提醒時,說明語句信息存在問題,此時需要及時的抵制,避免其進入到Java Web應用服務器內部。由此可見,SQL數據庫注入防范系統可以實現對用戶輸入信息的精準判斷,從而進一步提升數據庫安全,防止SQL數據庫注入攻擊。
綜上所述,通過分析SQL數據庫注入攻擊的基本特點以及SQL數據庫被攻擊以后對數據信息形成的威脅,說明了加強Java Web應用程序的防御功能的必要性。SQL數據庫的安全與廣大網民信息安全密切相關,因此要提高數據的安全性,加強客戶端與服務端的共同檢測,完善SQL數據庫注入防范系統,同時還要加大編碼字符防范的復雜性,從而減少SQL數據庫的注入漏洞。
[1]吳為團,鄭海燕,張銳麗.基于Web應用程序的SQL注入攻擊和防范[A].中國通信學會、江西省通信管理局.第十一屆中國通信學會學術年會論文集[C].中國通信學會、江西省通信管理局,2015.
[2]張卓.SQL注入攻擊技術及防范措施研究[D].上海交通大學,2007.
[3]王劍.基于S2S框架的防汛應急預警系統設計與實現[D].華中科技大學,2013.
[4]隋亮.基于滲透測試的SQL注入漏洞檢測與防范[D].東華大學,2014.
[5]趙陽.基于SQL注入的數據安全測評技術研究[D].沈陽工業大學,2012.
[6]楊櫻.Web安全與入侵檢測技術的研究[D].河南理工大學,2009.
[7]盧俊.SQL注入與XSS攻擊防范方法的研究以及防范模型的設計與實現[D].北京郵電大學,2011.