規則更新
2.2.0 版中的規則更新
- 新增規則
| 語言 | 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 版中的規則更新
註:
- 新增規則
| 語言 | 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