論壇文章
【決策e話題】健保局程式碼 相信Fortify SCA把關力

守護全台2,300萬人的醫療品質,攸關全國人民的健康與福祉,台灣健保局開辦15年來,在低保費、低行政經費及高納保率的經營效率,更在國際上贏得好評。例如每人每年所需負擔的醫療費用,美國是我國的7倍,日本是我國的3倍,以醫療費用佔國內生產毛額計算,我國只有6.1%,低於絕大多數的國家。

通過政府機關資安滲透測試 建保局很謹慎

值得一提的是,健保局是國內首家取得英國標準協會授權全國認證基金會(TAF)發出的CNS17800證照之政府機構。為扎根與落實資訊安全工作,全面推動資訊安全管理系統(ISMS)建置作業;資訊單位分別於2006年3月及2008年4月通過國際資安標準ISO27001驗證,獲國內外(UKAS &TAF)資安證照各一張,更在去年通過「99年度政府機關資安滲透測試」,使健保局資安作業全面達到國際標準,完善整體防禦縱深機制。

「醫療投保等資料是極為機密之資料!」健保局林志威專員表示說明,早在民國97年,健保局就提前預防程式碼漏洞問題,導入市場研究公司Gartner評比應用程式安全檢測業界第一:Fortify SCA(Static Code Analyzer),為程式碼安全作把關。但因應個資法即將上路,《個人資料保護法》除了舊版就有的一般個人資料,更新增敏感性個資的資料類別,敏感性個資包括:醫療、基因、性生活、健康檢查、犯罪前科等資料,讓處理龐大的醫療個資資訊的健保局,更不敢掉以輕心,於今年特地採購第二套Fortify    SCA強化外包廠商程式碼安全弱點檢測,並訂定對外服務網站應用程式安全標準供局內同仁及委外開發廠商遵循,打造雙層防護、雙管齊下之縝密資安雙認證。

通過政府機關資安滲透測試不馬虎

目前,健保局委外合作廠商約5~6家,每個月外包應用程式量約有100~200件會送進來,對於編制超過50人的資訊組,不但要考量網站使用功能是否完善,還得小心翼翼檢測資安漏洞的疑慮,林志威也強調,隨著個資法即將上路,加強預防更是當務之急。故添購第二套Fortify SCA,就是專為開發商所建置,並把安全檢測分為三大類:上線檢測、驗證檢測及導入檢測三步驟,同時建立應用程式檢測標準作業程序、上線作業準則及撰寫安全標準,「外包程式上線前,都需要附上測試安全檢測報告,才能核准通過!」林志威解釋,雖然作業多一道程序,但健保局所負責之資訊事關重大,更是需要小心駛得萬年船的心態來經營,才能安全上線!

Fortify SCA+叡揚顧問 拉高資安外包品質

「把複雜化降至最低、透明度拉到最高,遊戲規則越清晰,健保局及開發商不但雙贏,最重要的是全民醫療個資作把關!」林志威笑笑地說,為了讓工作更有效率、制度更完善,健保局特地協同叡揚以顧問服務方式進行應用程式導入,從建置原始碼檢測平台(含遠端各應用系統程式碼待掃描專區之建構)到檢測程序及作業準則等等及教育訓練推廣,一條龍式的統籌管理,不但保留彈性修正調整,也讓作業安檢程序更具管理制度,「第一,對健保局來說,透過一套完善SOP來協助內部檢測作業及管理外包機制;第二,對合作外包商而言,能更清楚開發規則及安全要項。」最重要的是,透過如此嚴謹的SOP及教育訓練,讓資安觀念落實在所有同仁及合作廠商,「人人重視資安問題,就成功一大步!」林志威強調解釋。

安全類別分等級 標準作業有彈性

當然,針對網站對外對內之功能區別,健保局處理作業也格外細緻,把安全類別通用標準設置為:高、中、低,像是行政資訊科Internet全球資訊網系統、保險資訊科網路加退保系統與多憑證網路平台、醫療資訊科健保資訊網服務系統專案等使用Internet對外服務之應用程式與網站,因為最容易被有心人士攻擊,故以最高等級的上線標準來檢視;而用Intranet對內服務之應用程式並未對外開放,安全需求等級較低,故採用一般等級要求。

Fortify SCA 解決程式碼漏洞專家

另外,擁有SSCP(Systems Security Certified Practitioner)的專業認證,同時也是(ISC)2會員的健保局陳啟舜專員表示,Fortify就像是程式的健康檢查一樣,透過掃描及顧問諮詢,降低整個軟體專案推動的資安風險。藉由Fortify SCA使用於開發階段,可分析應用程式的程式碼是否存有安全漏洞,透過通過程式碼安全分析器找出應用程式可能會執行的所有路徑,SCA從程式碼中指出安全漏洞。陳啟舜也強調Fortify SCA可以在有效的時間內分析大量的程式碼,讓開發人員花費更少的時間與精力來了解和解決問題,讓修復問題變得容易,安全更有保障!

顧問觀點

【撰稿:叡揚資訊 資訊安全事業處 產品顧問 康凱雄】

「安全」是軟體工程目前最新流行的名詞

