數(shù)據(jù)庫(kù)審計(jì)在代碼安全檢查中有哪些應(yīng)用呢?
今天我們來探討下數(shù)據(jù)庫(kù)審計(jì)在代碼安全檢查中有哪些應(yīng)用?文章今天就為大家解決這個(gè)問題!
問題
代碼安全是眾多安全問題的根源。不安全的代碼,往往能夠被攻擊者利用,從而竊取用戶隱私甚至協(xié)助攻擊者盜取商業(yè)機(jī)密。正因?yàn)槿绱,越來越多的公司在產(chǎn)品研發(fā)階段引入了代碼安全檢查。常見的代碼安全檢查方法包括:人工遍歷和靜態(tài)工具掃描。但無論哪一種,都存在一定的弊端,特別是無法回避一個(gè)共同的問題:某些漏洞無法立即驗(yàn)證——前端構(gòu)造的危險(xiǎn)SQL命令是否已經(jīng)在數(shù)據(jù)庫(kù)中執(zhí)行。
思路
本文檔以PHP+MySQL注入攻擊為例,引入數(shù)據(jù)庫(kù)審計(jì)功能,增強(qiáng)代碼安全檢查和漏洞挖掘的效率。在一個(gè)典型的Web安全架構(gòu)中,Web前端都會(huì)與后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行交互。代碼審計(jì)過程中無法發(fā)現(xiàn)的隱蔽問題,在數(shù)據(jù)庫(kù)審計(jì)日志中往往能夠得到體現(xiàn)。
策略
以典型的SQL注入為例,當(dāng)攻擊者訪問PHP注入點(diǎn)時(shí),往往會(huì)通過篡改參數(shù)的方式提交注入命令。如果被攻擊頁面腳本確實(shí)存在漏洞,則非法命令必定會(huì)被帶入SQL語句的執(zhí)行過程。因此,在開啟數(shù)據(jù)庫(kù)審計(jì)功能的情況下,完全可以借助數(shù)據(jù)庫(kù)審計(jì)日志,判斷前端SQL注入是否成功。
實(shí)現(xiàn)
下圖是一個(gè)典型的PHP + MySQL注入點(diǎn)。前端Web頁面存在SQL注入漏洞,導(dǎo)致攻擊者提交的非法表單數(shù)據(jù)被帶入SQL命令。(為方便演示,本頁面回顯了SQL語句。)
若要通過數(shù)據(jù)庫(kù)審計(jì)日志查看SQL命令是否成功執(zhí)行,還需要在執(zhí)行該操作前配置MySQL數(shù)據(jù)庫(kù)審計(jì)功能。方法如下:
編輯MySQL配置文件mysql.ini
設(shè)置log參數(shù)為指定日志文件路徑,log=”E:/mysql.log”
修改完成后,保存配置文件并重新啟動(dòng)MySQL服務(wù)。
再次訪問URL:http://127.0.0.1/sqlinject/sql.php,提交包含非法參數(shù)的SQL注入命令。
數(shù)分鐘后(數(shù)據(jù)庫(kù)寫日志有緩存機(jī)制,不是立即寫入),訪問文件E:\mysql.log?梢郧宄乜吹組ySQL數(shù)據(jù)庫(kù)確實(shí)執(zhí)行了帶有非法參數(shù)的SQL命令,由此可以判斷sql.php的代碼確實(shí)存在SQL注入漏洞。
本次安全代碼檢查的過程如下圖所示,該方法同樣適合于其它類型的Web代碼安全檢查,如:ASP、JSP等;特別是那些前端不顯示
總結(jié)
本文檔為代碼審計(jì)、漏洞挖掘提供了一個(gè)有價(jià)值的參考性的思路。該思路能在一定程度上提高了代碼審計(jì)的效率和精準(zhǔn)度,但也存在一定的弊端,例如:生產(chǎn)系統(tǒng)一般不會(huì)輕易開啟審計(jì)功能,因此該方案無法應(yīng)用到生產(chǎn)環(huán)境。此外,如果網(wǎng)站應(yīng)用較多,測(cè)試過程中產(chǎn)生的數(shù)據(jù)庫(kù)日志量大,對(duì)日志進(jìn)行檢測(cè)和比對(duì)會(huì)產(chǎn)生一定的工作量。盡管如此,該方法仍然不失為有效的安全核查手段,畢竟在SQL日志中發(fā)現(xiàn)惡意數(shù)據(jù)庫(kù)命令,足以說明前端代碼的不安全性!
更多技術(shù)文章請(qǐng)關(guān)注北大青鳥官方網(wǎng)站!
文章由鄭州北大青鳥http://i3061.cn/整理,轉(zhuǎn)載請(qǐng)注明!
本文由站河南北大青鳥校區(qū)整編而成,如需了解更多IT資訊類的文章、新聞、課程和學(xué)習(xí)技巧、就業(yè)案例、招生詳情等問題,可以對(duì)在線咨詢老師進(jìn)行一對(duì)一問答!
推薦資訊
- 一名大學(xué)生體驗(yàn)ACCP課程之后的真... 2012-10-13
- 鄭州計(jì)算機(jī)專業(yè)培訓(xùn)學(xué)校選擇鄭州... 2019-09-09
- 高中畢業(yè)生有什么出路?... 2023-08-17
- 鄭州計(jì)算機(jī)編程學(xué)校排名... 2019-07-04
- 北大青鳥鄭州校區(qū)我只選擇鄭州翔... 2018-11-14
熱點(diǎn)資訊
- 學(xué)習(xí)SQL數(shù)據(jù)庫(kù)有哪些方法?... 2018-09-07
- 河南IT培訓(xùn):SQLSERVER2000T-SQL的... 2018-09-07
- 使用access數(shù)據(jù)庫(kù)有哪些好處呢?... 2018-09-07
- 網(wǎng)站數(shù)據(jù)庫(kù)老是被入侵該怎么辦?... 2018-09-07
- 半小時(shí)讓你快速M(fèi)ySQL 入門... 2018-09-07