耿愷頻 劉茹
1 航天中認(rèn)軟件測評科技有限公司 (江蘇 南京 211800)
2 江蘇省醫(yī)療器械檢驗(yàn)所電氣安全室 (江蘇 南京 225300)
內(nèi)容提要: 研究HL7協(xié)議在醫(yī)療器械軟件使用時引發(fā)的一些信息安全隱患。使用多種測試工具檢測、確認(rèn)存在的一些問題,對這些問題加以分析,并提出了相關(guān)問題的一些解決思路,推動醫(yī)療器械軟件的質(zhì)量安全。
HL7協(xié)議是為了促進(jìn)醫(yī)護(hù)環(huán)境中的信息通訊。主要是提供醫(yī)療應(yīng)用程序之間進(jìn)行數(shù)據(jù)交換的標(biāo)準(zhǔn),這些應(yīng)用程序是除去或從本質(zhì)上減少用戶接口的程序和程序維護(hù),從而可以在其他方面被請求[1]。
通俗講HL7是一個應(yīng)用層協(xié)議,是醫(yī)療領(lǐng)域不同應(yīng)用之間電子傳輸?shù)膮f(xié)議,定義的是數(shù)據(jù)格式。不同廠商在設(shè)計(jì)應(yīng)用軟件之間接口時如遵循該協(xié)議的標(biāo)準(zhǔn)格式,各個醫(yī)療軟件在異構(gòu)系統(tǒng)之間,可以方便的進(jìn)行數(shù)據(jù)交互。
HL7的長期目標(biāo)就是制定一種用于醫(yī)療機(jī)構(gòu)電子數(shù)據(jù)交換的標(biāo)準(zhǔn)或協(xié)議。
它是一組支持HL7通訊的過程調(diào)用函數(shù)或控件,應(yīng)用程序按照HL7接口引擎的約定提供參數(shù),模塊之間的通訊則由HL7接口引擎完成[2]。
目前主流的醫(yī)療信息整合技術(shù)為“HL7/XML接口引擎”,它是整合多種技術(shù)合成的醫(yī)療信息整合技術(shù),用以轉(zhuǎn)譯各種醫(yī)院信息系統(tǒng)數(shù)據(jù)至符合HL7標(biāo)準(zhǔn)的XML信息格式,以實(shí)現(xiàn)各種醫(yī)療衛(wèi)生信息系統(tǒng)之間的信息共享與交換。
在數(shù)據(jù)通訊方面,一種是“HL7 Engine”方式,主要是系統(tǒng)具有HL7的通訊能力。另一種是“HL7 Ready”方式則是整個系統(tǒng)在業(yè)務(wù)流程上支持HL7。
HL7的數(shù)據(jù)以消息為基本構(gòu)成單位,一個消息由多個段組成,一個段由多個字段組成,字段是由一個或多個數(shù)據(jù)元組成的字符串。
如MSK、PID、ORC、OBR等標(biāo)識,具體含義可參考HL7協(xié)議說明。
HL7消息實(shí)例一
由上方的實(shí)例中可以發(fā)現(xiàn),該消息中包含了較多的用戶敏感信息,如患者出生年月、身份證號碼、家庭住址、手機(jī)號碼以及相關(guān)的檢測結(jié)果等。
HL7消息實(shí)例二(圖1)
該信息是實(shí)驗(yàn)室檢驗(yàn)分析設(shè)備生成結(jié)果后向?qū)嶒?yàn)室LIS系統(tǒng)發(fā)送檢測結(jié)果,屬于“HL7 Ready”方式,消息中包含了患者標(biāo)識以及檢測結(jié)果。
目前較多的PACS系統(tǒng)會與HIS系統(tǒng)進(jìn)行消息的交互,交互協(xié)議基本使用HL7,醫(yī)用檢驗(yàn)分析設(shè)備與LIS系統(tǒng)交互則更加深入,患者信息、檢測結(jié)果、樣本申請信息等都使用HL7協(xié)議進(jìn)行交互。而且隨著醫(yī)療器械軟件的日趨增多和醫(yī)院信息系統(tǒng)的整合要求,HL7協(xié)議會使用的越來越多。
HL7的主要目標(biāo)是支持多系統(tǒng)間的數(shù)據(jù)交換,使用的是開放的統(tǒng)一的標(biāo)準(zhǔn),該標(biāo)準(zhǔn)是對所有人開放,也就意味著任何人都可以解析相關(guān)的交換數(shù)據(jù)。
更嚴(yán)重的問題在于,HL7協(xié)議制定時主要是為解決醫(yī)療系統(tǒng)信息交互的需求,是為了多系統(tǒng)對接和維護(hù)的方便,所以在安全性方面并未著重考慮,查詢現(xiàn)有協(xié)議也未發(fā)現(xiàn)對消息的用戶認(rèn)證機(jī)制有要求,對敏感數(shù)據(jù)和傳遞參數(shù)也未有加密規(guī)定,在實(shí)際使用中多數(shù)廠商也未從信息安全方面考慮該協(xié)議的使用。
以某廠商實(shí)際產(chǎn)品為例。使用soap接口,消息體中包含hl7消息格式(圖2)。
分析以上報(bào)文存在兩個問題:
? 缺乏用戶認(rèn)證機(jī)制,非授權(quán)訪問無法限制。
我們使用soap消息模擬器,模擬客戶端發(fā)送相關(guān)請求消息,服務(wù)端無法拒絕該請求,非授權(quán)訪問得到允許。
? 消息體中傳輸參數(shù)未進(jìn)行加密,消息內(nèi)容泄漏。
圖1. 消息內(nèi)容分析
圖2. 網(wǎng)絡(luò)報(bào)文解析截圖
查看報(bào)文可見傳輸?shù)幕颊咝畔?、編號以及檢查結(jié)果。結(jié)合認(rèn)證機(jī)制缺陷可進(jìn)行消息篡改攻擊,破壞數(shù)據(jù)準(zhǔn)確性。使用消息模擬器,修改原消息的參數(shù)并發(fā)送,則服務(wù)端會獲取到篡改過消息,導(dǎo)致檢查結(jié)果不準(zhǔn)確。
進(jìn)一步分析,相應(yīng)的系統(tǒng)如提供了查詢接口,那么可以使用該接口獲取大量患者敏感信息,使用更新接口,信息會被篡改,則會得到異常的檢查數(shù)據(jù),甚至是異常數(shù)據(jù)修改為正常數(shù)據(jù)。使用刪除接口,則可清空數(shù)據(jù)庫中的信息,造成重大損失。海外的醫(yī)療攻擊案例中,攻擊者并不清楚消息中參數(shù)代表的意義,但在他獲得了非授權(quán)訪問權(quán)限和參數(shù)值后,根據(jù)消息規(guī)則篡改了參數(shù)導(dǎo)致事故的發(fā)生。
hl7協(xié)議需要安全使用,尤其是消息的用戶認(rèn)證機(jī)制以及關(guān)鍵參數(shù)的保密性和防篡改性。在實(shí)際檢測工作中,可發(fā)現(xiàn)目前國內(nèi)醫(yī)療器械軟件的信息安全狀況不容樂觀,需要我們積極重視醫(yī)療器械軟件中存在的安全漏洞,提高國內(nèi)醫(yī)療器械軟件的安全質(zhì)量。