【導讀】安全研究人員在很多醫療儀器中都發(fā)現了安全不足,為了應對這種不利的局面,美國食品藥品監督管理局(FDA)發(fā)布了關(guān)于管理醫療設備安全性的規范。此公告意在重申除了使用安全之外,信息安全也應納入醫療設備研發(fā)過(guò)程中的關(guān)鍵考慮因素。
在醫療器材研發(fā)過(guò)程中,大量的精力被投注于確保安全性和降低患者風(fēng)險的考慮。盡管如此,隨著(zhù)不同儀器聯(lián)網(wǎng)性能的不斷提升,安全研究人員在很多醫療儀器中都發(fā)現了安全不足,其中一個(gè)例子就是在一種常用輸液泵中發(fā)現的1,400個(gè)安全漏洞。
為了應對這種不利的局面,美國食品藥品監督管理局(FDA)發(fā)布了關(guān)于管理醫療設備安全性的規范。此公告意在重申除了使用安全之外,信息安全也應納入醫療設備研發(fā)過(guò)程中的關(guān)鍵考慮因素。
針對網(wǎng)絡(luò )安全與靜態(tài)分析的FDA指導原則
在意識到醫療儀器應當遵守更為嚴格的安全性目標后,FDA在2014年頒布了網(wǎng)絡(luò )安全管理指導原則;隨著(zhù)無(wú)線(xiàn)通信、網(wǎng)絡(luò )和互聯(lián)網(wǎng)在醫療設備中更進(jìn)一步的普及和應用,醫療設備的安全性也面臨著(zhù)前所未有的挑戰。
進(jìn)一步來(lái)說(shuō),與其他儀器不同的是,醫療設備直接關(guān)系到患者的安全和隱私。風(fēng)險管理(包括安全性強化和漏洞管理)是醫療設備軟件開(kāi)發(fā)中最重要的組成部分——而靜態(tài)分析則是這個(gè)過(guò)程中最重要的環(huán)節。
家庭護理和“可穿戴”醫療設備數量呈現指數型成長(cháng),而它們僅是醫療設備中的一個(gè)分支。同樣,對于其他醫療和物聯(lián)網(wǎng)(IoT)的商業(yè)契機來(lái)說(shuō),這些發(fā)展都面臨著(zhù)安全、資料安全性和隱私的考慮。
FDA的指導原則涵蓋范圍較廣,并且意在建立高級安全性管理規范;此指導原則列舉了需要啟用自動(dòng)化工具的眾多原因,其中包括以下幾點(diǎn):
• “制造商應當在設計和開(kāi)發(fā)醫療設備時(shí)滿(mǎn)足網(wǎng)絡(luò )安全”;這也是GrammaTech公司一直著(zhù)重探討的一個(gè)課題——在研發(fā)的最開(kāi)始就將安全性考慮進(jìn)來(lái),而不是研發(fā)后再作為附加項目,這是非常關(guān)鍵的。以下是詳細的說(shuō)明。
• “在進(jìn)行設計和開(kāi)發(fā)時(shí)就應該適當的對所涵蓋資產(chǎn)、威脅和安全漏洞的定義進(jìn)行探討”; 靜態(tài)分析與良好的軟件開(kāi)發(fā)流程無(wú)縫集成,并特別著(zhù)重于檢測與識別程序代碼和二進(jìn)制代碼中的安全漏洞。
• “評估設備功能中的安全威脅和漏洞對最終用戶(hù)/患者中所造成的影響,以及這些威脅與漏洞被利用的可能性”;舉例來(lái)說(shuō),通過(guò)對遭污染數據的分析,GrammaTech 的CodeSonar工具能追蹤整個(gè)軟件的數據源,并辨別來(lái)自外部的潛在安全漏洞。
• “在提交產(chǎn)品上市審核前,制造商應當提供與其醫療設備網(wǎng)絡(luò )安全相關(guān)的文件”;靜態(tài)分析工具提供報告工具,以協(xié)助處理文件、測試完成以及軟件就緒。
“安全優(yōu)先”的設計
安全性(security)并非一直是醫療儀器的首要考慮因素——長(cháng)時(shí)間以來(lái),儀器間的通信僅限于本地網(wǎng)絡(luò )并掌握在可信賴(lài)的操作人員和設備中。然而現代化的醫療設備普遍擁有聯(lián)網(wǎng)功能(且往往是互聯(lián)網(wǎng)), 因此這些設備也對安全性和隱私有著(zhù)更高的要求。所以在研發(fā)周期的較初期階段就需要遵循安全策略。
軟件開(kāi)發(fā)周期中的軟件安全性
“安全優(yōu)先”的設計方法,意味著(zhù)將集成安全性視為軟件開(kāi)發(fā)周期(SDLC)中的一個(gè)最高優(yōu)先級,如圖1所示;開(kāi)發(fā)者和項目經(jīng)理應該在以下的關(guān)鍵階段注意各種情況。
• 需求階段:一旦可進(jìn)行系統范圍內的威脅評估,就可以了解醫療設備中的威脅面(threat surface)。在需求階段,可以導入安全性相關(guān)的需求以及已知的“濫用案例(黑客可能會(huì )追蹤的用例)”和風(fēng)險分析;后面會(huì )進(jìn)一步提及應該被導入并加以考慮的安全性需求。此階段十分關(guān)鍵,因為在這個(gè)時(shí)間點(diǎn),安全性成為一個(gè)已知的項目目標并已擁有適當水平的風(fēng)險管理、調度和成本計算。
• 設計和架構:在候選架構完成時(shí),安全性必須納入審核項目中(之前可能并未納入);根據已知威脅評估和安全性需求對架構進(jìn)行審核,為這個(gè)開(kāi)發(fā)階段增加了一個(gè)新的環(huán)節。在這個(gè)階段,應該建立測試計劃,涵蓋針對預知“濫用案例”的安全性分析。
• 代碼開(kāi)發(fā):在撰寫(xiě)程序代碼階段,遵循安全性指南和編碼標準是非常重要的;使用例如靜態(tài)分析等自動(dòng)化工具,是確保安全漏洞不被導入產(chǎn)品的關(guān)鍵。測試和對自動(dòng)化測試(包含安全性分析)在此階段十分重要。
• 集成和測試:在系統整體上開(kāi)始成形時(shí),子系統和系統測試可以在集成以及上市之前發(fā)現安全漏洞。自動(dòng)化滲透測試工具在這個(gè)階段十分有效,可以發(fā)現在較早開(kāi)發(fā)階段未能發(fā)現的安全漏洞;最終產(chǎn)品上市前的包裝與配置是此階段最后一個(gè)步驟的關(guān)鍵,需要確保這款開(kāi)箱即用產(chǎn)品具備最高的安全性,可預防大多數目前市面上聯(lián)網(wǎng)設備常見(jiàn)的問(wèn)題。
• 部署和維護:當產(chǎn)品進(jìn)入市場(chǎng)并大范圍部署后,修補安全漏洞所需的費用將會(huì )大幅飆升;一款以“安全優(yōu)先”設計方法出發(fā)的產(chǎn)品,發(fā)生安全漏洞事件的幾率較低,但是供貨商必須具備能持續應對安全性挑戰的能力。在設計產(chǎn)品時(shí)至關(guān)重要的一點(diǎn)就是采用可更新的固件和軟件,從而能迅速應對新出現的問(wèn)題;不過(guò)在產(chǎn)品進(jìn)行維護和改版時(shí),安全性仍然是一個(gè)持續性的目標,新出現的安全漏洞和威脅也需要以新一代的方案反饋到系統設計中。

