【公益译文】2022~2023年物联网僵尸网络报告
2024-4-19 19:0:56 Author: blog.nsfocus.net(查看原文) 阅读量:12 收藏

阅读: 10

一、前言

本报告调查了我们从2022年7月初到2023年1月底在受CUJO AI保护的消费者网络中观察到的物联网僵尸网络活动。如需了解更多信息,请访问CUJO AI博客和ISP安全中心。大多数物联网设备资源有限,使用类UNIX操作系统,欠缺网络安全措施。再加上设备厂商提供的软件支持周期往往很短且容易被忽视,吸引了一众网络犯罪分子,疯狂利用这一绝佳机会。
物联网威胁
根据本公司最新的年度网络安全报告,在CUJO AI监控和保护的设备中,网络摄像机仅占1.2%,但却遭遇了24%的恶意活动。物联网由数十亿台连接到互联网的设备组成。多家机构预测,这些设备的数量在未来几年将只增不减。物联网设备多种多样,包括智能家电、打印机、网络摄像机、路由器、各种传感器等等。从更专业的角度来看,任何具有IP地址的设备,如果不像典型的台式电脑、笔记本电脑或智能手机那样进行管理,都可以被视为物联网设备。
何谓僵尸网络?
既然我们要讨论与僵尸网络相关的威胁,我们就应该从僵尸网络的定义开始。僵尸网络是一个被特定恶意软件感染、受恶意软件运营者控制的设备网络。这种特定类型的恶意软件也被称为“僵尸网络”,下文即采用这一含义。
僵尸网络的工作原理
在过去几年里,对物联网设备遭受的典型僵尸网络相关攻击的剖析并没有太大变化,我们在之前的文章中对此进行了详细介绍。简而言之,此类攻击均涉及一个stager shell脚本,用以下载并执行恶意软件二进制文件。这些二进制文件名称通常包含目标CPU架构。在物联网领域观察到的大多数恶意软件都是臭名昭著的Mirai或Gafgyt僵尸网络的变体,但用Go语言编写的恶意软件的数量也在增加,典型例子如Sysrv和Zerobot。僵尸网络传播有两个主要途径:
  • 暴力破解弱登录凭据
  • 利用已知软件漏洞

总的来说,第一种方法更常用,正如我们之前的报告中所述:“劣质物联网设备通常使用硬编码的默认密码,用户不会更改这些密码,或者在强制更改密码时,将其更改为易于记忆(因此可以被快速暴力破解)的密码。”这个问题今天仍然普遍存在。

上一份僵尸网络报告
上一份僵尸网络报告涵盖了2021年4个月的时间,发现只有8%的样本包含漏洞利用程序。这些样本中,又有83%的样本使用了两种或两种以上的漏洞利用程序。我们总共发现了20种漏洞,其中大多数是在2018年或更早披露的。

二、2022~2023年物联网僵尸网络报告:摘要

在2022年7月初至2023年1月底期间,发现了6471个恶意ELF二进制文件,其中1685个文件(占比26%)包含至少1种漏洞利用程序,与2021年的8%相比,增幅较大。共有55个漏洞被利用,是2021年的两倍多。参照硬件和软件漏洞类型列表CWE,这些漏洞与我们之前的发现不同,并非100%的“注入”型漏洞。然而,即使CWE分类在技术上有所不同,恶意软件的目标几乎总是相同的:在目标系统上远程运行命令。唯一的例外是CVE-2021-4034,这是本地权限提升漏洞。在十大最常利用的漏洞中,有3个漏洞首次出现在列表中。CVE-2017-17215是迄今为止恶意软件中最常利用的漏洞:在1685个包含漏洞攻击程序的二进制文件中,有1625个二进制文件利用了该漏洞。在新近被利用的常见漏洞中,所有漏洞均与Zerobot僵尸网络相关,其中两个漏洞还被其他恶意软件利用。与我们的上一份报告相比,漏洞披露年份的分布情况发生了一些重大变化,近两年披露的漏洞数量出现大幅增长,尽管鲜有恶意二进制文件利用这些漏洞。

利用两种或两种以上漏洞的恶意软件二进制文件数量减少,从2021年的83%降至2022~2023年的40%。共发现36类漏洞利用程序,Zerobot利用的漏洞最多,有22个漏洞。

在这36类漏洞利用程序中,只有6类利用了近两年内发布的漏洞。其中4类漏洞利用程序中约过半程序针对近期发现的漏洞。在利用新漏洞方面这4类程序最具创新性,我们对其进行了命名并列举出了相关恶意软件。

三、被利用漏洞列表

下表为我们在2022年7月初至2023年1月底期间检测到的所有被利用的漏洞。“漏洞类型”列内容基于CWE。我们还列出了受影响的设备/软件类型及其具体的型号/版本。

