规则更新

版本 AppScan® Source10.12.0 中的规则更新

  1. 新规则
语言 CWE 描述
Delphi,包括 Object Pascal1 CWE-22 路径名未正确限制到受限目录
CWE-77 命令中使用的特殊元素未正确中和
CWE-78 OS 命令中使用的特殊元素未正确中和
CWE-79 Web 页面生成期间输入未正确中和(跨站点脚本编制)
CWE-89 SQL 命令中使用的特殊元素未正确中和
CWE-94 代码生成控制不当('代码注入')
CWE-99 资源标识符控制不当('资源注入')
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 不带 'HttpOnly' 标志的敏感 Cookie
CWE-120 检查 StrCopyStrCatStrPCopylstrcpylstrcat 的不安全使用。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 新增对硬编码值且类型为密码的输入元素的检查。
Note: 已添加到源代码扫描器和混合扫描器中。
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
MuleSoft1 CWE-22 对受限目录路径名的限制不当(“路径遍历”)
CWE-78 对操作系统命令中使用的特殊元素清理不当(“操作系统命令注入”)
CWE-79 对 Web 页面生成期间的输入的清理不当(“跨站点脚本编制”)
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 对 Web 页面生成期间的输入的清理不当(“跨站点脚本编制”)
密钥 CWE-798 使用硬编码凭证
将超时设置为一秒以加快扫描速度。
.properties 文件中添加对硬编码机密的调查。
CWE-798 优化了检查硬编码凭证时的机密检测性能。
CWE-798 新增对 JWT 硬编码凭证的检查。
CWE-798 新增对通过 Base64.encode 调用传递的硬编码凭证的检查。

AppScan® SourceV10.11.0 中的规则更新

语言 CWE 描述
Android Java CWE-319 新增覆盖范围:检查 AndroidManifest.xml 文件中是否将 usesCleartextTrafficcleartextTrafficPermitted 设置为 true,这是一种不安全的做法。
C# CWE-89 新增覆盖范围:新增 SQL 注入检测,除原有模式外新增 += 模式及部分存储过程模式。
CWE-89 新增覆盖范围:强化检测约束条件,确保仅在查询语句中触发以减少干扰。
CWE-215 检查日志调用中是否存在包含敏感信息的可疑变量。
CWE-397 检测常规抛出异常(如 throw new Exception 或 throw new SystemException)的潜在安全隐患。
CWE-1004 降噪:检测 http=true 设置,若存在则避免生成问题。
Dart:Flutter

(新增框架支持,新增覆盖项)
CWE-35 检查 MethodChannel 是否使用可能受用户操控的路径参数。
CWE-78 检测 MethodChannel 调用中潜在的操作系统注入风险。
CWE-80 检查 WebViewInAppWebView 是否存在未受限制的 JavaScript 执行,此为危险做法。
CWE-89 支持 Flutter 专属的 sqflite 数据库 API
CWE-117 发现未被调试控制包裹的 print 及类似语句。此类调用通常不应出现在调试分支外的生产代码中。
CWE-312 规则检查 FlutterSecureStorage 是否存储疑似私密信息,如密码或其他会话数据。
CWE-598 检查导航器对象中查询参数的潜在不安全用法。
CWE-918 MethodChannel.invokeMethod 中查找用户可控 URL 作为 SSRF 攻击载体。
CWE-943 查找 NoSQL 注入漏洞。
CWE-338 查找弱伪随机数。
CWE-116 查找 File.writeAs 风格的调用。
CWE-79 审查 Response.ok 及类似调用的潜在不安全用法。
CWE-348 查找可能存在安全风险的目录列表。
CWE-78 检查 Process.run 是否存在不安全调用。
CWE-89 覆盖 SQL 注入风险的 query/execute/prepare 风格调用。
Java CWE-215 检查日志调用中是否存在包含敏感信息的可疑变量。
CWE-397 查找常规且潜在危险的抛出异常模式,如 throws Exception 或 throws Throwable。
CWE-396 查找常规捕获块,如 catch(Exception e) 或 catch (Throwable t)。
JavaScript:Angular CWE-80 降噪:检查确保不在 @if 模板中
JavaScript CWE-397 查找常规且潜在危险的抛出语句,如 throw "message"。
CWE-80 修复了使用 @if 模式但非 Handlebars 模板的缺陷。
NodeJS CWE-78 新增对危险 child_process.exec 调用的检测。
Perl CWE-89 减少 SQL 注入规则中的干扰,此类规则曾错误地针对参数化语句产生问题。
CWE-732 减少使用 STDIN 作为输入的开放调用噪声。
CWE-732 为 IO::File::open 调用提供更完整的覆盖。
PHP CWE-213 新增对 PHP 代码中残留 phpInfo 调用的检查。
CWE-89 新增检查以通过 sqlite_escape_string 验证并排除问题。
CWE-397 查找常规且潜在不安全的通用抛出异常,例如 throw Error("foo")。
Python CWE-397 查找常规且潜在不安全的通用抛出异常,例如 raise BaseException。
敏感信息 CWE-798 新增针对硬编码机密的 privateKey 检测。
CWE-798 新增覆盖范围:新增对 Tuleap 的支持。
CWE-798 新增覆盖范围:检查 equalsIgnoreCase 调用中的硬编码密码。
CWE-798 降噪:避免为机密扫描程序针对 C/C++ 注释代码添加问题。
Swift CWE-1188 新增覆盖范围:检查 info.plist 文件中是否存在 UIFileSharingEnabledLSSupportsOpeningDocumentsInPlace 设置为 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

