數(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ā)布(附下載)
數(shù)據(jù)庫(kù)安全審計(jì)是目前使用最為廣泛的數(shù)據(jù)庫(kù)安全技術(shù),也正因此,用戶對(duì)此項(xiàng)技術(shù)提出了更高的要求。影響審計(jì)結(jié)果準(zhǔn)確性的因素有很多,其中對(duì)參數(shù)化語(yǔ)句的精確審計(jì)是其中一個(gè)難點(diǎn)。
參數(shù)綁定是數(shù)據(jù)庫(kù)編程中常用的一種方法,通過(guò)這種方法,數(shù)據(jù)庫(kù)系統(tǒng)可以減少編譯次數(shù),快速執(zhí)行,提升效率,但在筆者所見(jiàn)到的若干數(shù)據(jù)庫(kù)審計(jì)產(chǎn)品中,在這種情況下都出了不少的錯(cuò)誤。有的是漏審了語(yǔ)句,有的是記錄下了操作的語(yǔ)句,但將具體執(zhí)行時(shí)所使用的參數(shù)記錯(cuò)或漏記了。
為了詳解這種情況,我們來(lái)看一下參數(shù)綁定的基本概念。我們?cè)诔R?guī)的圖形化或命令行工具中,往往都是直接寫(xiě)上SQL語(yǔ)句,比如:
Select * from person_info where id=’12XXXXX6722’;
在這里查詢條件是身份證號(hào)碼。根據(jù)身份證號(hào)碼查詢個(gè)人信息,是一種常用功能,也是會(huì)重復(fù)使用的語(yǔ)句,為了提升效率,編程中可以這么寫(xiě):
String sql1=’Select * from person_info where id=?;’
PreparedStatement pStmt = testConn.getConnection().prepareStatement(sql);
pStmt.setInt(1, ’12XXXXX6722’);
pStmt.execute();
下一次再使用時(shí),就不用再發(fā)送語(yǔ)句了,可以直接發(fā)送:
pStmt.setInt(1, ’22XXXXX5399’);
pStmt.execute();
對(duì)于數(shù)據(jù)庫(kù)審計(jì)系統(tǒng)而言,單純地記錄下來(lái)‘Select * from person_info where id=?’是存在缺陷的,因?yàn)槟銦o(wú)法明確額操作人員到底訪問(wèn)了哪個(gè)用戶的信息,必須明確下來(lái)具體的參數(shù)才行。
這就要求將設(shè)定的參數(shù),與Prepare的語(yǔ)句有效的關(guān)聯(lián),形成可視化的審計(jì)記錄展現(xiàn):
Select * from person_info where id=’12XXXXX6722’;
Select * from person_info where id=’22XXXXX5399’;
這實(shí)際上要求審計(jì)系統(tǒng)比起單純的記錄語(yǔ)句要完成更多的工作;其中一個(gè)重要任務(wù)的就是句柄追蹤,本質(zhì)上SQL語(yǔ)句的執(zhí)行過(guò)程追蹤就是句柄追蹤過(guò)程。在上面顯示的例子中,pStmt.execute(),在通訊過(guò)程中并不發(fā)送具體的語(yǔ)句,而僅是告知服務(wù)器要執(zhí)行哪個(gè)語(yǔ)句句柄,服務(wù)器端會(huì)根據(jù)內(nèi)部記錄的句柄所對(duì)應(yīng)的已經(jīng)編譯完成的SQL語(yǔ)句的執(zhí)行計(jì)劃,進(jìn)行語(yǔ)句執(zhí)行。數(shù)據(jù)庫(kù)審計(jì)要完成相應(yīng)的工作,需要執(zhí)行類似的過(guò)程,在系統(tǒng)的內(nèi)部也維護(hù)這樣的映射關(guān)系;同時(shí)由于大多數(shù)數(shù)據(jù)庫(kù)的句柄,是在會(huì)話級(jí)的,句柄是可重用的,因此在數(shù)據(jù)庫(kù)審計(jì)中還要有效地維護(hù)句柄與session的關(guān)聯(lián),以及句柄的消亡。
在句柄維護(hù)之外,另一個(gè)有挑戰(zhàn)的工作就是參數(shù)的還原。參數(shù)的還原,首要的是要明確參數(shù)所對(duì)應(yīng)的句柄;在調(diào)用pStmt.setInt(1, ’22XXXXX5399’)時(shí),在網(wǎng)絡(luò)中發(fā)送的包,會(huì)標(biāo)明這個(gè)參數(shù)是針對(duì)哪個(gè)句柄的,是針對(duì)第幾個(gè)參數(shù)的。作為數(shù)據(jù)庫(kù)審計(jì)產(chǎn)品,需要將參數(shù)與語(yǔ)句進(jìn)行映射;更重要地要準(zhǔn)確地填回參數(shù)所在的位置。
上面的例子只是為了說(shuō)明概念,舉了最簡(jiǎn)單的示例,實(shí)際情況中參數(shù)的綁定情況遠(yuǎn)比這個(gè)復(fù)雜。我么將在后面的文章中展示相對(duì)復(fù)雜的實(shí)際示例,并詳細(xì)說(shuō)明數(shù)據(jù)庫(kù)安全審計(jì)技術(shù)對(duì)各類參數(shù)化語(yǔ)句的解析原理,能夠更實(shí)際的看到數(shù)據(jù)庫(kù)審計(jì)結(jié)果的準(zhǔn)確度差異。
試用申請(qǐng)
在線咨詢
咨詢電話
TOP