產品與專案SDLC導入ISO 27001之概念與方法 (上)
2021年網路釣魚攻擊的數量已幾乎是2020年的兩倍,其中有62%是垃圾郵件,其餘則是登入憑證網路釣魚郵件。疫情期間,政府機關、銀行及醫療產業遭受勒索病毒的嚴重襲擊。故自2021年開始,政府對於國內各產業領域的民間企業與單位組織,從上市櫃公司與金融業開始要求資安強化,促使一定營運規模的企業,必須開始推動資安,現今不肖駭客的病毒攻擊手法,越來越多以勒索為目的,不管是個人或是企業時有耳聞,目標也從以量取勝逐漸轉向關鍵產業,透過客制化的攻擊手法,以謀取更大的利益。
台灣自從2019年1月1日正式施行《資通安全管理法》(簡稱資安法)後,於2021年第一季,將《資安法》的修正草案送交立法院審查,完成三讀程序。根據《資安法》規定,不論是 A 級、B 級和 C 級的公務或是特定非公務機關,都必須要在 2 年內取得臺版 CNS 27001 或是 ISO 27001 的資安認證。資安法遵議題在2022年成為國內各產業不得不面對的議題,ISO 27001 是目前國際上使用最廣泛,且最完整的檢驗資訊安全管理系統(Information Security Management System, ISMS) 標準,對於各機關產業有最直接的幫助。
▲ IThome-2022要求台灣企業做好資安的七大法規
昕力資訊身為國內軟體系統開發領導品牌,對資訊安全的要求自然是高標準,透過導入符合國際ISMS認證標準的ISO27001,希望不斷提升產品和專案的開發流程,稽核精神不只是找出問題,更要「持續改善」。在軟體及系統的開發過程,從專案啟動到完成上線就像是下圖的軟體及系統開發生命週期SDLC(Software/ System Development Life Cycle),更進一步加入安全性概念,可稱之為SSDLC(Secure Software/ System Development Life Cycle)。
▲ SDLC軟體系統發展生命週期
對照ISO27001的內容列舉如下表,相關流程應盡可能的文件化以留下紀錄,作為審核及稽核的依據。
SDLC |
安全議題 |
ISO27001 |
||
條文列舉 |
控制項列舉 |
|||
1 |
專案規劃 |
瞭解並分析安全性需求 |
4.2了解利害關係者的需求與期望 4.3決定資訊安全管理系統的適用範圍 7.5文件化資訊 |
A.6.1.5 專案管理的資訊安全 A.12.1.1 文件化作業程序 |
2 |
需求分析 |
審查安全需求,分析可能的風險威脅如何控制。 |
6.1.1 一般要求 6.1.2 資訊安全風險評鑑 7.5文件化資訊 |
A.14.1.1 資訊安全要求分析與規格 A.12.1.1 文件化作業程序 |
3 |
系統設計 |
設計適合的安全機制,並審查其安全性。 |
6.2資訊安全目標與達成之規劃 8.1運作的規劃與管控 7.5文件化資訊 |
A.12.1.4 開發、測試及作業環境的分隔 A.14.1.3 保護應用系統服務之交易 A.12.1.1 文件化作業程序 |
4 |
開發整合 |
程式安全教育訓練與規範,進行程式碼安全審查。 |
7.2人員能力 7.3認知 7.5文件化資訊 |
A.14.2.1安全開發政策 A.14.2.6 安全開發環境 A.12.1.1 文件化作業程序 |
5 |
品質測試 |
靜態分析與動態分析,檢測程式碼確保安全性。 |
9.1監督、量測、分析與評估 9.2內部稽核 10.1不符合事項與矯正措施 7.5文件化資訊 |
A.14.2.8系統安全測試 A.14.3.1測試資料的保護 A.12.1.1 文件化作業程序 |
6 |
佈署上線 |
弱點掃描及滲透測試,為軟體設計開發品質把關。 |
8.1運作的規劃與管控 9.1監督、量測、分析與評估 10.1不符合事項與矯正措施 7.5文件化資訊 |
A.14.2.9系統驗收測試 A.12.1.1 文件化作業程序 |
所有開發成員應具備基本安全知識,針對特定專業的團隊成員則需有威脅、工具、技術相關知識,並定期審查軟體開發相關的安全要求,及時阻止不完整、有風險的軟體版本進入下一階段。因應不同的職務有不同的專業要求,定時安排適當的教育訓練,以符合工作上需達到的標準。譬如,ISO課程所有人員皆適合參與,但行政人員不適合程式開發課程。
透過達到ISO27001的要求,提升軟體及系統開發的安全性,是符合國際標準的方法。在資訊安全管理系統ISMS中,首先要建立CIA的概念,機密性(Confidentiality)、完整性(Integrity)、可用性(Availability),讓所有成員清楚其定義。
▲ CIA Triad (Hannah Lin)
▲ CIA 原則 (Hannah Lin)
機密性Confidentiality:
確保只有經過授權的人員及程序才可取用資訊。
把公司專案開發的程式碼放到我的部落格和論壇衝人氣。
下載程式碼到我公司的專案就可以用了耶!
╳ 違反機密性!
管控機制 遵守版本控管,程式加入授權聲明及驗證。
授權身份 程式碼只有相關人員可從版控取用,取用後辨識使用者。
使用時機 開發或有維護需求時,相關人員才能進版控。
完整性Integrity:
確保資訊的完全性與準確性。
這系統開啟後我的電腦就會越來越慢!
糟糕!忘記把測試的程式拿掉還有無窮迴圈…趕快拿掉就不會被發現是我的疏失。
╳ 違反完整性!
管控機制 遵守版本控管,程式落實品質檢測流程,比對Production環境版本。
授權身份 程式碼只有相關人員可從版控取用,每次新增/修改/刪除均有紀錄。
使用時機 開發或有維護需求時,相關人員留下版控紀錄並要求備註說明。
可用性Availability:
確保在需要時可以存取經授權的資訊或服務。
我今天無法登入系統沒辦法做事情!
抱歉!驗證機制目前異常,已在處理中…
原來是有惡意攻擊在嘗試登入!
╳ 違反可用性!
管控機制 程式落實品質檢測流程,系統除了人工監控增加告警條件。
授權身份 程式碼只有相關人員可從版控取用,使用者端驗證帳號有效性。
使用時機 系統異常時主動告警相關人員並開啟版控授權,處理人員留下版控紀錄並備註說明。
以上舉例又衍生另外三個安全性要件,不可否認性(Non-repudiation)、鑑別性 (Authentication)、Access Control (Authority)存取權限控制。
▲ CIA 其他三個安全性要素 (Hannah Lin)
不可否認性Non-repudiation:
不論是資料傳送方或接收方,都無法否認發生過的行為。
為什麼我的聯絡電話是錯的?
根據紀錄最後一次是您前天早上九點二十六分修改。
那我可能自己不小心輸入錯誤…
鑑別性 Authentication:
資訊的使用者都能辨識身份。
客戶Sara反應最近一直接到同位業務的推銷電話,請他不要再打還一直打。
根據紀錄最近Nick一直查看此客戶的資料。
存取權限控制 Access Control (Authority):
使用者只能依照權限取得及使用資訊或服務。
為什麼我不能查到Hanson的個人資料和訂購紀錄。
因為Hanson的服務業務是Olivia哦!
軟體系統安全防護的三個面向 (AAA),認證 (Authentication)、授權 (Authorization)、紀錄 (Accounting),透過識別機制認證身份、管理身份,並授權認證的用戶方可使用的功能及可存取的資料,同時所有行為動作留下紀錄,以達到要求的安全等級。
(下) 篇將繼續以PDCA的角度來進行說明。
參考資料:
(1) ISO27001:2013
(3) 從根本認識 ISO 27001,各行各業都適用的資安架構介紹
(5) 資安x系統x絕對領域
(7) 資訊安全制度建立與驗證
(9) 網路新聞