安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。
目錄
3. SAST(靜態應用安全測試)
4. IAST(交互式應用安全測試)
5. 污點分析(Taint Analysis)
6. DevSecOps 核心理念
7. SDL(安全開發生命周期)
8. 發展規劃(學習方向)
9. 語言棧與學習態度
10. SAST vs IAST 技術偏好
11. 白盒審計方法論
12. 自動化工具開發實踐
知識體系全景圖
3. 對SAST的理解 4. 對IAST的理解 5. 污點分析 6. 對DevSecOps的理解 7. 對SDL的理解 8. 后面的發展規劃(學習方向) 9. 目前掌握的語言棧怎么樣?愿意去學習新的語言嗎? 10. 對SAST和IAST中哪個更感興趣 11. 講講白盒審計的思路 12. 有寫過相關的自動挖掘工具嗎
3. SAST(靜態應用安全測試)
核心理解
維度 關鍵點 原理 源碼/字節碼掃描,通過數據流分析、模式匹配、控制流追蹤檢測漏洞(無需運行程序) 優勢 開發早期介入、全代碼覆蓋、檢測邏輯漏洞(如硬編碼密碼) 局限 誤報率高(可達30%)、漏報動態特性漏洞(如運行時依賴注入) 代表工具 Checkmarx、Fortify、Semgrep(開源)
4. IAST(交互式應用安全測試)
突破性價值
mermaid
graph LR A[Agent植入] --> B(運行時流量監控) B --> C{污點跟蹤} C --> D[漏洞精準定位]
- 技術融合:SAST + DAST + RASP,通過插樁實時采集執行路徑
- 核心優勢:
- 誤報率<5%(驗證真實執行路徑)
- 支持API測試、微服務架構
- 落地挑戰:需集成CI/CD流水線,資源消耗較高
5. 污點分析(Taint Analysis)
漏洞檢測基石
- 三階段模型:
- Source(輸入點):
HttpRequest.getParameter()
- Sink(危險操作):
executeQuery(sql)
- Propagation(傳播路徑):變量賦值、方法調用
- 關鍵算法:
- 前向傳播(Forward Analysis):跟蹤污點到sink
- 后向傳播(Backward Analysis):從sink回溯到source
- 實踐難點:
- 路徑爆炸問題(通過符號執行優化)
- 隱式流處理(如條件分支中的敏感操作)
6. DevSecOps 核心理念
安全左移+持續防護
diff
傳統流程: 開發 → 測試 → 安全審核(滯后) DevSecOps:設計 + 編碼 + 測試 + 部署 + 監控(全流程嵌入安全)
- 三大支柱:
- 自動化安全門禁:SAST/IAST掃描失敗阻斷Pipeline
- 基礎設施即代碼安全:Terraform模板掃描、容器鏡像漏洞檢查
- 運行時防護:RASP攔截0day攻擊
7. SDL(安全開發生命周期)
微軟經典框架
階段 核心活動 交付物 需求分析 威脅建模(STRIDE分類) 威脅矩陣文檔 設計 安全架構評審 架構安全簽名 實現 安全編碼規范 + SAST掃描 無高危漏洞報告 驗證 滲透測試 + Fuzz測試 漏洞修復清單 發布與響應 應急響應預案制定 IRP手冊
8. 發展規劃(學習方向)
三維能力進階路徑
- 技術深度:
- 深耕代碼審計:Java反序列化利用鏈、PHP偽協議利用
- 掌握漏洞挖掘:Fuzz工具開發(AFL++)、二進制逆向
- 橫向擴展:
- 云原生安全:K8s RBAC策略審計、Serverless安全
- 供應鏈安全:SCA工具集成、惡意包檢測
- 業務結合:
- 金融場景:交易篡改防御、信貸反欺詐模型
- 車聯網場景:CAN總線安全、OTA升級簽名驗證
9. 語言棧與學習態度
當前能力矩陣
語言 熟練度 應用場景 Java ???? SAST工具開發、Spring安全審計 Python ???? 漏洞PoC編寫、自動化掃描腳本 Go ?? 云安全工具開發(如Clair) JavaScript ?? 前端XSS防御、瀏覽器擴展開發 新語言策略:
- 短期目標:強化Go語言(云原生生態主導地位)
- 長期儲備:Rust(內存安全型SDLC工具開發)
10. SAST vs IAST 技術偏好
選擇IAST的核心理由:
python
# 傳統SAST誤報場景示例 password = "temp123" # 被誤報為硬編碼憑證(實際為測試占位符) # IAST動態驗證過程 if runtime_env == "PROD": # Agent確認非生產環境 ignore_vulnerability()
- 決策因素:
- 精準度需求:金融/醫療行業必須低誤報
- 技術趨勢:Gartner預測2025年70%企業將采用IAST
11. 白盒審計方法論
四步深度挖掘模型
- 入口點定位:
- HTTP請求入口:
@RequestMapping
、Servlet
- 文件/反序列化入口:
readObject()
、FileInputStream
- 數據流追蹤:
- 正向污點跟蹤:
用戶輸入 → 過濾函數 → 危險方法
- 回溯敏感操作:從
SQL.execute()
反向溯源- 上下文分析:
- 框架特性:Spring Security繞過(
CVE-2023-34040
)- 依賴組件漏洞:Log4j RCE鏈
- 鏈式利用構造:
- 組合漏洞:SSRF + 反序列化達成RCE
12. 自動化工具開發實踐
自研工具案例:Java SQLi嗅探器
java
// 基于ASM的字節碼分析工具片段 public class SQLiDetector extends MethodVisitor { @Override public void visitMethodInsn(int opcode, String owner, String name, String desc) { if (name.equals("executeQuery")) { // 檢查參數是否包含未過濾用戶輸入 if (isTaintedVariable(currentParam)) { reportVulnerability(); } } } }
- 技術棧:ASM字節碼操縱 + 污點分析引擎
- 檢測能力:
- 識別拼接SQL語句(
"SELECT * FROM " + tableName
)- 繞過偽過濾(
replace("'", "")
被雙寫繞過)- 演進方向:
- 集成LLM輔助誤報判別(CodeBERT模型)
知識體系全景圖
mermaid
graph TD A[靜態分析] --> B(SAST) A --> C(代碼審計) D[動態分析] --> E(IAST) D --> F(滲透測試) G[開發流程] --> H(SDL) G --> I(DevSecOps) B --> J(污點分析) E --> J