李 煒,黃 倩
(1.武漢大學(xué)人民醫(yī)院 信息中心,湖北 武漢 430060;2.武昌職業(yè)學(xué)院 招生就業(yè)與校企合作處,湖北 武漢 430202)
現(xiàn)代社會(huì)計(jì)算機(jī)技術(shù)及網(wǎng)絡(luò)技術(shù)的發(fā)展飛速,伴隨著這些技術(shù)的發(fā)展,數(shù)據(jù)庫(kù)也在各行各業(yè)中得到了廣泛,幾乎所有的企事業(yè)單位,尤其是醫(yī)院等都把自己的數(shù)據(jù)庫(kù)連接到Internet上。但由這些技術(shù)而帶來(lái)的數(shù)據(jù)庫(kù)安全問(wèn)題卻是不容忽視的,如對(duì)敏感數(shù)據(jù)的篡改和防竊取的問(wèn)題等[1]。所以當(dāng)前網(wǎng)絡(luò)對(duì)安全防護(hù)措施的要求越來(lái)越高,傳統(tǒng)的防火墻已達(dá)不到某些領(lǐng)域較高的要求,對(duì)于一些入侵如SQL注入、未經(jīng)授權(quán)的訪問(wèn)、跨腳本攻擊等這些入侵都有些力不從心,所以后臺(tái)數(shù)據(jù)庫(kù)應(yīng)用級(jí)的保護(hù)也變得非常迫切。
當(dāng)代的醫(yī)療系統(tǒng)基本上都建立用來(lái)存儲(chǔ)和管理各種業(yè)務(wù)數(shù)據(jù)的核心數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)的建立從根本上改變著醫(yī)療體系運(yùn)行的規(guī)則,保存著幾乎所有病人病例門診資料等,這些數(shù)據(jù)相比其他行業(yè)系統(tǒng)更加敏感和隱私,一旦被惡意攻擊,將會(huì)造成無(wú)法彌補(bǔ)的損失,對(duì)于大多數(shù)的合法用戶,從攻擊者的角度看,直接損害到數(shù)據(jù)庫(kù)比探索網(wǎng)絡(luò)中的數(shù)據(jù)所帶來(lái)的好處,以帶來(lái)多大的興趣[2-3]。從數(shù)據(jù)庫(kù)中,我們使用了通用的初始模型的原則,建立一個(gè)數(shù)據(jù)庫(kù)的安全測(cè)試進(jìn)行了討論。在文中,基于用戶行為和SQL語(yǔ)句的數(shù)據(jù)庫(kù)安全檢測(cè)策略相結(jié)合的規(guī)則為基礎(chǔ)的結(jié)構(gòu)。
基于用戶行為規(guī)則的安全檢測(cè)是在數(shù)據(jù)庫(kù)用戶行為模型的基礎(chǔ)上,利用關(guān)聯(lián)分析的方法生成用戶行為規(guī)則,結(jié)合異常檢測(cè)的思想對(duì)數(shù)據(jù)庫(kù)用戶行為進(jìn)行安全檢測(cè)的一種方法。
分析適用于醫(yī)療信息數(shù)據(jù)庫(kù)用戶行為,需要收集用戶對(duì)數(shù)據(jù)庫(kù)的操作信息[4]。用戶登錄數(shù)據(jù)庫(kù)的起始時(shí)間、用戶執(zhí)行操作的時(shí)間、客戶端IP地址和端口號(hào)、登錄數(shù)據(jù)庫(kù)服務(wù)器IP地址和端口號(hào)、用戶向數(shù)據(jù)庫(kù)提交的SQL語(yǔ)句、數(shù)據(jù)庫(kù)登錄用戶名等信息從不同方面描述了數(shù)據(jù)庫(kù)用戶的行為。
每一條SQL語(yǔ)句由命令動(dòng)詞、子句、和表達(dá)式等構(gòu)成。其中,命令動(dòng)詞規(guī)定了 SQL語(yǔ)句的操作類型,如SELECT、INSERT、UPDATE、DELETE;表達(dá)式是SQL語(yǔ)句中的一些值,可能是變量、常量、查詢字段等,其中所涉及的數(shù)據(jù)庫(kù)關(guān)系表和查詢字段等規(guī)定了SQL語(yǔ)句的操作目標(biāo)。
一個(gè)用戶行為向量組對(duì)應(yīng)一條SQL語(yǔ)句,其由若干用戶行為向量組成,用來(lái)表示此SQL語(yǔ)句的操作行為。每個(gè)用戶行為向量包含用戶名、操作類型和操作目標(biāo)3種類型元素,如下所示。
1:<用戶名A,操作類型1,操作目標(biāo)1>
2:<用戶名A,操作類型2,操作目標(biāo)2>
3:<用戶名B,操作類型3,操作目標(biāo)3>
4:<用戶名B,操作類型4,操作目標(biāo)4>
5;<用戶名B,操作類型5,操作目標(biāo)5>....
n;<用戶名Z,操作類型n,操作目標(biāo)n>
由向量1、2、3組成的用戶行為向量組表示一條SQL語(yǔ)句,向量4、5表示另一條SQL語(yǔ)句。用戶名是指提交SQL語(yǔ)句的用戶,同一條SQL語(yǔ)句的用戶名是相同的;操作類型是指用戶SQL語(yǔ)句的操作類型,為SELECT,INSERT,UPDATE,DELETE,CREATETABLE中之一;操作目標(biāo)是指用戶每個(gè)操作類型所對(duì)應(yīng)操作的表或列。每個(gè)用戶行為向量組的向量個(gè)數(shù)由所對(duì)應(yīng)的SQL語(yǔ)句決定[5],如“用戶名A”就有兩個(gè)用戶行為向量?!坝脩裘鸅”有3個(gè)用戶行為向量。
一條SQL語(yǔ)句轉(zhuǎn)化為一個(gè)用戶行為向量組有如下原則:
1)一值性:行為向量中的元素都是單值;
2)對(duì)應(yīng)性:用戶名、操作類型和操作目標(biāo)之間必須是一一對(duì)應(yīng)的;
3)重復(fù)表達(dá)性:一條SQL語(yǔ)句中可能包含多種操作類型,無(wú)論操作類型是否相同都必須用新的向量表示。
用戶行為向量中的元素類型還可不斷擴(kuò)展,以增加用戶行為向量組對(duì)SQL語(yǔ)句的描述精度,增加向量維度雖可提高對(duì)SQL語(yǔ)句的描述精度,但也會(huì)大量增加用戶行為向量的個(gè)數(shù),從而增加了系統(tǒng)處理的數(shù)據(jù)量[6]。
使用用戶行為向量組表示SQL語(yǔ)句的操作行為,不僅分析了 SQL語(yǔ)句的操作類型與操作目標(biāo)。同時(shí),也能提取操作條件或嵌套查詢中的操作內(nèi)容,可較全面的描述數(shù)據(jù)庫(kù)用戶的操作行為,從而為下文對(duì)戶行為的分析奠定了模型基礎(chǔ)。
數(shù)據(jù)庫(kù)用戶行為規(guī)則是用戶在長(zhǎng)期操作數(shù)據(jù)庫(kù)的過(guò)程中,從大量用戶的操作記錄中挖掘出來(lái)的、能典型代表用戶對(duì)數(shù)據(jù)庫(kù)操作行為的一種表示形式,其含義可表達(dá)為用戶經(jīng)常操作的數(shù)據(jù)庫(kù)對(duì)象或用戶經(jīng)常使用的操作類型。根據(jù)上節(jié)的分析可發(fā)現(xiàn)用戶行為向量元素之間有著較強(qiáng)的相關(guān)性。
上述用戶行為的相關(guān)性可較好的用關(guān)聯(lián)規(guī)則形式表示:
用戶名U操作類型=>操作目標(biāo)
用戶名U操作目標(biāo)=>操作類型
用戶名=>操作目標(biāo)U操作類型
因此,本文使用關(guān)聯(lián)規(guī)則算法從用戶行為數(shù)據(jù)中生成數(shù)據(jù)庫(kù)用戶行為規(guī)則。
將用戶歷史操作記錄中的操作語(yǔ)句均轉(zhuǎn)化為用戶行為向量組后,基于用戶行為規(guī)則的安全檢測(cè)采用關(guān)聯(lián)規(guī)則算法處理用戶行為向量,將每個(gè)向量作為一條事務(wù)項(xiàng)。為提高關(guān)聯(lián)規(guī)則算法在系統(tǒng)中的執(zhí)行效率,減少算法甄別數(shù)據(jù)的過(guò)程,需數(shù)值化處理每個(gè)向量的元素[7]。
向量數(shù)值化前需統(tǒng)計(jì)這段時(shí)間內(nèi)所有不同的用戶名和操作目標(biāo)的數(shù)目,然后對(duì)每個(gè)元素做數(shù)值映射,避免出現(xiàn)向量元素的數(shù)值重疊。例如,對(duì)于用戶行為向量“
先規(guī)定操作類型的映射為(SELECT=1,CREATETABLE=2,DELETE=3,INSERT=4,UPDATE=5,ALTERTABLE=6,DR0PTABLE=7);其次根據(jù)不同用戶名的數(shù)量將用戶名映射為(WANGH0NG=8,SC0TT=9);再次根據(jù)操作類型和用戶名的數(shù)值映射結(jié)果,將操作目標(biāo)映射為 (DUAL=10,PRIVS=11,0PTI0N=12,EMP=13,DEPT=14),如此即完成了向量的數(shù)值化處理,如表1所示。
表1 數(shù)值化用戶行為向量Tab.1 Num erical user behavior vector
用關(guān)聯(lián)規(guī)則算法生成數(shù)據(jù)庫(kù)用戶行為規(guī)則,要根據(jù)用戶行為數(shù)據(jù)的特點(diǎn)和用戶行為規(guī)則的意義選擇合適的相關(guān)性度量標(biāo)準(zhǔn)[8]。
本文選用最大置信度作為用戶行為規(guī)則的度量標(biāo)準(zhǔn),總結(jié)理由如下:
1)數(shù)據(jù)庫(kù)用戶行為規(guī)則描述的是用戶的典型行為,規(guī)則前后兩項(xiàng)必然滿足強(qiáng)相關(guān)關(guān)系。最大置信度對(duì)強(qiáng)相關(guān)規(guī)則的識(shí)別和區(qū)分能力最強(qiáng),相同條件下更容易過(guò)濾出強(qiáng)相關(guān)規(guī)則。
2)從實(shí)際意義上講,對(duì)規(guī)則前項(xiàng)和后項(xiàng)不平衡的情況,數(shù)據(jù)庫(kù)用戶行為規(guī)則應(yīng)當(dāng)判定是正相關(guān)的。例如,權(quán)限受限用戶A只能執(zhí)行SELECT操作,規(guī)則A=>SELECT是強(qiáng)相關(guān)的,而執(zhí)行SELECT操作類型的還有較多其他用戶,這就導(dǎo)致用戶A在事務(wù)集的出現(xiàn)概率和操作類型SELECT出現(xiàn)概率的不平衡。最大置信度恰好滿足數(shù)據(jù)庫(kù)用戶行為規(guī)則在以上不平衡情況下判定為正相關(guān)的要求。
3)最大置信度滿足零不變性、對(duì)稱性和正反不變性,對(duì)大量用戶行為數(shù)據(jù)有較好的適用性。
用戶正常行為規(guī)則需要從正常的歷史操作記錄中獲得,因而保證記錄內(nèi)容的安全性是規(guī)則生成的關(guān)鍵。但需保證歷史操作中的每一條記錄均是絕對(duì)安全的行為卻不容易實(shí)現(xiàn),即使實(shí)現(xiàn)也需大量的人工鑒別且耗費(fèi)資源。為提高系統(tǒng)安全檢測(cè)的靈活性,降低系統(tǒng)運(yùn)行所需的人工工作量,系統(tǒng)針對(duì)不同安全性的訓(xùn)練集提供了不同的規(guī)則生成算法。
基于用戶行為規(guī)則的安全檢測(cè)駣用了異常檢測(cè)思想。異常檢測(cè)根據(jù)用戶操作行為建立用戶正常行為規(guī)則庫(kù),凡是不符合規(guī)則庫(kù)中用戶正常行為規(guī)則的操作行為均認(rèn)定是異常操作。
基于用戶行為規(guī)則的安全檢測(cè)描述如下:
1)系統(tǒng)從用戶歷史某一段時(shí)間的操作日志中生成用戶正常行為規(guī)則,根據(jù)歷史操作日志內(nèi)容的安全性不同選擇不同的規(guī)則生成算法。
2)分析生成的用戶行為規(guī)則。當(dāng)歷史操作日志內(nèi)容是絕對(duì)安全吋,用戶典型正常行為規(guī)則庫(kù)和用戶非典型正常行為規(guī)則庫(kù)中的規(guī)則組成用戶正常行為規(guī)則庫(kù),作為異常檢測(cè)的規(guī)則;當(dāng)歷史操作日志內(nèi)容不是絕對(duì)安全吋,只有用戶正常行為規(guī)則庫(kù)中的規(guī)則作為異常檢測(cè)規(guī)則。
3)將待檢測(cè)的用戶操作語(yǔ)句解析成用戶行為向量組,并將每個(gè)向量與用戶正常行為規(guī)則庫(kù)中的規(guī)則匹配。若一用戶行為量組的所有向量均匹配正常行為規(guī)則,則此條操作語(yǔ)句是正常行為;若一個(gè)用戶行為向量組中有一個(gè)向量不能匹配用戶正常行為規(guī)則,則說(shuō)明此操作行為是異常的。
4)若檢測(cè)出的操作是正常操作,則輸出顯示;若檢測(cè)出的操作是異常操作,在顯示輸出的同時(shí)保存到系統(tǒng)自身數(shù)據(jù)庫(kù)中,之后可由安全人員進(jìn)行主觀甄別,并將甄別出的正常行為轉(zhuǎn)化為正常行為規(guī)則加入到正常行為規(guī)則庫(kù)中。這樣便實(shí)現(xiàn)了規(guī)則庫(kù)的不斷更新。
使用基于最大置信度度量標(biāo)準(zhǔn)的關(guān)聯(lián)規(guī)則算法從用戶行為向量組中生成用戶行為規(guī)則,充分發(fā)揮了關(guān)聯(lián)規(guī)則發(fā)現(xiàn)數(shù)據(jù)潛在聯(lián)系的能力。但應(yīng)當(dāng)注意的是,由于用戶行為向量組只是表征了用戶SQL語(yǔ)句的操作行為和操作目標(biāo),并未關(guān)注語(yǔ)句中的條件表達(dá)式等細(xì)節(jié)信息,這就導(dǎo)致了用戶行為規(guī)則對(duì)用戶行為描述的粗糙性。
為彌補(bǔ)上述問(wèn)題,同時(shí)提高安全檢測(cè)的正確性,本文系統(tǒng)增加從語(yǔ)句結(jié)構(gòu)和內(nèi)容上分析SQL語(yǔ)句的功能,即基于SQL語(yǔ)句結(jié)構(gòu)的安全檢測(cè)。
SQL語(yǔ)句承載著數(shù)據(jù)庫(kù)用戶行為信息的核心內(nèi)容,也是用戶操作數(shù)據(jù)庫(kù)的執(zhí)行工具。因此,數(shù)據(jù)庫(kù)違規(guī)行為與SQL語(yǔ)句的語(yǔ)句結(jié)構(gòu)有較大關(guān)系。
SQL注入就是典型的通過(guò)修改SQL語(yǔ)句結(jié)構(gòu)和內(nèi)容的一種違規(guī)行為,其主要表現(xiàn)形式如下:
1)條件恒真/假。惡意用戶在帶有條件子句的SQL語(yǔ)句中構(gòu)造條件永遠(yuǎn)為真/假的邏輯表達(dá)式,使SQL語(yǔ)句的條件子句不再發(fā)揮條件選擇作用,惡意用戶就可繞過(guò)數(shù)據(jù)庫(kù)驗(yàn)證或取得非權(quán)限范圍的數(shù)據(jù)內(nèi)容。例如,“SELECT SNO FROMSTUDENTSWHERE SNO>3 OR 1=1 ”語(yǔ)句 中“OR 1=1 ”導(dǎo)致査詢條件永遠(yuǎn)為真,"SN0>3"的條件不再發(fā)揮作用,語(yǔ)句返回了額外數(shù)據(jù)。
2)SQL語(yǔ)句加注釋符。惡意用戶可利用注釋符“_”中斷SQL查詢語(yǔ)句,繞過(guò)系統(tǒng)的的安全驗(yàn)證。例如,“SELECT*FROM USERS WHERE USERNAME=ADMIN AND PASSWORD=PSW"語(yǔ)句中加入注釋符 “_”, 語(yǔ)句變?yōu)椤癝ELECT*FROMUSERS WHERE USERNAME=ADMIN--ANDPASSWORD=”,這樣使得惡意用戶只需用戶名而不用密碼即可通過(guò)數(shù)據(jù)庫(kù)驗(yàn)證。
3)UNION查詢攻擊。惡意用戶可在SQL語(yǔ)句后添加UNION SELECT查詢語(yǔ)句獲取非權(quán)限范圍數(shù)據(jù)。
4)附帶語(yǔ)句攻擊。惡意用戶可在一條SQL語(yǔ)句結(jié)束后通過(guò)語(yǔ)句結(jié)束符“;”在原有SQL語(yǔ)句后面構(gòu)造新的SQL語(yǔ)句,這樣便可額外執(zhí)行多個(gè)非法語(yǔ)句。例如,在正常SQL語(yǔ)句后添加“,DROP TABLE USERS",惡意用戶就可非法刪除數(shù)據(jù)庫(kù)中的USERS表。
5)SQL注入方式還有其他如存儲(chǔ)過(guò)程攻擊、注入推斷和替換編碼等,這些方式仍需利用上述提到的基本SQL注入類型。
基于SQL語(yǔ)句結(jié)構(gòu)的安全檢測(cè),除了識(shí)別SQL注入這種改變SQL語(yǔ)句結(jié)構(gòu)內(nèi)容的惡意行為外,還能發(fā)現(xiàn)系統(tǒng)的限制級(jí)操作。例如,數(shù)據(jù)庫(kù)管理員通過(guò)系統(tǒng)設(shè)置只允許用戶進(jìn)行某一類型的SQL操作,如限制用戶執(zhí)行除SELECT操作之外的任何操作。當(dāng)惡意用戶對(duì)數(shù)據(jù)庫(kù)執(zhí)行DELETE操作時(shí),系統(tǒng)需檢測(cè)出DELETE這種限制級(jí)操作。
根據(jù)上文描述的若干SQL語(yǔ)句惡意行為,下面介紹基于SQL語(yǔ)句結(jié)構(gòu)的安全檢測(cè)原理。
系統(tǒng)解析用戶提交的SQL語(yǔ)句,得到語(yǔ)句的語(yǔ)法解析樹(shù),分析識(shí)別SQL語(yǔ)句的各部分內(nèi)容,通過(guò)與上文中提到的已知惡意模式對(duì)比判斷是否存在惡意行為。對(duì)于限制性操作、SQL語(yǔ)句加注釋符、UNION查詢攻擊和附帶語(yǔ)句攻擊等惡意行為的檢測(cè),只需識(shí)別語(yǔ)句中存在相關(guān)關(guān)鍵字或關(guān)鍵符號(hào)即可。對(duì)于條件恒真/假的檢測(cè),還需判斷條件子句中的不同條件子式,進(jìn)而判斷條件子句的邏輯值是否為恒值。
1)條件子式是指具有“operandL operator operand”形式的邏輯結(jié)構(gòu),其中operator為操作符,operandL和operandR為運(yùn)算式,通常是表達(dá)式、常量、函數(shù)或子查詢。下面是幾種常見(jiàn)的條件子式:
2)比較條件子式,是通過(guò)“=、>、<、≠、ANY、ALL”等操作符比較兩個(gè)運(yùn)算式的大小,如salary≥ALL(1400,3000);
3)范圍條件子式,是通過(guò)[NOT]BETWEEN x AND y結(jié)構(gòu)判斷條件是否在所定范圍內(nèi),如 salary BETWEEN 2000 AND 3000;
4)帶有關(guān)鍵字 EXISTS、IN、LIKE的條件子式,如 EXISTS(SELECT*FROMemployees e WHERE d.department_id=e.department_id);
條件子句分為簡(jiǎn)單條件子句和復(fù)合條件子句。簡(jiǎn)單條件子句只由一個(gè)條件子式構(gòu)成,復(fù)合條件子句則由多個(gè)條件子式通過(guò)AND和OR連接而成,如下所示:
NOT+條件子式
條件子式+AND+條件子式
條件子式+0R+條件子式
…條件子式+OR+條件子式+AND+條件子式…將條件子句轉(zhuǎn)換為后綴表達(dá)式的步驟如下:
1)在SQL語(yǔ)法解析的基礎(chǔ)上識(shí)別SQL語(yǔ)句條件子句中操作數(shù)和運(yùn)算符,設(shè)置堆棧Z和集合C。
2)從左到右讀入以上操作數(shù)和運(yùn)算符,注意子句中的列名、列名值和嵌套查詢都作為操作數(shù)。
3)若讀到的是操作數(shù),則直接加入集合C。
4)若讀到的是運(yùn)算符且Z為空,將運(yùn)算符加入到棧中;若讀到的是運(yùn)算符且Z不為空,取出所有優(yōu)先級(jí)不小于該運(yùn)算符的棧頂元素(各運(yùn)算符的運(yùn)算優(yōu)先順序如表2所示),然后將該運(yùn)算符入棧。
表2 運(yùn)算符優(yōu)先順序Tab.2 Operator precedence
5)若讀到的是左括號(hào),將其加入到棧中;若讀到的是右括號(hào),進(jìn)行出棧操作,并將出棧的元素輸入集合C,直到彈出棧的是左括號(hào)并將其刪除。
6)最終將堆桟Z中元素輸入到集合C中,則集合C中元素構(gòu)成的表達(dá)式即為后綴表達(dá)式。
計(jì)算后綴表達(dá)式值的步驟如下:
1)設(shè)置堆棧Y,從左到右讀取集合C中后綴表達(dá)式的各元素。
2)若讀到的元素是一個(gè)操作數(shù),入棧Y。
3)若讀到的元素是個(gè)操作符,從堆棧Y中取出兩個(gè)元素并執(zhí)行這一操作符的運(yùn)算,并將運(yùn)算結(jié)果加入堆找Z(注意把“<”、“>"和“=”作為運(yùn)算符做邏輯運(yùn)算,同時(shí)注意如果出現(xiàn)運(yùn)算數(shù)為據(jù)庫(kù)列名、列名值或嵌套查詢等無(wú)法計(jì)算結(jié)果的現(xiàn)象時(shí),統(tǒng)一設(shè)置運(yùn)算結(jié)果為“#”)。
4)讀取集合C完畢后從堆棧Y中彈出數(shù)值,即為后綴表達(dá)式的結(jié)果。
后綴表達(dá)式的值為1或常數(shù),說(shuō)明條件句子恒為真;后綴表達(dá)式的值為0,說(shuō)明條件子句恒為假;后綴表達(dá)式的值為#,說(shuō)明條件子句不存在恒真/假的現(xiàn)象。
本文系統(tǒng)采用甚于SQL語(yǔ)句結(jié)構(gòu)的安全檢測(cè)和基于用戶行為規(guī)則的安全檢測(cè)相結(jié)合的安全檢測(cè)策略,發(fā)現(xiàn)和識(shí)別用戶對(duì)數(shù)據(jù)庫(kù)操作過(guò)程中的異常行為。其中,基于SQL語(yǔ)句的安全檢測(cè)從SQL語(yǔ)句本身的安全角度進(jìn)行檢測(cè)是細(xì)顆粒度的檢測(cè),但其只能檢測(cè)已知類型的異常操作行為基于用戶行為規(guī)則的安全檢測(cè)從用戶操作行為的角度進(jìn)行檢測(cè),是粗顆粒度的檢測(cè),但可檢測(cè)未知的異常操作行為。
根據(jù)系統(tǒng)設(shè)計(jì)原理,目前醫(yī)療信息系統(tǒng)能檢測(cè)的用戶異常操作主要有以下3類:
1)合法用戶越權(quán)操作。指合法用戶對(duì)數(shù)據(jù)庫(kù)的操作超越了自身權(quán)限范圍,不同于自身權(quán)限的操作行為。
2)入侵者操作。指入侵者通過(guò)非法手段登錄數(shù)掘庫(kù)系統(tǒng)后對(duì)數(shù)據(jù)庫(kù)的操作行為,其操作不同于正常數(shù)據(jù)庫(kù)用戶的操作行為。
3)SQL注入攻擊。
系統(tǒng)安全檢測(cè)結(jié)果保存在數(shù)據(jù)庫(kù)安全審計(jì)日志所在的數(shù)據(jù)庫(kù)中,在原安全審計(jì)日志的基礎(chǔ)上增加操作安全性屬性,如表3所示。
表3 安全檢測(cè)結(jié)果屬性Tab.3 Attributes of security detection result
文中詳細(xì)介紹了安全審計(jì)檢測(cè)模塊和規(guī)則生成模塊的設(shè)計(jì)方法與原理。醫(yī)療信息系統(tǒng)安全檢測(cè)駣用基于用戶行為規(guī)則的安全檢測(cè)和基于SQL語(yǔ)句結(jié)構(gòu)的安全檢測(cè)相結(jié)合的方式。基于用戶行為規(guī)則的安全檢測(cè)是在建立數(shù)據(jù)庫(kù)用戶行為模型的基礎(chǔ)上生成用戶行為規(guī)則,從而實(shí)現(xiàn)異常檢測(cè),并考慮了訓(xùn)練集的安全性因素?;赟QL語(yǔ)句結(jié)構(gòu)的安全檢測(cè)是在分析SQL語(yǔ)法結(jié)構(gòu)的基礎(chǔ)上實(shí)現(xiàn)的,其彌補(bǔ)了基于用戶規(guī)則檢測(cè)顆粒度粗的缺點(diǎn)。隨著醫(yī)療衛(wèi)生信息事業(yè)的發(fā)展和信息安全技術(shù)手段的更新,醫(yī)療信息安全也會(huì)暴露并提出新的問(wèn)題和需求。對(duì)于當(dāng)前的醫(yī)療信息安全,需要在醫(yī)療信息標(biāo)準(zhǔn)下更深入、廣泛地結(jié)合醫(yī)療流程和醫(yī)療行業(yè)的實(shí)際進(jìn)行研究,且還需關(guān)注信息安全新技術(shù)的發(fā)展以便與醫(yī)療信息安全相結(jié)合,使醫(yī)療設(shè)備和醫(yī)療信息安全充分共享,以至于更好地提高醫(yī)療服務(wù)質(zhì)量。
[1]姚曄弘,張建國(guó).基于IHE ITI-ATNA技術(shù)規(guī)范的區(qū)域醫(yī)療信息共享安全問(wèn)題的解決方案[J].中國(guó)醫(yī)療器械雜志,2008,32(5):332-333.YAO Ye-hong,ZHANG Jian-guo.Solution based on IHE ITIATNA technical specifications regional health information sharing security issues[J].Chinese Journal of Medical Instrumentation,2008,32 (5):332-333.
[2]劉建勛.基于Windows的DICOM標(biāo)準(zhǔn)的研究與應(yīng)用[D].包頭:內(nèi)蒙古科技大學(xué),2004.
[3]張凱,呂揚(yáng)生.DICOM標(biāo)準(zhǔn)及應(yīng)用[J].世界醫(yī)療機(jī)械,2001,7(5):58-61.ZHANG Kai,LV Yang-sheng.DICOMstandard and application[J]World Medical Equipment,2001,7(5):58-61.
[4]谷宇.HL7消息解析及傳輸技術(shù)的研究與實(shí)現(xiàn)[D].包頭:內(nèi)蒙古科技大學(xué),2010.
[5]邱峰,田捷,曹勇,等.PACS系統(tǒng)綜述[J].中國(guó)醫(yī)學(xué)影像技術(shù),2000,16(1):73-75.QIU Feng,TIAN Jie,CAO Yong,et al.PACS systematic review[J].China Medical Imaging Technology,2000,16(1):73-75.
[6]高嵐.醫(yī)學(xué)信息學(xué)[M].北京:科學(xué)出版社,2007.
[7]National electrical manufacturers association.Digital Imaging and Communications inMedicine[S].(Part1~Part8, Part 15),2007.
[8]Coquand R,Casse M,Barraud S,et al.IEEE Trans[C].Electron Devices 60,2013:727.