規則更新

2.2.0 版中的規則更新

  1. 新增規則
語言 CWE 說明
CSS 改進 CSS 掃描器效能,以便處理極大的 HTML 檔案,且不會耗費過多時間。
Delphi,包括 Object Pascal1 CWE-22 不當限制受限目錄的路徑名稱
CWE-77 不當中性化在指令中使用的特殊元素
CWE-78 不當中性化在 OS 指令中使用的特殊元素
CWE-79 不當中性化產生網頁期間的輸入(跨網站 Scripting)
CWE-89 不當中性化在 SQL 指令中使用的特殊元素
CWE-94 程式碼生成控制不當(「程式碼注入」)
CWE-99 資源 ID 控制不當(「資源注入」)
CWE-119 在記憶體緩衝區的界線內不當限制運作
CWE-120 緩衝區複製時未檢查輸入的大小。
CWE-200 資訊暴露
CWE-266 專用權指派不正確
CWE-295 不適當的憑證驗證
CWE-312 以明碼儲存的機密性資訊
CWE-327 使用中斷或風險加密演算法
CWE-328 使用低強度雜湊演算法
CWE-330 使用隨機程度不足的亂數
CWE-338 使用加密低強度虛擬亂數產生器 (PRNG)
CWE-345 資料真實性驗證不足
CWE-434 未限定上傳危險類型的檔案
CWE-497 將系統資料暴露至未獲授權的控制範圍
CWE-502 不受信任資料的解除序列化
CWE-614 HTTPS 階段作業中的機密 Cookie 缺少「Secure」屬性
CWE-643 不當中性化 XPath 運算式中的資料(「XPath 注入」)
CWE-760 使用附帶可預期冗餘字串的單向雜湊
CWE-780 使用未附帶 OAEP 的 RSA 演算法
CWE-787 超出範圍寫入
CWE-798 使用硬編碼認證
CWE-942 對不受信任網域配置過於寬鬆的跨網域原則
CWE-1004 機密 Cookie 缺失「HttpOnly」旗標
CWE-120 檢查 StrCopy, StrCat, StrPCopy, lstrcpy, and lstrcat 的不安全使用情況。1
CWE-143 檢查格式字串使用中的不安全格式。1
CWE-295 檢查停用 SSL 憑證驗證的設定。1
CWE-33 檢查 RandSeed 的使用情況。1
CWE-367 透過文件檢查 TOCTOU (檢查時間\使用時間) 競爭條件。1
CWE-522 檢查加密密鑰是否為空白或空值。1
CWE-522 檢查資料庫連線字串中的硬編碼認證。1
CWE-539 檢查 Cookie 到期時間是否過長。1
CWE-693 檢查是否使用已淘汰的 X-XSS-Protection 標頭。1
CWE-693 檢查是否停用安全的編譯器指引。1
CWE-703 檢查不當的例外重新擲回。1
CWE-732 檢查新 Cookie 中是否有不安全的網域項目。1
CWE-732 檢查不安全的 Cookie 路徑項目。1
HTML CWE-798 新增針對具有硬編碼值的硬編碼輸入元素類型密碼欄位的檢查。
註: 此檢查已新增至原始碼掃描器和混合式掃描器。
Java CWE-502 新增針對不安全解除序列化的額外檢查。1
CWE-532 新增針對敏感日誌記錄缺失的附加檢查。1
CWE-1004 新增 Cookie 中缺少 HttpOnly 旗標的檢查。1
CWE-79 檢查 SpringBoot 控制器中,HTTP 回應是否包含未經消毒的使用者輸入。1
CWE-208 檢查在處理潛在敏感字串時,是否包含時序攻擊。1
CWE-215 檢查 SpringBoot配置 是否會暴露敏感資訊。1
CWE-338 強化低強度亂數產生器檢查規則尋找的 API
CWE-502 檢查 XStream 解除序列化的危險用法。1
CWE-611 強化規則使其也可檢查危險的 XMLInputFactory 配置。
CWE-614 檢查新 Cookie 上是否缺少安全旗標。1
CWE-749 檢查 Spring 應用程式中的不安全 RequestMapping 註釋。1
CWE-76 檢查單向雜湊演算法中是否存在可預期冗餘字串。1
CWE-922 檢查是否在 HTTP 階段作業中儲存敏感資料。1
CWE-1275 檢查 Cookie 中是否有安全的 SameSite 設定。1
CWE-22 擴大 java.nio.file.Path 和 java.io.File API 的涵蓋範圍,
CWE-611 現在已可妥善將 XMLReaderFactory.createXMLReader() 和sxabuilder.setXMLReaderFactory 樣式的呼叫納入考量,以進行安全設定驗證。
移除 Java 時序攻擊規則,因爲該底層問題在 Java 中無法被利用,並且該規則之前曾在安全程式碼上產生誤報。
JavaScript CWE-521 加強偵測 JavaScript 中的物件文字值,如 JSON 物件。
MuleSoft1 CWE-22 不當限制受限目錄的路徑名稱(「路徑遍訪」)
CWE-78 不當中性化作業系統指令中使用的特殊元素(「作業系統指令注入」)
CWE-79 不當中性化產生網頁期間的輸入(「跨網站 Scripting」)
CWE-89 不當中性化 SQL 指令中使用的特殊元素(「SQL 注入」)
CWE-94 程式碼生成控制不當(「程式碼注入」)
CWE-306 遺漏鑑別重要功能
CWE-319 機密性資訊的明碼傳輸
CWE-326 不當加密強度
CWE-338 使用加密低強度虛擬亂數產生器 (PRNG)
CWE-359 將隱私個人資訊洩露給未獲授權的動作者
CWE-497 將敏感系統資訊暴露至未獲授權的控制範圍
CWE-532 將機密性資訊插入至日誌檔
CWE-611 XML 外部實體參照的不當限制
CWE-942 對不受信任網域配置過於寬鬆的跨網域安全原則
CWE-1287 不當的特定輸入類型驗證
PHP CWE-79 不當中性化產生網頁期間的輸入(「跨網站 Scripting」)
機密 CWE-798 使用硬編碼認證
將逾時設定為一秒以加速掃描。
加入 .properties 檔案以調查硬編碼機密。
CWE-798 檢查硬編碼認證時最佳化機密效能。
CWE-798 新增針對 JWT 硬編碼認證的檢查。
CWE-798 新增針對透過 Base64.encode 呼叫的硬編碼認證的檢查。

