數(shù)據(jù)安全治理關(guān)鍵技術(shù)之?dāng)?shù)據(jù)庫(kù)脫敏技術(shù)詳解
數(shù)據(jù)安全治理之API監(jiān)測(cè)系統(tǒng) ,解決API接口安全問(wèn)題【安華金和】
新一代數(shù)據(jù)庫(kù)脫敏技術(shù),為敏感數(shù)據(jù)建立保護(hù)盾!
數(shù)據(jù)庫(kù)脫敏系統(tǒng)與金融行業(yè)案例解讀
數(shù)據(jù)安全治理建設(shè)思路的著力點(diǎn)——數(shù)據(jù)安全咨詢服務(wù)【安華金和】
數(shù)據(jù)庫(kù)防火墻功能有哪些?-數(shù)據(jù)安全-安華金和
數(shù)據(jù)安全關(guān)鍵技術(shù)之?dāng)?shù)據(jù)庫(kù)脫敏技術(shù)詳解【安華金和】
中國(guó)數(shù)據(jù)安全治理落地指導(dǎo)書(shū)籍《數(shù)據(jù)安全治理白皮書(shū)5.0》正式發(fā)布(附下載)
摘要:本文將通過(guò)對(duì)SQL注入攻擊技術(shù)和數(shù)據(jù)庫(kù)加密技術(shù)原理以及防護(hù)效果進(jìn)行深入的分析,來(lái)辨析數(shù)據(jù)庫(kù)安全技術(shù)誤區(qū)“數(shù)據(jù)庫(kù)加密能解決SQL注入”,同時(shí)本文也給出了SQL注入的防護(hù)方法。
針對(duì)2015年4月互聯(lián)網(wǎng)大規(guī)模報(bào)道的全國(guó)30省市社保等行業(yè)用戶信息泄露事件,安華金和對(duì)烏云歷史報(bào)道的社保行業(yè)相關(guān)漏洞進(jìn)行集中分析,得出的結(jié)
論為:大量的信息泄露主要是由于軟件中存在的SQL注入漏洞被黑客利用引起的,我們可以把SQL注入比作黑客攻擊數(shù)據(jù)庫(kù)“鋒利的矛”。
有了攻擊用的矛,我們?cè)賮?lái)看防守用的盾:數(shù)據(jù)庫(kù)加密技術(shù)真正實(shí)現(xiàn)了敏感數(shù)據(jù)的加密存儲(chǔ),采用國(guó)內(nèi)外主流的加密算法,確保加密后的數(shù)據(jù)通過(guò)非正常手段獲取后
十年內(nèi)難以非法破解,同時(shí)通過(guò)獨(dú)立權(quán)控、應(yīng)用綁定,防止繞過(guò)合法應(yīng)用程序的數(shù)據(jù)庫(kù)訪問(wèn)和對(duì)內(nèi)部高權(quán)限人員的運(yùn)維操作管控,號(hào)稱(chēng)數(shù)據(jù)庫(kù)安全中的王冠,我們可
以把數(shù)據(jù)庫(kù)加密技術(shù)比作數(shù)據(jù)安全防護(hù)措施中“堅(jiān)固的盾”。
《韓非子?難一》所述的故事中提到:“以子之矛,陷子之盾,何如?”雖然這是個(gè)眾人皆知的故事,但是現(xiàn)實(shí)版的“矛與盾”的故事又發(fā)生在大學(xué)教材《信息系統(tǒng)安全概論》中,下面我們先引用教材中的原文:
對(duì)于安全管理員來(lái)說(shuō),是否可以通過(guò)數(shù)據(jù)庫(kù)加密來(lái)防止SQL注入呢?在詳細(xì)解釋兩種攻防技術(shù)前,我們對(duì)一個(gè)誤區(qū)給予糾正:數(shù)據(jù)庫(kù)加密技術(shù)無(wú)法抵御SQL注入。原因是數(shù)據(jù)庫(kù)加密解決信用卡信息存儲(chǔ)安全等問(wèn)題,而SQL注入是利用應(yīng)用的弱點(diǎn)竊取數(shù)據(jù),由于合法應(yīng)用肯定能看到明文的信息卡數(shù)據(jù),因此加密防守?zé)o效。
那SQL注入如何正確防護(hù)呢?下面我們先了解下SQL注入攻擊的原理。
對(duì)于安全管理員來(lái)說(shuō)這也是必要的,因?yàn)椴粌H要了解防護(hù)的手段,同時(shí)也應(yīng)該深入了解SQL注入的原理,實(shí)現(xiàn)有針對(duì)性的安全防護(hù)。
SQL注入數(shù)據(jù)庫(kù)攻擊指構(gòu)建特殊的輸入作為參數(shù)傳入Web應(yīng)用程序,比如通過(guò)提交表單的文本框輸入,而這些輸入大都是SQL語(yǔ)法里的一些組合,通過(guò)執(zhí)行SQL語(yǔ)句進(jìn)而執(zhí)行攻擊者所要的操作,其主要原因是程序沒(méi)有細(xì)致地過(guò)濾用戶輸入的數(shù)據(jù),致使非法數(shù)據(jù)侵入系統(tǒng)。
常見(jiàn)的SQL注入案例有兩種情況,一種是偽裝登錄應(yīng)用系統(tǒng),另一種是在有登錄賬號(hào)的情況下,在應(yīng)用系統(tǒng)后續(xù)的提交表單的文本框中找到SQL注入點(diǎn),然后利用注入點(diǎn)批量竊取數(shù)據(jù)。如下兩圖的輸入:
SQL注入的典型場(chǎng)景一,通過(guò)偽裝登錄竊取數(shù)據(jù),主要是通過(guò)or運(yùn)算符。
竊取數(shù)據(jù)
假設(shè)后臺(tái)的拼接語(yǔ)句為select * from table where column1=‘ 文本框輸入值’ ;
Eg1: 如輸入值為《abc ’ or ‘1’=‘1》, 則語(yǔ)句拼接為 select *…where column1=‘a(chǎn)bc’ or ‘1’=‘1’;由于’1’=‘1’是恒真,則該可以看到了整表的全部數(shù)據(jù)。
騙取登錄
一般系統(tǒng)的登錄需要輸入用戶名、密碼;后臺(tái)拼接的語(yǔ)句為select * from t where name=‘用戶名’ and pwd=md5(‘密碼’);
Eg1: 如輸入用戶名《abc ’ or 1=1 or 1=‘ def》,密碼《abcd》則語(yǔ)句拼接為:
select …where name=‘a(chǎn)bc’ or 1=1 or 1=‘def’ and pwd = md5(‘a(chǎn)bcd’); 由于1=1是恒真,則該語(yǔ)句永遠(yuǎn)為真,可以成功登錄了。
SQL 注入典型場(chǎng)景二,探測(cè)(通過(guò)and 運(yùn)算)。
探測(cè)系統(tǒng)變量
… and user>0
我們知道,user是SQLServer的一個(gè)內(nèi)置變量,它的值是當(dāng)前連接的用戶名,類(lèi)型為nvarchar。拿一個(gè) nvarchar的值跟int的數(shù)0比較,系統(tǒng)會(huì)先試圖將nvarchar的值轉(zhuǎn)成int型,當(dāng)然,轉(zhuǎn)的過(guò)程中肯定會(huì)出錯(cuò),SQLServer的出錯(cuò)提示 是:將nvarchar轉(zhuǎn)換int異常,XXXX不能轉(zhuǎn)換成int。
探測(cè)系統(tǒng)對(duì)象名
先猜表名
… and (Select count(*) from 表名)<>0
猜列名
… and (Select count(列名) from 表名)<>0
面臨風(fēng)險(xiǎn) | 應(yīng)對(duì)策略 |
數(shù)據(jù)庫(kù)文件采用明文存儲(chǔ) | 以列為單位有選擇的進(jìn)行加密,將信用卡信息表中的姓名、身份證、信用卡等敏感信息加密存儲(chǔ)。 |
面臨風(fēng)險(xiǎn) | 應(yīng)對(duì)策略 |
數(shù)據(jù)庫(kù)正常運(yùn)維操作和敏感數(shù)據(jù)訪問(wèn)操作從權(quán)限上無(wú)法分開(kāi)。 | 通過(guò)獨(dú)立權(quán)控體系;通過(guò)三權(quán)分立的方式提升安全性;避免數(shù)據(jù)庫(kù)維護(hù)人員直接接觸明文數(shù)據(jù) |
面臨風(fēng)險(xiǎn) | 應(yīng)對(duì)策略 |
繞過(guò)應(yīng)用服務(wù)器的訪問(wèn)。 | 通過(guò)客戶端權(quán)限區(qū)分合法訪問(wèn)源,可對(duì)訪問(wèn)源的IP,訪問(wèn)時(shí)間進(jìn)行鑒別,只有通過(guò)合法訪問(wèn)源才可以訪問(wèn)到數(shù)據(jù)。 |
面臨風(fēng)險(xiǎn) | 應(yīng)對(duì)策略 |
繞過(guò)應(yīng)用程序的訪問(wèn)。 | 通過(guò)應(yīng)用綁定技術(shù)實(shí)現(xiàn)應(yīng)用身份鑒別。 |
面臨風(fēng)險(xiǎn) | 應(yīng)對(duì)策略 |
數(shù)據(jù)庫(kù)備份明文存儲(chǔ)。 | 對(duì)數(shù)據(jù)庫(kù)文件底層直接加密,數(shù)據(jù)庫(kù)備份文件導(dǎo)出后內(nèi)容仍為密文,備份文件還原后仍為密文。 |
數(shù)據(jù)庫(kù)加密防護(hù)總結(jié):
卡爾的SQL注入攻擊就是利用合法應(yīng)用的弱點(diǎn)獲取信息卡資料的,即使數(shù)據(jù)庫(kù)信用卡信息加密了,從存儲(chǔ)文件上看是密文,但是對(duì)于合法應(yīng)用發(fā)過(guò)來(lái)的查詢語(yǔ)句,數(shù)據(jù)庫(kù)也必然解密后將明文數(shù)據(jù)發(fā)回web應(yīng)用系統(tǒng)。
數(shù)據(jù)庫(kù)安全專(zhuān)家安華金和建議通過(guò)WAF和數(shù)據(jù)庫(kù)防火墻相結(jié)合來(lái)實(shí)現(xiàn)SQL注入的有效防護(hù)。WAF通過(guò)黑名單機(jī)制針對(duì)有SQL注入特征的表單內(nèi)容進(jìn)行 攔截,數(shù)據(jù)庫(kù)防火墻通過(guò)構(gòu)建合法應(yīng)用的行為模型和SQL注入特征庫(kù)實(shí)現(xiàn)SQL注入行為的有效攔截,同時(shí)還能夠?qū)\(yùn)維終端的惡意操作進(jìn)行攔截。
試用申請(qǐng)
在線咨詢
咨詢電話
TOP