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