許貽昇
現任職於奧義智慧科技(CyCraft)資安研究員。研究方向涵蓋靜態程式分析、IOT 安全、LLM 應用於資安自動化等領域。
Security researcher at CyCraft Technology. Research interests include static program analysis, IoT security, and applying LLM to security automation.
Intervention
靜態應用安全測試(SAST)工具是軟體安全開發流程中不可或缺的一環,然而許多靜態分析工具往往產生大量誤報,導致開發者在人工審查上耗費巨大成本,甚至因「告警疲勞」而忽略真正的漏洞。
本議程將分享一套完全開源的混合式漏洞驗證框架,透過三階段流水線大幅降低 SAST 工具的誤報率:
第一階段:多工具統一掃描。整合 cppcheck、flawfinder、RATS、CodeQL 四款開源 SAST 工具,對 C/C++ 專案進行掃描,並將各工具不同格式的掃描結果統一轉換為標準化格式。
第二階段:CPG 語義上下文擷取。利用開源程式分析平台 Joern 建構 Code Property Graph(CPG),針對每一筆 SAST 發現的可疑漏洞行,自動擷取完整的函式上下文、資料流路徑、caller/callee 關係、以及全域變數賦值分析,為 LLM 提供充分的語義脈絡。
第三階段:LLM 漏洞驗證。將 CPG 擷取的上下文資訊,交給 LLM 進行漏洞路徑分析,最終對每筆發現做出「確認漏洞」或「誤報」的判定。
以 SQLite 等真實開源專案為實驗基準,評估了此框架在 Precision、Recall、F1-score 等指標上的表現。實驗結果顯示,此框架能有效過濾大量誤報,同時維持對真實漏洞的高偵測率。
聽眾將了解如何運用 CPG 為 LLM 提供精準的程式語義上下文的實作經驗,並在真實 C/C++ 專案上降低 SAST 誤報率的具體數據與最佳實踐。