OpenSSF發布Python安全程式開發指南,可用於開發者培訓、資安研究與AI工具評測
這份指南由OpenSSF最佳實務工作小組(OpenSSF Best Practices Working Group) 建立,聚焦CPython 3.9及之後版本與標準函式庫,避免依賴特定網頁框架或第三方模組,讓不同技術堆疊的團隊都能套用當中揭示的原則。OpenSSF表示,整份指南設計為可在40小時內完成自學,協助開發者建立安全程式開發基本觀念。
雖然這份指南主要面向新進開發者,但OpenSSF也指出,指南中的程式碼範例與規則整理,可協助資安研究人員觀察與理解Python弱點模式;開發團隊也能利用這些範例,測試大型語言模型、靜態分析器等AI與自動化分析工具,並檢驗這些工具是否能辨識Python程式碼中的弱點模式,教育工作者則可將其作為安全程式開發課程的基礎教材。
指南內容分為9個章節,涵蓋信任邊界(Trust Boundaries)、硬編碼憑證(Hardcoded Credentials)、輸入正規化(Input Canonicalization)與數值處理(Numeric Handling)等基礎安全議題,也包括作業系統命令注入(OS Command Injection)、SQL注入(SQL Injection)、反序列化(Deserialization)、路徑穿越(Path Traversal)等常見弱點,並延伸至例外處理(Exception Handling)、日誌記錄(Logging)、並行處理(Concurrency)與密碼學(Cryptography)。每項規則都包含風險說明、不符合規範的程式碼範例、符合規範的修正範例、自動化偵測結果,並對應非營利研發組織MITRE維護的常見弱點枚舉(Common Weakness Enumeration,CWE)分類。
OpenSSF也強調,靜態分析工具與AI輔助程式碼審查雖有助於找出問題,但無法涵蓋所有安全風險。部分弱點不是單靠程式碼掃描就能發現,而是與系統流程設計及資料處理方式有關。例如,程式未清楚區分可信任與不可信任資料、未妥善處理輸入內容,或因運算子優先順序誤用而產生邏輯錯誤,這類問題通常需要結合程式情境判斷,難以完全仰賴工具自動辨識。
因此,指南中的程式碼範例採用固定命名規則,例如:noncompliantXX.py用來呈現反模式(anti-pattern)或漏洞,compliantXX.py示範對應修正方式,exampleXX.py則說明特定程式行為。OpenSSF也指出,範例不只呈現有弱點的程式碼,也會示範這類弱點可能如何被利用,並以註解區隔兩者內容,方便檢驗資安分析工具,確認其是否能找出相關弱點。
在風險呈現方式上,這份指南並未採用抽象風險矩陣,而是在主要總覽表中,將多項規則對應到實際產品中的代表性CVE案例,並列出CVSS與EPSS(Exploit Prediction Scoring System,漏洞利用機率評分系統)的分數。OpenSSF指出,CVSS呈現漏洞遭利用後的嚴重程度, EPSS則反映漏洞在實際環境遭利用的可能性,兩者搭配可協助開發者更具體理解不同弱點的真實風險。
Secure Coding One Stop Shop for Python
This is a list of materials (documents, services, and so on) released by the Open Source Security Foundation (OpenSSF) Best Practices Working Group (WG).
best.openssf.org
Comments (0)