物聯網安全 物聯網的應用安全開發生命週期與需求管理
大綱 在物聯網應用的開發生命週期中加入安全與隱私的考量 規劃階段的安全與隱私考量 佈署階段的安全與隱私考量 管理階段的安全與隱私考量 監控與偵測階段的安全與隱私考量 報廢階段的安全與隱私考量 結論 https://en.wikipedia.org/wiki/Internet_of_Things
從開發生命週期中 加入安全與隱私的考量(1/4) 歐盟資料保護工作小組在2014年9月對於IoT的發展所帶來的個人資料保護與安全的衝擊提出了意見書[1] 美國FTC在2015年1月,發佈報告督促物聯網廠商注意相關的安全與隱私風險[2] 共同的要求是將從設計就要考慮到隱私等議題(Privacy by Design) [1] Article 29 Data Protection Working Party European Commission, Opinion 8/2014 on the on Recent Developments on the Internet of Things, European Commission 14/EN/WP223, 2014. [2] US FTC, Internet of Things: Privacy & Security in a Connected World, FTC Staff Report, 2015.
從開發生命週期中 加入安全與隱私的考量(2/4) 不光是物聯網,從軟體開發生命週期當中加入安全與隱私的考量是現今的主流 McGraw提出在軟體開發生命週期當中,有七個可以加入安全考量的點 [3] Gary McGraw, Software Security: Building Security In,Addison-Wesley Professional, 2006.
從開發生命週期中 加入安全與隱私的考量(3/4) OWASP提出CLASP(Comprehensive, Lightweight Application Security Process)程式,軟體安全相關的二十四個主要活動,提供那二十四個活動的實作或執行指引[4] 微軟發展了軟體安全發展生命週期(Security Development, Lifecycle, SDL)的方法與程式,將安全與企業的系統開發流程整合。並且提出SD3+C的概念: 設計時就考慮到安全(Security by Design) 預設值就是安全的(Security by Default) 在佈署的過程中要注意到安全(Security in Deployment) C就是要和所有相關的人說明安全的重要(Communication) [4] OWASP CLASP Project, https://www.owasp.org/index.php/Category:OWASP_CLASP_Project [5] Security Development, Lifecycle, https://www.microsoft.com/en-us/sdl/
從開發生命週期中 加入安全與隱私的考量(4/4) 物聯網應用也重視硬體佈署,因此本教材採用CSA(Cloud Security Alliance)所定義之物聯網安全生命週期[6] 規劃 (Plan) 佈署 (Deploy) 報廢 (Dispose) 矯正 (Remediate) 管理 (Manage) 監控與偵測 (Monitor & Detect) [6] CSA Mobile Working Group, Security Guidance for Early Adopters of the Internet of Things (IoT) , 2015.
規劃階段的安全考量─ 建立威脅模型(Threat Modeling) 步驟 1. 描述系統架構與識別資產 步驟 2. 區分物聯網系統元件 步驟 3. 識別威脅 步驟 4. 對威脅進行評估 [6] CSA Mobile Working Group, Security Guidance for Early Adopters of the Internet of Things (IoT) , 2015.
建立威脅模型─ 描述系統架構與識別資產 掌控應用架構 建立安全政策 網路圖:瞭解裝置的實體位置、網路位置、傳輸媒介 資料流程圖:識別重要資料,包含資料儲存位置、傳輸流程、系統邊界等 建立安全政策 一般性安全政策 特別針對物聯網應用的安全政策
建立威脅模型─ 運用資料流程圖掌握威脅 通訊 人員 系統 資產項目 相關資料 安全威脅
建立威脅模型─拆分系統元件 可將主要資訊資產做分類,並依照各種不同類別進行威脅評估 例如可分為以下幾類: 物聯網裝置 閘道器 雲端儲存
建立威脅模型─識別威脅項目 可參考STRIDE模型並做擴充,評估威脅項目: 偽裝使用者或裝置識別碼(Spoofing Identity) 資料竄改(Tampering with Data) 否認(Repudiation) 資訊外洩(Information Disclosure) 阻斷服務(Denial of Service) 提權(Elevation of Privilege) 掠過實體安全控制(Bypassing Physical Security) 社交工程攻擊(Social Engineering Intrusions) 利用供應鏈中其他的環節進行資訊收集或攻擊(Supply Chain Error) 入侵網路(Network Intrusion)
建立安全政策與規劃 可參考ISO 27001:2013訂定一般性安全政策 A.5 資訊安全 政策 A.8 資產管理 環境安全 A.9 存取控制 A.15 供應商 管理 A.12 作業安全 A.10 密碼使用 A.7 人力資源 安全 A.16 資訊安全事件管理 A.13 通信安全 A.17 業務永續運作管理 A.18 符合性 A.14 系統開發、取得、維護
特殊安全規劃與考量例 考量稽核工具是否能掌控裝置間的無線訊息傳輸 依照裝置能力與風險規劃合適的加解密模組 確認物聯網裝置之安全功能可與骨幹安全功能整合 滿足當地的隱私或個人資料保護要求 特別考量物聯網裝置的硬體安全需求,例如: 裝置失竊 Side Channel Attack或資料被竄改 硬體木馬 物聯網裝置應滿足的安全規範 特別考慮到可能帶來的生命財產安全風險
佈署階段的安全考量 確保物聯網終端裝置作業系統與應用程式之設定滿足安全需求 賦予每個裝置一個唯一的識別碼 建立資訊資產清單,並列出相關的負責人、保管人 裝置身分鑑別與傳輸安全金鑰的佈署 裝置安全的確認與測試 可透過佈署閘道去管控異質裝置,或要求使用者透過閘道存取裝置而提升安全性
可針對不同層次 去佈署安全控制(1/5) 更新檔案的正確性驗證與存取控制 變更預設連線密碼 禁止使用脆弱密碼 佈署前進行測試 人員層 實體層 更新檔案的正確性驗證與存取控制 變更預設連線密碼 禁止使用脆弱密碼 佈署前進行測試 確保使用安全設定 保護重要資料 依需求採用適當強度的身分鑑別機制 存取權限的設定與落實 網路層 應用層 裝置層 [6] CSA Mobile Working Group, Security Guidance for Early Adopters of the Internet of Things (IoT) , 2015.
可針對不同層次 去佈署安全控制(2/5) 建立身分鑑別與存取控制機制 檢查協力廠商元件的安全性並維持更新 檢查常見弱點 人員層 實體層 建立身分鑑別與存取控制機制 檢查協力廠商元件的安全性並維持更新 檢查常見弱點 妥善使用密碼技術保護資料 定期變更應用程式密碼 建立偵測異常動作的機制 定期弱點掃描 網路層 應用層 裝置層 [6] CSA Mobile Working Group, Security Guidance for Early Adopters of the Internet of Things (IoT) , 2015.
可針對不同層次 去佈署安全控制(3/5) 使用防火牆 檢查防火牆設定的有效性 開啟設備防毒軟體的網路存取控制機制 定期進行弱點掃描 人員層 實體層 使用防火牆 檢查防火牆設定的有效性 開啟設備防毒軟體的網路存取控制機制 定期進行弱點掃描 變更預設密碼 關閉網路裝置的訪客密碼 用如MAC等裝置識別碼進行網路存取綁定 確保資料傳輸安全 做好裝置存取金鑰佈署管理 網路層 應用層 裝置層 [6] CSA Mobile Working Group, Security Guidance for Early Adopters of the Internet of Things (IoT) , 2015.
可針對不同層次 去佈署安全控制(4/5) 建立安全區域,確保只有授權的使用者能存取 妥善保存實體鑰匙 人員層 實體層 建立安全區域,確保只有授權的使用者能存取 妥善保存實體鑰匙 使用實體監視器,並卻保監視影像有被妥善保管 透過資產管理機制,掌握所有裝置動態與位置 網路層 應用層 裝置層 [6] CSA Mobile Working Group, Security Guidance for Early Adopters of the Internet of Things (IoT) , 2015.
可針對不同層次 去佈署安全控制(5/5) 指派專門人員負責資訊安全 指派人員的安全責任 對一般人員進行宣導,以便在日常生活中遵守安全要求 人員層 實體層 指派專門人員負責資訊安全 指派人員的安全責任 對一般人員進行宣導,以便在日常生活中遵守安全要求 對專門人員進行訓練,使其能夠維護物聯網裝置與服務安全 鼓勵找到弱點的人員 將安全要求訂入約聘雇的合約中 網路層 應用層 裝置層 [6] CSA Mobile Working Group, Security Guidance for Early Adopters of the Internet of Things (IoT) , 2015.
管理階段的安全考量(1/2) 落實在規劃階段所建立的安全政策,並可特別加強考量以下的議題: 資產與更新管理: 作業系統、韌體、軟體的更新 確保更新的正確性與未被竄改 更新前要進行測試 可選擇有支援韌體自動更新標準之機制 例如OMA(Open Mobile Alliance)有建立韌體自動更新標準FUMO(Firmware Update Management Object) 可考慮採用資產管理的自動化工具
管理階段的安全考量(2/2) 金鑰管理 物聯網裝置會使用金鑰做認證與隱私保護,這可能是採用不同的演算法與方式,例如IEEE 802.15.6,就訂定出以下六種裝置間的相互進行身分鑑別方式: 透過先前設定的對稱式金鑰進行身分鑑別 透過橢圓曲線密碼學的方式透過非對稱式金鑰進行身分鑑別 非對稱式金鑰身分鑑別加上密碼 非對稱式金鑰身分鑑別要求使用裝置上顯示之密碼 要建立金鑰的生命週期管理機制,例如: 限制憑證或金鑰的有效期限與強制要求更改過期的金鑰 定義與落實裝置註冊程式,以確保裝置的金鑰被有效管理 定義事件發生時復原計畫(Recovery Plan),例如裝置被竊取時使其金鑰失效的規劃。
ISO 27001:2013年對於密碼術 (Cryptography)的建議控制 A.10.1 密碼控制(Cryptographic controls):確保妥善與有效的使用密碼機制,來保護資訊的機密性、可鑑別性、完整性 A.10.1.1 使用密碼機制的控制 應該要建立密碼機制使用的政策,以便保護資訊 A.10.1.2 金鑰管理 應該要建立針對整個金鑰生命週期的金鑰使用與保護的政策
監控與偵測階段的安全考量 定期或自動進行弱點掃描(Vulnerability Assessment)與滲透測試(Penetration Testing) 發展對於裝置的動態、即時(Real Time)、持續監控的自動工具,並且能夠自動分析以找出威脅 確保Log機制與稽核機制的有效性
Log項目(1/2) 一般可記錄項目 動作開始時間 動作結束時間 使用者/裝置識別碼 目的網路位置(含MAC與IP位置等) 要求網址或URL 要求內容 [6] CSA Mobile Working Group, Security Guidance for Early Adopters of the Internet of Things (IoT) , 2015.
Log項目(2/2) 可記錄的安全事件例 提權失敗嘗試 登入裝置失敗 登入雲端服務失敗 裝置間相互鑑別失敗 資料庫存取失敗 政策變更要求 特權帳號使用 帳號的建立與變更 裝置的開關機 [6] CSA Mobile Working Group, Security Guidance for Early Adopters of the Internet of Things (IoT) , 2015.
ISO 27001:2013 對於記錄與監控的建議 A.12.4 記錄與監控(Logging and Monitoring):記錄事件以產生證據 A.12.4.1 事件記錄(Event logging):記錄包括使用者活動、例外事件、錯誤、資訊安全事件等的事件,並妥善保存與定期檢視 A.12.4.2 對於記錄資訊的保護:應該建立足夠的保護機制,確保記錄資訊不會被竄改或受到未經授權的存取 A.12.4.3 管理者與系統維運者的動作記錄:應該要保存系統管理者與系統維運者行為的記錄,此記錄應同樣的被保護與定期審查 A.12.4.4 對時(Clock synchronization):相關系統的時間應對單一時間來源進行對時,以便事件發生時能夠追蹤軌跡
矯正階段的安全考量 建立意外事件處理程式,以減小意外發生時所造成的損失 如需進入法律程式,需考慮數位證據的取得與保存 意外事件處理程式應結合相關的災難復原與業務永續程式 事件發生後要進行檢討以便建立矯正措施,並且確保矯正措施的落實 意外事件發生 意外事件處理 程式 事件嚴重需要升級處理 災難復原程式 業務持續計畫 無法在目標回復時間內回復
ISO 27001:2013 對於意外事件管理建議(1/2) A.16 資訊安全意外事件管理(Information security incident management) A.16.1 管理資安意外事件並做改進:確保能夠用一個一致與有效的方法,建立包括安全事件與安全弱點通報的資訊安全事件管理程式 A.16.1.1 責任與程式(Responsibilities and procedures):應建立相關程式,並定義人員責任,以便在資訊安全意外事件發生時,能夠快速、有效的進行回應 A.16.1.2 資訊安全事件報告:應該要透過合適的管道,對於資訊安全事件儘快的報告 A.16.1.3 通報資訊安全弱點:員工與約聘雇人員在使用資訊系統時應注意可疑的安全弱點,並進行通報
ISO 27001:2013 對於意外事件管理建議(2/2) A.16.1.4 對收到的資訊安全事件進行評估,以便判斷是否該被歸類為資訊安全意外事件 A.16.1.5 對於資訊安全意外事件的回應:應該依照現前訂定的書面化程式,去對資訊安全意外事件去進行回應 A.16.1.6 從資訊安全意外事件中學習:應該透過對於資訊安全意外事件與解決方案的的分析去獲得經驗,從而減少未來發生類似事件的可能性,並降低可能的衝擊。 A.16.1.7 證據的收集:應該建立對於證據的識別、收集、萃取、保存程式。以便在需要時可做為證據而使用。
ISO/IEC 27037:2012 所定義之數位證據處理原則 相關(Relevance) 可靠(Reliability) 充分(Sufficiency) 可被稽核(Auditability) 可在同樣的環境下產生同樣的結果(Repeatability) 可在類似的環境下產生同樣的結果(Reproducibility) 可被驗證(Justifiability)
報廢階段的安全考量 針對存放或處理敏感資訊的裝置,或是可用以存取敏感資訊的金鑰,應該建立報廢程式 可參考ISO 27001:2013年的相關控制建議: A.8.3.2 儲存媒體的報廢(Disposal of media):應該依照建立的程式去對儲存媒體進行報廢 A.11.2.7 對於裝置的報廢或再利用(Secure disposal or reuse of equipment Control):在裝置被報廢或再利用前,應該要確定其儲存媒體當中的敏感資料與授權軟體已被刪除
結論 應該從物聯網的規劃階段就考慮到相關的安全與隱私議題 在規劃階段,重點在於掌握安全與隱私威脅,並且建立相關的安全政策與程式 在佈署階段,確保物聯網裝置和相關系統元件有按照規劃進行佈署,並且依照不同的層次,套用不同種類的安全控制措施去確保物聯網應用的安全 在管理階段要落實所訂定的安全政策與程式 透過主動的弱點掃描或滲透測試,或是日常日誌的記錄與分析,在記錄與監控階段發現問題 在矯正階段,針對發現的問題進行因應與改善 依照所訂定的程式進行相關設備的報廢