作軟體的人都知道,軟體的生命週期(SDLC)不外乎分成規劃、分析、設計、建置、維護五大領域。傳統軟體工程著重功能面的完整度,各系統功能是否能達到原始設計需求。安全並非當時關注的議題。直到.com網路潮後,網站興起正好給駭客實驗攻擊的溫床,SQL Injection與Cross-Site Scripting攻擊陸續出現,給系統開發者當頭棒喝。

原來軟體開發並非功能完整就好

近幾年學者提倡SSDLC(Secure Software Development Life Cycle)將傳統SDLC注入新的元素,藉由在傳統五大領域放入安全相關工作項目,就可以實踐應用系統安全。

右圖為安全開發流程非常具有專精的一位學者與科學家Gary McGraw,他提倡的安全軟體開發流程。

SSDLC儼然成為一門新興的知識領域,連(ISC)2都推出了CSSLP,推行SSDLC的技術人員可取得認證證明自己的技術能力。國內未曾聽聞有開發團隊導入整套SSDLC開發的方法論,一來開發時程拉長影響交付時間,二來資源不足成本提高。目前業界最常見的作法就是導入檢測工具。從之前的黑箱工具,漸漸轉移到目前熱門的白箱工具,現在開發人員都知道,白箱工具的確比黑箱工具涵蓋度高,精準度也高。

只導入檢測工具,就可以解決應用程式安全問題?當然不是。這好比從機車騎士晉升到有車階級,但是卻買了安全配備不足的車子。為了讓檢測工具能正確的運行,組織必須有配套方法,將檢測工具真正的使用在對的地方與時機。

整體開發考量

開發應用程式涵蓋面向眾多,舉凡人員、流程、工具、準則、意識都必須加以考慮。針對應用程式安全性而言,開發人員的素質,安全意識、開發流程修正、開發工具與檢測工具的選用、應用程式能否上線的準則,都必須整體考量。

健保局,瞭解應用程式安全的重要,針對資訊開發的安全性,委託叡揚資訊設計一套搭配現有開發與版本更新建置流程的安全檢測機制,作為管控應用系統開發安全的依據。

規劃設計

健保局選擇Fortify SCA 作為應用程式檢測工具,著眼於SCA是目前白箱檢測工具功能最強大,檢測項目最廣泛也最深入。此外叡揚資訊提供配套之導入服務,依據客戶現有作業流程與作業環境,進行客戶需求訪談,為客戶設計最適合的安全機制。 外包應用程式開發目前是個趨勢,健保局也不例外。外包開發人力的管理並不容易,除了應用程式功能開發滿足需求,若再加入安全需求,所需資源與技術並非業主可獨立負擔。叡揚資訊提供客戶「導入服務」,由訪談結果衍生出設計概念,搭配叡揚特有的安全程式碼撰寫顧問服務,與流程改善計畫,將原本程式碼建置流程,改良為有Fortify   SCA把關的安全建置流程,同時提升承辦人與外包開發人員的安全意識與安全程式碼撰寫能力。

健保局應用系統除了開放給全省醫療院所、醫療單位與投保單位,還有提供民眾醫療與健保資訊的網站。經過專業顧問的評估,將健保局應用程式分為三個安全類別,不同的應用程式依據開放對象與屬性,給予不同的安全類別等級。不同安全類別等級之應用程式,有對應的上線或建置門檻標準,未達到安全標準皆無法上線或建置。

Fortify檢測方式非常彈性,除了有圖形介面供使用者手動操作之外,叡揚特地為了不同需求使用者客製自動化批次執行檢測。有了自動化批次檢測,使用者可隨時依據需求設定掃描時間,每日進行一次或數次應用程式檢測。

此外,我們為健保局設計安全程式碼教學平台,包括.NET與Java的Secure Coding Standard,與 Secure Coding的e-Learning平台,讓局內所有同仁可以隨時隨地,不限時間的上課,開發人員在進行應用程式開發時,有安全程式的開發準則可遵循,面對可能發生資安問題的程式碼不再手忙腳亂,到處尋找參考資料。而我們針對各應用程式承辦人,進行較密集的教育訓練與會議,為的就是讓他們成為健保局內資訊安全的先鋒與種子教官,我們稱之為「技術轉移」。不但將叡揚的資訊安全技術傳授給他們,對於工具的使用也相當熟稔,可作為健保局內種子教官,將本次專案的精髓傳遞給局內其他同仁。

以RFP規範廠商開發的功能是一般的要求。但是要將安全也納入RFP要求就不容易。首先必須瞭解要求的標準與水準,市面上白箱檢測工具眾多,設計方式與精細程度也不一,如何能不進行排他而共同為台灣資訊產業盡一份心力是第一個重點。第二是如何在白箱工具的監督下,應用程式完整的達到功能與安全的需求。叡揚的專業顧問協助健保局以客觀的方式將安全要求納入RFP,達到「預防重於治療」的先期防護作為。

全新的體驗

藉由導入安全機制到開發與建置流程,搭配精心設計的作業程序與準則,對於健保局、叡揚資訊和台灣軟體安全開發來說,又往前邁開了一大步。