經過了鳳凰網以及完美世界開發工作的鍛煉,對于安全開發工作有了一些很好的認識,下面總結一下過去的經驗和教訓
對于安全開發一定要有一套成熟度模型,例如公司剛開始做的時候定義的級别可以低一些,可做的事情要少一些。但是随着熟練程度的增加以及大家對于安全開發的了解的加深,逐漸加深進階别的安全成熟度模型。
下面就簡單介紹一下我心中的成熟度模型的相關控制,未分級大家可以依靠公司自己的特性來進行補充。
1. 管理安全控制
1.1 建立安全職責,目标就是組織中都明确自己的職責和責任
工作内容:
a) 組織安全機構組織架構圖例如資訊安全委員會等等,這裡一定要注意安全機構一定級别足夠的高,例如屬于董事會或者CEO下面
b) 文檔化安全角色,職責,責任以及授予什麼樣的權限
1.2 管理安全配置
工作内容:
a)系統中所有軟體的更新記錄,保證出現問題可以很快的追蹤到相對應的版本以及回退
b)系統中所有問題的bug記錄以及安全問題記錄這樣可以很好的知道現有系統所存在的風險
1.3 安全意識、教育訓練
工作内容:
a) 安全意識、教育訓練的内容的有效性
b)跟蹤使用者對于教育訓練和意識課程的了解
c)教育訓練以及安全意識課程的資料收集,一定要來源與内部,當然也可以來源于外面的安全事件
1.4 管理安全清單
工作内容:
a) 收集維護以及各個系統的日志
b) 敏感資産的詳細清單
c) 安全控制失效的原因以及解決方案
1.5 風險評估
工作内容
a) 識别安全運維過程中的風險
b) 識别安全開發過程中的風險
c) 定義組織内統一的安全度量标準
2.協調組織内的安全角色
2.1 定義協調的最終目标
工作内容:
a) 資訊共享的途徑,例如安全部門一定要建立漏洞管理資料庫保證研發、運維部門第一時間得到這些資訊,最重要的是要得到他們的相應,從這些響應中得到相對應的流程,進而推動了安全部門的地位,最重要的是保證了安全問題第一時間得到修補。
b) 各個部門定義安全員,這樣做的目的可以讓他們在内部幫我們推動安全相關流程
2.2 協調機制
工作内容:
a) 一定要定期或者非定期的進行安全溝通,這樣做的目的是第一時間得到他們對安全的了解和認識,如果他們出現錯誤的認識我們要及時的進行更正,讓他們可以按照我們的想法走
b)一定要注意跟外部安全專家以及安全公司的交流,這樣做可以第一時間得到最新的安全漏洞以及安全解決方案
3. 組織内部建立安全監控
3.1 事件記錄
工作内容:
a) 一定要記錄到每個安全事件的詳細内容,這樣做可以形成組織内部的問題管理庫。組織第一次發生事件的時候可能馬慌腳亂,但是有了這樣的過程發現同樣問題的時候可以很好的得到第一時間解決
b) 安全事件的詳細分析以及歸納,目的是分類安全事件形成相對應的響應團隊。
3.2 級别安全突發事件
a) 一定要事先定義好突發事件的清單,這樣做的目的是防患于未然。
b) 根據上面的清單來列出相對應的突發事件的響應手冊
c) 突發事件的逐級報告,有的部門怕擔責任隐瞞事件的危害,這樣做的危害非常大,高層不了解安全危險,他就不能做好很好的決策。
3.3 定義檢查安全防禦措施
工作内容:
a) 定期檢查WEB安全防禦措施
b) 定期檢查作業系統安全措施
c) 定期檢查網絡安全措施
d) 定期檢查人員安全措施
3.4 突發事件響應内容
工作内容:
a) 系統優先恢複的清單,重要的系統得到DDOS或者其他重要攻擊的時候先要恢複那些清單
b) 應急響應計劃,定義突發事件的響應計劃,定期非定期進行演練
4. 安全組提供相對應的安全建議
4.1 提供安全編碼建議
a) 安全設計原則,安全編碼規範以及威脅模組化、威脅樹分析
b) 定義安全體系架構以及查找對應的信任關系,着重注意信任關系,因為信任關系是最容易出現問題的地方
4.2 提供安全運維指南
a) 安全加強手冊
b) 安全流程風險分析以及對應的解決方案
4.3 識别安全需求
a) 根據需求文檔得到安全需求清單
b) 注意隐私保護以及法律法規的限制
c) 實作統一的安全防禦措施,這裡主要目的是針對一類問題進行統一的處理
5. 驗證
5.1 驗證安全編碼漏洞
工作内容:
a) 利用owasp ASDR進行威脅分析,同時編寫對應的安全測試手冊
b) 利用上線前檢查來測試相對應的風險
c)測試架構類安全例如Spring,Struts以及zendframework以及其他相關的MVC架構
5.2 驗證系統安全漏洞
工作内容:
a) 利用相對應的架構來進行系統安全漏洞檢查,例如OSSTMM,ISSAF等架構
5.3 驗證網絡漏洞
a) 利用相關的測試工具來進行驗證網絡漏洞
由于安全開發的工作非常多,是以我隻是大概寫了一些關鍵點,這些關鍵點展開的話工作量那是相當的大啊,是以保證一個軟體或者WEB程式的安全運作絕非一朝一夕簡簡單單的。
未完。。。。待續
下一期分享:
1. 安全開發的風險,例如安全需求,安全編碼,安全測試等
2. 安全運維流程的風險