分類範例
這個範例說明安全分析師所用的 AppScan® Source 分類工作流程。分類工作流程可能會隨著商業需求而不同。
Jones 先生是公司的安全分析師,想要將他的掃描結果分類。他想將類似的發現項目分組及設定優先順序,然後將它們提交給適當的開發人員解決。
首先,Jones 先生掃描應用程式的原始碼,然後在「分類」視景中開啟評量。掃描產生大約 2,000 個發現項目,他可以在「發現項目」視圖中檢閱所有這些發現項目。不過,Jones 先生想要先取得結果的概觀,他開啟依嚴重性和發現項目類型(安全或掃描涵蓋面)顯示分析的「漏洞矩陣」視圖。掃描涵蓋面發現項目和可疑安全發現項目需要進一步調查,才能判定風險。
在「漏洞矩陣」中,Jones 先生看到 8 個高度嚴重性的明確安全發現項目。他按一下指出這 8 個明確發現項目的矩陣框,因而自動建立一個過濾器,並使「發現項目」視圖重新整理,只顯示這 8 個重要問題。Jones 先生決定將這些問題當作錯誤來處理。他選取這 8 個問題,將它們提交給問題追蹤系統。然後他從「漏洞矩陣」重設了過濾器。
之後,Jones 先生專注於「評量摘要」視圖。他發現這 2,000 個發現項目由超出 6 個的漏洞類型組成。他決定集中處理驗證問題,從「評量摘要」視圖建立另一個過濾器。在圖形上,他按一下 Validation.EncodingRequired
和 Validation.Required
,將「發現項目」視圖中的發現項目數縮減到大約 500 個。
500 個發現項目還是很難分類。Jones 先生決定進一步過濾結果。在「過濾器編輯器」視圖中,他以高度嚴重性作為需求來加強從「評量摘要」視圖建立的過濾器。現在,發現項目表格顯示 150 個項目。
當依檔名來排序時,他發現某些發現項目是來自協力廠商程式庫內的程式碼。Jones 先生知道這個程式庫的用法是隔離的,他不想處理它的安全問題。他排除這些發現項目,立即更新「發現項目」視圖和度量。未來的掃描仍會偵測這些發現項目,但它們是隔離的,不會列入度量。
Jones 先生發現一些 Validation.Required
類型的高度嚴重性可疑安全發現項目。他知道有未經驗證,就直接使用資料的情況。他決定將這些發現項目從可疑升級為明確。當進行這些修改時,他又決定新增附註來說明他的變更,然後用電子郵件將這些發現項目傳給自己,以提醒他設定補救的優先順序,或在「已修改的發現項目」視圖中檢閱它們。
之後,Jones 先生又依檔名排序,發現有些發現項目是在後端伺服器,有些是在使用者介面。他選取所有後端發現項目,建立一個新的組合,標籤為Backend Server - Validation Required
。他選取其餘發現項目,將它們放在標籤為 UI - Validation Required
的組合中。分類繼續進行,焦點是高度嚴重性的 Validation.EncodingRequired
類型。
當天末了,Jones 先生建立了 12 個組合。在這一天裡,他利用圖形、過濾器和「漏洞矩陣」,將發現項目刪改成視圖中每次所能管理的數目。他有時將這些個別發現項目放在組合中。另一些時候,他會排除不重要的發現項目。他有時專為了特定的發現項目而建立新的組合;有時將發現項目新增到現有的組合中。
現在,Jones 先生檢閱這 12 個組合。他判定應該將Backend Server - Validation Required
和 UI - Validation Required
組合提交給問題追蹤系統,以通知開發人員關注這些區域。
Jones 先生移至「組合」視圖,然後開啟Backend Server - Validation Required
組合。這時開啟了標題為後端伺服器 - 需要驗證的新視圖,列出他放在這個組合中的發現項目。之後,他將這個組合提交給問題追蹤系統。當晚稍後,當開發人員登入 Rational® ClearQuest® 並見到指派給他的錯誤時,他就可以在 AppScan® Source for Development 中開啟發現項目。
Jones 先生又檢閱其他組合。他將一部分提交給問題追蹤系統,用電子郵件將另一些傳給他的同事。不過,在進一步檢閱之後,部分組合中的發現項目,對他而言,不那麼重要。他將這些比較不重要的發現項目移到兩個新的組合中:By Design
和 Irrelevant
。Jones 先生判定這些發現項目是可接受的,他不想變更程式碼。除了 By Design
和 Irrelevant
的發現項目之外,Jones 先生理解到所有 Cryptography.PoorEntropy
發現項目,對他而言也不重要。他知道,這些加密法呼叫的熵可能不好,雖然快速電腦能夠在一星期內破解金鑰,但這不重要,應用程式的資料在加密幾小時之後就不再有用了。Jones 先生也想將它們移除。
然後,他將 By Design
和 Irrelevant
組合新增到「內容」視圖的已排除的組合清單中。他還打開「過濾器編輯器」,建立另一個含有漏洞類型 Cryptography.PoorEntropy
的過濾器,儲存名稱為 Crypto
的過濾器,將 Crypto
過濾器的行為設為反轉(在「選取過濾器」對話框中,他選擇反轉過濾器)。之後,他啟動一項掃描,然後回家。這些度量不會反映這些排除項目,直到下一次掃描之後。