四、CWE漏洞类型分布

以下是基于CWE列表的漏洞类型分布:

五、归根结底都是命令注入

大多数漏洞都属于OWASP的“十大Web应用程序安全风险”列表中的“注入”型漏洞,其中“注入”包括命令注入、输入验证不当和表达式语言注入。这并不意外,上一报告也存在类似情况。这类漏洞通常很好利用,只需要构造一个或多个参数化HTTP请求,而这些请求已经包含将要在目标系统上执行的命令。这些命令,或者叫“漏洞利用代码”,通常会下载并执行stager脚本或恶意二进制文件本身。据我们观察,大多数漏洞攻击之所以比较简单,还有一个因素,即未经身份验证的用户也可以有效执行漏洞利用程序。有9个漏洞不属于CWE的注入类别,如越界读取/写入或路径遍历。下面我们将详细介绍这些漏洞。尽管技术上不属于CWE的注入类别,这9个漏洞中的8个可被用以实现命令注入。CVE-2018-10561和CVE-2018-10562总是同时被利用。CVE-2018-10561是身份验证不当漏洞,在某些Dasan GPON路由器上,可将“?images”添加到任何要求身份验证的URL中,以此绕过验证。CVE-2018-10562漏洞则允许带有dest_host表单参数的diag_Form页面在系统上运行任意命令。因此,就出现了以下漏洞利用程序。

CVE-2018-10561/10562漏洞利用代码,摘自[2]:

CVE-2021-4034确为例外,是本地权限提升漏洞,允许攻击者在受感染系统上以root身份运行命令,它本质上也是一个内存损坏漏洞。受此漏洞影响的软件是polkit的pkexec实用程序。默认情况下,该程序存在于所有主要的Linux版本中。之所以存在漏洞,是因为这些版本将“不安全”的环境变量(例如GCONV_PATH)重新引入到pkexec环境。利用这些变量,攻击者能够以root身份运行被编译到共享库文件中的任意命令。下面的截图中使用了GCONV_PATH和main.write_gconv_module(),其中main.write_gconv_module()负责共享库文件。
CVE-2021-4034漏洞利用指标,摘自[9]:
CVE-2021-35394和CVE-2021-35395是Realtek Jungle SDK中存在的漏洞,该SDK是一个二进制文件包,多家路由器厂商使用的特定Realtek片上系统包含此SDK。针对CVE-2021-35394漏洞的利用程序与针对命令注入漏洞的利用程序略有不同,因为它不使用HTTP请求,而是构造UDP报文,发送到局域网中的路由器9034端口。
而CVE-2021-35395漏洞会使用正常的HTTP请求,发送到/goform/formWsc,其中表单数据的peerPin 参数包含漏洞利用命令。该漏洞也可以通过“formSysCmd”页面及其表单数据参数sysCmd加以利用。“goform”部分对应Go-Ahead web服务器,用作路由器管理web界面的基础。还有一些基于Boa web服务器的实现,可以在页面路径中转换为“boafrm”。CVE-2021-35395漏洞利用代码,摘自[5]:
至少有两个CVE漏洞(CVE-2018-20057和CVE-2019-19824)可以追溯到CVE-2021-35395,因为都涉及相同网页和表单参数,针对特定产品,尽管核心问题是存在漏洞的产品使用了Realtek Jungle SDK。Onekey的博客文章详细分析了这个问题。CVE-2021-41773和CVE-2021-42013都属于CWE分类中的路径遍历。两者都会影响Apache HTTP web服务器。CVE-2021-42013之所以存在,是因为CVE-2021-41773未彻底修复。Zerobot恶意软件([5])的漏洞利用方式相同:启动bash并执行表单数据部分中的命令,其中用红色标记的部分最关键,在实际请求中进行了Base64编码。需要注意的是,在Zerobot二进制文件中,实现这些漏洞利用的相关Go方法被称为CVE-2018-12613。CVE-2018-12613是一个完全不同的漏洞,没有被Zerobot利用。CVE-2021-41773和CVE-2021-42013漏洞利用代码,摘自[5]:
利用“verifyldapserver”方法中的漏洞发动的Adobe ColdFusion 11 JNDI攻击属于不受信任的数据反序列化,通过JNDI连接到威胁主体搭建的恶意LDAP服务器,HTTP请求中红色标记部分的“%s”将替换为该服务器地址。然后从服务器下载漏洞利用代码,在目标系统上执行。利用“verifyldapserver”方法中的漏洞发动Adobe ColdFusion 11 JNDI攻击,摘自[7]:
CVE-2022-1388漏洞属于“关键函数缺乏验证”类别,在某些F5 BIG-IP系统中,未经身份验证的威胁主体可以访问/mgmt/tm/util/bash页面,并在该页面以root身份执行任意命令。以下漏洞利用代码也取自Zerobot,其中X-F5-Auth-Token的值为一首流行歌曲中的歌词。
CVE-2022-1388漏洞利用代码,摘自[5]:

