一、 弱點與威脅的基本概念
定義:系統本身、程式碼缺陷(Coding Bug)、作業系統設定有錯,或人為操作不當所引發的可被利用的脆弱點。
發掘與管理:備考時需熟悉常見 Open Source(開源工具)的指令與語法。(之後會寫到)
國際標準:採用 CVE 與 CVSS 進行弱點管理與風險評分。
弱點:系統或人為本身存在的靜態缺陷(原本就有問題)。
威脅:利用弱點進行破壞的動態企圖與動作(駭客利用原本的問題進行攻擊或誘導)。
二、 漏洞發掘機制(系統測試方式)
根據測試者掌握的資訊與手法,實務上主要分為三大類:
白箱測試(White-Box / SAST 靜態應用程式安全測試)
條件:充分了解系統架構,甚至取得原始碼。
手法:原始碼檢視(Code Review)、語法分析與結構檢查(不需執行程式)。
特點:能深入 Code 層級掌握潛在漏洞,但缺點是誤報率(False Positive)極高,常常掃出一對問題就要一一排查。
黑箱測試(Black-Box / DAST 動態應用程式安全測試)
條件:對系統內部一無所知(模擬外部駭客)。
手法:透過既有功能介面進行輸入/輸出測試、例外狀況與程式注入(Injection),觀察預期外的反應。
特點:模擬真實攻擊行為,能發現只有在執行期(Runtime)才會出現的問題。
灰箱測試(Grey-Box)
條件:結合白箱與黑箱測試(例如給予普通使用者的帳號權限進行測試)。
手法:交互驗證兩者結果,尋找授權與邏輯漏洞。
特點:測試覆蓋率高,但所需時間與人力成本也相對較高。
| 比較面向 | 白箱測試 (White-Box) | 黑箱測試 (Black-Box) |
|---|---|---|
| 別稱 / 對應技術 | 靜態測試、SAST(靜態應用程式安全測試) | 動態測試、DAST(動態應用程式安全測試) |
| 何時介入(開發週期) | 早期(只要有 Code 就能測,甚至還沒上線就能測) | 晚期(通常需要系統已經部署、有介面可以操作的執行期 Runtime) |
| 結果為何 | 找出深層的程式碼邏輯漏洞、寫法缺陷(如不安全的加密函式、隱藏的後門邏輯)。 | 最擅長找出環境配置失誤、對外介面漏洞、實際可被利用的攻擊鏈。 |
| 缺點 | 看不到系統實際跑起來的動態狀況,還容易被大量的報錯掩蓋重要訊息。 | 無法指出是哪一行的 Code 寫錯,只能指出是哪裡被打下來,修補時需要花時間回推程式碼。 |
| 核心檢視重點 | 看的是原因(看程式碼有哪裡有問題) | 看的是結果(看系統有沒有漏洞) |