網站資訊安全測試流程
由於Web service 的使用普及,
舉凡線上購物、網路銀行、網路郵件、檔案分享,許多的服務與社交工具皆由 web services延伸
另一方面,也讓有心人士透過web service 達到一些非預期的結果,產生額外的資訊安全等議題。
什麼是資訊安全測試
“測試” 不外乎是根據一定步驟作驗證,得知該結果是否符合預期。
例如:功能上的驗證,產品或不會正常運作。例如:壓力測試,極端條件下,產品運作的狀況。
加上”資訊安全”,讓測試更加複雜一些.
因為資訊安全測試驗證的步驟是需要經過特別的設計,
舉例來說:我們想要知道該網站的帳號密碼驗證是否安全?
我們就必須設計一連串相關的測試個案來驗證,並且學習相關的測試工具
許多微小的弱點都有可能被利用來做攻擊的途徑
因為網站資訊安全測試就是評估目前系統潛在會遇到的風險 – 這也是QA專業價值所
為什麼要測試
就像汽車的油耗值一樣,需要實際的測試數據,
經過一定的方法與程序才會比較讓市場與消費者接受
網站資訊安全測試也是同樣的道理。
試想兩位 QA 這麼說,哪一位您會覺得比較專業,比較容易說服大家呢(特別是專業的RD)?
A: 理論上,這個 login 可能會有問題
B: 這個 login 會有問題,因為經過 xxx 測試,xxx log 顯示,…所以會有問題
什麼時候開始測試
資訊安全測試是一個不斷評估改善的過程。什麼時候開始都不嫌晚,甚至沒有結束的時間點。
由於新技術不斷的演進,新的軟體版本不斷的更新,資訊安全測試為一個不斷檢視評估的過程。
有效測試計畫
一個有效的測試計畫通常會考量
- 人員:資訊安全的了解程度與專業
- 流程:公司品管政策與相關法規
- 技術:完成測試所需要的技能與工具
軟體開發週期
資訊安全測試如何發生於整個軟體開發週期的循環呢?
目前國際上,主要有三個標準可以參考,筆者比較推薦 Open SAMM,
因為Open SAMM,清楚的定義每一個週期需要做相關活動,
而且說明公司可以如何分階段的達到level 1/2/3
OpenSAMM http://www.opensamm.org/download/
BSIMM-V
ISO/IEC 27034 (開發中)
舉 Open SAMM (Software Assurance Maturity Model) 來說,
SAMM 將軟體發展流程定義為四大階段,每個階段又定義三個任務
1. 政策管理= 策略 + 訓練 + 法規
2. 建置 = 弱點評估 + 資訊安全需求 + 安全架構
3. 驗證 = 設計評估 + 程式碼驗證 + 資訊安全測試
4. 系統上線 = 系統環境更新 + 作業持續改善 + 入侵與弱點管理程序
舉例來說,
很多狀況是在開發的過程都做到了 1+2+3,
但是當一個網站上線之後,”4. 系統上線 ” 更是重要
例如有 patch 需要更新、防火牆需要安裝與設定、使用的 3rd library 產生已知風險、
這些需要持續不斷的定期觀察與檢視,並且將這些狀況跟研發部討論,
才能夠回到持續改善的流程 1 –> 2 –> 3 –> 4 –> 1 –> 2 –> 3 –> 4……
盡早測試
定期安排週期性的檢查,例如每周 / 每月 / 每季
在每個週期中,資訊安全的測試,盡早測試發現問題盡早解決