圖1:疊加到軟件開(kāi)發(fā)周期上的安全性設計流程
安全性需求
確保醫療設備安全性需要經(jīng)過(guò)許多考慮;以下列出了安全性需求的關(guān)鍵案例——其中有一些可能凌駕于對產(chǎn)品功能性的需求:
• 用戶(hù)驗證──根據不同的用戶(hù)等級,驗證用戶(hù)存取數據與執行功能的權限。 • 防篡改──防止通過(guò)改變設備軟硬件來(lái)規避安全防護機制的行為。 • 安全存儲──確保存儲的數據受到在線(xiàn)或離線(xiàn)訪(fǎng)問(wèn)保護,包括利用加密文件存儲與數字版權管理(DRM)等技術(shù)。 • 安全通信──確保數據傳輸安全性,同時(shí)避免通過(guò)連接通道(如網(wǎng)絡(luò )、USB端口)的有害存??;雖然網(wǎng)絡(luò )連接通常是第一個(gè)被注意到的,別忘了還有其他可能遭遇攻擊的通道。 • 可靠性和可用性──在面臨進(jìn)行中的黑客攻擊時(shí),仍能維持醫療設備的安全工作。
靜態(tài)分析工具對IEC 62304標準和醫療設備軟件的適用性
盡管IEC 62304標準沒(méi)有明確要求開(kāi)發(fā)工具,卻列出了對嚴格測試、驗收標準和可追溯性的要求;有鑒于目前大部分醫療設備軟件項目的涵蓋范圍,在沒(méi)有工具的情況下要完成那些功能要求是不實(shí)際的。例如:
• 第5.5.2節 對一個(gè)軟件單元驗證步驟的要求: 制造商需要建立相關(guān)策略、方法和步驟來(lái)驗證每一個(gè)軟件單元
• 第5.5.3節要求: 制造商需要在較大型軟件項目的集成之前,為軟件單元建立適當的驗收標準,并確保軟件單元符合驗收標準……軟件程序代碼是否符合程序編寫(xiě)流程和編碼標準?
• 第 5.5.4節提供額外驗收標準: 當呈現于設計時(shí),制造商需要依以下情況包含適合的額外驗收標準:正確的事件序列;數據和控制流程;經(jīng)計劃的資源分配;錯誤處理(錯誤描述、隔離和復原);變量初始化;自我診斷;內存管理和內存溢出;以及邊界條件。
這些驗收標準中的大多數非常適合靜態(tài)應用程序安全檢測(SAST),即靜態(tài)分析工具;實(shí)際上已經(jīng)有采用靜態(tài)分析的強力佐證──FDA曾使用GrammaTech的CodeSonar工具,在一連串的輸液泵故障事件中,分析醫療設備軟件并評估其源代碼的質(zhì)量。
SAST工具在安全性設計中所扮演的角色
SAST工具在編碼和集成階段為軟件開(kāi)發(fā)提供了關(guān)鍵性的支持;無(wú)論是在開(kāi)發(fā)還是維護階段,持續確保程序代碼質(zhì)量,能大幅降低軟件安全性與質(zhì)量可能帶來(lái)的成本與風(fēng)險。以下是其主要優(yōu)勢:
• 靜態(tài)分析可以找出基于覆蓋的測試無(wú)法發(fā)現的錯誤(bug)──后者的單元測試一般通過(guò)軟件覆蓋程度的量測來(lái)進(jìn)行,諸如聲明或判定覆蓋等;盡管已經(jīng)很?chē)揽?,但仍有一些缺陷?huì )通過(guò)這類(lèi)測試。靜態(tài)分析工具能識別這類(lèi)缺陷。
• 靜態(tài)分析工具能在較早階段發(fā)現缺陷──能在產(chǎn)品開(kāi)發(fā)者手上就避免缺陷發(fā)生是最理想的情況,這樣可以節省隨著(zhù)項目進(jìn)展而不斷增加的測試和修復所需成本。
• 靜態(tài)分析可以應對SOUP──在醫療設備軟件中,未知來(lái)源軟件(SOUP)需要特別的應對方式;一款良好的靜態(tài)分析工具能夠評估第三方和商用現成軟件(包括二進(jìn)制可執行文件和庫)的質(zhì)量和安全性。
• 靜態(tài)分析可以加速上市前核準文件的建立:將軟件單元驗收結果建文件,是證明產(chǎn)品遵循認證標準的關(guān)鍵;靜態(tài)分析工具擁有大量的報告功能,可符合FDA審核要求。
結論
安全性現在已經(jīng)成為醫療設備軟件研發(fā)過(guò)程中的首要風(fēng)險/責任管理因素;在研發(fā)初期就將安全性納入到產(chǎn)品設計考慮,不但是FDA的要求,也是一個(gè)良好的習慣。在縮短醫療設備上市時(shí)間以及上市前的審批流程當中,靜態(tài)分析工具扮演了重要角色。
文章來(lái)源于電子技術(shù)設計。
推薦閱讀: