數(shù)據(jù)安全治理關鍵技術之數(shù)據(jù)庫脫敏技術詳解
數(shù)據(jù)安全治理之API監(jiān)測系統(tǒng) ,解決API接口安全問題【安華金和】
新一代數(shù)據(jù)庫脫敏技術,為敏感數(shù)據(jù)建立保護盾!
數(shù)據(jù)庫脫敏系統(tǒng)與金融行業(yè)案例解讀
數(shù)據(jù)安全治理建設思路的著力點——數(shù)據(jù)安全咨詢服務【安華金和】
數(shù)據(jù)庫防火墻功能有哪些?-數(shù)據(jù)安全-安華金和
數(shù)據(jù)安全關鍵技術之數(shù)據(jù)庫脫敏技術詳解【安華金和】
SQL語法特征技術在數(shù)據(jù)庫安全產品的應用中非常關鍵,比如數(shù)據(jù)庫防火墻(DBFirewall)需要有效撲獲SQL語句的特征,以及為了快速地對SQL語句進行策略判定,以實現(xiàn)數(shù)據(jù)庫防火墻的高效處理,通過SQL語法特征技術的引入能夠實現(xiàn)對SQL語句的重寫。
SQL語句重寫是指在不改變原語義的情況下,對數(shù)據(jù)庫防火墻捕捉到的SQL語句進行重寫,替換原語句中的參數(shù)值。
SQL重寫能夠提高管理效率和操作速度,它是一個抽象的過程,SQL重寫包括以下幾個方面:
1.除了單雙引號內的內容,小寫字母全部變?yōu)榇髮懽帜福?/p>
2.準確區(qū)分正負號和加減號;
3.將SQL語句中的數(shù)值、單引號引起的字符串各自重寫為統(tǒng)一的占位符;
4.將注釋、換行重寫為空格,將連續(xù)的空格合并為1個,去掉運算符兩端等不影響語義的空格
以如下SQL語句為例:
Select +0.25 * money,sum(id) From “testdb”.accounts
Where id = ' G1792 ' or name !=‘’/*this message come from Lisa*/
XSeure-DBF在SQL重寫的基礎上,根據(jù)SQL語法,對SQL進行了多級分類。SQL多級分類是將具有相同操作行為的不同語句合并為一類,為SQL信息的查看和策略的定制提供了便利,且SQL分類編碼操作后,易于后續(xù)的計算、操作和存儲。
SQL分類主要分為三級,分類的方向由細到粗,即二級分類是在一級分類的基礎上進行的,三級分類是在二級的基礎上進行的。
一級分類
基于目前的SQL重寫,即替換所有的可變“參數(shù)”數(shù)據(jù)為固定的“參數(shù)(例如,#)”,并且將所有謂詞全部大寫化(格式化為大寫字母)等。也就是說,一級分類的輸出是經過“重寫”后的SQL語句。
二級分類
在一級分類的基礎上,對所有的謂詞、函數(shù)、比較運算符進行編碼后,生成摘要的字符串編碼,該編碼就是SQL的二級分類碼。
三級分類
在二級分類的基礎上,對所有的謂詞比較運算符進行編碼后,生成的摘要字符串編碼,該編碼就是SQL三級分類碼。
根據(jù)SQL分類的原則,假如有如下SQL語句:
1:SELECT salary*1.5 FROM employees WHERE job_id ='PU_CLERK';
2:SELECT salary*2 FROM employees WHERE job_id='SA_MAN';
3:SELECT employee_id FROM department WHERE department_name = 'HR';
4:SELECT department_id FROM employees WHERE salary <5000;
5:SELECT sum(salary) FROM employees WHERE job_id ='PU_CLERK';
6:SELECT max(salary) FROM employees WHERE job_id='PU_CLERK';
那么按照分類碼,DBFirewall看到的分析SQL,由三級到一級如下呈現(xiàn):
SELECT FROM WHERE =
SELECT FROM WHERE =
SELECT SALARY*0 FROM EMPLOYEES WHERE JOB_ID='#'
SELECT EMPLOYEE_ID FROM DEPARTMENT WHERE DEPARTMENT_NAME='#'
SELECT SUM FROM WHERE =
SELECT SUM(SALARY) FROM EMPLOYEES WHERE JOB_ID='#‘
SELECT MIN FROM WHERE =
SELECT MIN(SALARY) FROM EMPLOYEES WHERE JOB_ID='#‘
SELECT DEPARTMENT_ID FROM EMPLOYEES WHERE SALARY<0
SELECT MIN FROM WHERE <
SELECT DEPARTMENT_ID FROM EMPLOYEES WHERE SALARY<0
SQL語句格式化重寫后的結果為:
SELECT 0*MONEY,SUM(ID) FROM “testdb”.ACCOUNTS WHERE ID=’#’ OR NAME!=’’
SQL語法特征技術是數(shù)據(jù)庫通訊協(xié)議解析能力的一個關鍵技術點,這個專利性的技術已經被行業(yè)領先的數(shù)據(jù)庫安全廠商所掌握,將這項技術應用到數(shù)據(jù)庫防火墻產品中,能夠有效提高SQL解析能力,實現(xiàn)更為精準的危險語句攔截,提高數(shù)據(jù)庫安全性能。