华为否认参与为 Linux 内核提供带有漏洞的不安全补丁。
华为 HKSP 被指存在漏洞
5 月 10 日,华为在内核加固邮件列表上提交了一个针对 Linux 内核防御的方案—华为自我保护即HKSP( huawei kernel self protection)。
HKSP 是一种内核保护工具,据了解,该补丁为 Linux 内核引入了一系列安全强化选项,以试图增强广泛部署的开源项目的安全性。
大多数在数据中心及在线服务中使用 Linux 的技术公司通常都会向 Linux 内核提交补丁,比如谷歌、微软、亚马逊等大型的科技公司都为其贡献了代码。
这可能表明华为希望为 Linux 内核项目做出贡献,因此该举动也格外引人关注。
近日,HKSP 项目受到了一些质疑。PaX/GR security 团队发现 HKSP 补丁程序在内核代码中引入了一个“可轻易利用”的漏洞,并对此写了一篇分析文章发表出来。PaX/GR security 是一家长期为 Linux 内核提供安全加固补丁的团队。
在文章中,PaX/GR security 指出,该补丁本身充满漏洞,且通常缺乏任何威胁模型分析(这就使得补丁的缓解措施与在 LKRG 中的缓解措施类似,而已知的缓解措施可以绕过该漏洞)。
目前尚不清楚发布的补丁集是否是华为的正式版本,也不清楚这些代码是否已在华为的任何设备上发布。“但有信息显示,其与华为有关系。因为该补丁集在名称上使用了‘华为’,其Github帐户也将华为列为该帐户的组织”,PaX/GR security 称。
文章中,PaX/GR security 用了较大篇幅来说明“由于完全缺乏防御性程序,HKSP 修补程序集是如何引入了可轻易利用的漏洞的”。
在这个补丁中,创建了一个/proc/ksguard/state 条目。每次打开或关闭该条目时,都将提示代码检查级别,引用了不存在的文件名的下列行被输出到 dmesg:
如在下面的补丁中看到的,该条目是使用全局 RWX 权限创建的。“这是粗心大意的表现,因为这不支持任何有意义的读取操作,并且在这样的条目上执行是没有意义的”,PaX/GR security 称。
这个条目的 ksg_state_write 处理程序是这样的:
PaX/GR security 认为这个函数存在很多问题:
首先,这里有一个会返回适当 errno(通常是-EFAULT)的 return-1。也有一个用于赋值的 n 变量,但实际上却没什么用,根本没有检查 len 的值,这导致的第一个问题是 limited oracle。
通过将 0 字节写入 entry,未初始化的 tmp 数组将尝试从中解析出一个数字,然后对其进行操作。同样地,向 entry 写入完整的 32 字节并没有使用以空字符结尾的字符串将导致 simple_strtoul 访问越界,可能要在相邻内存上的部分 oracle 上进行操作。
最重要的是,由于缺少对 len 的检查,并且 tmp 是一个简单的 32 字节堆栈数组,这就引入了一个可以被任何非特权用户执行的内核堆栈缓冲区溢出。
“有效的安全防御需要明确的、能解决实际问题的威胁模型分析。内核中的补丁应该是具有防御性的,并考虑到减少维护负担”,PaX/GR security 认为 HKSP 补丁是一种风险,它会产生新的攻击面,并引入比最初尝试解决的问题更多的问题。
华为回应:HKSP 仅是个人开源项目,不代表公司
PaX/GR security 的质疑文章出来后,引起了很多人的关注和讨论,对于华为此举,有不少指责的声音流出,甚至不乏谣言和阴谋论。
有外媒观点认为,华为或其员工正在偷偷将“后门”引入 Linux 内核,如果该补丁获得批准,那么,该内核将可能在下一个 Linux 更新中实现,这将削弱 Linux 内核的安全性。据悉,该漏洞需要 Linux 基金会为 Linux 内核项目批准了 HKSP 之后才会起作用。
对于争议,5 月 11 日,华为产品安全应急响应中心发表了一份声明。
公告中,华为表示经过调查后发现,该补丁只是个人用于与开源社区 Openwall 进行技术讨论的演示代码,华为并未参与 HKSP 项目。
华为表示,该补丁代码未在华为产品中使用,也未正式发布。
当天,HKSP 的作者在一份免责自述中也回应了 PaX/GR security 的质疑。
HKSP 作者表示,这个项目是他业余时间展开的研究工作,属于个人开源项目,与华为公司无关,也没有华为产品使用这些代码。
“该补丁代码由我提出,因为一个人没有足够的精力去覆盖所有的工作,因此缺乏像审查和测试这样的质量保证”。他解释称,“这个补丁只是一个演示代码,谢谢您发现的问题,我正在尝试修复相关代码”。
他对 PaX/GR security 提出的 ksguard 的问题做出了解释 — “ksg_guard 是一个用来检测内核级 rootkit 的 poc 示例,用户与内核的通信是抛出/proc 接口,我的初衷是为了快速验证这个想法,因此我没有添加足够的安全检查”。
最后,HKSP 作者对补丁进行了修改。他删除了 ksg_guard 代码,并准备用 netlink 接口重新编写,他还删除了隐藏符号模块。
他删除了“华为”字符串,“解除”了和华为的关联。他表示这是个人项目,而非华为官方支持的项目。
PaX/GR security 称,华为联系了他们,并告知其调查结果。华为希望通过更新文章来纠正一些不准确的信息。
PaX/GR security 发现,该项目的 Github 代码库在 11 日早上增加了一个提交项,在 README 文件的顶部插入了一个通知,使补丁代码与华为保持距离。
PaX/GR security 觉得,这个提交项似乎在有意或无意的追溯到创建存储库时,这会给人一种印象是,PaX/GR security 以某种方式故意忽略了容易获得的相关信息。因此,PaX/GR security 坚持其报告及主张。
作者可能系华为 20 级安全员
PaX/GR security 团队称,这个补丁的作者是华为的一名员工,尽管在这篇文章发表后,华为试图与 HKSP 补丁代码保持距离,但它仍然保留了“华为”的名字。
“根据我们的消息来源,该员工是华为 20 级的高级安全人员,这是华为内部的最高技术级别,如果没有上级组织的指示,这么高级别的人员就不可能发布代码。”
另有一份疑似是 HKSP 作者的自述文章显示,作者自称他是华为的员工,这个项目已经辛苦研发了很久。他称因为漏洞事件给公司造成了一定负面影响,他担忧会因此离职。但该自述文章的真实性有待证明。
在 5 月 12 日晚,PaX/GRsecurity 发现,该项目作者已经把 HKSP 的名称修改为了AKSP(+Another kernel self protection,另一个内核自我保护)。
去年,华为曾被指代码存在 BUG
2019 年 3 月,英国一家政府监督机构在一份报告中指出,华为的产品代码不存在所谓的“后门”,但存在严重问题的缺陷(BUG),这些缺陷造成了一定的安全风险。该报告最后得出结论,华为产品代码中的缺陷与“基本工程能力和网络安全环境”有关,任何人都可以利用这些缺陷。
当时,该报告也在业界也引发了不少讨论。对此,华为坚定表示,它在努力加强其工程工作流程中的安全保护,以及支持行业和国际监管机构之间的合作,以确保全球电信网络的强大安全。
一个不容忽视的报告出炉背景是,因担忧华为的设备可能被用于监控等用途,特朗普政府在协同努力在世界各地禁止华为的产品(尤其是 5G 无线网络)。
这一次,鉴于华为目前所面临的复杂政治环境,由 PaX/GRsecurity 指控而触发的一些流言也在传播。有网友就翻出了去年英国审查华为网络软件后发现漏洞的旧事,并称,在某种程度上,华为延续这种“错误”应该被认为是恶意的。
当然,也有不少人是理性和客观的,他们对此持反对意见。外媒 TechNadu 评论称,这种所谓的“阴谋论”令人怀疑。它列出了 3 点反驳意见:首先,华为以这种方式对 Linux 内核项目进行的测试是公开进行的,如果他们认为 Linus Torvalds 及其团队会不加以审核,就简单地接受华为“扔”给他们的任何东西,那就太天真了。其次,如果华为试图在 Linus 内核中隐藏一个“后门”,他们会不会试图让它不那么明显? 第三,他们为何不安排一个非在职员工做这件事?
去年 6 月,华为创始人任正非曾在接受外媒采访时回应了外界对于“华为是否有后门”的质疑,他表示,信息安全方面,华为提供的是管道和水龙头。如果把终端比作水龙头,管道里面流水还是流油,这不是华为决定的。“我们绝对是没有后门的。我们愿意给全世界国家提供没有后门的协定。”
因此,当评判 HKSP 这个项目时,还是要更加客观的回归到事实本身去看问题。PaX/GRsecurity 团队的创始人之一 Brad Spengler 反复强调称,他在乎的是事实本身,“如果你犯了错误应该及时承认并且快速修复”。
Brad Spengler 表示,并不是针对华为,因为他曾阅读过英国政府发布的华为代码分析报告,他觉得该报告从技术层面上非常不专业,当时也写了一篇分析文章。他强调,自己很欣赏包括华为在内的所有为自由开源社区贡献的个人和公司。
人称 TK 教主的 @tombkeeper 在自己的微博也对该事件发表了自己的评论,以他对 PaX/GRsecurity 的了解,他认为,这次 HKSP 事件中,PaX/GRsecurity 的做法不一定是针对华为,可能就是简单的敌视胆敢涉足漏洞缓解技术领域的人。
( TK 教主完整版评论:
参考链接:
https://grsecurity.net/huawei_hksp_introduces_trivially_exploitable_vulnerability
https://www.zdnet.com/article/huawei-denies-involvement-in-buggy-linux-kernel-patch-proposal/
https://www.technadu.com/huawei-says-controversial-linux-kernel-patch-wasnt-their-idea/101721/
评论 3 条评论