暴露的 JDWP 在野外被利用:当调试端口被留下开放时会发生什么
内容提要
Wiz研究团队发现,攻击者利用暴露的Java调试线协议(JDWP)接口,成功实现远程代码执行并部署挖矿恶意软件。由于JDWP未实现身份验证,成为高风险入口。攻击者通过扫描JDWP端口,执行命令并建立持久化机制,隐藏挖矿活动。
关键要点
-
Wiz研究团队发现攻击者利用暴露的JDWP接口实现远程代码执行并部署挖矿恶意软件。
-
JDWP未实现身份验证,成为高风险入口,攻击者通过扫描JDWP端口执行命令并建立持久化机制。
-
攻击者使用定制的XMRig载荷,避免使用可疑命令行参数,隐蔽挖矿活动。
-
JDWP是Java平台的标准功能,允许远程调试,但默认未实现身份验证,暴露于互联网风险极高。
-
在过去90天内,有超过6000个独立IP地址扫描JDWP端点,表明其是高度集中的攻击目标。
-
攻击者通过JDWP-Handshake请求确认接口活跃,随后实现远程代码执行。
-
攻击者使用Java字符串创建系统命令,下载并执行恶意脚本logservice.sh。
-
logservice.sh脚本用于杀死竞争的挖矿进程,下载并执行XMRig挖矿程序,设置持久化机制。
-
攻击者通过传统启动脚本、systemd服务、cron作业和shell配置文件实现持久化。
-
攻击者伪装恶意载荷为合法的logrotate工具,以避免引起怀疑。
-
Wiz提供IoC(指标)以帮助检测和防御此类攻击。
延伸解读
JDWP的安全风险
JDWP作为Java调试的标准功能,默认未实现身份验证,暴露在互联网中极易被攻击者利用。开发者在使用JDWP时需特别注意其安全配置,避免在生产环境中开启调试端口,以防止远程代码执行等安全事件的发生。
攻击者的隐蔽策略
攻击者通过定制的XMRig载荷和伪装成合法工具的方式,成功隐藏了挖矿活动。这种隐蔽性使得检测和响应变得更加困难,企业在防御时应关注异常流量和系统行为,以及时发现潜在的安全威胁。
持久化机制的复杂性
攻击者利用多种持久化机制,如systemd服务和cron作业,确保恶意软件在系统重启后依然存在。这种复杂的持久化策略使得清除恶意软件变得更加棘手,企业应定期审查系统配置和启动项,以降低被攻击的风险。
延伸问答
JDWP是什么,它的主要功能是什么?
JDWP是Java调试线协议,旨在帮助开发者远程调试运行中的Java应用程序,允许检查线程、内存和执行流。
攻击者如何利用暴露的JDWP接口进行攻击?
攻击者通过扫描开放的JDWP端口,发送JDWP-Handshake请求确认接口活跃,然后实现远程代码执行,注入并执行任意命令。
暴露的JDWP接口有哪些安全风险?
JDWP默认未实现身份验证,暴露于互联网后成为高风险入口,攻击者可以完全控制Java进程,导致远程代码执行漏洞。
攻击者是如何隐藏挖矿活动的?
攻击者使用定制的XMRig载荷,伪装成合法的logrotate工具,并通过矿池代理隐藏加密货币钱包地址,避免被追踪。
Wiz研究团队在这次事件中发现了什么?
Wiz研究团队发现攻击者利用暴露的JDWP接口实现远程代码执行,并部署了挖矿恶意软件和多种持久化机制。
如何检测和防御JDWP相关的攻击?
Wiz提供了IoC(指标)以帮助检测和防御此类攻击,用户应定期检查JDWP端口的安全配置。