六、特定漏洞攻击

下图列出了攻击特定漏洞的恶意软件二进制文件数量。
 攻击特定漏洞的二进制文件数量

七、2021年与2022/2023年被利用的10大漏洞对比

与2021年一样,被利用最多的漏洞是CVE-2017-17215,该漏洞属于“输入验证不当”类别,影响华为HG532路由器。经过身份验证的攻击者可以利用该漏洞在目标系统上执行任意命令。CVE-2017-17215漏洞利用代码,摘自[1]:
由于该漏洞非常古老,只存在于一种路由器中,因此受该漏洞影响的现网设备相对较少,无法用设备数量来解释漏洞的广泛利用。那么,这种大规模利用的原因可能是从其他恶意软件中大量借用代码,包括Mirai和Gafgyt,尤其是Mirai,因为Mirai的原始源代码是公开的。恶意软件中的代码借用有时并不合理,可能无意中保留了其中的漏洞利用程序。CVE-2017-17215漏洞还要求对用户进行身份验证,因此,比我们观察到的许多未经身份验证的远程命令执行类漏洞更为复杂。前十大漏洞中的其余漏洞基本上都属于注入型类别,利用起来很简单,而且这些漏洞都很古老,最新的也是在2018年披露的。排在前2~6位的漏洞在我们的2021年僵尸网络报告中也进入了前10,但今年的位次发生了一些细微的变化。领势tmUnblock.cgi远程命令执行漏洞排名上升了几位,三个CVE被挤出了榜单。跌出前十名的三个漏洞包括:CVE-2021-20090,今年未发现;CVE-2021-35395,出现在28个二进制文件中,已详细分析;CVE-2014-3206:出现9次。前十名列表中新增的漏洞是CVE-2016-10372、CVE-2015-2051和美国网件公司的setup.cgi远程命令执行漏洞,它们都属于命令注入类。CVE-2016-10372漏洞涉及ZyXEL/eir D1000调制解调器。该调制解调器的TCP端口7547暴露在互联网上,其后有一个TR-064服务器,被ISP用于远程配置调制解调器上的软件。此服务器支持多个合法命令,其中的“SetNTPServers”可被利用强制目标系统执行任意命令。以下漏洞利用代码有两处错误,已用青色标出。其中TCP端口使用不正确,并且SOAP信封中引入了一些多余字符。

CVE-2016-10372漏洞利用代码,摘自[2]:

CVE-2015-2051漏洞存在于多款D-Link路由器的HNAP SOAP接口中,攻击者可通过“GetDeviceSettings” SOAPAction发动攻击。下面的示例漏洞利用代码与互联网上的漏洞利用代码不匹配,因为相关的 SOAPAction 不正确:SOAPAction: http://pure- networks.com/HNAP1/GetDeviceSettings/.我们无法验证恶意软件中的漏洞利用代码是否正常运行。CVE-2015-2051漏洞利用代码,摘自[2]:
美国网件公司的“setup.cgi”漏洞是最古老的漏洞之一,于2013年披露。该漏洞影响两个Netgear路由器:DGN1000和DGN2000。setup.cgi中的“syscmd”函数可用于执行未经身份验证的任意命令。美国网件公司的“setup.cgi”远程命令执行漏洞利用代码,摘自[2]:

八、新发现的被利用漏洞

以下是2021年报告中未出现的最常利用的漏洞。
这些漏洞都有一个共同点:都可以在Zerobot中找到。在本研究期间,除了前两个漏洞外,其他所有漏洞都只在Zerobot中出现过。CVE-2021-41773、CVE-2021-42013和CVE-2022-1388漏洞前面已经进行了介绍。其他漏洞属于命令注入类。CVE-2022-25075漏洞于2022年2月12日被披露,影响TOTOLINK A3000RU路由器。该设备在downloadFile.cgi的”Main”函数中存在命令注入漏洞。攻击者可以通过控制QUERY_STRING环境变量并使用“payload”参数来执行任意命令。CVE-2022-25075漏洞利用代码,摘自[5]:
CVE-2022-30525漏洞影响ZyXEL USG FLEX系列防火墙,这些防火墙支持零接触配置。在ztp/cgi-bin/handler页面上使用setWanPortSt配置命令时,“data”或“mtu”参数中提供的数据未经过处理就传递给os.system 方法。下面的示例漏洞利用代码中,在提供给“mtu”参数的命令的开头和结尾缺少了一个;字符,这与网上的其他漏洞利用程序不同。CVE-2022-30525漏洞利用代码,摘自[5]:

