少妇尝试黑人粗吊受不了,久久精品免费久精品蜜桃,男受被做哭激烈娇喘gv视频,扒开女人狂c操

?
內(nèi)容中心
按關(guān)鍵字查找
數(shù)據(jù)庫安全審計常見8種缺陷
作者:劉曉韜 發(fā)布時間:2016-08-16

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

當前在市面上存在著幾十種數(shù)據(jù)庫審計產(chǎn)品,這些產(chǎn)品集中起來大約可分四種類型:

(1)在網(wǎng)絡(luò)審計產(chǎn)品的基礎(chǔ)上經(jīng)過簡單包裝推出數(shù)據(jù)庫審計產(chǎn)品的既有網(wǎng)絡(luò)審計產(chǎn)品廠商,比如國內(nèi)幾大安全廠商推出的數(shù)據(jù)庫審計產(chǎn)品,安全圈都知道,不再例舉;

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

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

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

隨著國產(chǎn)化采購政策的推動,處于安全性的考慮,國外數(shù)據(jù)庫審計產(chǎn)品,不在本文的評論范圍內(nèi)。筆者將重點對國內(nèi)數(shù)據(jù)庫審計產(chǎn)品常見缺陷進行分析。以下分門別類,針對最常見的8類數(shù)據(jù)庫安全審計產(chǎn)品缺陷展開講解。

長SQL語句漏審

大多數(shù)的SQL語句都在1K以里長度,市面上的數(shù)據(jù)庫審計產(chǎn)品大多都能準確記錄下,也能實現(xiàn)正常的解析;但在SQL語句超過1.5K時,很多的數(shù)據(jù)庫審計產(chǎn)品就會發(fā)生漏審,或者只能審計下部分SQL語句。

一般Oracle一個通訊包的長度在2K,單一包內(nèi)能夠容納的語句長度大約在1.4K多一點(大約為1460);超過這個大小的SQL語句一般會拆分成多包;在Oracle 11g下通常通訊包為2K,最大可以達到8K;對于Oracle數(shù)據(jù)庫沒有明確說明可兼容的SQL語句的長度,有的說32K或64K是個臨界點,但筆者也曾作過嘗試2M做的SQL語句也能發(fā)送并被Oracle正常解析。

對于一些數(shù)據(jù)庫審計產(chǎn)品,由于沒有將多個SQL通訊包進行有效解析和關(guān)聯(lián),在發(fā)生長SQL語句時會發(fā)生無法解析或解析不全的情況;具體表現(xiàn)是,對于長SQL語句并未記錄,或僅記錄了前半部分。

這種情況的危害是,對于有些業(yè)務(wù)系統(tǒng)中自身就包含長SQL語句,比如經(jīng)分系統(tǒng),報表系統(tǒng),這些SQL語句會被漏記;同時,一些黑客或攻擊人員會利用這樣的一些漏洞,進行數(shù)據(jù)庫攻擊而不留下痕跡。比如,若某個數(shù)據(jù)庫審計產(chǎn)品,是基于單包解析機制進行的,則對于超過1.5K的SQL語句無法記錄或僅記錄了前1.5K,則攻擊者可以首先加入1.5K長的注釋,然后再寫語句,這樣會發(fā)生漏審或被審計下來的信息無效。

多語句無法有效分割

多語句是SQL Server上的一個特定情況。在其它的數(shù)據(jù)庫管理系統(tǒng)中,語句之間都有明確的分割標識;而在SQL Serve中語句之間可以沒有明確的分隔符。下面是一個示例:

use opencms SET NOCOUNT ON select * from opencms.opencms.CMS_LOG where 1=1 or ‘a(chǎn)’ =’b’ select * from opencms.opencms.CMS_HISTORY_PROJECTS where 1=1

在這些語句之間沒有類似于 ;號這樣的明確分隔標識符;它們實際代表了四條語句:

use opencms

SET NOCOUNT ON

select * from opencms.opencms.CMS_LOG where 1=1 or ‘a(chǎn)’ =’b’

select * from opencms.opencms.CMS_HISTORY_PROJECTS where 1=1

SQL Server會將這些語句不加分割地組織在一個數(shù)據(jù)庫通訊包中發(fā)送;對于一些專業(yè)化程度不高的數(shù)據(jù)庫審計產(chǎn)品,會將這些語句作為一條語句審計下來。有效地實現(xiàn)多語句分割,需要非常專業(yè)的SQL解析技術(shù)。一些簡單的方法,比如用select、use 、set這樣的關(guān)鍵字來進行語句分割,稍微復(fù)雜的情況就不好處理了;下面這個示例,就無法用這種簡單的方法處理:

Select * from t1 where t1.col1 = 1 union select * from  t2 where t2.col1 = 1 select * from t2 where t2.col1 = 1

