在醫(yī)療器材研發(fā)過程中,大量的精力被投注于確保安全性和降低患者風(fēng)險的考慮;盡管如此,隨著不同儀器連網(wǎng)性能的不斷提升,安全研究人員在很多醫(yī)療儀器中都發(fā)現(xiàn)了安全漏洞,其中一個例子就是在一種非常普及的輸液幫浦(infusion pump)中發(fā)現(xiàn)的1,400個安全弱點。
為了因應(yīng)這種不利的局面,美國食品藥物管理局(FDA)發(fā)布了關(guān)于管理醫(yī)療設(shè)備安全性的規(guī)范。此公告意在重申除了使用安全之外,訊息安全也應(yīng)納入醫(yī)療設(shè)備研發(fā)過程中的關(guān)鍵考慮。
針對網(wǎng)絡(luò)安全與靜態(tài)分析的FDA指導(dǎo)原則
在意識到醫(yī)療儀器應(yīng)當(dāng)遵守更為嚴(yán)格的安全性目標(biāo)后,F(xiàn)DA在2014年頒布了網(wǎng)絡(luò)安全管理指導(dǎo)原則;隨著無線通信、網(wǎng)絡(luò)和因特網(wǎng)在醫(yī)療設(shè)備中更進一步的普及和應(yīng)用,醫(yī)療設(shè)備的安全性也面臨著前所未有的挑戰(zhàn)。
進一步來說,與其他儀器不同的是,醫(yī)療設(shè)備直接關(guān)系到患者的安全和隱私。風(fēng)險管理(包括安全性強化和弱點管理)是醫(yī)療設(shè)備軟件開發(fā)中最重要的組成部分——而靜態(tài)分析(Static Analysis)則是這個過程中最重要的環(huán)節(jié)。
家庭護理和「穿戴式」醫(yī)療裝置數(shù)量呈現(xiàn)指數(shù)型成長,而它們僅是醫(yī)療設(shè)備中的一個分支。同樣,對于其他醫(yī)療和物聯(lián)網(wǎng)(IoT)的商業(yè)契機來說,這些發(fā)展都面臨著安全、資料安全性和隱私的考慮。
FDA的指導(dǎo)原則涵蓋范圍較廣,并且意在建立高層級的安全性管理規(guī)范;此指導(dǎo)原則列舉了需要啟用自動化工具的眾多原因,其中包括以下幾點:
˙「制造商應(yīng)當(dāng)在設(shè)計和開發(fā)醫(yī)療設(shè)備時將訊息安全性列入考慮」:這也是軟件工具暨網(wǎng)絡(luò)安全解決方案GrammaTech一直著重探討的一個課題——在研發(fā)的最開始就將安全性納入設(shè)計考慮,而不是研發(fā)后再作為附加項目,這是非常關(guān)鍵的。以下是詳細的說明。
˙「在進行設(shè)計和開發(fā)時就應(yīng)該適當(dāng)?shù)膶λw資產(chǎn)、威脅和安全弱點的定義進行探討」:在良好的軟件開發(fā)流程無縫整合靜態(tài)分析,并特別著重于于偵測與識別程序代碼和二進制代碼中的安全弱點。
˙「評估設(shè)備功能中之安全威脅和弱點對終端使用者/患者中所造成的影響,以及這些威脅與弱點被利用的可能性」:舉例來說,透過對遭污染數(shù)據(jù)的分析,GrammaTech的CodeSonar工具能追蹤整個軟件的數(shù)據(jù)源,并辨別來自外部的潛在安全弱點。
˙「在提交產(chǎn)品上市審核前,制造商應(yīng)當(dāng)提供與其醫(yī)療設(shè)備資安相關(guān)的文件」:靜態(tài)分析工具能提供報告功能,以協(xié)助準(zhǔn)備這類文件、測試完備度以及軟件是否就緒。
「安全性優(yōu)先」的設(shè)計
安全性(security)并非一直是醫(yī)療儀器的首要考慮因素——長時間以來,儀器間的通訊僅限于本地網(wǎng)絡(luò)并掌握在可信賴的操作人員和設(shè)備中。然而現(xiàn)代化的醫(yī)療設(shè)備普遍擁有連網(wǎng)功能(且通常能連上因特網(wǎng)), 因此這些設(shè)備也對安全性和隱私有著更高的要求。所以在研發(fā)周期的較初期階段就需要遵循安全策略。
軟件開發(fā)周期中的軟件安全性
「安全性優(yōu)先」的設(shè)計理念,意味著將整合安全性視為軟件開發(fā)周期(SDLC)中的首要考慮,如圖1所示;開發(fā)者和項目經(jīng)理應(yīng)該在以下的關(guān)鍵階段注意各種情況。
圖 1 迭加于軟件開發(fā)周期的安全性設(shè)計流程。
˙需求階段(requirements stage):一旦可進行系統(tǒng)范圍內(nèi)的威脅評估,就可以了解醫(yī)療設(shè)備中的威脅面(threat surface)。在需求階段,可以導(dǎo)入安全性相關(guān)的需求以及已知的「濫用案例(abuse cases,即黑客可能會追蹤的使用案例)」和風(fēng)險分析;后面會進一步提及應(yīng)該被導(dǎo)入并加以考慮的安全性需求。此階段十分關(guān)鍵,因為在這個時間點,安全性成為一個已知的項目目標(biāo)并已擁有適當(dāng)水平的風(fēng)險管理、開發(fā)時程和成本。
˙設(shè)計和架構(gòu)(Design and architecture):在候選架構(gòu)完成時,安全性必須納入審核項目中(之前可能并未納入);根據(jù)已知威脅評估和安全性需求對架構(gòu)進行審核,為這個開發(fā)階段增加了一個新的環(huán)節(jié)。在這個階段,應(yīng)該建立測試計劃,涵蓋針對預(yù)知「濫用案例」的安全性分析。
˙程序代碼開發(fā)(Code development):在撰寫程序代碼階段,遵循安全性指南和編碼標(biāo)準(zhǔn)非常重要;使用例如靜態(tài)分析等自動化工具,是確保安全性弱點不被導(dǎo)入產(chǎn)品的關(guān)鍵。測試和對自動化測試(包含安全性分析)在此階段十分重要。
˙整合和測試(Integration and Test):在系統(tǒng)整體上開始成形時,子系統(tǒng)和系統(tǒng)測試可以在整合,以及上市之前發(fā)現(xiàn)安全弱點。自動化滲透測試(penetration testing)工具在這個階段十分有效,可以發(fā)現(xiàn)在較早開發(fā)階段未能發(fā)現(xiàn)的安全性弱點;最終產(chǎn)品上市前的包裝與配置是此階段最后一個步驟的關(guān)鍵,需要確保這款開箱即可使用的產(chǎn)品的具備最高的安全性,可預(yù)防大多數(shù)目前市面上連網(wǎng)裝置常見的問題。
˙布建和維護(deployment and maintenance):當(dāng)產(chǎn)品進入市場并大范圍布建后,修補安全性弱點所需的費用將會大幅飆升;一款以「安全性優(yōu)先」設(shè)計理念出發(fā)的產(chǎn)品,發(fā)生安全漏洞事件的機率較低,但是供貨商必須具備能持續(xù)因應(yīng)安全性挑戰(zhàn)的能力。在設(shè)計產(chǎn)品時至關(guān)重要的一點就是采用可更新的韌體和軟件,從而能迅速因應(yīng)新出現(xiàn)的問題;不過在產(chǎn)品進行維護和改版時,安全性仍然是一個持續(xù)性的目標(biāo),新出現(xiàn)的安全性弱點和威脅也需要以新一代的方案回饋到系統(tǒng)設(shè)計中。
安全性需求
確保醫(yī)療設(shè)備安全性需要經(jīng)過許多考慮;以下列出了安全性需求的關(guān)鍵案 例──其中有一些可能凌駕于對產(chǎn)品功能性的需求:
__˙使用者身份驗證(User authentication)──__根據(jù)不同的用戶等級,驗證用戶存取數(shù)據(jù)與 執(zhí)行功能的權(quán)限。
__˙防篡改(Tamper resistance)──__防止透過改變設(shè)備軟硬件來規(guī)避安全防護機制的行為。
__˙安全儲存(Secure storage)──__確保設(shè)備儲存數(shù)據(jù)無論透過在線或脫機存取的安全性,包括用檔案加密與數(shù)字版權(quán)管理(DRM)技術(shù)。
__˙安全通訊(Secure communication)──__確保數(shù)據(jù)傳輸安全性,同時避免透過鏈接通路(如網(wǎng)絡(luò)、USB端口)的有害存取;雖然網(wǎng)絡(luò)鏈接通常是第一個被注意到的,別忘了還有其他可能遭遇攻擊的通道。
__˙可靠性和可用性(Reliability and availability)──__在面臨進行中的黑客攻擊時,仍能維持醫(yī)療設(shè)備的安全運作。
靜態(tài)分析工具對IEC 62304標(biāo)準(zhǔn)和醫(yī)療設(shè)備軟件的適用性
盡管IEC62304標(biāo)準(zhǔn)沒有明確要求開發(fā)工具,卻列出了對嚴(yán)格測試、驗收標(biāo)準(zhǔn)(acceptance criteria)和可追溯性(traceability)的要求;有鑒于目前大部分醫(yī)療設(shè)備軟件項目的涵蓋范圍,在沒有工具的情況下要完成那些功能要求是不實際的。例如:
IEC62304標(biāo)準(zhǔn)Section 5.5.2對一個軟件單元(software unit)驗證步驟的要求:制造商需要建立相關(guān)策略、方法和步驟來驗證每一個軟件單元。
Section5.5.3要求:制造商需要在較大型軟件項目的整合之前,為軟件單元建立適當(dāng)?shù)尿炇諛?biāo)準(zhǔn),并確保軟件單元符合驗收標(biāo)準(zhǔn)…軟件程序代碼是否符合程序編寫流程和編碼標(biāo)準(zhǔn)?
Section 5.5.4提供額外驗收標(biāo)準(zhǔn):當(dāng)呈現(xiàn)于設(shè)計時,制造商需要依以下情況包含適合的額外驗收標(biāo)準(zhǔn):正確的事件序列(event sequence);數(shù)據(jù)和控制流程;經(jīng)計劃的資源分配;錯誤處理(錯誤描述、隔離和復(fù)原);變量初始化;自我診斷;內(nèi)存管理和內(nèi)存溢位(overflow);以及邊界條件。
這些驗收標(biāo)準(zhǔn)中的大多數(shù)非常適合靜態(tài)應(yīng)用程序安全檢測(SAST),即靜態(tài)分析工具;實際上已經(jīng)有采用靜態(tài)分析的強力左證──FDA曾使用GrammaTech的CodeSonar工具,在一連串的輸液幫浦故障事件中,分析醫(yī)療設(shè)備軟件并評估其源代碼的質(zhì)量。
SAST工具在安全性設(shè)計中所扮演的角色
SAST工具在編碼和整合階段為軟件開發(fā)提供了關(guān)鍵性的支持;無論是在開發(fā)還是維護階段,持續(xù)確保程序代碼質(zhì)量,能大幅降低軟件安全性與質(zhì)量可能帶來的成本與風(fēng)險。以下是其主要優(yōu)勢:
__˙靜態(tài)分析可以找出基于覆蓋(coverage-based)的測試無法發(fā)現(xiàn)的錯誤(bug)──__后者的單元測試一般透過軟件覆蓋程度的量測來進行,諸如聲明(statement)決策(decision)的覆蓋等;盡管已經(jīng)很嚴(yán)苛,但仍有一些缺陷會通過這類測試。靜態(tài)分析工具能識別這類缺陷。
__˙靜態(tài)分析工具能在較早階段發(fā)現(xiàn)缺陷──__能在產(chǎn)品開發(fā)者手上就避免缺陷發(fā)生是最理想的情況,這樣可以節(jié)省隨著項目進展而不斷增加的測試和修復(fù)所需成本。
__˙靜態(tài)分析可以因應(yīng)SOUP──__在醫(yī)療設(shè)備軟件中,未知來源軟件(SOUP)需要特別的因應(yīng)方式;一款良好的靜態(tài)分析工具能夠評估第三方和商用現(xiàn)成軟件(包括二進制應(yīng)用程序和鏈接庫)的質(zhì)量和安全性。
__˙靜態(tài)分析可以加速上市前核準(zhǔn)文件的建立──__將軟件單元驗收結(jié)果建文件,是證明產(chǎn)品遵循認(rèn)證標(biāo)準(zhǔn)的關(guān)鍵;靜態(tài)分析工具擁有大量的報告功能,可符合FDA審核要求。
結(jié)論
安全性現(xiàn)在已經(jīng)成為醫(yī)療設(shè)備軟件研發(fā)過程中的首要風(fēng)險/責(zé)任管理因素;在研發(fā)初期就將安全性納入產(chǎn)品設(shè)計考慮,不但是FDA的要求也是一個良好的習(xí)慣;對于縮短醫(yī)療設(shè)備上市時程,以及產(chǎn)品通過上市前核準(zhǔn)流程,靜態(tài)分析工具扮演了重要角色。
-
安全性
+關(guān)注
關(guān)注
0文章
93瀏覽量
19183 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3292瀏覽量
57918 -
存儲數(shù)據(jù)
+關(guān)注
關(guān)注
0文章
89瀏覽量
14154
發(fā)布評論請先 登錄
相關(guān)推薦
評論