九、漏洞披露年份分布:新旧漏洞比较

下图为2021年僵尸网络报告中的漏洞披露年份分布。漏洞披露年份分布(2021年僵尸网络报告数据)
下图为今年的研究结果。漏洞披露年份分布(2022/2023年僵尸网络报告数据)
2021年,我们发现的漏洞中,只有20%的漏洞是在过去两年中被披露的。现在,情况发生了显著变化,新漏洞的利用频率几乎是以前的两倍,其中38%的漏洞是在过去两年中披露的。另一个重要变化是包含较新漏洞的二进制文件与其他二进制文件的比率。2021年,该比率是61:160,今年是57:1628。因此,尽管更多的新漏洞被利用,但与2021年相比,它们出现的比例要小得多。另外还有一项新记录,即恶意软件中最古老的漏洞CVE-2007-3010。该漏洞影响阿尔卡特OmniPCX企业通信服务器中的统一维护工具。通过使用“ping”和“user”参数运行web界面的“masterCGI”脚本,用户可以对任何服务器可达的IP地址进行ping操作。但是,“user”参数的值没有经过过滤,而是由shell处理,因此可以被利用在系统上运行任意命令。虽然受影响的软件平台是企业级解决方案,但该行业在采用新技术方面往往进展缓慢。不过,一份2007年的咨询报告指出,“所有支持的版本都已经实施了正确的shell元字符过滤和更严格的访问控制”。因此,易受攻击的系统应该不会太多。

CVE-2007-3010漏洞利用代码,摘自[11]:

十、漏洞利用程序集

二进制文件利用的漏洞数量不同。2021年,83%的恶意软件利用了两个或更多漏洞,而今年这一比例约40%。下图为漏洞利用数量的整体分布情况。漏洞利用数量
何谓漏洞利用程序集?漏洞利用程序集是指特定的恶意二进制文件使用的、用于传播或其他目的的所有漏洞利用程序。今年,我们发现了36个漏洞利用程序集,其中5个漏洞利用程序集仅包含一个漏洞。然而,在所有包含漏洞利用程序的恶意软件(共1017个二进制文件)中,有60%使用了这五个中的其中一个。CVE-2017-17125是最常被利用的漏洞之一,在36个漏洞利用程序集中,有28个程序集都利用了该漏洞。此外,987个二进制文件使用的最流行漏洞利用程序集也只针对该漏洞。最大的漏洞利用程序集包含22个漏洞利用程序,仅由Zerobot使用。另一个值得关注的事实是,只有6个漏洞利用程序集针对的是近两年披露的漏洞,但其中4个漏洞利用程序集中有大约50%或更多的程序针对这些漏洞。通常,包含漏洞利用程序的恶意软件可分为两类:
  1. 一类主要利用年代久远的已知漏洞。
  2. 另一类主要利用新漏洞。

我们发现的绝大多数二进制文件都属于第一类。第二类规模较小,但具有创新性,运营者会跟踪最新漏洞,但不会浪费太多时间将相关利用程序纳入僵尸网络源代码中。

下表列举了上述4个漏洞利用程序集和使用它们的恶意软件:

十一、CUJO AI如何保护互联网用户免受僵尸网络攻击

CUJO AI开发了Sentry。Sentry是一种领先的人工智能驱动的网络安全解决方案,可以保护网络上的每一台设备免受包括僵尸网络在内的各种威胁。作为分层机器学习网络安全解决方案,Sentry可用于保护ISP终端用户(即ISP客户)。Sentry能够检测并阻断针对任何联网设备的威胁,同时保护终端用户隐私。要保护家中的计算机、手机或物联网设备,在宽带路由器上部署CUJO AI Sentry即可,无需再安装其他软件。Sentry还可以部署在运营商的本地应用程序上,为家庭网络之外的移动设备提供全面保护。Sentry为千家万户提供了保护,其防护效果已得到实证。

免责声明

该文章原文版权归原作者所有。文章内容仅代表原作者个人观点。本译文仅以分享先进网络安全理念为目的,为业内人士提供参考,促进思考与交流,不作任何商用。如有侵权事宜沟通,请联系[email protected]邮箱。文章信息

发布机构:CUJO物联网安全公司

发布日期:2023年8月原文链接:https://cujo.com/resources/2022-23-botnet-report-download/
 
小蜜蜂翻译组公益译文项目,旨在分享国外先进网络安全理念、规划、框架、技术标准与实践,将网络安全战略性文档翻译为中文,为网络安全从业人员提供参考,促进国内安全组织在相关方面的思考和交流。

文章来源: https://blog.nsfocus.net/2022-23-botnet-report/
如有侵权请联系:admin#unsafe.sh