即使采用稍微復(fù)雜一些的技術(shù),比如正則表達式,也很難做到準確切割;非專業(yè)化的數(shù)據(jù)庫審計產(chǎn)品都存在這個缺陷。 對無法準確切割多語句的缺陷,在不同的產(chǎn)品中表現(xiàn)不同,所造成的審計問題也不同,但大體可以總結(jié)為如下幾點:

(1)在審計記錄中,不能準確記錄下每條語句的SQL操作類型,從而造成一些高危操作不能有效地被識別或告警,比如drop、truncate這些語句。

(2)在審計記錄中,不能準確記錄下每條SQL語句的數(shù)據(jù)庫對象,從而造成對敏感對象的訪問不能有效地被識別或告警。

(3)在審計記錄中,不能準確地記錄每條語句是否執(zhí)行成功;比如多條語句中第一條語句執(zhí)行成功,后面的語句執(zhí)行失敗了,往往會被整體記錄為一個結(jié)果,往往記錄的結(jié)果是成功。

(4)在審計記錄中,不能準確地反饋出每條語句造成的影響行數(shù),從而也無法觸發(fā)基于影響行的安全策略;往往記錄下來的都是第一條語句的影響行,其余語句的影響行都被忽略掉了。

數(shù)據(jù)庫對象解析錯誤

數(shù)據(jù)庫審計產(chǎn)品中一個重要需求是要有效記錄下來SQL語句的操作類型、訪問對象;根據(jù)這些操作類型和訪問對象,審計產(chǎn)品可以有效地制訂告警策略,可以有效地根據(jù)操作類型、訪問對象進行事后的追蹤與檢索。我國相關(guān)部門的數(shù)據(jù)庫審計產(chǎn)品標準中要求:應(yīng)對數(shù)據(jù)庫網(wǎng)絡(luò)訪問對象的名稱進行準確審計,包括數(shù)據(jù)庫服務(wù)器名稱、IP名稱、數(shù)據(jù)庫名稱、表、視圖、序列、包、存儲過程、函數(shù)、庫、索引和觸發(fā)器等。

目前國內(nèi)大多數(shù)數(shù)據(jù)庫審計產(chǎn)品都會宣稱支持對SQL語句操作類型和訪問對象的審計支持;但事實上,很多審計產(chǎn)品的支持能力有限,往往只能支持一些簡單語句的解析,比如這樣的語句:

Select * from tbl1 where col1 > ’1’;

但筆者曾經(jīng)見過一家大型的信息安全廠商的產(chǎn)品,僅僅是在表名前增加一個schema名稱,就發(fā)生了令人震驚的錯誤;這個產(chǎn)品居然將schema名稱審計為了表名。如上面這條語句改為;

Select * from user1.tbl1 where col1 > ‘1’;

這種數(shù)據(jù)庫審計產(chǎn)品就會將user1記錄為表名。

事實上,上面被誤報的例子,是一個非常簡單的例子,大多數(shù)專業(yè)的數(shù)據(jù)庫審計產(chǎn)品都不會犯這樣的錯誤。事實上,真正的挑戰(zhàn)要比上面的例子復(fù)雜很多。

參數(shù)審計錯誤

參數(shù)綁定是數(shù)據(jù)庫編程中常用的一種方法,通過這種方法,數(shù)據(jù)庫系統(tǒng)可以減少編譯次數(shù),快速執(zhí)行,提升效率;但這種編程方法將對數(shù)據(jù)庫的審計帶來挑戰(zhàn),在筆者所見到的若干數(shù)據(jù)庫審計產(chǎn)品中,在這種情況下都出了不少的錯誤。有的是漏審了語句,有的是記錄下了操作的語句,但將具體執(zhí)行時所使用的參數(shù)記錯了或漏記了。這些缺陷對于審計產(chǎn)品無疑很是致命。

為了詳解這種情況,我們來看一下參數(shù)綁定的基本概念。我們在常規(guī)的圖形化或命令行工具中,往往都是直接寫上SQL語句,比如:

Select * from person_info where id=’12XXXXX6722’;

在這里查詢條件是身份證號碼。根據(jù)身份證號碼查詢個人信息,是一種常用功能,也是會重復(fù)使用的語句,為了提升效率,編程中可以這么寫:

String sql1=’Select * from person_info where id=?;’

PreparedStatement pStmt = testConn.getConnection().prepareStatement(sql);

pStmt.setInt(1, ’12XXXXX6722’);

pStmt.execute();

下一次再使用時,就不用再發(fā)送語句了,可以直接發(fā)送:

pStmt.setInt(1, ’22XXXXX5399’);

pStmt.execute();

對于數(shù)據(jù)庫審計系統(tǒng)而言,單純地記錄下來‘Select * from person_info where id=?’是存在缺陷的,因為你無法明確額操作人員到底訪問了哪個用戶的信息,必須明確下來具體的參數(shù)才行。

這就要求將設(shè)定的參數(shù),與Prepare的語句有效的關(guān)聯(lián),形成可視化的審計記錄展現(xiàn):

Select * from person_info where id=’12XXXXX6722’;

Select * from person_info where id=’22XXXXX5399’;

這實際上要求審計系統(tǒng)比起單純的記錄語句要完成更多的工作;其中一個重要任務(wù)的就是句柄追蹤,本質(zhì)上SQL語句的執(zhí)行過程追蹤就是句柄追蹤過程。在上面顯示的例子中,pStmt.execute(),在通訊過程中并不發(fā)送具體的語句,而僅是告知服務(wù)器要執(zhí)行哪個語句句柄,服務(wù)器端會根據(jù)內(nèi)部記錄的句柄所對應(yīng)的已經(jīng)編譯完成的SQL語句的執(zhí)行計劃,進行語句執(zhí)行。數(shù)據(jù)庫審計要完成相應(yīng)的工作,需要執(zhí)行類似的過程,在系統(tǒng)的內(nèi)部也維護這樣的映射關(guān)系;同時由于大多數(shù)數(shù)據(jù)庫的句柄,是在會話級的,句柄是可重用的,因此在數(shù)據(jù)庫審計中還要有效地維護句柄與session的關(guān)聯(lián),以及句柄的消亡。

在句柄維護之外,另一個有挑戰(zhàn)的工作就是參數(shù)的還原。參數(shù)的還原,首要的是要明確參數(shù)所對應(yīng)的句柄;在調(diào)用pStmt.setInt(1, ’22XXXXX5399’)時,在網(wǎng)絡(luò)中發(fā)送的包,會標明這個參數(shù)是針對哪個句柄的,是針對第幾個參數(shù)的。作為數(shù)據(jù)庫審計產(chǎn)品,需要將參數(shù)與語句進行映射;更重要地要準確地填回參數(shù)所在的位置,上面這個例子由于只有一個參數(shù),沒有什么挑戰(zhàn)性,參數(shù)的綁定情況遠比這個復(fù)雜。

除了以上列舉的4個常見缺陷,在實際情況下還有一些常見的缺陷:

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

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

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

市場上的數(shù)據(jù)庫審計產(chǎn)品大多數(shù)都宣傳支持三層關(guān)聯(lián)審計,實現(xiàn)SQL語句與業(yè)務(wù)用戶的關(guān)聯(lián)。這種基于三層關(guān)聯(lián)審計的技術(shù),是通過http協(xié)議中的參數(shù)與SQL語句中的參數(shù)的匹配,以及時間的匹配來完成的,屬于模糊匹配。這種方法在http參數(shù)經(jīng)過加工后或基于邏輯判斷后再發(fā)出SQL語句,也即SQL語句的參數(shù)與http參數(shù)沒有直接的匹配關(guān)系時將完全失效;在高并發(fā)時更是一個災(zāi)難。這種方法的準確率往往很難超過80%。

不夠?qū)I(yè)化的審計界面

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

過度冗余的審計信息存儲

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

作為國內(nèi)專業(yè)的數(shù)據(jù)庫安全廠商,安華金和數(shù)據(jù)庫審計產(chǎn)品(DBAudit)可以有效避免以上8類缺陷常見缺陷。

?
日韩欧美一区二区三区电影| 丰腴饱满的极品熟妇| 欧美国产日韩综合另类丝袜| 亚洲 欧美日韩 国产综合| 美女让我捅阴道网站国产| 国产a久久久久久久久久| 国产精品久免费的黄网站| 嗯嗯嗯啊啊啊不要啊视频| 东北老女人做爰高潮视频| 粗大的内捧猛烈进出a片男男| 三级片视频在线| 亚洲人 女同志区二区三| 日本黄页小视频| 鲁啊鲁视频在线观看免费| 干骚逼的视频免费看看呗| 单身女老师美国在线观看| 国产免费视频青女在线观看| 初爱视频教程| 亚洲国产区男人本色vr| 少妇无码一区二区三区| 午夜激情在线观看亚洲y| 亚洲中文字幕在线观看| 免费一级特黄3大片视频| 欧美理论高清理论在线看| 真实国产乱子伦xxxx| 国产α片亚洲免费在线看| 国产精彩视频一区二区三区| 欧美 日韩 在线 综合| 欧美九一精品久久久熟妇| 尹人大香蕉性爱| 精品熟女少妇av免费看| 三级网站网址久久久久久| 网络福利800谷露影院| 99亚洲精品久久久蜜桃网| 亚洲精品欧美白浆久久久| 99久久久无码国产麻豆| 欧洲黑人巨大视频在线观看| 国产伦一区二区三区视频| 日韩成人精品一区二区三区| se屄屄屄AV| 再深点灬舒服灬太大了公|