0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

BusyBox Wget工具包中的一个漏洞解决

广州虹科电子科技有限公司 来源:广州虹科电子科技有限公 作者:广州虹科电子科技 2021-09-02 16:01 次阅读

最近,虹科工业物联网团队在调查客户设备固件出现的常规CVE(CVE-2018-1000500)时发现了一个问题:通常情况下,当检测到一个会对设备产生严重破坏的CVE时,我们会建议客户对该组件进行升级或使用补丁。但是CVE早在2018年就已经发布,尽管具有8.1的高评分,却一直没有被修复,这引起了虹科研究人员的注意。

深入研究后,我们发现最初发布 CVE 的研究人员向维护人员提交过一个代码补丁,但是由于补丁存在破坏现有的功能的风险,该补丁被拒绝了。下面虹科工业物联网团队将会对这个问题进行详细阐述,首先让我们简要回顾一下 BusyBox和受影响的组件BusyBox Wget。

漏洞介绍

BusyBox 工具包在单个可执行文件中实现了大量 Linux 性能,甚至可以替代 Linux init 系统。体积小且具有灵活性的特点使得它在嵌入式设备中很受欢迎。最初的 Wget 是一个应用广泛的 GNU 实用程序,用于使用命令从Internet服务器中检索文件,经常用于系统脚本,包括用于软件更新等。

BusyBox 因为其紧凑的特点取代了 Wget,但它并不支持所有的安全功能和选项。特别是当与不具备有效 TLS 证书的服务器连接时,BusyBox 版本的 Wget 不会对其进行中止,而只会打印错误消息并继续下载。下面是对常规 Wget 和 BusyBox Wget 会产生不同行为的举例说明:

edaca758-0b62-11ec-8fb8-12bb97331649.png

事实上,BusyBox的 TLS 库并不支持证书验证。原始的 Wget 可以支持,并且必须使用一个明显的命令行开关(-- no-check-certificate)来进行启动,以防跳过证书验证。

这就是BusyBox的漏洞所在。攻击者可以通过模拟服务器来拦截 Wget的 HTTPS 请求,或者使用 DNS/ARP 病毒将请求重定向到攻击者控制的服务器,或者直接进行网络流量拦截。因为攻击者并不需要有效的 TLS 证书,所以他们可以用任意文件来替换请求的下载。

如果被替代的下载包中含有软件模块或更新项,这可能会直接导致恶意代码执行。如果下载包含配置或数据,攻击者可能恶意影响设备的功能。即使客户端在安装或执行之前检查了下载文件的完整性和真实性,攻击者仍然可能会通过让客户端下载无效的多GB文件或者连接非法服务器而导致拒绝服务。

BusyBox团队处理方式

BusyBox的维护人员认为,修复Wget并让设备维持不具备有效TLS证书的情况会碱坏设备的重要功能。这是安全员和工程师之间的常见冲突:安全研究人员将更加愿意为了保障设备安全性而牺牲一些设备现有功能的发挥,而工程师则更倾向于维持设备的功能运作,特别是替代方案会对已经部署在现场的设备功能造成碱坏的情况。

唯一的变化是当检测到无效的 TLS 证书时,1.29.0版本会添加一条错误信息。该错误信息会被打印到标准输出中,但不会在系统日志中留下长久的痕迹,这意味着错误可能随时发生,攻击者可以利用该设备,而不会被管理员发现。

虹科建议

到目前为止,BusyBox Wget 支持在子进程中启动 OpenSSL 客户机来执行 TLS 操作。此客户端完全支持证书验证逻辑,该逻辑由命令行选项来控制。因此,虹科建议应用下面的补丁,以便明确地将证书检查添加到 BusyBox Wget 中。首先,确保设置以下配置标志,这将使BusyBox 使用OpenSSL 的TLS/SSL 客户端。

CONFIG_FEATURE_WGET_OPENSSL=y

然后应用以下补丁:

index f2fc9e215..6bcc24421 100644--- a/networking/wget.c+++ b/networking/wget.c@@ -662,7 +662,7 @@ static int spawn_https_helper_openssl(const char *host, unsigned port) pid = xvfork(); if (pid == 0) { /* Child */- char *argv[8];+ char *argv[11]; close(sp[0]); xmove_fd(sp[1], 0);

@@ -690,6 +690,11 @@ static int spawn_https_helper_openssl(const char *host, unsigned port) argv[6] = (char*)servername;

} + /* Abort on bad server certificate */+ argv[7] = (char*)“-verify”;+ argv[8] = (char*)“100”;+ argv[9] = (char*)“-verify_return_error”;+ BB_EXECVP(argv[0], argv); xmove_fd(3, 2); # if ENABLE_FEATURE_WGET_HTTPS

应用该补丁后,BusyBox Wget 目前展示正确,在一个无效的证书上停止(尽管带有一个通用的错误消息) :

虹科总结

在这个时代,使用嵌入式设备时我们都应该明白,为了功能而牺牲设备安全并向字段发布不安全的代码是不可行的。

这种做法在很大程度直接导致了物联网设备市场安全状况不佳。当然,高等级、多层次、硬件支持的安全性并不适用于每个产品,因为这涉及到成本和上市时间。但供应商应该期望他们的上游组件,比如像BusyBox的开源代码维护者,实施建立第一道防线所需的合理安全措施。

虹科 Vdoo 物联网设备安全防护与加固平台具有自动安全扫描产品可以帮助客户建立设备的安全配置文件,包括第三方组件可能引入的任何漏洞。从而慎重选择其组件供应商,而不需要过多的测试人员和团队。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2871

    文章

    41702

    浏览量

    358930
  • 虹科电子
    +关注

    关注

    0

    文章

    543

    浏览量

    14053

原文标题:虹科案例 | BusyBox Wget漏洞:一个早就应该解决的问题

文章出处:【微信号:Hongketeam,微信公众号:广州虹科电子科技有限公司】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何激活labview的工具包

    我新下载了labview2010的 Real_time 工具包,但不知道怎么激活,求助下。
    发表于 12-25 13:04

    工具包卸载

    之前下载了生成报表的工具包,结果安装之后不能用,现在下载了新的,请问需不需要把原来的卸载掉再安装?如果要卸载的话,要怎么卸载,请各位
    发表于 03-22 10:09

    PID工具包

    新手求助:PID工具包怎么用?
    发表于 05-06 09:57

    Labview2010如何加载工具包

    本帖最后由 eehome 于 2013-1-5 09:41 编辑 Labview2010如何加载工具包?安装了2010以后没看到工具包的激活选项或者安装选项请教前辈下如何选择加载工具包
    发表于 12-31 15:36

    PIC 语言工具包问题

    大家好,PIC 我是新手,有简单的问题请教下,就是我导入mcp的,mplab会报语言工具包
    发表于 04-19 14:00

    2012工具包安装问题

    安装了控制设计与仿真工具包然后用注册机激活了为何在控件还是显示空白?
    发表于 11-04 20:18

    labvIEW PID工具包的问题

    请教问题啊,为什么PID工具包安装好了,在labvIEW里找不着相关的VI啊
    发表于 12-26 21:04

    fastrbf工具包

    求matlabfastrbf的工具包 ,有谁有这个工具包呢?求分享?急需
    发表于 03-05 20:05

    求助labview pid工具包的使用

    次用这个软件,要用pid控制,采用了PID工具包,但不会连接,波形图总是错的,求助大神给个例子参考
    发表于 04-17 17:12

    关于labview工具包

    请问各位大神问题,LabVIEW的工具包如何下载,比如声音和振动工具包,官网上只有下载界面。
    发表于 09-04 19:27

    工具包

    谁有labview视觉工具包2013适用的??分享下,不胜感激
    发表于 04-27 23:28

    DCT工具包

    2017版32位的LABVIEW数据库DCT工具包请教大神们发下 多谢
    发表于 09-28 08:41

    工具包路径查询,求教!

    请问用VIPM下载的工具包般安装到哪里去了?怎么查询我的工具包的路径啊?
    发表于 09-03 20:50

    求DSC工具包

    求Labviewl软件的DSC工具包,在官网上下载不了,那位朋友有,发谢谢
    发表于 03-03 12:09

    如何在OpenVINO trade工具包推断两图像?

    无法在OpenVINO™工具包对两输入图像运行推理。
    发表于 08-15 08:24