程式忍者PGNinja

GitHub Blog

CodeQL 2.27.4 更新多項語言查詢並修正 CWE 標籤

· CodeQL 2.27.4 改進 Java、Rust、C/C++ 等語言的查詢準確度,並修正多項 CWE 標籤與 CLI 行為。

CodeQL 是 GitHub 用來做靜態程式碼分析的安全掃描引擎,2.27.4 這個版本針對多種程式語言的查詢規則做了調整,目標是讓安全掃描結果更準確,減少開發者被無關緊要的警告打擾的情況,同時修正了一批查詢的 CWE(常見弱點列舉)分類標籤。

在 Java 與 Kotlin 方面,log-injection 查詢新增了對 JDK、Apache Commons Lang 與 Text、Guava、OWASP Java Encoder、Spring Framework 等函式庫清理函式的辨識;路徑注入查詢也能認出 Apache Commons Lang 與 Guava 提供的子字串檢查與字串取代操作。Rust 的 uncontrolled-allocation-size、log-injection 與 cleartext-logging 查詢減少了誤報;C/C++ 的 suspicious-pointer-scaling 不再對 std::byte* 緩衝區的指標運算誤判,unused-local-variable 等查詢也會尊重 [[maybe_unused]] 標記。另外,多個語言裡與正規表達式相關的查詢不再套用錯誤的 CWE-730 標籤。

這類更新雖然不是什麼大功能,但對天天在用 CodeQL 做程式碼掃描的開發團隊很實際,因為誤報太多會讓人漸漸不信任掃描結果,準確度每提高一點,團隊就少花一點時間去確認「這個警告是不是假的」。GitHub 也同步讓 CodeQL CLI 在打包時檢查符號連結,避免 pack 裡混入超出範圍的檔案,這類基礎設施面的小修正是維護大型開源工具常見但容易被忽略的工作。

對正在學程式的孩子來說,CodeQL 本身還太進階,用不到,但背後的概念值得知道:寫完程式不代表就安全,業界會用這種自動掃描工具幫忙抓出程式裡可能被攻擊利用的弱點。如果孩子之後接觸開源專案或參加程式比賽,知道有這類工具存在,也能理解為什麼程式碼審查與測試在軟體開發裡一直被視為重要的一環。

開發工具開源資安

其他新聞