对于日前 XXL-JOB 被各大云厂商报出存在远程命令执行漏洞的情况,XXL-JOB 作者表示此问题本质上不是“漏洞”,因为官网版本已提供鉴权组件,开启即可防护。具体回应如下:
该问题本质上不属于“漏洞”,官网版本提供了鉴权组件,开启即可进行防护。
该问题类似于将一台 Mysql、Redis 实例,不设置密码并开放给公网,严格来说不能因此说 Mysql、Redis 有漏洞,只需要设置密码即可。
针对此问题,XXL-JOB 作者提供了以下安全防护策略:
- 开启 XXL-JOB 自带的鉴权组件:官方文档中搜索 “xxl.job.accessToken” ,按照文档说明启用即可。
- 端口防护:及时更换默认的执行器端口,不建议直接将默认的 9999 端口开放到公网。
- 端口访问限制:通过配置安全组限制只允许指定 IP 才能访问执行器 9999 端口。
作者还表示后续迭代版本将默认开启鉴权组件,同时重点提升安全性。
根据作者对“漏洞”的分析,问题核心是 GLUE 模式。XXL-JOB 通过“GLUE模式”支持多语言以及脚本任务,该模式任务特点如下:
-
多语言支持:支持 Java、Shell、Python、NodeJS、PHP、PowerShell……等类型。
-
Web IDE:任务以源码方式维护在调度中心,支持通过 Web IDE 在线开发、维护。
-
动态生效:用户在线通过 Web IDE 开发的任务代码,远程推送至执行器,实时加载执行。
如上图所示,如果在 GLUE 模式任务代码中写入攻击代码,推送到执行器执行即可造成远程攻击。(问题点)
由于 XXL-JOB 官方版本原生自带鉴权组件,开启后可保障系统底层通讯安全。XXL-JOB 作者表示正常情况下调度中心与执行器底层通讯是安全的,不存在远程命令漏洞。但如果执行器未开启访问令牌,会导致无法识别并拦截非法的调度请求。恶意请求方可以借助 GLUE 模式,推送恶意攻击代码实现远程攻击。如下图所示:
因此,XXL-JOB 作者认为该问题本质上不属于 “漏洞”,官网版本提供了鉴权组件,开启即可进行防护。
XXL-JOB 远程命令执行漏洞的部分通告:
稿源:
https://mp.weixin.qq.com/s/jzXIVrEl0vbjZxI4xlUm-g
注意:本文归作者所有,未经作者允许,不得转载