【導讀】安全研究人員在很多醫(yī)療儀器中都發(fā)現了安全不足,為了應對這種不利的局面,美國食品藥品監(jiān)督管理局(FDA)發(fā)布了關于管理醫(yī)療設備安全性的規(guī)范。此公告意在重申除了使用安全之外,信息安全也應納入醫(yī)療設備研發(fā)過程中的關鍵考慮因素。
在醫(yī)療器材研發(fā)過程中,大量的精力被投注于確保安全性和降低患者風險的考慮。盡管如此,隨著不同儀器聯網性能的不斷提升,安全研究人員在很多醫(yī)療儀器中都發(fā)現了安全不足,其中一個例子就是在一種常用輸液泵中發(fā)現的1,400個安全漏洞。
為了應對這種不利的局面,美國食品藥品監(jiān)督管理局(FDA)發(fā)布了關于管理醫(yī)療設備安全性的規(guī)范。此公告意在重申除了使用安全之外,信息安全也應納入醫(yī)療設備研發(fā)過程中的關鍵考慮因素。
針對網絡安全與靜態(tài)分析的FDA指導原則
在意識到醫(yī)療儀器應當遵守更為嚴格的安全性目標后,FDA在2014年頒布了網絡安全管理指導原則;隨著無線通信、網絡和互聯網在醫(yī)療設備中更進一步的普及和應用,醫(yī)療設備的安全性也面臨著前所未有的挑戰(zhàn)。
進一步來說,與其他儀器不同的是,醫(yī)療設備直接關系到患者的安全和隱私。風險管理(包括安全性強化和漏洞管理)是醫(yī)療設備軟件開發(fā)中最重要的組成部分——而靜態(tài)分析則是這個過程中最重要的環(huán)節(jié)。
家庭護理和“可穿戴”醫(yī)療設備數量呈現指數型成長,而它們僅是醫(yī)療設備中的一個分支。同樣,對于其他醫(yī)療和物聯網(IoT)的商業(yè)契機來說,這些發(fā)展都面臨著安全、資料安全性和隱私的考慮。
FDA的指導原則涵蓋范圍較廣,并且意在建立高級安全性管理規(guī)范;此指導原則列舉了需要啟用自動化工具的眾多原因,其中包括以下幾點:
• “制造商應當在設計和開發(fā)醫(yī)療設備時滿足網絡安全”;這也是GrammaTech公司一直著重探討的一個課題——在研發(fā)的最開始就將安全性考慮進來,而不是研發(fā)后再作為附加項目,這是非常關鍵的。以下是詳細的說明。
• “在進行設計和開發(fā)時就應該適當的對所涵蓋資產、威脅和安全漏洞的定義進行探討”; 靜態(tài)分析與良好的軟件開發(fā)流程無縫集成,并特別著重于檢測與識別程序代碼和二進制代碼中的安全漏洞。
• “評估設備功能中的安全威脅和漏洞對最終用戶/患者中所造成的影響,以及這些威脅與漏洞被利用的可能性”;舉例來說,通過對遭污染數據的分析,GrammaTech 的CodeSonar工具能追蹤整個軟件的數據源,并辨別來自外部的潛在安全漏洞。
• “在提交產品上市審核前,制造商應當提供與其醫(yī)療設備網絡安全相關的文件”;靜態(tài)分析工具提供報告工具,以協助處理文件、測試完成以及軟件就緒。
“安全優(yōu)先”的設計
安全性(security)并非一直是醫(yī)療儀器的首要考慮因素——長時間以來,儀器間的通信僅限于本地網絡并掌握在可信賴的操作人員和設備中。然而現代化的醫(yī)療設備普遍擁有聯網功能(且往往是互聯網), 因此這些設備也對安全性和隱私有著更高的要求。所以在研發(fā)周期的較初期階段就需要遵循安全策略。
軟件開發(fā)周期中的軟件安全性
“安全優(yōu)先”的設計方法,意味著將集成安全性視為軟件開發(fā)周期(SDLC)中的一個最高優(yōu)先級,如圖1所示;開發(fā)者和項目經理應該在以下的關鍵階段注意各種情況。
• 需求階段:一旦可進行系統范圍內的威脅評估,就可以了解醫(yī)療設備中的威脅面(threat surface)。在需求階段,可以導入安全性相關的需求以及已知的“濫用案例(黑客可能會追蹤的用例)”和風險分析;后面會進一步提及應該被導入并加以考慮的安全性需求。此階段十分關鍵,因為在這個時間點,安全性成為一個已知的項目目標并已擁有適當水平的風險管理、調度和成本計算。
• 設計和架構:在候選架構完成時,安全性必須納入審核項目中(之前可能并未納入);根據已知威脅評估和安全性需求對架構進行審核,為這個開發(fā)階段增加了一個新的環(huán)節(jié)。在這個階段,應該建立測試計劃,涵蓋針對預知“濫用案例”的安全性分析。
• 代碼開發(fā):在撰寫程序代碼階段,遵循安全性指南和編碼標準是非常重要的;使用例如靜態(tài)分析等自動化工具,是確保安全漏洞不被導入產品的關鍵。測試和對自動化測試(包含安全性分析)在此階段十分重要。
• 集成和測試:在系統整體上開始成形時,子系統和系統測試可以在集成以及上市之前發(fā)現安全漏洞。自動化滲透測試工具在這個階段十分有效,可以發(fā)現在較早開發(fā)階段未能發(fā)現的安全漏洞;最終產品上市前的包裝與配置是此階段最后一個步驟的關鍵,需要確保這款開箱即用產品具備最高的安全性,可預防大多數目前市面上聯網設備常見的問題。
• 部署和維護:當產品進入市場并大范圍部署后,修補安全漏洞所需的費用將會大幅飆升;一款以“安全優(yōu)先”設計方法出發(fā)的產品,發(fā)生安全漏洞事件的幾率較低,但是供貨商必須具備能持續(xù)應對安全性挑戰(zhàn)的能力。在設計產品時至關重要的一點就是采用可更新的固件和軟件,從而能迅速應對新出現的問題;不過在產品進行維護和改版時,安全性仍然是一個持續(xù)性的目標,新出現的安全漏洞和威脅也需要以新一代的方案反饋到系統設計中。
圖1:疊加到軟件開發(fā)周期上的安全性設計流程
安全性需求
確保醫(yī)療設備安全性需要經過許多考慮;以下列出了安全性需求的關鍵案例——其中有一些可能凌駕于對產品功能性的需求:
• 用戶驗證──根據不同的用戶等級,驗證用戶存取數據與執(zhí)行功能的權限。 • 防篡改──防止通過改變設備軟硬件來規(guī)避安全防護機制的行為。 • 安全存儲──確保存儲的數據受到在線或離線訪問保護,包括利用加密文件存儲與數字版權管理(DRM)等技術。 • 安全通信──確保數據傳輸安全性,同時避免通過連接通道(如網絡、USB端口)的有害存??;雖然網絡連接通常是第一個被注意到的,別忘了還有其他可能遭遇攻擊的通道。 • 可靠性和可用性──在面臨進行中的黑客攻擊時,仍能維持醫(yī)療設備的安全工作。
靜態(tài)分析工具對IEC 62304標準和醫(yī)療設備軟件的適用性
盡管IEC 62304標準沒有明確要求開發(fā)工具,卻列出了對嚴格測試、驗收標準和可追溯性的要求;有鑒于目前大部分醫(yī)療設備軟件項目的涵蓋范圍,在沒有工具的情況下要完成那些功能要求是不實際的。例如:
• 第5.5.2節(jié) 對一個軟件單元驗證步驟的要求: 制造商需要建立相關策略、方法和步驟來驗證每一個軟件單元
• 第5.5.3節(jié)要求: 制造商需要在較大型軟件項目的集成之前,為軟件單元建立適當的驗收標準,并確保軟件單元符合驗收標準……軟件程序代碼是否符合程序編寫流程和編碼標準?
• 第 5.5.4節(jié)提供額外驗收標準: 當呈現于設計時,制造商需要依以下情況包含適合的額外驗收標準:正確的事件序列;數據和控制流程;經計劃的資源分配;錯誤處理(錯誤描述、隔離和復原);變量初始化;自我診斷;內存管理和內存溢出;以及邊界條件。
這些驗收標準中的大多數非常適合靜態(tài)應用程序安全檢測(SAST),即靜態(tài)分析工具;實際上已經有采用靜態(tài)分析的強力佐證──FDA曾使用GrammaTech的CodeSonar工具,在一連串的輸液泵故障事件中,分析醫(yī)療設備軟件并評估其源代碼的質量。
SAST工具在安全性設計中所扮演的角色
SAST工具在編碼和集成階段為軟件開發(fā)提供了關鍵性的支持;無論是在開發(fā)還是維護階段,持續(xù)確保程序代碼質量,能大幅降低軟件安全性與質量可能帶來的成本與風險。以下是其主要優(yōu)勢:
• 靜態(tài)分析可以找出基于覆蓋的測試無法發(fā)現的錯誤(bug)──后者的單元測試一般通過軟件覆蓋程度的量測來進行,諸如聲明或判定覆蓋等;盡管已經很嚴苛,但仍有一些缺陷會通過這類測試。靜態(tài)分析工具能識別這類缺陷。
• 靜態(tài)分析工具能在較早階段發(fā)現缺陷──能在產品開發(fā)者手上就避免缺陷發(fā)生是最理想的情況,這樣可以節(jié)省隨著項目進展而不斷增加的測試和修復所需成本。
• 靜態(tài)分析可以應對SOUP──在醫(yī)療設備軟件中,未知來源軟件(SOUP)需要特別的應對方式;一款良好的靜態(tài)分析工具能夠評估第三方和商用現成軟件(包括二進制可執(zhí)行文件和庫)的質量和安全性。
• 靜態(tài)分析可以加速上市前核準文件的建立:將軟件單元驗收結果建文件,是證明產品遵循認證標準的關鍵;靜態(tài)分析工具擁有大量的報告功能,可符合FDA審核要求。
結論
安全性現在已經成為醫(yī)療設備軟件研發(fā)過程中的首要風險/責任管理因素;在研發(fā)初期就將安全性納入到產品設計考慮,不但是FDA的要求,也是一個良好的習慣。在縮短醫(yī)療設備上市時間以及上市前的審批流程當中,靜態(tài)分析工具扮演了重要角色。
文章來源于電子技術設計。
推薦閱讀: