數據庫安全審計方法
【專利摘要】本發明數據庫安全審計方法,包括以下步驟:數據庫網絡通信數據采集;數據庫網絡通信協議解析;審計規則自學習挖掘;數據庫風險事件入侵檢測;數據庫用戶權限評估;追蹤原始用戶的三層關聯。本發明數據庫安全審計方法,通過對數據庫的實時審計和監控,能夠實現自動化的評估、審計、保護、入侵檢測操作;能夠預防、記錄、追蹤完整的數據庫操作行為,幫助管理員及時發現對數據庫的越權使用、權限濫用、權限盜用等內部安全問題;并且能夠防范SQL注入等外部攻擊。
【專利說明】數據庫安全審計方法
【技術領域】
[0001] 本發明涉及數據庫安全領域,特別涉及一種數據庫安全審計方法。
【背景技術】
[0002] 2009年11月IBM收購數據庫安全軟件Guardium,并在2010年首度發布升級產品 InfoSphereGuardium8。Guardium提供的功能包括數據庫掃描與評估、檢測數據庫事務、 跟蹤用戶活動、監控敏感數據、審計用戶行為、非法訪問自動阻斷、復雜但靈活的審計報表 等功能。
[0003] ImpervaSecureSphere是全球數據安全的領導廠商Imperva推出的數據安全和 法規遵從解決方案。Imperva支持非在線網絡監控、透明的在線保護、基于代理的監控三種 部署方式。提供的主要功能有:1)數據庫評估,檢測數據庫漏洞,并以虛擬方式進行修補。 評估數據庫用戶權限,統計數據庫用戶對數據庫的訪問情況;2)數據庫監控和審計:詳細 記錄審計結果,以及審計系統運行狀態,采用大量的過濾條件提供靈活的審計結果分析報 表;3)數據庫安全報表:提供靈活的模板控制,生成合規性審計報告等。
[0004] DBProtect是ApplicationSecurity公司推出的數據庫安全保護解決方案。 ApplicationSecurity公司建立了龐大的知識庫SHATTER,用于支持數據庫脆弱性檢測和 非法訪問監控。DBProtect能夠自動發現域內的所有數據庫服務器,掃描數據庫漏洞,并通 過最小的訪問權限分析數據庫的用戶權限。以此評估數據庫的安全性。DBProtect通過用 戶定義的策略配置需要監控和審計的數據庫安全規則,分析并生成審計報告。DBProtect 采用Web控制臺對系統進行控制,主要功能有:資產管理,自動掃描域內的數據庫服務器; 脆弱性管理,利用知識庫SHATTER定時掃描數據庫漏洞,并自動發送掃描結果報告;權限管 理,分析數據庫用戶的權限授予情況和特權用戶分布情況等,協助管理員判斷數據庫權限 分配是否安全;審計和風險管理,定制審計策略、報警管理、適時監控、系統設置等;分析和 報告,對審計結果進行分析并提供豐富的選項靈活生成審計報告。
[0005] 國內主要有杭州安恒信息技術有限公司的明御⑩數據庫審計與風險控制系統(簡 稱:DAS-DBAuditor)是安恒信息自主研發的數據庫審計產品。系統提供細粒度的數據庫行 為審計,能夠準確回溯數據庫行為,全方位地控制數據庫業務安全。系統使用旁路監聽的方 式記錄數據庫用戶對數據庫服務器所做的各種操作。通過對操作日志庫的查詢、分析、統 計,實現對目標數據庫系統的用戶操作的監控和審計。系統使用C/S架構,用戶必須通過在 終端安裝客戶端使用系統,使系統的跨平臺、跨地域管理性受到限制。另外,系統只提供內 置的審計報告。
[0006] 北京思福迪(SAFETY)信息技術有限公司的"L0GBASE日志管理綜合審計系統",是 其擁有自主知識產權的國內唯一的數據庫運行安全與合規性管理的整體解決方案。其客戶 包括政府機關、電信運營商、金融機構、安全評測機構等。L0GBASE采用旁路監聽的模式記錄 所有的數據庫行為,并對其進行審計,生成合規性報告。記錄所有的數據庫行為造成巨大的 數據存儲壓力,而且記錄的數量受到存儲設備空間的限制。當存儲空間不足時系統不再記 錄新的數據庫行為成為LOGBASE的硬傷。另外,LOGBASE自行分析各個數據庫協議,尤其對Oracle數據庫的SQL語句中的綁定變量不能很好地支持,也是L0GBASE的一個重大缺陷。
[0007] 此外,還有天融信的網絡衛士數據庫審計系統TopAudit-DBV3. 1,北京安信通的 數據庫審計系統,北京國都興業的數據庫審計系統等,這些產品的功能跟上面介紹的產品 大致相同,在此不再描述。
[0008] 目前對數據庫入侵檢測的研宄主要分為兩類:構建SQL查詢結構輪廓和構建數據 庫用戶行為輪廓。SQL查詢結構的研宄旨在防范來自Web應用程序的SQL注入攻擊。構建 數據庫用戶行為輪廓可以有效地檢測到授權用戶的異常行為。Zhong等人在文獻中提出了 使用查詢模板來挖掘用戶查詢中的頻繁項集。Lee等人在文獻中提出學習正常數據庫事務 訪問模式的指紋,并將其用于識別潛在的入侵。指紋是SQL查詢的結構信息。如果查詢無 法匹配任何現有的指紋庫,則可能是攻擊行為。Barbara等人在文獻中使用隱馬爾科夫模 型(HMM)和時間序列來檢測惡意的數據沖突。將數據的修改描述為一個時間序列,通過訓 練HMM來構建數據庫行為模型,被HMM接受的可能性低的操作為惡意事件。Chung等人在 文獻中使用工作區(working-scope)來發現頻繁項集,頻繁項集是一系列就有特定值的特 征,工作區表現了用戶的行為輪廓,屬性集合與工作區的關聯程度通過距離來衡量。Lee等 人在文獻中提出了對審計數據進行挖掘構建入侵檢測模型的方法,首先通過人為分析選出 核心屬性,挖掘審計數據得到關聯規則和頻繁序列模式,然后使用模式中的核心屬性特征 計算分類器用以識別異常和已知攻擊。Srivastava等人在文獻中基于數據庫表屬性在數據 庫惡意操作檢測中的作用是不同的這一觀點,提出了基于權重的事務規則挖掘,Bertino等 人在文獻中將數據庫基于角色訪問控制的思想用于入侵檢測,使用查詢類型、訪問表數目, 訪問字段數目、訪問表名、訪問字段名等信息來表示一個查詢,通過分類器構建角色信息用 于異常行為檢測。Kamra等人在文獻中對Bertino的方法進行擴展。當數據庫是基于角色 進行訪問控制,則根據角色來構建行為輪廓。如果數據庫采用的是其他訪問控制策略,則直 接對用戶構建行為輪廓。
[0009] 關聯規則挖掘首先由Agrawal等人提出。關聯規則的挖掘可以分為2步:(1)找 出所有滿足最小支持度計數閾值的項集,即頻繁項集;(2)由頻繁項集產生形如的強關聯 規則。這些規則必須同時滿足最小支持度閾值和最小置信度閾值。
[0010] Agrawal等人提出了用于挖掘頻繁項集的Apriori算法,引入了Apriori性質:頻 繁項集的所有非空子集也必須是頻繁的。
[0011] 序列模式挖掘是挖掘頻繁出現的有序事件或子序列,由Agrawal等人基于消費者 的購買序列首先提出,序列模式也成為頻繁序列,Agrawal等人提出了序列模式的兩種算 法:AprioriAll和GSP。Zaki等人提出了基于垂直格式的序列模式挖掘方法SPADE,Han等 人提出了序列模式挖掘的模式增長方法PrefixSpan以及其前驅算法FreeSpan。上述序列 模式挖掘方法都直接或間接地利用了Apriori性質:頻繁序列的每個非空子序列都是必須 是頻繁的。
[0012] 從上面可以看出,現有的數據庫審計系統還存在著一系列的問題:對于國產的數 據庫安全產品,數據庫協議都是通過自行分析獲得,并且由于技術限制,對于某些協議不能 夠很好地解析;系統不提供數據庫漏洞掃描和用戶權限評估的功能,這些功能對于評估數 據庫的安全狀態時非常必要的;對于審計規則,只能通過勾選規則設置,不如以策略組織規 則靈活;LOGBASE記錄全部的數據庫行為,對于只關心滿足審計規則事件的用戶則會造成 很大的數據冗余;用戶無法根據自己的數據庫操作行為有針對性地進行審計、分析,通用的 審計規則導致大量的常規類報警事件,不能發現對數據庫潛在的入侵行為的檢測。
【發明內容】
[0013] 針對現有技術的不足之處,本發明的目的在于提供一種數據庫安全審計方法,以 解決現有技術中無法對數據庫進行權限管理、人工智能審計等問題。
[0014] 為實現上述目的,本發明采用的技術方案是:
[0015] 本發明數據庫安全審計方法包括以下步驟:
[0016] 數據庫網絡通信數據采集;
[0017] 數據庫網絡通信協議解析;
[0018] 審計規則自學習挖掘;
[0019] 數據庫風險事件入侵檢測;
[0020] 數據庫用戶權限評估;
[0021] 追蹤原始用戶的二層關聯。
[0022] 所述數據庫網絡通信數據采集:采用旁路監聽方式捕獲指定網絡中的數據包,進 行IP分片重組和TCP會話重組,過濾掉與數據庫協議流不相關的數據包,提取數據庫協議 流相關的協議包中的數據。
[0023] 所述數據庫網絡通信協議解析:對所述提取協議包中的數據按照數據包類型采用 相應數據庫協議解析模塊還原數據庫用戶的登錄、注銷以及整個會話過程中的SQL請求操 作,對數據庫協議解析到的SQL語句進行詞法、語法分析形成統一格式的審計記錄,儲存至 審計日志庫中。
[0024] 所述審計規則自學習挖掘為基于人工智能算法的審計規則自學習:對所述審計日 志庫中的審計記錄利用關聯規則挖掘算法構建正常行為模式和異常行為模式;然后利用序 列模式挖掘算法構建序列模式,將正常行為模式、異常行為模式和序列模式構建用戶行為 模式庫。
[0025] 所述數據庫風險事件入侵檢測為基于人工智能的數據庫風險事件入侵檢測:利用 所述用戶行為模式庫中的頻繁正常行為模式、頻繁異常行為模式構建關聯規則樹;利用所 述用戶行為模式庫中的頻繁序列模式構建序列規則樹;用戶對數據庫進行操作時,利用所 述關聯規則樹和所述序列規則樹對用戶操作序列進行入侵檢測,并對異常行為進行報警。
[0026] 所述數據庫用戶權限評估為基于人工智能的數據庫用戶權限評估:根據所述審計 日志庫中的審計記錄提取用戶權限信息,利用K-means聚類算法對用戶權限信息構建用戶 權限模式,根據用戶權限模式對數據庫的權限進行數據庫權限合理性評估。
[0027] 所述追蹤原始用戶的三層關聯:從所述審計日志庫中的審計記錄中讀取數據庫操 作請求和http訪問請求并進行數據預處理,對數據預處理后的數據進行關聯規則挖掘,構 建數據庫操作請求和http訪問請求的關聯規則,并將關聯規則存入關聯規則數據庫;將實 時到達的數據庫操請求與關聯規則數據庫中的關聯規則進行匹配,從而獲得發出數據庫操 請求的原始用戶的IP和用戶名。
[0028] 所述的數據庫權限合理性評估包括:
[0029] 用戶權限過大的評估;
[0030] 用戶活動狀態的評估;
[0031] 同一類的用戶的權限差異的評估。
[0032] 與現有技術相比,本發明具有的有益效果是:
[0033] 本發明數據庫安全審計方法,通過對數據庫的實時審計和監控,能夠實現自動化 的評估、審計、保護、入侵檢測操作;能夠預防、記錄、追蹤完整的數據庫操作行為,幫助管理 員及時發現對數據庫的越權使用、權限濫用、權限盜用等內部安全問題;并且能夠防范SQL 注入等外部攻擊。
【具體實施方式】
[0034] 數據庫網絡通信數據采集:采用旁路監聽方式捕獲指定網絡中的數據包,進行IP 分片重組和TCP會話重組,過濾掉與數據庫協議流不相關的數據包,提取數據庫協議流相 關的協議包中的數據。
[0035] 數據庫網絡通信協議解析:對提取協議包中的數據按照數據包類型采用相應數據 庫協議解析模塊還原數據庫用戶的登錄、注銷以及整個會話過程中的SQL請求操作,對數 據庫協議解析到的SQL語句進行詞法、語法分析形成統一格式的審計記錄,儲存至審計日 志庫中。
[0036] 基于人工智能算法的審計規則自學習:對審計日志庫中的審計記錄利用關聯規則 挖掘算法構建正常行為模式和異常行為模式;然后利用序列模式挖掘算法構建序列模式, 將正常行為模式、異常行為模式和序列模式構建用戶行為模式庫。
[0037] 用戶行為模式包括用戶正常行為規則、異常行為規則和正常序列模式,通過關聯 規則算法和序列模式挖掘得到;自定義規則是從數據庫審計系統的前臺進行人工設定。
[0038] 基于人工智能的數據庫風險事件入侵檢測:利用用戶行為模式庫中的頻繁正常行 為模式、頻繁異常行為模式構建關聯規則樹;利用用戶行為模式庫中的頻繁序列模式構建 序列規則樹;用戶對數據庫進行操作時,利用關聯規則樹和序列規則樹對用戶操作序列進 行入侵檢測,并對異常行為進行報警。
[0039] 對于一條實時的訪問記錄,入侵檢測的順序是如果該操作行為屬于某用戶權限模 式且該模式擁有當前操作權限,則判斷當前操作行為為正常行為,否則是可能的異常行為, 需要進行下一步判定,即用戶行為模式判定;如果該實時訪問記錄找到匹配的用戶正常行 為規則或異常行為規則,將其判定為正常行為或異常行為,否則再進行序列模式匹配,匹配 上則是正常行為,不匹配則最后需要跟自定義規則做最后一步的判定。
[0040] 基于人工智能的數據庫用戶權限評估:根據審計日志庫中的審計記錄提取用戶權 限信息,利用κ-means聚類算法對用戶權限信息構建用戶權限模式,根據用戶權限模式對 數據庫的權限進行數據庫權限合理性評估。數據庫權限合理性評估包括:用戶權限過大的 評估、用戶活動狀態的評估和同一類的用戶的權限差異的評估。
[0041] 從數據庫審計系統中的歷史訪問記錄中對用戶進行聚類,并構建出用戶權限模 式,每一類用戶具有相同的權限模式。對于實時訪問行為,獲取用戶名信息、數據庫對象以 及操作類型構成權限信息,掃描用戶權限模式庫,如果在模式庫中沒有找到該用戶名所在 的模式,則該條記錄可能為入侵行為;如果在模式庫中找到有該用戶名的用戶權限模式,判 斷該模式的集合中是否具有操作記錄的權限信息,如果有,則該條實時操作記錄為正常行 為,否則可能為入侵行為。
[0042] 追蹤原始用戶的三層關聯:從審計日志庫中的審計記錄中讀取數據庫操作請求和 http訪問請求并進行數據預處理,對數據預處理后的數據進行關聯規則挖掘,構建數據庫 操作請求和http訪問請求的關聯規則,并將關聯規則存入關聯規則數據庫;將實時到達的 數據庫操請求與關聯規則數據庫中的關聯規則進行匹配,從而獲得發出數據庫操請求的原 始用戶的IP和用戶名。
[0043] 權限評估:根據所述審計日志庫中的審計記錄提取用戶權限信息,利用K-means 聚類算法對用戶權限信息構建用戶權限模式,根據用戶權限模式對數據庫的權限進行數據 庫權限合理性評估。
[0044] 利用聚類算法從歷史審計記錄中構建的用戶權限模式集合UPP,下面利用數據集DBP和UPP對用戶權限設置過大、長時間未活動用戶以及同一類用戶之間權限是否差異過 大三方面的合理性評估方法進行具體描述。
[0045] 用戶過多權限評估,數據庫權限的設置應當遵循最小權限原則,數據庫管理員往 往會因為缺乏應用系統的業務知識對數據庫用戶的最小權限難以把握。獲得數據庫中權限 設置過大的用戶的方法有如下步驟:(1)掃描用戶權限模式庫UPP中的每個用戶U; (2)獲 取用戶U在用戶權限模式中的權限集合UP_PS; (3)再獲取數據庫權限集合DBP中該用戶的 權限集合DB_PS;⑷計算權限集合UP_PS和DB_PS的距離,如果距離大于指定的閾值,則用 戶U為權限設置過大的用戶。其中由于UP_PS是從歷史審計記錄中提取出來的,當歷史審 計記錄足夠多且采集的審計記錄的時間跨度足夠長時,如歷史審計記錄是采集數據庫用戶 U-年的操作行為,那么UP_PS中的權限能夠代表用戶U日常的正常行為操作所允許的所有 權限。
[0046] 未活動用戶評估,在實際應用系統中,用戶的權限信息需要在一定時間內進行更 新。例如對于學生系統,畢業后的學生,系統管理員需要對其權限進行更新,使其不能進行 選課退課等只有在校學生能進行的操作。此外,系統管理員也需對從未活動過的用戶予以 關注。獲得長時間未活動的數據庫用戶的方法如下:(1)遍歷用戶權限模式庫UPP中的每 個用戶U; (2)從歷史審計記錄中找到用戶U最近的一條操作行為R; (3)如果該操作行為R 的執行時間與當前時間的間隔天數超過設定的未活動天數閾值,則將用戶U判定為長時間 未活動的用戶。從未活動的用戶與長時間未活動用戶的區別在于在歷史審計記錄中不存在 從未活動的用戶的操作行為,那么用戶權限模式庫中不存在從未活動過用戶的信息。因此, 獲得從未活動過的用戶的方法較簡單,步驟如下:(1)掃描數據庫權限集合DBP中的每個用 戶U; (2)對用戶權限模式庫UPP進行遍歷,如果UPP中不存在用戶U的信息,則可斷定用戶 U一直處于未活動的狀態。
[0047] 同類用戶權限差異評估,屬于同一個用戶權限模式的數據庫用戶具有相同的操作 行為,在數據庫中設置的權限應該也相差無幾。對于權限設置差異過大的用戶,數據庫系統 管理員需要對其權限進行調整。為獲得同類用戶中權限設置差異較大的用戶的方法步驟如 下:
[0048] (1)遍歷用戶權限模式UPP的每一個模式UP; (2)得到模式UP的所有用戶的集合 US和中心用戶UC; (3)遍歷用戶集合US中的每一個用戶U; (4)從數據庫權限集合DBP中 找到用戶U的權限U_PS以及中心用戶UC的權限UC_PS; (5)計算U_PS和UC_PS之間的差 異度,如果大于指定的用戶權限之間的距離閾值,則判定U與中心用戶UC的用戶權限設置 差異過大。
【權利要求】
1. 數據庫安全審計方法,其特征在于,包括以下步驟: 數據庫網絡通信數據采集; 數據庫網絡通信協議解析; 審計規則自學習挖掘; 數據庫風險事件入侵檢測; 數據庫用戶權限評估; 追蹤原始用戶的三層關聯。
2. 根據權利要求1所述數據庫安全審計系統,其特征在于所述數據庫網絡通信數據采 集:采用旁路監聽方式捕獲指定網絡中的數據包,進行IP分片重組和TCP會話重組,過濾掉 與數據庫協議流不相關的數據包,提取數據庫協議流相關的協議包中的數據。
3. 根據權利要求1所述數據庫安全審計系統,其特征在于所述數據庫網絡通信協議解 析:對所述提取協議包中的數據按照數據包類型采用相應數據庫協議解析模塊還原數據庫 用戶的登錄、注銷以及整個會話過程中的SQL請求操作,對數據庫協議解析到的SQL語句進 行詞法、語法分析形成統一格式的審計記錄,儲存至審計日志庫中。
4. 根據權利要求1所述數據庫安全審計系統,其特征在于所述審計規則自學習挖掘為 基于人工智能算法的審計規則自學習:對所述審計日志庫中的審計記錄利用關聯規則挖掘 算法構建正常行為模式和異常行為模式;然后利用序列模式挖掘算法構建序列模式,將正 常行為模式、異常行為模式和序列模式構建用戶行為模式庫。
5. 根據權利要求1所述數據庫安全審計系統,其特征在于所述數據庫風險事件入侵檢 測為基于人工智能的數據庫風險事件入侵檢測:利用所述用戶行為模式庫中的頻繁正常行 為模式、頻繁異常行為模式構建關聯規則樹;利用所述用戶行為模式庫中的頻繁序列模式 構建序列規則樹;用戶對數據庫進行操作時,利用所述關聯規則樹和所述序列規則樹對用 戶操作序列進行入侵檢測,并對異常行為進行報警。
6. 根據權利要求1所述數據庫安全審計系統,其特征在于所述數據庫用戶權限評估為 基于人工智能的數據庫用戶權限評估:根據所述審計日志庫中的審計記錄提取用戶權限信 息,利用K-means聚類算法對用戶權限信息構建用戶權限模式,根據用戶權限模式對數據 庫的權限進行數據庫權限合理性評估。
7. 根據權利要求1所述數據庫安全審計系統,其特征在于所述追蹤原始用戶的三層關 聯:從所述審計日志庫中的審計記錄中讀取數據庫操作請求和http訪問請求并進行數據 預處理,對數據預處理后的數據進行關聯規則挖掘,構建數據庫操作請求和http訪問請求 的關聯規則,并將關聯規則存入關聯規則數據庫;將實時到達的數據庫操請求與關聯規則 數據庫中的關聯規則進行匹配,從而獲得發出數據庫操請求的原始用戶的IP和用戶名。
8. 根據權利要求6所述數據庫安全審計系統,其特征在于所述的數據庫權限合理性評 估包括: 用戶權限過大的評估; 用戶活動狀態的評估; 同一類的用戶的權限差異的評估。
【文檔編號】G06F17/30GK104484474SQ201410851656
【公開日】2015年4月1日 申請日期:2014年12月31日 優先權日:2014年12月31日
【發明者】羅平 申請人:南京盾壘網絡科技有限公司