滲透式資訊安全測試結果報告範例
筆者公司因為處於資訊安全領域的頂尖地位,因此相關的軟體與測試對於資訊安全測試會特別注重。
除了內部有一定的資訊安全測試流程與評審外,在特定專案也會與知名的資訊安全顧問公司合作,針對整個專業的資訊安全進行測試與評估。
這樣的資訊安全測試最後的測試報告產出為何? 與一般軟體測試報告有什麼不同? 資訊安全測試報告應該要包含哪些要素?
這篇文章會以一個範例討論這些議題。
業界範例
這個組織 PTES (Penetration Testing Execution Standards) 主要將資訊安全測試分為七大步驟,其中測試報告結果建議範本如下:
http://www.pentest-standard.org/index.php/Reporting
http://www.vulnerabilityassessment.co.uk/report%20template.html
執行的七大步驟分別為:
- Pre-engagement Interactions
- Intelligence Gathering
- Threat Modeling
- Vulnerability Analysis
- Exploitation
- Post Exploitation
- Reporting
實際個案
下列是筆者與一家知名的國際資安顧問公司合作的測試報告結果。大綱內容大致如下。
這個測試報告主要分為四大部分
- Executive Summary: 整體資訊安全風險與弱點的整理摘要
- Scope: 整個專案測試範圍
- Methodology: 測試的工具、方法與風險的定義
- Findings: 測試結果的發現、使用工具、Reproduce Steps 等。這部分佔了整個測試報告的 80%以上。也是研發工程部分主要參考的地方。
分別說明如下
Executive Summary
主要說明針對專案的範圍發現了多少的問題
- xxx 高風險的問題
- xxx 中度風險問題
- xxx 低風險問題
測試主要用哪些方法 (Code review, gray-box, business logic, authentication 等)。不包含什麼 (architecture risk analysis)。
Methodology
主要說明測試的方法。例如筆者合作的顧問公司採用的兩種
- Dynamic Threat-based Penetration Testing : 主要針對網路互動行為做測試
- Validation by Source code review:主要針對程式碼做評審
Risk Assessment
說明風險的定義。最後產品出貨前,根據這樣的定義決定哪些是出貨前一定要解決,哪些是可以出貨後再解決。
下面的例子定義為五個等級。筆者建議其實三個等級符合專案所需,容易了解與執行即可。
Findings
測試過程中發現的資訊安全漏洞。這部分的篇幅占據整個報告的 80%以上。一開頭建議有一個 summary表格如下
列出所有發現的問題並且註明發生的可能性、造成的影響、嚴重性。
Finding | Likelihood | Impact | Severity | Status |
SSL Cookie without Secure Flag | Med | High | Low | Open |
HTTP TRACE method Enabled | High | Med | Low | Open |
….
每一個測試結果發生的個案要怎樣描述呢? 筆者舉一個例子。
Finding1: Denial Of Service測試結果發現惡意程式可能可以透過特定方式造成服務中斷。這樣的服務中斷會導致 XXX 功能的異常。 影響的產品範圍ProductA, ProductB, productC…. 使用測試工具
Reproduce Steps$ adb shell am start packageName/activityName 測試結果畫面 Results(眼見為憑。把關鍵的測試結果畫面附上。) 發生的機率 Likelihood高: 惡意程式只要透過上述步驟就可以將服務中止 影響嚴重性 Impact高: 造成特定服務無法正常運作,導致…….受到影響。 Mitigation 防護建議對於手機程式執行與惡意參數的輸入可以採取下列三個方式
參考資料http://developer.android.com/guide/topics/manifest/permission-element.html
|