一種基于j2ee平臺的數(shù)據(jù)關(guān)聯(lián)方法及關(guān)聯(lián)插件的制作方法
【專利摘要】本發(fā)明公開了一種基于J2EE平臺的數(shù)據(jù)關(guān)聯(lián)方法及關(guān)聯(lián)插件,涉及安全審計技術(shù)。本發(fā)明公開的方法包括:WEB應(yīng)用服務(wù)器接收到登錄用戶觸發(fā)的業(yè)務(wù)請求時,關(guān)聯(lián)插件獲取并存儲該業(yè)務(wù)請求的關(guān)聯(lián)信息,關(guān)聯(lián)信息包括該業(yè)務(wù)請求對應(yīng)的用戶信息和業(yè)務(wù)信息;當(dāng)WEB應(yīng)用服務(wù)器根據(jù)業(yè)務(wù)請求向數(shù)據(jù)庫請求數(shù)據(jù)時,關(guān)聯(lián)插件將所存儲的該業(yè)務(wù)請求的關(guān)聯(lián)信息以注釋方式關(guān)聯(lián)SQL語句中,再將攜帶有關(guān)聯(lián)信息的SQL語句以數(shù)據(jù)庫協(xié)議包的方式發(fā)送給交換機(jī)。本發(fā)明還公開了一種關(guān)聯(lián)插件。本申請技術(shù)方案是基于J2EE平臺的精確業(yè)務(wù)審計技術(shù),將準(zhǔn)確的把應(yīng)用登錄用戶的信息和業(yè)務(wù)動作的信息關(guān)聯(lián)起來,并達(dá)到100%的準(zhǔn)確關(guān)聯(lián)度。
【專利說明】一種基于J2EE平臺的數(shù)據(jù)關(guān)聯(lián)方法及關(guān)聯(lián)插件
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及安全審計技術(shù),特別涉及一種基于J2EE平臺的數(shù)據(jù)關(guān)聯(lián)方法及關(guān)聯(lián)插件。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,各種應(yīng)用程序由原來的C/S模式逐漸轉(zhuǎn)化為B/S模式。目前企業(yè)中Web應(yīng)用程序的開發(fā)多采用J2EE平臺和.NET平臺。由于Java語言的跨平臺特性,絕大部分應(yīng)用都采用了基于J2EE平臺的B/S (Browser/Server)三層架構(gòu)體系。三層結(jié)構(gòu)即:展現(xiàn)層(瀏覽器)、業(yè)務(wù)邏輯層(Web中間件服務(wù)器)、數(shù)據(jù)層(數(shù)據(jù)庫服務(wù)器)。
[0003]在B/S三層架構(gòu)的應(yīng)用中,很難將展現(xiàn)層的用戶http請求事件與數(shù)據(jù)層的sql響應(yīng)事件一對一的關(guān)聯(lián)起來。傳統(tǒng)的審計系統(tǒng)可以精確的審計出http事件信息:源IP(瀏覽器客戶端IP)、目的IP (Web中間件IP)、URL、登錄用戶等信息),也可以通過解析不同的數(shù)據(jù)庫協(xié)議精確的審計出sql事件信息:源IP (Web中間件IP)、目的IP (數(shù)據(jù)庫服務(wù)器IP)、資源賬號、表名、字段名、sql等信息。但是對于安全審計產(chǎn)品的用戶來說,很難利用這2種未關(guān)聯(lián)的http事件及sql事件進(jìn)行事后的安全事件精確定位、精確溯源。
[0004]目前的安全審計系統(tǒng)廠商已經(jīng)有了三層關(guān)聯(lián)的產(chǎn)品,但是在實施效果上不甚理想,雖然達(dá)到了一定的關(guān)聯(lián)效果,但要達(dá)到安全事件精確定位、精確溯源,依然還有不小的差距。這一類的三層關(guān)聯(lián)產(chǎn)品大多通過建立一些關(guān)聯(lián)模型來對單獨審計出來的http審計日志及sql審計日志進(jìn)行事后的手動、半自動或者全自動的關(guān)聯(lián)。這些關(guān)聯(lián)模型有基于時間戳的、概率統(tǒng)計的、制定關(guān)聯(lián)規(guī)則的或者sql模板學(xué)習(xí)的,從技術(shù)原理上看這些關(guān)聯(lián)模型就很難達(dá)到100%的關(guān)聯(lián)度,當(dāng)然也就不可能進(jìn)行安全事件精確定位、精確溯源。而且這些關(guān)聯(lián)模型也會造成安全審計產(chǎn)品性能的明顯下降。天融信、啟明星辰、網(wǎng)御星云、綠盟等審計系統(tǒng)廠商都有了這一類基于關(guān)聯(lián)模型的審計產(chǎn)品。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題是,提供一種基于J2EE平臺的數(shù)據(jù)關(guān)聯(lián)方法及關(guān)聯(lián)插件,以提高安全審計的可靠性,并為安全事件精確定位、精確溯源、報表分析提供準(zhǔn)確的數(shù)據(jù)基礎(chǔ)。
[0006]為了解決上述技術(shù)問題,本發(fā)明公開一種基于J2EE平臺的數(shù)據(jù)關(guān)聯(lián)方法,包括:
[0007]網(wǎng)頁(WEB)應(yīng)用服務(wù)器接收到登錄用戶觸發(fā)的業(yè)務(wù)請求時,關(guān)聯(lián)插件獲取并存儲該業(yè)務(wù)請求的關(guān)聯(lián)信息,所述關(guān)聯(lián)信息包括該業(yè)務(wù)請求對應(yīng)的用戶信息和業(yè)務(wù)信息;
[0008]當(dāng)所述WEB應(yīng)用服務(wù)器根據(jù)所述業(yè)務(wù)請求向數(shù)據(jù)庫請求數(shù)據(jù)時,關(guān)聯(lián)插件將所存儲的該業(yè)務(wù)請求的關(guān)聯(lián)信息以注釋方式關(guān)聯(lián)到結(jié)構(gòu)化查詢(SQL)語句中,再將攜帶有關(guān)聯(lián)信息的SQL語句以數(shù)據(jù)庫協(xié)議包的方式發(fā)送給交換機(jī)。
[0009]可選地,上述方法中,所述關(guān)聯(lián)插件在所述WEB應(yīng)用服務(wù)器的WEB中間件處理請求的類中加入采用java字節(jié)碼的攔截代碼,以獲取所述業(yè)務(wù)請求的關(guān)聯(lián)信息。[0010]可選地,上述方法中,所述關(guān)聯(lián)插件在所述WEB應(yīng)用服務(wù)器的WEB應(yīng)用處理SQL語句的類中加入采用java字節(jié)碼的攔截代碼,以將所述關(guān)聯(lián)信息按照特征串的注釋方式關(guān)聯(lián)到所述SQL語句中。
[0011]可選地,上述方法還包括:
[0012]所述WEB應(yīng)用服務(wù)器接收交換機(jī)反饋的SQL語句執(zhí)行結(jié)果,根據(jù)該執(zhí)行結(jié)果生成響應(yīng)數(shù)據(jù)后,所述關(guān)聯(lián)插件刪除所存儲的該業(yè)務(wù)請求的關(guān)聯(lián)信息。
[0013]可選地,上述方法中,所述用戶信息至少包括源互聯(lián)網(wǎng)協(xié)議(IP)和用戶名。
[0014]可選地,上述方法中,所述業(yè)務(wù)信息至少包括業(yè)務(wù)統(tǒng)一資源定位符(URL)。
[0015]本發(fā)明還公開了一種關(guān)聯(lián)插件,包括:
[0016]用戶信息探針單元,在網(wǎng)頁(WEB)應(yīng)用服務(wù)器接收到登錄用戶觸發(fā)的業(yè)務(wù)請求時,獲取并存儲該業(yè)務(wù)請求的關(guān)聯(lián)信息,所述關(guān)聯(lián)信息包括該業(yè)務(wù)請求對應(yīng)的用戶信息和業(yè)務(wù)信息;
[0017]結(jié)構(gòu)化查詢(SQL)信息探針單元,在所述WEB應(yīng)用服務(wù)器根據(jù)所述業(yè)務(wù)請求向數(shù)據(jù)庫請求數(shù)據(jù)時,將所存儲的該業(yè)務(wù)請求的關(guān)聯(lián)信息以注釋方式關(guān)聯(lián)到SQL語句中。
[0018]可選地,上述關(guān)聯(lián)插件中,所述用戶信息探針單元,在WEB應(yīng)用服務(wù)器針對SQL語句執(zhí)行結(jié)果生成響應(yīng)數(shù)據(jù)后,刪除所存儲的業(yè)務(wù)請求的關(guān)聯(lián)信息。
[0019]可選地,上述關(guān)聯(lián)插件中,所述用戶信息探針單元和SQL信息探針單元均采用java字節(jié)碼的攔截代碼實現(xiàn)。
[0020]可選地,上述關(guān)聯(lián)插件中,所述用戶信息至少包括源互聯(lián)網(wǎng)協(xié)議(IP)和用戶名。
[0021]可選地,上述關(guān)聯(lián)插件中,所述業(yè)務(wù)信息至少包括業(yè)務(wù)統(tǒng)一資源定位符(URL)。
[0022]本申請技術(shù)方案是基于J2EE平臺的精確業(yè)務(wù)審計技術(shù),將準(zhǔn)確的把應(yīng)用登錄用戶的信息(用戶名、源IP、目的IP、時間)、業(yè)務(wù)動作的信息(URL、請求數(shù)據(jù)、form表單、參數(shù))和數(shù)據(jù)庫事件信息(sql語句、表名、字段名、返回行數(shù)、資源賬號、源IP、目的IP)關(guān)聯(lián)起來,并達(dá)到100%的準(zhǔn)確關(guān)聯(lián)度。從而為事后的安全事件精確定位、精確溯源、報表分析提供準(zhǔn)確的數(shù)據(jù)基礎(chǔ)。
【專利附圖】
【附圖說明】
[0023]圖1為本發(fā)明實施例中基于J2EE平臺的數(shù)據(jù)關(guān)聯(lián)系統(tǒng)的結(jié)構(gòu)示意圖;
[0024]圖2為上述系統(tǒng)實現(xiàn)數(shù)據(jù)關(guān)聯(lián)的流程示意圖。
【具體實施方式】
[0025]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文將結(jié)合附圖對本發(fā)明技術(shù)方案作進(jìn)一步詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請的實施例和實施例中的特征可以任意相互組合。
[0026]實施例1
[0027] 申請人:提出,可以在We應(yīng)用服務(wù)器上部署一個插件,插件在處理http請求的類中加入用戶信息探針,在處理sql語句的類中加入sql信息探針,用戶信息探針將負(fù)責(zé)獲取用戶信息和業(yè)務(wù)信息,sql信息探針負(fù)責(zé)將用戶信息、業(yè)務(wù)信息和業(yè)務(wù)觸發(fā)的sql語句進(jìn)行關(guān)聯(lián)。關(guān)聯(lián)后的sql語句將帶上用戶信息及業(yè)務(wù)信息。關(guān)聯(lián)的信息將以特征串的方式以注釋形態(tài)出現(xiàn)在sql語句中。在數(shù)據(jù)庫服務(wù)器的入口交換機(jī)旁路部署數(shù)據(jù)庫審計系統(tǒng)審計數(shù)據(jù)庫協(xié)議流量,對其中的特征串進(jìn)行解析從而形成一條關(guān)聯(lián)了用戶信息、業(yè)務(wù)信息的完整sql事件并記錄到數(shù)據(jù)庫審計日志中。事后只要對數(shù)據(jù)庫審計日志進(jìn)行分析,就能完成安全事件精確定位、精確溯源,并在此基礎(chǔ)上形成豐富多樣的基于業(yè)務(wù)的分析報告。
[0028]基于上述思想,本實施例提供一種關(guān)聯(lián)插件,其可應(yīng)用于WEB服務(wù)器中,至少包括如下各部分。
[0029]用戶信息探針單元,在WEB應(yīng)用服務(wù)器接收到登錄用戶觸發(fā)的業(yè)務(wù)請求時,獲取并存儲該業(yè)務(wù)請求的關(guān)聯(lián)信息,所述關(guān)聯(lián)信息包括該業(yè)務(wù)請求對應(yīng)的用戶信息和業(yè)務(wù)信息;
[0030]SQL信息探針單元,在所述WEB應(yīng)用服務(wù)器根據(jù)所述業(yè)務(wù)請求向數(shù)據(jù)庫請求數(shù)據(jù)時,將所存儲的該業(yè)務(wù)請求的關(guān)聯(lián)信息以注釋方式關(guān)聯(lián)到SQL語句中。
[0031 ] 實際應(yīng)用中,上述關(guān)聯(lián)插件可位于WEB服務(wù)器中實現(xiàn)基于J2EE平臺的數(shù)據(jù)關(guān)聯(lián),此時整個數(shù)據(jù)關(guān)聯(lián)系統(tǒng)如圖1所示。其中,WEB應(yīng)用服務(wù)器中增加了關(guān)聯(lián)插件部分,關(guān)聯(lián)插件將作為中間件實例的一部分可以同時運(yùn)行在JVM java虛擬機(jī)實例中。在數(shù)據(jù)庫服務(wù)器的入口交換機(jī)的鏡像口旁路部署上了數(shù)據(jù)庫審計服務(wù)器,由于是旁路設(shè)備,該數(shù)據(jù)庫審計服務(wù)器不會對數(shù)據(jù)庫服務(wù)器產(chǎn)生任何影響。
[0032]具體地,關(guān)聯(lián)插件中用戶信息探針單元在WEB中間件處理用戶請求時,獲取并存儲用戶信息(至少包括源IP、用戶名)和業(yè)務(wù)信息(至少包括業(yè)務(wù)URL等);而SQL信息探針單元則在WEB應(yīng)用向數(shù)據(jù)庫請求數(shù)據(jù)前,將已獲取到的當(dāng)前用戶信息及業(yè)務(wù)信息以特征串的方式加在SQL語句的注釋中。這樣,當(dāng)帶有關(guān)聯(lián)信息的SQL語句以包的方式經(jīng)過交換機(jī)時,從旁路鏡像口發(fā)送到數(shù)據(jù)庫審計服務(wù)器進(jìn)行處理,對于發(fā)送到數(shù)據(jù)庫服務(wù)器的SQL由于數(shù)據(jù)庫會自動忽略注釋部分,因此不會對數(shù)據(jù)庫的正常運(yùn)行帶來任何影響。優(yōu)選地,WEB中間件返回響應(yīng)數(shù)據(jù)給用戶前,用戶信息探針單元可以釋放掉所存儲的當(dāng)前用戶的用戶信息和業(yè)務(wù)信息,以減小關(guān)聯(lián)插件對內(nèi)存的損耗。由于從用戶請求到獲取響應(yīng)都運(yùn)行在同一個java線程中,因此能達(dá)到100%的精確關(guān)聯(lián)度。
[0033]下面再結(jié)合圖2,說明采用了上述關(guān)聯(lián)插件的系統(tǒng)實現(xiàn)一個用戶的業(yè)務(wù)操作的主要流程。
[0034]首先,用戶客戶端完成登錄,觸發(fā)業(yè)務(wù)請求(包括http請求和https請求)。
[0035]加入了用戶信息探針單元的Web中間件獲取用戶信息及業(yè)務(wù)信息并存儲。當(dāng)加入了 SQL信息探針單元的Web應(yīng)用執(zhí)行Sql操作時,將已存儲的用戶信息及業(yè)務(wù)信息以注釋方式關(guān)聯(lián)到SQL語句中,再發(fā)送數(shù)據(jù)庫協(xié)議TCP包流量給交換機(jī)。
[0036]交換機(jī)將數(shù)據(jù)庫流量旁路發(fā)送給數(shù)據(jù)庫審計服務(wù)器進(jìn)行審計,同時將數(shù)據(jù)庫流量發(fā)送只數(shù)據(jù)庫服務(wù)器。
[0037]數(shù)據(jù)庫服務(wù)器執(zhí)行SQL語句并返回執(zhí)行結(jié)果。
[0038]加入了 SQL信息探針單元的Web應(yīng)用處理執(zhí)行結(jié)果,加入了用戶信息探針單元的Web中間件處理執(zhí)行結(jié)果形成對用戶請求的響應(yīng)數(shù)據(jù),此時可以刪除已存儲的用戶信息和業(yè)務(wù)信息,最后返回響應(yīng)數(shù)據(jù)給客戶端用戶。
[0039]具體地,可以在Web中間件處理請求的類中加入攔截代碼,通過該攔截代碼可以從http請求中獲取用戶信息、業(yè)務(wù)信息,并在請求結(jié)束前將用戶信息從插件中刪除。[0040]同樣,可以在Web應(yīng)用處理sql語句的類中加入攔截代碼,通過該攔截代碼可以從關(guān)聯(lián)插件中獲取用戶信息、業(yè)務(wù)信息,并以特征串的方式加在sql的注釋中,從而形成關(guān)聯(lián)。
[0041]本實施例中,關(guān)聯(lián)插件中加入的攔截代碼采用了 java字節(jié)碼操作技術(shù),直接在相關(guān)類加載的時候進(jìn)行字節(jié)碼操作,并采用java模式中的代理模式從而達(dá)到獲取用戶信息、業(yè)務(wù)信息,關(guān)聯(lián)sql的需求。本實施例中攔截代碼充分考慮的各種異常情況,即使在攔截代碼中出現(xiàn)異常也能保證用戶的業(yè)務(wù)操作能正常執(zhí)行,不受任何影響。攔截代碼加入安裝日志、運(yùn)行日志(日志級別可配置)以滿足實際環(huán)境的運(yùn)行要求。
[0042]本實施例中,關(guān)聯(lián)插件有2個型號drelatel5和drelatel4。
[0043]Drelatel5適用于運(yùn)行在JDK1.5、JDK1.6、JDK1.7上的Web中間件服務(wù)器上。
[0044]drelatel4適用于運(yùn)行在JDK1.3、JDK1.4上的Web中間件服務(wù)器上。
[0045]Drelatel5、drelatel4 插件目前只支持 tomcat、jboss、weblogic、websphere 四種中間件;如需支持其他中間件,可以定制。
[0046]Drelatel5、drelatel4 插件目前只支持 oracle、sqlserver、mysql、db2 四種數(shù)據(jù)庫;如需支持其他數(shù)據(jù)庫,可以定制。
[0047]Drelatel5、drelatel4插件可以運(yùn)行在相應(yīng)JDK能運(yùn)行的所有操作系統(tǒng)中。
[0048]另外,采用了上述關(guān)聯(lián)插件的J2EE平臺的業(yè)務(wù)審計系統(tǒng)在某大型電子商務(wù)平臺進(jìn)行了 80個用戶的壓力測試。
[0049]Web中間件服務(wù)器的一些參數(shù)指標(biāo)為:Red Hat Enterprise Linux Serverrelease5.5 (64bit)、Weblogicl0.2、Weblogic JVM_0PT10N: -server - Xms2048M -Xmx2048MaxPermSize512M。
[0050]數(shù)據(jù)庫服務(wù)器為oraclelOg。
[0051]未開啟插件:80并發(fā)用戶業(yè)務(wù)執(zhí)行時間為13.565秒
[0052]開啟插件:80并發(fā)用戶業(yè)務(wù)執(zhí)行時間為14.148秒
[0053]平均每個用戶時間消耗增加0.0072秒,基本上可以忽略不計。
[0054]從技術(shù)實現(xiàn)的角度看,采用本申請技術(shù)方案處理請求的類和處理sql的類需要在加載期間動態(tài)加入攔截代碼以實現(xiàn)用戶探針和sql探針的效果會增加類加載的時間,但是基于java虛擬機(jī)的加載性能以及服務(wù)器cpu的執(zhí)行性能,增加的加載時間基本上微乎其微。而且代碼一旦加載就常駐內(nèi)存不需要重復(fù)加載。在運(yùn)行期間,用戶探針和sql探針有少量的代碼需要執(zhí)行,這也會增加代碼總的執(zhí)行時間;運(yùn)行日志的記錄也會增加一點執(zhí)行時間,日志記錄可以更具實際情況選擇是否開啟。從實際的運(yùn)行效果來看,加入插件后Web中間件服務(wù)器的各項指標(biāo)與加入插件前基本相當(dāng),沒有明顯的變化。
[0055]還要說明的是,本實施例中,關(guān)聯(lián)插件主要以獨立的jar文件出現(xiàn),需要將其放入中間件的CLASSPATH參數(shù)中,同時修改中間件的啟動腳本以-javaagent或者-Xrun的方式啟動插件。
[0056]為了便于部署階段的問題排查,中間件的腳本需要有2份,一份是原有的非插件方式啟動腳本,一份是原有啟動腳本的復(fù)本并作了加載插件的參數(shù)配置。當(dāng)問題排查清楚并解決后用戶可以選擇以插件方式啟動或者非插件方式啟動。
[0057]實施例2[0058]本實施例提供一種基于J2EE平臺的數(shù)據(jù)精確關(guān)聯(lián)方法,可通過上述實施例1的關(guān)聯(lián)插件實現(xiàn)。該方法包括如下操作:
[0059]WEB應(yīng)用服務(wù)器接收到登錄用戶觸發(fā)的業(yè)務(wù)請求時,關(guān)聯(lián)插件獲取并存儲該業(yè)務(wù)請求的關(guān)聯(lián)信息,該關(guān)聯(lián)信息包括該業(yè)務(wù)請求對應(yīng)的用戶信息和業(yè)務(wù)信息;
[0060]當(dāng)WEB應(yīng)用服務(wù)器根據(jù)業(yè)務(wù)請求向數(shù)據(jù)庫請求數(shù)據(jù)時,關(guān)聯(lián)插件將所存儲的該業(yè)務(wù)請求的關(guān)聯(lián)信息以注釋方式關(guān)聯(lián)到SQL語句中,再將攜帶有關(guān)聯(lián)信息的SQL語句以數(shù)據(jù)庫協(xié)議包的方式發(fā)送給交換機(jī)。
[0061]這樣,交換機(jī)通過旁路鏡像口將數(shù)據(jù)庫協(xié)議包發(fā)送給數(shù)據(jù)庫審計服務(wù)器進(jìn)行審計,同時將數(shù)據(jù)庫協(xié)議包發(fā)送給數(shù)據(jù)庫服務(wù)器,數(shù)據(jù)庫服務(wù)器收到數(shù)據(jù)庫協(xié)議包后,執(zhí)行SQL語句并返回執(zhí)行結(jié)果給WEB應(yīng)用服務(wù)器即可。
[0062]具體地,上述關(guān)聯(lián)插件可以在WEB應(yīng)用服務(wù)器的WEB中間件處理請求的類中加入采用java字節(jié)碼的攔截代碼以獲取http請求的關(guān)聯(lián)信息。
[0063]關(guān)聯(lián)插件還可以在WEB應(yīng)用服務(wù)器的WEB應(yīng)用處理SQL語句的類中加入采用java字節(jié)碼的攔截代碼,以將關(guān)聯(lián)信息按照特征串的注釋方式關(guān)聯(lián)到SQL語句中。
[0064]優(yōu)選地,WEB應(yīng)用服務(wù)器處理數(shù)據(jù)庫服務(wù)器返回的執(zhí)行結(jié)果,生成業(yè)務(wù)請求的響應(yīng)數(shù)據(jù)后,關(guān)聯(lián)插件可以刪除所存儲的該業(yè)務(wù)請求的關(guān)聯(lián)信息。
[0065]上述方法所涉及的數(shù)據(jù)庫審計服務(wù)器對數(shù)據(jù)庫協(xié)議包的審計過程,包括:數(shù)據(jù)庫審計服務(wù)器從數(shù)據(jù)庫協(xié)議包中獲取業(yè)務(wù)請求的關(guān)聯(lián)信息及數(shù)據(jù)庫事件信息,并將關(guān)聯(lián)信息中的用戶信息、業(yè)務(wù)信息與數(shù)據(jù)庫事件信息進(jìn)行關(guān)聯(lián)操作,其中,數(shù)據(jù)庫事件信息至少包括SQL語句。
[0066]另外,本實施例中所涉及的用戶信息至少包括源互聯(lián)網(wǎng)協(xié)議(IP)和用戶名。業(yè)務(wù)信息至少包括業(yè)務(wù)統(tǒng)一資源定位符(URL)。
[0067]而上述方法的具體實現(xiàn)過程如參見上述實施例1的相應(yīng)內(nèi)容,在此不再贅述。
[0068]從上述實施例可以看出,本申請技術(shù)方案基于J2EE平臺實現(xiàn)精確的業(yè)務(wù)審計,主要將瀏覽器端的用戶、該用戶觸發(fā)的業(yè)務(wù)事件、業(yè)務(wù)事件觸發(fā)的sql事件三類信息關(guān)聯(lián)起來,并達(dá)到100%的準(zhǔn)確關(guān)聯(lián)度。關(guān)聯(lián)后的數(shù)據(jù)主要有:登錄用戶名、登錄用戶IP、URL、業(yè)務(wù)事件觸發(fā)時間、sql語句、表名稱、字段名、sql響應(yīng)時間、sql回應(yīng)時間、返回行數(shù)、命令、數(shù)據(jù)庫名稱、Web服務(wù)器IP、數(shù)據(jù)庫服務(wù)器IP、資源賬號等。并且,本申請技術(shù)方案對數(shù)據(jù)庫審計服務(wù)器基本不會造成性能的下降。
[0069]本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,所述程序可以存儲于計算機(jī)可讀存儲介質(zhì)中,如只讀存儲器、磁盤或光盤等??蛇x地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現(xiàn)。相應(yīng)地,上述實施例中的各模塊/單元可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。本申請不限制于任何特定形式的硬件和軟件的結(jié)合。
[0070]以上所述,僅為本發(fā)明的較佳實例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于J2EE平臺的數(shù)據(jù)關(guān)聯(lián)方法,其特征在于,包括: 網(wǎng)頁(WEB)應(yīng)用服務(wù)器接收到登錄用戶觸發(fā)的業(yè)務(wù)請求時,關(guān)聯(lián)插件獲取并存儲該業(yè)務(wù)請求的關(guān)聯(lián)信息,所述關(guān)聯(lián)信息包括該業(yè)務(wù)請求對應(yīng)的用戶信息和業(yè)務(wù)信息; 當(dāng)所述WEB應(yīng)用服務(wù)器根據(jù)所述業(yè)務(wù)請求向數(shù)據(jù)庫請求數(shù)據(jù)時,關(guān)聯(lián)插件將所存儲的該業(yè)務(wù)請求的關(guān)聯(lián)信息以注釋方式關(guān)聯(lián)到結(jié)構(gòu)化查詢(SQL)語句中,再將攜帶有關(guān)聯(lián)信息的SQL語句以數(shù)據(jù)庫協(xié)議包的方式發(fā)送給交換機(jī)。
2.如權(quán)利要求1所述的方法,其特征在于, 所述關(guān)聯(lián)插件在所述WEB應(yīng)用服務(wù)器的WEB中間件處理請求的類中加入采用java字節(jié)碼的攔截代碼,以獲取業(yè)務(wù)請求的關(guān)聯(lián)信息。
3.如權(quán)利要求1所述的方法,其特征在于, 所述關(guān)聯(lián)插件在所述WEB應(yīng)用服務(wù)器的WEB應(yīng)用處理SQL語句的類中加入采用java字節(jié)碼的攔截代碼,以將所述關(guān)聯(lián)信息按照特征串的注釋方式關(guān)聯(lián)到所述SQL語句中。
4.如權(quán)利要求1至3任一項所述的方法,其特征在于,該方法還包括: 所述WEB應(yīng)用服務(wù)器接收交換機(jī)反饋的SQL語句執(zhí)行結(jié)果,根據(jù)該執(zhí)行結(jié)果生成響應(yīng)數(shù)據(jù)后,所述關(guān)聯(lián)插件刪除所存儲的該業(yè)務(wù)請求的關(guān)聯(lián)信息。
5.如權(quán)利要求4所述的方法,其特征在于, 所述用戶信息至少包括源互聯(lián)網(wǎng)協(xié)議(IP)和用戶名。
6.如權(quán)利要求4所述的方法,其特征在于, 所述業(yè)務(wù)信息至少包括業(yè)務(wù)統(tǒng)一資源定位符(URL)。
7.一種關(guān)聯(lián)插件,其特征在于,包括: 用戶信息探針單元,在網(wǎng)頁(WEB)應(yīng)用服務(wù)器接收到登錄用戶觸發(fā)的業(yè)務(wù)請求時,獲取并存儲該業(yè)務(wù)請求的關(guān)聯(lián)信息,所述關(guān)聯(lián)信息包括該業(yè)務(wù)請求對應(yīng)的用戶信息和業(yè)務(wù)信息; 結(jié)構(gòu)化查詢(SQL)信息探針單元,在所述WEB應(yīng)用服務(wù)器根據(jù)所述業(yè)務(wù)請求向數(shù)據(jù)庫請求數(shù)據(jù)時,將所存儲的該業(yè)務(wù)請求的關(guān)聯(lián)信息以注釋方式關(guān)聯(lián)到SQL語句中。
8.如權(quán)利要求7所述的關(guān)聯(lián)插件,其特征在于, 所述用戶信息探針單元,在WEB應(yīng)用服務(wù)器針對SQL語句執(zhí)行結(jié)果生成響應(yīng)數(shù)據(jù)后,刪除所存儲的業(yè)務(wù)請求的關(guān)聯(lián)信息。
9.如權(quán)利要求7或8所述的關(guān)聯(lián)插件,其特征在于, 所述用戶信息探針單元和SQL信息探針單元均采用java字節(jié)碼的攔截代碼實現(xiàn)。
10.如權(quán)利要求9所述的關(guān)聯(lián)插件,其特征在于, 所述用戶信息至少包括源互聯(lián)網(wǎng)協(xié)議(IP)和用戶名。
11.如權(quán)利要求10所述的關(guān)聯(lián)插件,其特征在于, 所述業(yè)務(wù)信息至少包括業(yè)務(wù)統(tǒng)一資源定位符(URL)。
【文檔編號】G06F9/44GK103647794SQ201310753027
【公開日】2014年3月19日 申請日期:2013年12月31日 優(yōu)先權(quán)日:2013年12月31日
【發(fā)明者】董學(xué)林 申請人:北京啟明星辰信息安全技術(shù)有限公司, 北京啟明星辰信息技術(shù)股份有限公司