數(shù)據(jù)庫審計(jì)產(chǎn)品常見缺陷(1)-綜述

2014-04-02 11:10:04來源:游俠安全網(wǎng)作者:

隨著信息化的發(fā)展,數(shù)據(jù)庫安全問題成為當(dāng)前政府和企業(yè)用戶關(guān)注的焦點(diǎn),數(shù)據(jù)庫審計(jì)產(chǎn)品成為當(dāng)前信息安全產(chǎn)品的新寵。

隨著信息化的發(fā)展,數(shù)據(jù)庫安全問題成為當(dāng)前政府和企業(yè)用戶關(guān)注的焦點(diǎn),數(shù)據(jù)庫審計(jì)產(chǎn)品成為當(dāng)前信息安全產(chǎn)品的新寵。

當(dāng)前在市面上存在著幾十種數(shù)據(jù)庫審計(jì)產(chǎn)品,這些產(chǎn)品的來源大約有四種類型:

(1)國(guó)內(nèi)原先具有網(wǎng)絡(luò)審計(jì)產(chǎn)品的廠商,在網(wǎng)絡(luò)審計(jì)產(chǎn)品的基礎(chǔ)上經(jīng)過簡(jiǎn)單包裝,推出的數(shù)據(jù)庫審計(jì)產(chǎn)品,比如我國(guó)幾大安全廠商推出的數(shù)據(jù)庫審計(jì)產(chǎn)品;

(2)國(guó)內(nèi)廠商專門針對(duì)數(shù)據(jù)庫通訊協(xié)議的特點(diǎn),開發(fā)出專門的數(shù)據(jù)庫審計(jì)產(chǎn)品,比如安華金和、思福迪、安恒、國(guó)都興業(yè)和帕拉迪等;

(3)國(guó)外的數(shù)據(jù)庫審計(jì)產(chǎn)品,比如Imperva、Guardium等;

(4)OEM第三方的數(shù)據(jù)庫審計(jì)產(chǎn)品,OEM對(duì)象可能是國(guó)內(nèi)的產(chǎn)品,也可能是國(guó)外的產(chǎn)品(比如Imperva或韓國(guó)的DBInsight);

從國(guó)家的安全政策上,國(guó)外的數(shù)據(jù)庫審計(jì)產(chǎn)品或OEM國(guó)外的數(shù)據(jù)庫審計(jì)產(chǎn)品都存在安全隱患,不在本文的評(píng)論范圍內(nèi)。

在這里我們主要分析下國(guó)內(nèi)廠商開發(fā)的數(shù)據(jù)庫審計(jì)產(chǎn)品的常見缺陷,當(dāng)然這些缺陷并不是每種產(chǎn)品都具備,讀者若有興趣且條件方便的話,可以進(jìn)行有針對(duì)性的測(cè)試:

1:長(zhǎng)SQL語句漏審

原因是長(zhǎng)SQL語句(比如超過2K)被分配到了多個(gè)通訊包中,而相關(guān)產(chǎn)品對(duì)跨通訊包的協(xié)議解析并未進(jìn)行精細(xì)化的處理,該錯(cuò)誤會(huì)造成全部或局部漏審,極易被攻擊者利用。

2:多語句無法有效分割;

SQL Server這樣的數(shù)據(jù)庫支持多語句同時(shí)發(fā)送,語句間缺乏明確的分割標(biāo)識(shí);由于大多的數(shù)據(jù)庫審計(jì)產(chǎn)品是基于正則表達(dá)式,無法有效分割SQL語句,造成SQL語句的審計(jì)解析錯(cuò)誤,如無法正確捕獲SQL語句的類型、操作對(duì)象等。

3:復(fù)雜語句對(duì)象解析錯(cuò)誤

SQL語句由于要表達(dá)各種復(fù)雜的檢索條件和統(tǒng)計(jì)分析情況,語法非常復(fù)雜,數(shù)據(jù)庫系統(tǒng)需要借助Yacc&Lex這樣的詞法和語法解析工具進(jìn)行語句解析。

但大多數(shù)數(shù)據(jù)庫審計(jì)產(chǎn)品采用的是正則匹配技術(shù),在語句中具有子查詢、關(guān)聯(lián)查詢等情況時(shí)無法準(zhǔn)確獲得多層對(duì)象,特別是在SQL語句中使用別名的時(shí)候;這些缺陷往往會(huì)造成錯(cuò)誤的數(shù)據(jù)庫對(duì)象記錄。

