對數據庫通訊協議的解析能力是數據庫安全技術中最為更要和核心的專業能力,是數據庫審計、數據庫防火墻等典型數據庫安全產品的關鍵技術,協議解析結果的全面度和準確度直接影響這類產品的防護效果。數據庫通訊協議即SQL語句,我們可以從審計產品的審計結果中看出其對SQL語句的解析能力,以下幾點可以作為參考指標:
大多數的SQL語句的長度都在1K以下,市面上的數據庫審計產品大多能準實現正常的解析;但當SQL語句長度超過1.5K時,很多的數據庫審計產品就會發生漏審,即直接丟包,不作解析。一些黑客會利用這樣的漏洞發起攻擊,比如,當審計系統對超過1.5K的SQL語句無法記錄解析或僅執行前1.5K部分,那么攻擊者則可以先加入1.5K長的注釋,然后再寫語句,這樣可以完美避過審計系統的監控。對長語句的精確解析技術,決定了對此類攻擊行為的防護效果。
多語句是SQL Server上的一個特定情況。在其它的數據庫管理系統中,語句之間都有明確的分割標識;而在SQL Serve中語句之間可以沒有明確的分隔符。SQL Server會將這些語句不加分割地組織在一個數據庫通訊包中發送;對于一些專業化程度不高的數據庫審計產品,會將這些語句作為一條語句審計下來。有效地實現多語句分割,需要非常專業的SQL解析技術。能夠準確記錄每條語句的SQL操作類型、數據庫對象、是否執行成功、具體的影響行數等。
需要對數據庫訪問對象進行準確解析,包括數據庫服務器名稱、IP名稱、數據庫名稱、表、視圖、序列、包、存儲過程、函數、庫、索引和觸發器等。
對數據庫通訊協議及解析能力,是數據庫安全防護產品的關鍵所在,也是對安全廠商專業度的衡量依據,只有掌握這樣關鍵技術的企業才能提供真正具有是有價值的安全產品。