2.1.0 版中的規則更新

註:
  1. 新增規則
語言 CWE 說明
Android Java CWE-319 新涵蓋範圍:檢查 AndroidManifest.xml 檔案中的 usesCleartextTraffic 或 cleartextTrafficPermitted 是否設為 true,這是不安全的做法。
C# CWE-89 降低 SQLi 偵測中的雜訊。
CWE-215 檢查日誌記錄呼叫是否含有包含敏感資訊的可疑變數。1
CWE-397 尋找潛在不安全的通用例外擲回,例如 throw new Exception 或 throw new SystemException。
CWE-89 新涵蓋範圍:新增 SQL 注入檢查,以納入 += 模式以及部分預存程序模式。
CWE-89 新涵蓋範圍:更嚴格的檢查,以確認目前處於查詢語句中,從而減少雜訊。
CWE-1004 減少干擾:檢查 http=true,若已設定則略過此發現。
CSS CWE-79 降低在 .css 檔案中硬編碼變數檢查所發現的雜訊。
Dart CWE-943 尋找 NoSQL 注入。1
CWE-338 尋找不安全的偽隨機數字。1
CWE-116 尋找 File.writeAs 樣式呼叫。1
CWE-79 檢視 Response.ok 和類似呼叫的潛在不安全使用情況。1
CWE-348 尋找可能不安全的目錄列舉。1
CWE-78 檢查 Process.run 是否有不安全的使用。1
CWE-89 涵蓋 query/execute/prepare 樣式呼叫的 SQL 注入潛在風險。1
Dart:Flutter

