掃描
Ogma 包含被動與主動掃描器。被動掃描分析已擷取的流量。主動掃描傳送修改後的請求,並根據回應行為、耗時、反映內容與基準比較驗證檢測發現。
被動式掃描器
被動掃描器評估已擷取的 HTTP 項目,不會傳送新流量。
可偵測的類別包括:
- SQL、NoSQL、LDAP、範本、還原序列化與 XML 錯誤資訊洩漏。
- 缺少或薄弱的安全標頭。
- Cookie 旗標問題。
- CORS 設定錯誤。
- 外露的機密、私密金鑰、服務帳戶資料、webhook 與權杖。
- 外露的原始碼版本控制資料、設定、API 文件或敏感檔案。
- JWT 問題,例如
none演算法、過長的有效期限與 HMAC 使用。 - 回應緩慢與危險的 HTTP 方法。
被動檢測發現有助於分級處理,但仍需要審查。標頭與政策類問題往往取決於應用程式情境。
執行被動分析
- 擷取流量。
- 開啟實用工具 > 掃描器。
- 選取被動式掃描器。
- 點選掃描所有歷程記錄。
- 在檢測發現中檢視建立的結果。
自訂被動規則可在設定 > 掃描器中設定。
主動式掃描器
主動掃描器會在請求的候選位置注入酬載,並驗證目標回應。
已實作的檢查類別:
| 檢查項目 | 確認方式 |
|---|---|
| SQL 注入 | 尋找 SQL 錯誤,或在使用時間型酬載時確認可重複的延遲高於測得的基準。 |
| 反射型 XSS | 要求酬載在 HTML 回應中反映,且未經預期的編碼。 |
| 路徑穿越 / LFI | 要求出現基準回應中不存在的檔案內容指標。 |
| 作業系統命令注入 | 要求出現命令輸出,或在使用時間型酬載時出現高於測得基準的可重複延遲。 |
| SSTI | 使用計算結果確定的範本數學酬載,並要求回應中出現計算結果。 |
| SSRF | 要求注入 URL 酬載後出現中繼資料或服務橫幅證據。 |
| 開放重新導向 | 要求重新導向回應指向注入的外部網域。 |
掃描器刻意不將一般的 200 OK 回應視為漏洞證明。
尚未實作的檢查
主動檢查清單可能包含標記為尚未實作的檢查。這些檢查用於清楚展示開發規劃,但不會建立檢測發現。在目前後端中,若沒有帶外驗證或應用程式專用驗證,XXE 與不安全上傳不會被自動確認。
全部主動式掃描
全部主動式掃描會在以下位置注入酬載,測試近期擷取的請求:
- 查詢參數。
- 表單本文參數。
- JSON 值。
- 路徑區段。
- 啟用後選定的標頭。
主動掃描前使用測試範圍,讓流量與結果保持聚焦。
建議工作流程:
- 定義並啟用測試範圍。
- 擷取具代表性的目標流量。
- 從被動分析開始。
- 先對選定請求執行主動掃描,再使用全部主動式掃描。
- 在檢測發現中審查驗證請求與回應證據。
- 移除誤判,不要直接回報原始掃描器輸出。
證據品質
高品質的掃描器檢測發現應回答:
- 測試了哪個參數或輸入?
- 使用了哪個酬載?
- 回應發生了什麼變化?
- 基準回應中是否沒有該行為?
- 問題是否可重複?
- Ogma 中是否有關聯證據?
證據不確定時,降低信心程度,或先將結果保留為筆記,直到確認為止。