本页面简要介绍了快速漏洞检测,其中包括:
- 快速漏洞检测支持的扫描目标
- 快速漏洞检测执行的扫描类型
- 快速漏洞检测检测到的漏洞类型(扫描发现结果)
本页面还介绍了测试快速漏洞检测扫描的一些最佳实践。
概览
快速漏洞检测是 Security Command Center 高级方案的内置服务,是一种零配置网络和 Web 应用扫描工具,可主动扫描公共端点以检测极有可能被利用的漏洞,例如安全系数低的凭据、不完整的软件安装和公开的管理员界面。该服务会自动发现网络端点、协议、开放的端口、网络服务和已安装的软件包。
快速漏洞检测结果是漏洞的早期警告,建议您立即进行修复。您可以在 Security Command Center 中查看发现结果。
支持的扫描目标
快速漏洞检测支持以下资源:
- Compute Engine
- 快速漏洞检测仅支持具有公共 IP 地址的虚拟机。设有防火墙或没有公共 IP 地址的虚拟机会从扫描中排除。
- Cloud Load Balancing
- 快速漏洞检测仅支持外部负载均衡器。
- Google Kubernetes Engine 入站流量
- Cloud Run
- 快速漏洞检测功能会扫描 Cloud Run 为您的应用或自定义网域(针对外部负载均衡器后面的 Cloud Run 服务配置)提供的默认网域。不支持使用内置网域映射的自定义网域。但是,即使使用网域映射,默认网域也始终可用。
- App Engine
- 快速漏洞检测仅扫描 App Engine 为您的应用提供的默认网域。不支持自定义网域。但是,即使使用自定义网域,默认网域也始终可用。
扫描
快速漏洞检测运行代管式扫描,可检测 N 天漏洞,这些漏洞是已知漏洞,可以被利用来获取任意数据访问权限以及允许远程代码执行。此类漏洞包括安全系数低的凭据、不完整的软件安装和公开的管理员界面。
启用该服务后,扫描会由 Security Command Center 自动配置和管理;您的安全团队不需要提供目标网址或手动启动扫描。快速漏洞检测使用 Cloud Asset Inventory 来检索有关项目中新虚拟机和应用的信息,并且每周运行一次扫描来查找公共端点和检测漏洞。 运行快速漏洞检测的用户代理在 Logs Explorer 中名为“TsunamiSecurityScanner”。TsunamiSecurityScanner
快速漏洞检测会扫描开放的端口(HTTP、HTTPS、SSH、MySQL 等)支持的目标,并评估扫描目标以了解已安装的 Web 应用和公开的网络服务。由于快速漏洞检测会对公共端点执行多次扫描,并使用“指纹”来识别已知服务,因此能以最低假正例率报告高风险、高严重级别的漏洞。
如需详细了解快速漏洞检测支持的扫描目标资产,请参阅支持的扫描目标。
扫描发现结果和修复措施
下表列出了快速漏洞检测发现结果类型和建议的修复步骤。
快速漏洞检测可识别以下发现结果类型。
发现结果类型 | 发现结果说明 | OWASP 十大代码 |
---|---|---|
凭据安全系数低发现结果 | ||
WEAK_CREDENTIALS
|
此检测器使用 ncacker 暴力破解方法检查弱凭据。 支持的服务:SSH、RDP、FTP、WordPress、TELNET、POP3、IMAP、VCS、SMB、SMB2、VNC、SIP、REDIS、PSQL、MYSQL、MSSQL、MQTT、MONGODB、WINRM、DICOM 补救措施:强制执行安全系数高的密码政策。为您的服务创建唯一凭据,并避免在密码中使用字典字词。 |
2021 A07 2017 A2 |
界面被公开发现结果 | ||
ELASTICSEARCH_API_EXPOSED
|
借助 Elasticsearch API,调用者可以执行任意查询、编写和执行脚本,以及向服务添加其他文档。
补救措施:通过应用路由请求来移除对 Elasticsearch API 的直接访问权限,或仅限制经过身份验证的用户的访问权限。如需了解详情,请参阅 Elasticsearch 中的安全设置。 |
2021 A01、A05 2017 A5、A6 |
EXPOSED_GRAFANA_ENDPOINT
|
在 Grafana 8.0.0 到 8.3.0 中,用户不进行身份验证即可访问存在目录遍历漏洞的端点,该漏洞允许任何用户不进行身份验证即可读取服务器上的任何文件。如需了解详情,请参阅 CVE-2021-43798。 补救措施:修补 Grafana 或将 Grafana 升级到更高版本。如需了解详情,请参阅 Grafana 路径遍历。 |
2021 A06、A07 2017 A2、A9 |
EXPOSED_METABASE
|
x.40.0 到 x.40.4 版本的 Metabase 是一个开源数据分析平台,自定义 GeoJSON 映射支持和潜在本地文件包含(包括环境变量)中存在漏洞。网址在加载之前未进行验证。如需了解详情,请参阅 CVE-2021-41277。 补救措施:升级到维护版本 0.40.5 或更高版本或者 1.40.5 或更高版本。如需了解详情,请参阅 GeoJSON 网址验证可以向未经授权的用户公开服务器文件和环境变量。 |
2021 A06 2017 A3、A9 |
EXPOSED_SPRING_BOOT_ACTUATOR_ENDPOINT
|
此检测器会检查 Spring Boot 应用的敏感执行器端点是否公开。某些默认端点(如 /heapdump )可能会泄露敏感信息。其他端点(如 /env )可能会导致远程代码执行。目前仅检查了 /heapdump 。补救措施:停用对敏感执行器端点的访问权限。如需了解详情,请参阅确保 HTTP 端点安全。 |
2021 A01、A05 2017 A5、A6 |
HADOOP_YARN_UNAUTHENTICATED_RESOURCE_MANAGER_API
|
此检测器会检查 Hadoop Yarn ResourceManager API(用于控制 Hadoop 集群的计算和存储资源)是否已公开,并允许未经身份验证的代码执行。 补救措施:将访问控制列表与此 API 结合使用。 |
2021 A01、A05 2017 A5、A6 |
JAVA_JMX_RMI_EXPOSED
|
Java Management Extension (JMX) 允许对 Java 应用进行远程监控和诊断。通过不受保护的远程方法调用端点运行 JMX,这样任何远程用户都可以创建 javax.management.loading.MLet MBean,并使用它从任意网址创建新的 MBean。
补救措施:如需正确配置远程监控,请参阅使用 JMX 技术进行监控和管理。 |
2021 A01、A05 2017 A5、A6 |
JUPYTER_NOTEBOOK_EXPOSED_UI
|
此检测器会检查未经身份验证的 Jupyter 笔记本是否已公开。Jupyter 允许在宿主机上按设计执行远程代码执行。
未经身份验证的 Jupyter 笔记本会导致托管虚拟机面临远程代码执行风险。 补救措施:向 Jupyter 笔记本服务器添加令牌身份验证,或者使用默认使用令牌身份验证的较新版 Jupyter 笔记本。 |
2021 A01、A05 2017 A5、A6 |
KUBERNETES_API_EXPOSED
|
Kubernetes API 已公开,未经身份验证的调用者可以访问。这将允许在 Kubernetes 集群上执行任意代码。
补救措施:所有 API 请求都需要进行身份验证。如需了解详情,请参阅 Kubernetes API 身份验证指南。 |
2021 A01、A05 2017 A5、A6 |
UNFINISHED_WORDPRESS_INSTALLATION
|
此检测器会检查 WordPress 安装是否尚未完成。WordPress 安装未完成会公开 /wp-admin/install.php 页面,此页面让攻击者可设置管理员密码,并可能入侵系统。补救措施:完成 WordPress 安装。 |
2021 A05 2017 A6 |
UNAUTHENTICATED_JENKINS_NEW_ITEM_CONSOLE
|
此检测器会通过以匿名访问者身份向 /view/all/newJob 端点发送探测 ping 来检查是否有未经身份验证的 Jenkins 实例。经过身份验证的 Jenkins 实例会显示 createItem 表单,该表单允许创建可能导致远程代码执行的任意作业。补救措施:按照 Jenkins 有关管理安全性的指南阻止未经身份验证的访问。 |
2021 A01、A05 2017 A5、A6 |
软件易受攻击发现结果 | ||
APACHE_HTTPD_RCE
|
Apache HTTP Server 2.4.49 中发现了一个缺陷,该缺陷允许攻击者使用路径遍历攻击将网址映射到预期文档根目录之外的文件,并查看已解读文件的来源,如 CGI 脚本。此问题已知在自然情况下被利用。此问题会影响 Apache 2.4.49 和 2.4.50,但不会影响更早版本。如需详细了解此漏洞,请参阅以下内容: 补救措施:通过在 Apache HTTP Server 中配置“require all denied”指令来保护文档根目录之外的文件。 |
2021 A01、A06 2017 A5、A9 |
APACHE_HTTPD_SSRF
|
攻击者可以编写 Apache Web 服务器的 URI,导致 补救措施:将 Apache HTTP Server 升级到更高版本。 |
2021 A06、A10 2017 A9 |
CONSUL_RCE
|
由于 Consul 实例在
检查后,快速漏洞检测会使用 补救措施:在控制台实例配置中将 enable-script-checks 设置为 |
2021 A05、A06 2017 A6、A9 |
DRUID_RCE
|
Apache Druid 能够执行嵌入在各类请求中的用户提供的 JavaScript 代码。此功能适用于信任度较高的环境,默认处于停用状态。但是,在 Druid 0.20.0 及更早版本中,经过身份验证的用户可能会发送特别编写的请求,无论服务器配置如何,都强制 Druid 针对该请求运行用户提供的 JavaScript 代码。这可以被利用在具有 Druid 服务器进程权限的目标机器上执行代码。如需了解详情,请参阅 CVE-2021-25646 详细信息。 补救措施:将 Apache Druid 升级到更高版本。 |
2021 A05、A06 2017 A6、A9 |
DRUPAL_RCE
此类别包括 Drupal 中的两个漏洞。此类型的多个发现结果可以表示多个漏洞。 |
Drupal 7.58 之前的版本、8.3.9 之前的 8.x 版本、8.4.6 之前的 8.4.x 版本以及 8.5.1 之前的 8.5.x 版本容易在 Form API AJAX 请求上发生远程代码执行。 补救措施:升级到其他 Drupal 版本。 |
2021 A06 2017 A9 |
Drupal 8.5.11 之前的 8.5.x 版本和 8.6.10 之前的 8.6.x 版本在 RESTful Web 服务模块或 JSON:API 处于启用状态时容易发生远程代码执行。未经过身份验证的攻击者可通过自定义 POST 请求来利用此漏洞。 补救措施:升级到其他 Drupal 版本。 |
2021 A06 2017 A9 |
|
FLINK_FILE_DISCLOSURE
|
Apache Flink 1.11.0、1.11.1 和 1.11.2 版本中的漏洞允许攻击者通过 REST 接口读取 JobManager 的本地文件系统中的任何文件。访问权限仅限于 JobManager 进程可访问的文件。
补救措施:如果 Flink 实例已公开,请升级到 Flink 1.11.3 或 1.12.0。 |
2021 A01、A05、A06 2017 A5、A6、A9 |
GITLAB_RCE
|
在 GitLab 社区版 (CE) 和企业版 (EE) 11.9 及更高版本中,GitLab 无法正确验证传递给文件解析器的图片文件。攻击者可以利用此漏洞执行远程命令。 补救措施:升级到 GitLab CE 或 EE 13.10.3、13.9.6 和 13.8.8 版或更高版本。如需了解详情,请参阅自行管理的客户针对 CVE-2021-22205 需要采取的行动。 |
2021 A06 2017 A9 |
GoCD_RCE
|
GoCD 21.2.0 及更早版本具有不进行身份验证即可访问的端点。此端点存在一个目录遍历漏洞,允许用户不进行身份验证即可读取服务器上的任何文件。 补救措施:升级到 21.3.0 版或更高版本。如需了解详情,请参阅 GoCD 21.3.0 的版本说明。 |
2021 A06、A07 2017 A2、A9 |
JENKINS_RCE
|
Jenkins 2.56 版及更早版本和 2.46.1 LTS 及更早版本容易发生远程代码执行。未经身份验证的攻击者可使用恶意序列化 Java 对象触发此漏洞。 补救措施:安装其他 Jenkins 版本。 |
2021 A06、A08 2017 A8、A9 |
JOOMLA_RCE
此类别包含 Joomla 中的两个漏洞。此类型的多个发现结果可以表示多个漏洞。 |
Joomla 3.4.6 之前的 1.5.x、2.x 和 3.x 版本容易发生远程代码执行。可通过专门编写的包含序列化 PHP 对象的标头触发此漏洞。 补救措施:安装其他 Joomla 版本。 |
2021 A06、A08 2017 A8、A9 |
Joomla 版本 3.0.0 到 3.4.6 很容易受到远程代码执行的影响。可通过发送包含专门编写的序列化 PHP 对象的 POST 请求触发此漏洞。 补救措施:安装其他 Joomla 版本。 |
2021 A06 2017 A9 |
|
LOG4J_RCE
|
在 Apache Log4j2 2.14.1 及更早版本中,配置、日志消息和参数中使用的 JNDI 功能无法防范攻击者控制的 LDAP 和其他 JNDI 相关端点。如需了解详情,请参阅 CVE-2021-44228。 补救措施:如需了解补救信息,请参阅 Apache Log4j 安全漏洞。 |
2021 A06 2017 A9 |
MANTISBT_PRIVILEGE_ESCALATION
|
从 2.3.0 到 MantisBT,可以通过向 verify.php 提供空的 confirm_hash 值,实现任意密码重置和未经身份验证的管理员访问。
补救措施:将 MantisBT 更新到更高版本,或按照 Mantis 说明应用关键安全修复。 |
2021 A06 2017 A9 |
OGNL_RCE
|
Confluence Server 和 Confluence Data Center 实例存在 OGNL 注入漏洞,该漏洞允许未经身份验证的攻击者执行任意代码。如需了解详情,请参阅 CVE-2021-26084。 补救措施:如需了解补救信息,请参阅 Confluence Server Webwork OGNL 注入 - CVE-2021-26084。 |
2021 A03 2017 A1 |
OPENAM_RCE
|
OpenAM Server 14.6.2 及更早版本和 ForgeRock AM Server 6.5.3 及更早版本的 补救措施:升级到较新版本。如需了解 ForgeRock 补救措施,请参阅 AM 安全公告 #202104。 |
2021 A06 2017 A9 |
ORACLE_WEBLOGIC_RCE
|
Oracle 融合中间件(组件:控制台)的特定版本的 Oracle WebLogic Server 产品存在漏洞,其中包括 10.3.6.0.0、12.1.3.0.0、12.2.1.3.0、12.2.1.4.0 和 14.1.1.0.0 版本。这是一个容易被利用的漏洞,允许具有网络访问权限的未经身份验证的攻击者通过 HTTP 入侵 Oracle WebLogic Server。成功攻击此漏洞的可能导致 Oracle WebLogic Server 接管。如需了解详情,请参阅 CVE-2020-14882。 补救措施:如需了解补丁信息,请参阅 Oracle 关键补丁更新公告 - 2020 年 10 月。 |
2021 A06、A07 2017 A2、A9 |
PHPUNIT_RCE
|
5.6.3 之前的
PHPUnit 版本允许通过单个未经身份验证的 POST 请求远程执行代码。
补救措施:升级到更高 PHPUnit 版本。 |
2021:A05 2017:A6 |
PHP_CGI_RCE
|
PHP 5.3.12 之前的版本和 5.4.2 之前的 5.4.x 版本在配置为 CGI 脚本时允许远程代码执行。易受攻击的代码无法正确处理缺少 = (等号)字符的查询字符串。这可让攻击者添加在服务器上执行的命令行选项。补救措施:安装其他 PHP 版本。 |
2021 A05、A06 2017 A6、A9 |
PORTAL_RCE
|
7.2.1 CE GA2 之前Liferay 门户版本中,不受信任的数据的反序列化允许远程攻击者通过 JSON Web 服务执行任意代码。
补救措施:升级到更高 Liferay Portal 版本。 |
2021 A06、A08 2017 A8、A9 |
REDIS_RCE
|
如果 Redis 实例无需身份验证即可执行管理员命令,攻击者或许能够执行任意代码。 补救措施:将 Redis 配置为需要身份验证。 |
2021 A01、A05 2017 A5、A6 |
SOLR_FILE_EXPOSED
|
Apache Solr 是一个开源搜索服务器,未启用身份验证。当 Apache Solr 不需要身份验证时,攻击者可以直接编写请求来启用特定配置,并最终实现服务器端请求伪造 (SSRF) 或读取任意文件。 补救措施:升级到其他 Apache Solr 版本。 |
2021 A07、A10 2017 A2 |
SOLR_RCE
|
Apache Solr 5.0.0 版本到 Apache Solr 8.3.1 版本在 params.resource.loader.enabled 设置为 true 时由于 VelocityResponseWriter 容易发生远程代码执行。这样一来,攻击者就可以创建包含恶意 Velocity 模板的参数。
补救措施:升级到其他 Apache Solr 版本。 |
2021 A06 2017 A9 |
STRUTS_RCE
此类别包含 Apache Strut 中的三个漏洞。此类型的多个发现结果可以表示多个漏洞。 |
Apache Struts 2.3.32 之前的版本和 2.5.10.1 之前的 2.5.x 版本容易发生远程代码执行。未经身份验证的攻击者可通过提供专门编写的 Content-Type 标头触发此漏洞。 补救措施:安装其他 Apache Struts 版本。 |
2021 A06 2017 A9 |
Apache Struts 2.1.1 版本到 2.3.34 之前的 2.3.x 版本和 2.5.13 之前的 2.5.x 版本中的 REST 插件在反序列化专门编写的 XML 载荷时容易发生远程代码执行。 补救措施:安装其他 Apache Struts 版本。 |
2021 A06、A08 2017 A8、A9 |
|
Apache Struts 2.3 至 2.3.34 及 2.5 至 2.5.16 版容易在 alwaysSelectFullNamespace 设为 true 及某些其他操作配置。
补救措施:安装 2.3.35 或 2.5.17 版。 |
2021 A06 2017 A9 |
|
TOMCAT_FILE_DISCLOSURE
|
Apache Tomcat 9.0.31 之前的版本、8.5.51 之前的 8.x、7.0.100 之前的 7.x 以及所有 6.x 都容易受到源代码的影响并通过公开的 Apache JServ 协议连接器进行披露。在某些情况下,如果允许上传文件,则使用此方法可执行远程代码执行。
补救措施:升级到其他 Apache Tomcat 版本。 |
2021 A06 2017 A3、A9 |
VBULLETIN_RCE
|
运行 5.0.0 至 5.5.4 版本的
vBulletin 服务器容易受到远程代码执行。未经过身份验证的攻击者可通过 routestring 请求中的查询参数来利用此漏洞。补救措施:升级到其他 VMware vCenter Server 版本。 |
2021 A03、A06 2017 A1、A9 |
VCENTER_RCE
|
VMware vCenter Server 7.0 U1c 之前的 7.x 版本、6.7 U3l 之前的 6.7 版本和 6.5 U3n 之前的 6.5 版本容易发生远程代码执行。攻击者可能会将此漏洞的恶意服务器服务器页面上传到可通过网络访问的目录,然后触发该文件的执行,从而触发此漏洞。
补救措施:升级到其他 VMware vCenter Server 版本。 |
2021 A06 2017 A9 |
WEBLOGIC_RCE
|
Oracle 融合中间件(组件:控制台)的特定版本的 Oracle WebLogic Server 产品存在远程代码执行漏洞,其中包括 10.3.6.0.0、12.1.3.0.0、12.2.1.3.0、12.2.1.4.0 和 14.1.1.0.0 版本。此漏洞与 CVE-2020-14750、CVE-2020-14882、CVE-2020-14883 相关。如需了解详情,请参阅 CVE-2020-14883。 补救措施:如需了解补丁信息,请参阅 Oracle 关键补丁更新公告 - 2020 年 10 月。 |
2021 A06、A07 2017 A2、A9 |
发现结果示例
您可以使用 Security Command Center 信息中心、Google Cloud CLI 或 Security Command Center API 以 JSON 格式导出快速漏洞检测发现结果。发现结果的 JSON 输出如下所示:
{
"finding": {
"canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/FINDING_ID",
"category": "WEAK_CREDENTIALS",
"compliances": [
{
"ids": [
"A2"
],
"standard": "owasp",
"version": "2017"
},
{
"ids": [
"A07"
],
"standard": "owasp",
"version": "2021"
}
],
"contacts": {
"security": {
"contacts": [
{
"email": "EMAIL_ADDRESS_1"
},
{
"email": "EMAIL_ADDRESS_2"
}
]
},
"technical": {
"contacts": [
{
"email": "EMAIL_ADDRESS_3"
}
]
}
},
"createTime": "2021-08-19T06:26:20.038Z",
"description": "Well known or weak credentials have been detected.",
"eventTime": "2022-06-24T19:21:22.783Z",
"findingClass": "MISCONFIGURATION",
"mute": "UNDEFINED",
"name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
"parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
"resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
"securityMarks": {
"name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
},
"severity": "CRITICAL",
"sourceProperties": {
"description": "Well known or weak credentials have been detected.",
"targets": [
{
"ipv4Address": {
"address": "IP_ADDRESS",
"subnetMask": 32
},
"port": PORT_NUMBER,
"resourceName": "//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE_NAME/instances/VM_NAME",
"transportProtocol": "TCP"
}
]
},
"state": "ACTIVE"
},
"resource": {
"displayName": "PROJECT_NAME",
"name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
"parentDisplayName": "ORGANIZATION_NAME",
"parentName": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID",
"projectDisplayName": "PROJECT_NAME",
"projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
"type": "google.cloud.resourcemanager.Project"
}
}
上面的示例使用了以下占位符变量:
EMAIL_ADDRESS_[N]
:在检测到发现结果时要通知的个人或实体的电子邮件地址。FINDING_ID
:用于标识发现结果的唯一值。IP_ADDRESS
:检测到漏洞的 IP 地址。ORGANIZATION_ID
:发现漏洞的组织的标识符。ORGANIZATION_NAME
:发现漏洞的组织的名称。PORT_NUMBER
:检测到漏洞的端口号。PROJECT_ID
:发现漏洞的项目的字母数字标识符。PROJECT_NUMBER
:发现漏洞的项目的数字标识符。SOURCE_ID
:您的组织中唯一的数字 ID,用于标识检测到漏洞的 Security Command Center 服务。VM_NAME
:在其中检测到漏洞的 Compute Engine 虚拟机 (VM)。ZONE_NAME
:扫描目标所在的 Compute Engine 可用区。
最佳实践
由于快速漏洞检测会尝试登录虚拟机并访问公开的管理员界面,因此可能会访问敏感数据或对资源产生不良结果。使用快速漏洞检测扫描测试资源,并尽可能避免在生产环境中使用服务。
您可以使用以下建议来保护您的资源:
- 在测试环境中运行扫描。 创建一个单独的 Compute Engine 项目,并将您的应用和数据加载到其中。如果您使用 Google Cloud CLI,则可以在上传应用时将目标项目指定为命令行选项。
- 使用测试账号。 创建无法访问敏感数据或有害操作的用户账号,并在扫描虚拟机时使用该账号。
- 备份数据。考虑在扫描之前备份数据。
- 扫描非生产资源。对非生产资源运行扫描,以捕获漏洞,然后再将其部署到生产环境中。
在扫描之前,请仔细审核您的应用,查看是否有功能影响数据或系统,超出扫描的预期范围。