(新架構支援,新涵蓋範圍)
CWE-35 檢查 MethodChannel 是否使用可能由使用者控制的路徑引數。
CWE-78 在 MethodChannel 呼叫中尋找潛在的 OS 注入。
CWE-80 檢查 WebView 或 InAppWebView,查看 javascript 是否未受到限制,這是危險做法。
CWE-89 支援 sqflite flutter 特定的 DB API
CWE-117 揭露未被除錯控制包覆的 print 及類似陳述式。這些呼叫通常不應出現在除錯分支以外的生產程式碼中。
CWE-312 檢查 FlutterSecureStorage 是否儲存了疑似私人資訊,例如密碼或其他階段作業資訊。
CWE-598 檢查 Navigator 物件是否有可能不安全的查詢參數用途。
CWE-918 尋找 MethodChannel.invokeMethod 中由使用者控制的 URL,以防範 SSRF 攻擊。
執行 CWE-79 降低 fprintf 檢查時產生的雜訊。
IaC Docker CWE-22 檢查是否在 DockerFile 中新增了敏感路徑。1
IaC Kubernetes CWE-209 在 .yaml 配置檔中新增檢查殘留堆疊追蹤程式碼的機制。1
Java CWE-209 檢查程式碼中 System.out 與 System.err 的使用(為除錯呼叫,應從生產程式碼中移除)。1
CWE-78 搜尋 Runtime.getRunTime() 的內聯呼叫。
CWE-757 擴充我們檢查為不安全或破損項目的清單。
CWE-916 檢查 PBEKeySpec 與 PBEParameterSpec 是否使用較弱的迭代次數。1
CWE-1188 使用大型或由使用者控制的值的 StringBuilder 建構函式阻斷服務檢查。1
CWE-215 檢查日誌記錄呼叫是否含有包含敏感資訊的可疑變數。1
CWE-397 尋找可能不安全的通用例外擲回,例如 throws Exception 或 throws Throwable。
CWE-396 尋找通用的 catch 區塊,例如 catch(Exception e) 或 catch (Throwable t)。1
JavaScript CWE-397 尋找可能不安全的通用例外擲回,例如 throw "message"。
CWE-80 修正 @if 模式被誤判為非 handlebars 範本的問題。
JavaScript:Angular CWE-80 減少干擾:檢查以確認目前不在 @if 範本中
NodeJS CWE-78 額外檢查不安全的 child_process.exec 呼叫。
Perl CWE-732 IO::File::open 呼叫的涵蓋範圍更加完整。
CWE-89 減少 SQL 注入規則中的雜訊,該規則先前會對參數化陳述式產生誤報。
CWE-732 降低以 STDIN 作為輸入的 open 呼叫所產生的雜訊。
CWE-397 尋找可能不安全的通用例外擲回,例如 throw Error("foo")。
PHP CWE-89 新增針對 sqlite_escape_string 的驗證器檢查。
CWE-213 新增對 PHP 程式碼中殘留的 phpInfo 呼叫的檢查。1
CWE-89 新增以 sqlite_escape_string 驗證並排除發現的檢查。
Python CWE-397 尋找可能不安全的通用例外擲回,例如 raise BaseException。
機密 CWE-798 為硬式編碼的 privateKey 新增機密檢查。
CWE-798 新涵蓋範圍:新增對 Tuleap 的支援。
CWE-798 新涵蓋範圍:檢查 equalsIgnoreCase 呼叫中是否有硬式編碼密碼。
CWE-798 減少干擾:避免為機密掃描器中已註解的 C\C++ 程式碼新增發現。
CWE-798 將一些雜訊模式作為發現項目移除。
CWE-798 在 web.config 檔案中搜尋硬編碼的認證資訊。
CWE-1051 檢查硬編碼的 IP 位址,並調整以避免誤判看似 IP 位址但實際上不是的字串。
CWE-1051 減少干擾:硬編碼 IP 位址檢查現已避免將版本號誤判為 IP 位址
CWE-798 減少在 Atlassian 機密偵測中的干擾。
CWE-798 減少在機密金鑰\值配對中的干擾。
CWE-798 新增檢查範圍,以偵測字串中包含 1234 的硬編碼密碼。
Swift CWE-1188 新涵蓋範圍:檢查 info.plist 檔案中的 UIFileSharingEnabled 或 LSSupportsOpeningDocumentsInPlace 是否設為 true,這是不安全的做法。
TypeScript CWE-94 針對包含可能由使用者控制之變數的 eval,新增額外檢查。

此外,CWE-319 也已全面更新。我們已移除在程式碼中尋找不安全 http 樣式字串的規則,因為這些規則產生過多雜訊。我們仍會在適當情況下,於混合式掃描器中尋找特定的開放式通訊使用例項,例如 JavaScript 中的 fetch 呼叫。

這項對 CWE-319 的變更會影響下列語言:
  • ASP
  • Golang
  • Groovy
  • Kotlin
  • Objective-C
  • PHP
  • Scala
  • Swift
  • C#
  • Dart
  • RPG
  • VB
  • Xamarin