AppScan® SourceV10.10.0 中的规则更新

语言 CWE 描述
C# CWE-89 减少 SQLi 检测中的误报。
CSS CWE-79 减少对 .css 文件进行硬编码变量检查时的误报。
Go CWE-79 减少 fprintf 检查中产生的误报。
IaC Docker CWE-22 检查添加到 Dockerfile 中的敏感路径。
IaC Kubernetes CWE-209 已添加一项检查,用于查找遗留在 .yaml 配置文件中的堆栈跟踪代码。
Java CWE-78 查找 Runtime.getRunTime() 的内联调用。
CWE-757 增强了对不安全和已损坏项的检查列表。
CWE-916 检查 PBEKeySpecPBEParameterSpec 的迭代计数是否过低。
CWE-1188 针对使用大值或用户可控值的 StringBuilder 构造函数进行拒绝服务检查。
CWE-209 检查代码中 System.outSystem.err 的使用情况(这些是应从生产代码中移除的调试调用)。
PHP CWE-89 已为 sqlite_escape_string 添加验证器检查。
Python CWE-78 查找 os.system 的不安全使用情况。
CWE-79 提高了 Python Django 规则的清晰度。
密钥 CWE-798 已移除一些会产生噪声的模式,不再将其作为发现项。
CWE-798 web.config 文件中查找硬编码凭证。
CWE-1051 对硬编码 IP 地址的检查已进行调整,可避免将貌似 IP 地址的非 IP 字符串误报。
CWE-1051 移除了硬编码 IP 地址检查的无关模式。
CWE-798 移除了硬编码凭证的无关模式:
  • 避免在 Rust 代码中使用无关模式。
  • 在“Secrets - Creds - Key : value pair”规则中增加了检查,以消除 Python 文件中没有引号的结果。
  • 添加了检查以过滤诸如 1234wrongpasswordtestpasswordnoreply 等干扰性密码。
  • 对其他代码片段进行了调整,以消除包含 1234 等密码的结果。
  • 目前,Key:value pair 规则会查找到行尾的上下文。因此移除了包含,"的行尾。
CWE-1051 降噪:硬编码 IP 地址检查可避免将疑似版本号的字符串误报
CWE-798 减少 Atlassian 机密检测中的误报。
CWE-798 减少机密信息中密钥/值对的误报。
CWE-798 新增检测范围,可查找字符串中包含“1234”作为其一部分的硬编码密码。

AppScan® SourceV10.9.0 中的规则更新

Note:
  1. 新规则
语言 CWE 描述
所有语言 CWE-798 改进了降噪性能
C# CWE-1333 检查应用于 regex 对象的超时1
CWE-89 通过使用 String.Append 构建查询语句而新捕获的 SQLi
已更新 Microsoft.CodeAnalysis.CSharp.ScriptingMicrosoft.AspNetCore.Mvc.ViewFeatures 的安全信息
C# 源代码扫描程序 CWE-94 检查 CSharpScript.EvaluateAsync1
CWE-532 检查是否记录了用户名或密码等个人身份信息 (PII)。1
CWE-111 检查 DllImport 的不安全使用。1
ColdFusion CWE-328 调整了该检查以提高性能
HTML CWE-319 避免 URL 中出现 localhost 这样的干扰信息
IaC CWE-311 针对 Amazon 负载均衡器中的正确 TLS 设置增加了检查
Java 源代码扫描程序 CWE-532 检查是否记录了用户名或密码等个人身份信息 (PII)。1
CWE-102 检查 Struts 验证 XML 文件中是否存在重复的表单名称。1
CWE-104 检查是否存在继承了 ActionForm 但未进行验证的类。1
JavaScript CWE-598 查找 JavaScript 文件中的 URLSearchParams 缺陷。1
PHP CWE-111 检查包含不安全调用的 FFI::cdef 的使用。1
Python CWE-502 查找 Java 中的不安全反射1
CWE-111 检查未对参数使用完全限定路径的 ctypes.DLL 的使用。1

AppScan® SourceV10.8.0 中的规则更新

Note:
  1. 新规则
  2. 减少规则中的无关内容
语言 CWE 描述
ASP.NET CWE-1188 项目配置中启用了无 Cookie 会话状态。2
CWE-79 代码中内嵌表达式的潜在 XSS。2
C# CWE-601 在变量中可能由用户控制的数据的重定向请求。2
CWE-185 正则表达式注入。2
CWE-78 进行了调整,以减少操作系统注入的无关结果。
HTML CWE-79 文件扩展名的新规则:
  • .htm
  • html
  • .rhtml
  • .xhtml
  • .cshtml
  • .vbhtml
CWE-319
CWE-524
CWE-525
CWE-598
CWE-1021
CWE-1022
IaC CWE-798 进行了调整,以减少 TypeScript 代码构造的无关结果。
CWE-1051 进行了调整,以减少 HTML 文件中 IP 模式的无关结果。
CWE-1328 进行了调整,以减少 Docker 镜像引用的无关结果。
IaC Terraform CWE-410 不安全的负载均衡器配置。1
Java CWE-337 Java 代码中 SecureRandom 实例的可预测种子。2
CWE-918 RestTemplate().exchange 中的服务器端请求伪造。2
CWE-185 Java 代码中的正则表达式注入。2
CWE-244 密码存储在 Java 字符串对象中。2
JavaScript CWE-79 document.referrer 的不安全使用。2
CWE-209 进行了调整,以减少噪声结果。
CWE-359 进行了调整,以减少噪声结果。
CWE-1022 已调整以减少 window.open 结果中的误报。
PHP CWE-79 PHP 中用户控制的数据被转换为 HTML。2
Python Django CWE-79
  • 现在正在收集用于审查 Python 的 HTML 文件
  • 添加了新规则。
CWE-89
CWE-200
CWE-201
CWE-212
CWE-352
CWE-497
CWE-522
CWE-523
CWE-795
CWE-918
CWE-1021
CWE-1188
CWE-1295
密钥 CWE-798 硬编码的基本认证凭证。1
CWE-798 查找 URL 查询字符串中的硬编码密码。
CWE-284 进行了调整,以减少 Azure 共享访问签名令牌暴露发现中的误报。
VB.NET CWE-502 可能的反序列化。2
Visual Basic CWE-78 进行了调整,以减少误报。
CWE-328 进行了调整,以减少误报。

AppScan® SourceV10.7.0 中的规则更新

  1. 新规则
  2. 规则修复
语言 CWE 更改
常规 CWE-319 更好地处理所有语言的开放式通信规则,以避免误报。
.NET ASP.NET CWE-1188 ASP.NET 项目配置中启用了无 Cookie 会话状态。
C# CWE-319 检测到开放通信方案。
CWE-328 检测到弱密码算法。
CWE-327 检测到未进行签名验证的 JWT 构建器。
VB.NET CWE-1173 VB 代码中禁用了 HTTP 请求验证。
CWE-328 VB 代码中使用了弱加密算法。
Angular CWE-94 沙盒 VM 中有潜在代码注入漏洞。1
CWE-312 本地存储会避免与排序方向相关的 setItem 调用。
AngularJS 和 AllFolders 属性选项卡 CWE-477 发现已弃用的调用:(ng-bind-html-unsafe)。
Apex CWE-943 SOQL 注入。
CWE-943 SOSL 注入。
CWE-328 选择了弱散列算法。
CWE-79 脚本或样式跨站点脚本编制 (XSS)。
ASP CWE-319 在 ASP 代码中检测到开放通信方案。
CWE-79 检查是否使用 Server.HTMLEncode 进行了正确的验证。
C/C++ CWE-367 临时文件名函数的潜在危险使用。已更正上下文。2
CWE-78 检测到潜在的命令注入。扩展了覆盖范围。2
CWE-250 CreateFile 调用似乎违反了最小特权原则。
CWE-250 CreateNamedPipe 缺少 FILE_FLAG_FIRST_PIPE_INSTANCE 标志。
CWE-757 检测到不安全地使用了 (SSL/TLS) 协议。
CWE-295 检测到 Curl 配置的潜在危险用法(此类别中有七条不同的规则)。
CWE-427 检测到可能违反最小特权原则的注册表操控行为。
CWE-611 启用了不安全的外部实体处理。
ColdFusion CWE-524 cfCache 缓存安全页面。
CWE-502 cfWddx 缺失 WDDX 验证。
CWE-862 客户机未在 cfFunction 中验证。
CWE-319 不安全的通信。
CWE-307 多重提交验证。
CWE-327 加密函数中使用了不安全算法。
CSS CWE-79 进行了调整,以避免无关的结果。
Dart CWE-522 已针对潜在敏感字段启用 AutoComplete
CWE-319 检测到与 HttpServer 的开放通信方案。
CWE-319 检测到开放的套接字通信。
CWE-319 检测到与 Uri 的开放通信方案。
CWE-79 Dart 代码中不安全地使用了 window open。
CWE-319 在字符串中检测到开放通信方案。
CWE-79 发现不安全的内容安全策略关键字。
CWE-328 在呈现结果时更具选择性,避免更显著的无关结果。
CWE-319 进行了调整,以避免无关的结果。
Docker CWE-770 限制 CPU 以防止拒绝服务 (DoS) 攻击。
CWE-770 限制失败时的重启次数以防止拒绝服务 (DoS)。
Go CWE-489 检测到用于 HTTP 的调试包 pprof。
CWE-1004 Golang 代码包含不安全的 http.Cookie
CWE-319 在 Golang 代码中检测到开放通信方案。
Groovy CWE-319 在 Groovy 代码中检测到开放通信方案。
CWE-79 在 Groovy 源代码中检测到潜在的跨站脚本漏洞。
Java CWE-489 在 Web 安全中启用调试会在 Spring 中泄露数据。
CWE-1390 在 SAML 中忽略注释会导致身份验证失效。
CWE-548 Tomcat 配置中默认 Servlet 的不安全目录列表。
CWE-276 在 Java 中检测到不安全的文件权限使用。
CWE-489 在 Java 代码中检测到打印堆栈跟踪。
CWE-489 Android 应用程序中 debuggable 标志设置为 true。
CWE-1188 在 Android 代码中检测到不正确的共享首选项模式。
JavaScript CWE-359 不安全的事件传输策略:已更正的上下文。2
CWE-79 jQuery.append 中检测到潜在的 XSS 漏洞。现在性能更快。2
CWE-79 覆盖 Mustache 转义方法是危险的。
CWE-319 不安全的事件传输策略。
CWE-200 window.postMessage 调用中添加了对危险 target origin 检查的检测。
CWE-913 进行了修改,以避免产生无关的结果。
Java 源代码扫描程序 CWE-918 RestTemplate().exchange 调用中查找 SSRF。
CWE-303 查找 NoOpPasswordEncoder.getInstance 危险调用。
CWE-89 正在查找 SQLi 的其他案例。
CWE-22 正在更多位置查找可能的路径遍历问题
CWE-798 HashMap.put 调用和 setter 方法中查找硬编码凭证。
jQuery CWE-79 进行了修改,以避免产生无关的结果。
Kotlin CWE-319 在 Kotlin 代码中检测到开放通信。
NodeJS CWE-614 Cookie 缺少安全标志或标志设置为不安全的值。
CWE-328 在 crypto createCipheriv 中使用了不安全的算法。
CWE-295 禁用 node-curl 的 SSL 证书验证的不安全配置。
CWE-78 发现 exec shell spawn。
CWE-1004 缺少 HTTPOnly Cookie 属性的不安全配置。
Objective-C CWE-319 在 Objective-C 代码中检测到开放通信方案。
CWE-798 进行了修改,以避免某些额外的无关结果。
PHP CWE-10041 敏感 Cookie 缺少 HttpOnly 标志。
CWE-6141 HTTPS 会话中的敏感 Cookie 缺少 secure 属性。
CWE-791 检测到嵌入的 PHP 变量。
CWE-981 在 PHP 代码中检测到潜在的文件包含漏洞。
CWE-6111 在 PHP 代码中检测到 XML 外部实体注入。
CWE-78 PHP 命令执行可能使用用户提供的数据。扩大了覆盖范围。2
CWE-644 发现潜在的标头注入。扩大了覆盖范围。2
CWE-327 检测到不安全的算法使用。扩大了检查和覆盖范围。2
CWE-319 在 PHP Symfony 框架中检测到开放通信。
CWE-1004 setcookie 中缺少 HTTPOnly 标志或设置不安全。
CWE-319 检测到开放通信方案。
CWE-544 error_reporting 指令未设置为允许尽可能高级别的错误报告。
CWE-798 检查该值并确定该值是否确实是表示存储在代码中的可能明文密码的字符串字面量。
PL/SQL CWE-331 不安全地使用了 DBMS_RANDOM
Python CWE-311 使用 http 的 URL。扩大了覆盖范围。2
CWE-311 TOCTTOU 竞争条件临时文件。已修复的覆盖范围。2
CWE-367 TOCTTOU 竞争条件临时文件。
CWE-319 使用 http 的 URL。
CWE-78 Python 操作系统注入。
CWE-319 不安全的 FTP 使用。
CWE-78 Popen 命令注入。
CWE-276 在 umask 中使用 777。
ReactNative CWE-319 检测到开放式通信。已更正的上下文。2
CWE-319 检测到开放式通信。
CWE-295 检测到禁用 SSL 固定。
RPG CWE-319 在代码中检测到开放通信。
Ruby CWE-78 反引号正则表达式的不安全使用需要改进。扩大了覆盖范围。2
CWE-78 反引号的不安全使用。扩大了覆盖范围。2
CWE-425 Ruby 批量赋值。
CWE-359 Ruby 信息泄露。
Scala CWE-319 在 Scala 代码中检测到开放通信方案。
CWE-79 在 Scala 源代码中检测到通过 Cookie 访问的潜在客户端脚本漏洞。
密钥 CWE-1051 检测到硬编码 IP 地址。扩展了覆盖范围。2
CWE-798 检测到硬编码凭证。扩展了覆盖范围。2
CWE-798 避免压缩后的 JS 文件。
CWE-798 避免分析翻译文件以减少无关结果
Swift CWE-319 在 Swift 代码中检测到开放通信方案。
CWE-79 在 iOS UIWebView 中使用 loadRequest() 时存在潜在的跨站脚本漏洞。
Terraform CWE-359 检测到 AWS 实例暴露用户数据密钥。
CWE-778 Azure 日志监控配置文件应定义所有必需的类别。
CWE-732 在文件夹、项目或组织级别使用了默认服务帐户。
CWE-671 SQL Server 中未启用电子邮件服务和共同管理员。
CWE-923 确保 Azure 存储帐户缺省网络访问设置为“拒绝”。
CWE-923 确保 GCP 防火墙规则不允许不受限制的访问。
CWE-732 Google Compute 实例可公开访问。
CWE-732 Google 存储桶可公开访问。
CWE-732 Amazon S3 存储桶的访问权限不安全。
CWE-1220 新增规则,检查出口安全组 cidr_blocks 是否设置得过于宽松。
TypeScript CWE-943 在 TypeScript 文件中查找 NoSQL MongoDB 注入。
CWE-943 查找 SQLi 的更多案例。
Visual Basic CWE-319 在 VB 代码中检测到开放通信方案。
VueJS CWE-79 已进行调整,以避免在方法声明中检测到问题时生成发现项。
Xamarin CWE-319 在 Xamarin 中检测到开放通信。