4:參數(shù)值與SQL語句匹配錯(cuò)誤

為了提升SQL處理的效率,大多數(shù)應(yīng)用軟件會(huì)利用數(shù)據(jù)庫編程的語句預(yù)編譯(Prepare)、參數(shù)綁定(bind)機(jī)制,以實(shí)現(xiàn)高效處理。

這種機(jī)制本質(zhì)上是通過句柄追蹤機(jī)制完成的,大多數(shù)的數(shù)據(jù)庫審計(jì)產(chǎn)品能夠處理簡(jiǎn)單的預(yù)編譯與參數(shù)綁定的情況;但當(dāng)預(yù)編譯與參數(shù)綁定達(dá)到幾十條時(shí),調(diào)用情況稍微復(fù)雜,就發(fā)生了大量的參數(shù)值與語句的錯(cuò)誤搭配,從而造成大量錯(cuò)審。

5:錯(cuò)誤的應(yīng)答結(jié)果,,特別是影響行數(shù)解析不正確

對(duì)于SQL操作是否成功,是數(shù)據(jù)庫審計(jì)的基本需求;對(duì)數(shù)據(jù)庫操作讀取或影響了多少行是用戶的實(shí)際需求。

但SQL操作成功與否的準(zhǔn)確記錄,需要仰仗SQL語句的合理切割和句柄的準(zhǔn)確追蹤及對(duì)返回結(jié)果集的完全解析;大多數(shù)數(shù)據(jù)庫審計(jì)產(chǎn)品在多語句情況,或者通過FETCH操作批量獲取等環(huán)節(jié)下,無法準(zhǔn)確獲得查詢執(zhí)行的正確性以及影響行數(shù)。

6:充滿失真率的應(yīng)用用戶關(guān)聯(lián)

市場(chǎng)上的數(shù)據(jù)庫審計(jì)產(chǎn)品大多數(shù)都宣傳支持三層關(guān)聯(lián)審計(jì),實(shí)現(xiàn)SQL語句與業(yè)務(wù)用戶的關(guān)聯(lián)。這種基于三層關(guān)聯(lián)審計(jì)的技術(shù),是通過http協(xié)議中的參數(shù)與SQL語句中的參數(shù)的匹配,以及時(shí)間的匹配來完成的,屬于模糊匹配。

這種方法在http參數(shù)經(jīng)過加工后或基于邏輯判斷后再發(fā)出SQL語句,也即SQL語句的參數(shù)與http參數(shù)沒有直接的匹配關(guān)系時(shí)將完全失效;在高并發(fā)時(shí)更是一個(gè)災(zāi)難。

這種方法的準(zhǔn)確率往往很難超過80%。

7、未專業(yè)化的審計(jì)界面

這個(gè)問題主要是針對(duì)基于網(wǎng)絡(luò)審計(jì)而發(fā)展來的數(shù)據(jù)庫審計(jì)產(chǎn)品,這種產(chǎn)品由于在設(shè)計(jì)之初就不是專門面向數(shù)據(jù)庫用戶的,因此并未按照數(shù)據(jù)庫的訪問類別、會(huì)話追蹤、數(shù)據(jù)庫對(duì)象層次進(jìn)行界面組織,造成這類產(chǎn)品的界面極其不易使用。

8、過度冗余的審計(jì)信息存儲(chǔ)

很多應(yīng)用系統(tǒng)會(huì)采用動(dòng)態(tài)拼接SQL語句的方式來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的訪問;這會(huì)造成大量SQL語句語法形式相同而僅僅是SQL語句中的參數(shù)值不同的語句。當(dāng)前的很多審計(jì)產(chǎn)品將這些語句進(jìn)行重復(fù)地記錄和存儲(chǔ),造成了審計(jì)效率的低下,存儲(chǔ)設(shè)備的浪費(fèi),并會(huì)對(duì)SQL語句的分析和排查效率造成致命影響。

以上是對(duì)8類問題的簡(jiǎn)單總結(jié),在后續(xù)章節(jié)中將對(duì)每個(gè)問題進(jìn)行展開說明。

說明:本文來自數(shù)據(jù)庫安全廠家“安華金和” 的投稿,獨(dú)發(fā)“游俠安全網(wǎng)”(www.youxia.org),轉(zhuǎn)載請(qǐng)包括本聲明。

贊助商鏈接: