iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 20
0
Security

資訊系統安全與 CISSP 的簡單應用系列 第 20

[Day 20] 安全評估與測試 (Security Testing Knowledge Management)

  • 分享至 

  • xImage
  •  

今天要一起來學習安全測試的知識管理,這是我看完 奪旗賽 (Capture the Flags, CTF) 的心得之一:資安攻防是基於知識的行為,而知識管理會幫助我們更有效地做安全測試

知識管理分為兩個部分:一個是專案範圍的「測試計畫」,一個是個人範圍的「測試筆記」。我這裡用「筆記」二字,正是為了要突顯其內容廣泛、格式靈活、形式多樣的特性。

專案範圍的「測試計畫」


  1. 我很喜歡「容器」的概念,我希望所有的知識,不管是非正式的、正式的,計畫階段的、執行階段的,都有容身之所;「測試計畫」就是這樣的一個容器。
  2. 測試計畫在執行完成後就成了「測試報告」,一份測試報告中包含許多測試案例,測試案例又包含了測試過程、預期結果,以及發現之缺陷總結。
  3. 我還喜歡在測試計畫中包含「測試領域模型與細部設計 (Testing Domain Model & Detailed Design)」,這也是一個容器,可以裝下列具有應用價值的過程工作產物:
    • 功能清單 (Function List):
      功能清單是您建立測試模型的產出,這些識別出來的功能們是具有相依性的,此部分可參考「服務不中斷計畫」中的功能資源相依圖 (Function Resource Dependency)。
    • 大綱 (List):
      我喜歡用大綱來記錄測試想法,像是 Microsoft Word 中的符號清單、編號清單和多層次清單,可以方便地撰寫和修改測試想法的大綱。
    • 十分鐘測試計畫 (ACC 能力矩陣):
      請參考《Google 軟體測試之道》(How Google Tests Software)。
      屬性、組件、能力 (Attributes, Components, and Compatibilities) 模型的基本思想是,專注於核心屬性、核心功能和核心能力,在 10 分鐘內完成測試。在 CTF 這種有時限的競賽中,更是必須知道何為優先執行項目
    • 測試想法優於測試案例:
      有些測試案例往往只執行一次,詳細記錄所有測試案例將佔用過多專案時間,壓縮實際測試時間。故我們建議資安測試人員優先記錄測試想法,只在必要時新增詳細描述

個人範圍的「測試筆記」


我建議,個人範圍的「測試筆記」可以維護或超連結於專案範圍的「測試計畫」中,這樣就可得到主幹式維護的好處,易找、好交接。

  1. 測試想法清單:
    • 測試想法清單是一種簡化的測試指南,幫助測試人員構思具體的測試 (嗯,如果我是職業資安攻擊者,我就會根據各領域出一份 Cheat Sheet)。
    • 最著名的例子是 Quality Tree Software 發布的 測試啟發式方法備忘單它提供了一些資料攻擊的想法,所針對的資料類型包括路徑與檔案、時間與日期、數字與計算
  2. 安全性品質特性列表:
    • 品質特性列表的典型例子是 The Test Eye 發布的 軟體品質特質,裡面有安全性品質面向可參考,下列每一項都非常具有啟發性喔。
    • 安全性 (Security):此待測物是否防止非規劃內的使用意圖?
    • 授權 (Authorization):此待測物是否有處理何者有權限做某事之操作?
    • 隱私 (Privacy):此待測物是否具備能力去防止資料被無授權之使用者存取?
    • 秘密性 (Secrecy):此待測物是否已有被公開之底層系統結構?
    • 不易滲透性 (Invulnerability):此待測物是否有能力抵抗滲透攻擊?
    • 免於病毒 (Virus-free):此待測物是否不會傳遞病毒,或表現地像病毒?
    • 竊盜防制 (Piracy Resistance):此待測物是否已有非法被公開之源代碼?
    • 法遵 (Compliance):此待測物是否遵守某些安全規範?
  3. 操作手順文件:
    • 只需要針對複雜的資安測試任務撰寫操作手順。
    • 用螢幕和麥克風錄製一個五分鐘的視訊,其傳遞知識的效果可勝過一份用幾十分鐘編寫的檔案。
  4. 檢查清單 (Checklist):
    • 處理複雜測試工作時,應使用檢查清單。
    • 在時間壓力下,人腦很可能會遺漏一些重要的細節。為了任務完成的一致性和完整性,檢查清單成為很重要的提醒物。
  5. 漏洞目錄:
    • 常見軟體安全漏洞,像是 OWASP Top 10,但我認為應該要蒐集到 400 項以上的常見軟體安全漏洞,並分門別類。
    • 將漏洞目錄作為「攻擊指南」,根據典型漏洞和待測物的特點,來做快速資安測試
    • 提煉出特定領域的缺陷,作為「測試計畫」的附錄。這些「常見漏洞」能激發測試靈感,並幫助識別典型問題。

每個 CTF 參賽團隊,既是攻擊者也是防守者,目的就是要捍衛自己伺服器不被入侵、服務不中斷,但也必須要透過分析服務的漏洞,可以從透過流量分析和封包分析等方式,找到可以利用的一般漏洞或是零時差漏洞,駭入其他隊伍的伺服器得分。我覺得 Capture the Flags 名字取得真的很妙,Flags──訊號。
看懂 CTF
《CTF 現場攻防流程》
資料來源:臺灣 HITCON,https://www.ithome.com.tw/news/102969


上一篇
[Day 19] 安全評估與測試 (Security Testing Report)
下一篇
[Day 21] 安全評估與測試 (Security Testing Methodology)
系列文
資訊系統安全與 CISSP 的簡單應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言