关于华为否认HKSP来自官方的一点看法
今天刷手机,无意看到一则消息:
华为否认提交给 Linux 内核的不安全补丁 HKSP 来自官方
这个消息吸引我的原因有几点:
- 华为被制裁刚满一年,现在由于新冠疫情影响,感觉又处于很敏感的时期;
- 华为linux内核,之前参与过华为RTOS项目,也接触过华为linux内核团队;
- 据说提交补丁的是L20级别员工,前东家有同事跳槽华为后,好像也升到L20了,很好奇会不会是认识的人;)
网上评论一般就两个观点, 要么批评华为不行,丢人丢到国外。要么抨击外国阴谋论,打压国产之光。
好奇心上来,就找了几个链接看了下,整理一下有用的信息如下:
-----------------------------------------------------------------------------------------------------------------------------------------------------
- HKSP:Huawei kernel self protection
- 补丁链接:https://github.com/cloudsec/aksp (原来是叫hksp,现在改为aksp:another kernel self protection)
- 最早发在社区的邮件:https://www.openwall.com/lists/kernel-hardening/2020/05/10/3
- grsecurity的博客回应:https://grsecurity.net/huawei_hksp_introduces_trivially_exploitable_vulnerability
-----------------------------------------------------------------------------------------------------------------------------------------------------
事情的经过,大概是5/10号,华为某员工向openwall社区发了个邮件,公开一个安全补丁。
5/10当天,grsecurity团队就写了篇文章,指出这个补丁存在安全漏洞。
接着,华为官方发声明,这个补丁不是官方提交的,纯属个人行为。
补丁作者,也在readme里面作了补充,表示补丁是个人行为,并把补丁改为aksp了。
然后,媒体上就开始出现,华为提交补丁里面植入后门之类的说法了。
问题:
1,补丁是否华为官方提交的?
2,华为的产品有没有已经用了这个补丁集?
3,这个补丁真的有华为植入的后门吗?
个人观点:
第一个问题:补丁是否华为官方提交的?
补丁不会是官方提的。理由如下:
1,按之前华为项目的经验来看,如果华为想向社区提补丁,肯定会通过@huawei.com的邮箱帐号来提交,而这次帐号应该是用的个人gmail。
2,这个补丁集并不是Linux社区提交补丁的格式,在openwall邮件里面,也只是说想公开一个内核强化的项目,希望可以给其他人参考。
除了grsecurity团队, 社区里面还是有人热心地回复邮件了,并且表示有点意思~~~建议作者拆分补丁集再提交
说明这个补丁并非一无是处,还是有其价值所在的。并且,其他也知道,这个补丁集还不算最终提交版本的。
第二个问题:华为的产品有没有已经用了这个补丁集?
这个无法判断了。可能会有,但是大部分产品应该不会。
补丁集的代码应该是基于linux-5.6.7的内核,这么新的内核,本身就不会有几个产品在用的。
之前接触过的华为嵌入式产品,还在使用2.6,3.10版本内核,去年升级到4.4版本,感觉已经是迈了很大的一步了。。。
但是,不排除在一些云服务产品上,已经使用了最新版的内核了。
话说回来,如果华为产品已经使用了这个补丁,那就意味着,补丁就是华为的资产了。
华为工作区域都不给拍照的,把华为的东西作为个人作品提交,应该是很严重的错误,不会有人拿自己职业开玩笑吧。
(除非,这个行为是华为官方认可的,那华为被喷也没什么好讲的)
第三个问题:这个补丁真的有华为植入的后门吗?
个人觉得不可能。开源社区的补丁合并,都是要经过review的,华为或者个人,很难故意(有可能是无意)留个后门,而不被人发现。
而且读一下grsecurity的博客,里面提到了这个补丁集会引入一些容易被利用的漏洞。例如:
1,补丁创建了 /proc/ksguard/state ,在打开/关闭文件时,会往dmesg里面写入以下消息(文件路径与实际不符):
open /proc/ksg_state_proc ok.
close /proc/ksg_state_proc ok.
2,/proc/ksguard/state 的文件权限赋于了777,grsecurity认为这是粗心的表现,没有必要给于这么高的权限;
3,ksg_state_write 函数有一堆问题,原始代码如下:
static ssize_t ksg_state_write(struct file *file, const char __user *buf,
size_t len, loff_t *offset)
{
u64 value;
char tmp[];
size_t n = ; if (copy_from_user(tmp, buf, len))
return -; value = simple_strtoul(tmp, '\0', );
switch (value) {
case :
ksg_check_keyboard();
break;
case :
ksg_check_nf();
break;
case :
ksg_check_pointer();
break;
case :
ksg_check_sct();
break;
default:
break;
} *offset += len;
n += len; return len;
}
引用grsecurity的指摘如下:
确实,像grsecurity所说的,这个补丁里面有很多低级的错误。
像未使用的变量,越界问题等,不像是经过评审的代码,华为L20级的员工水平也不至于这么弱。
唯一合理的解释,应该就是这只是个demo,业余写着玩的,没有考虑各种异常情况。
华为想通过这种方式植入后门,那也太low了吧。
结论:
结合以上思考,HKSP的事件,本身并不是什么特别严重的问题,顶多算代码质量差,需要加强review。
grsecurity团队专门写博客来指摘补丁,一方面可能是工作需要,作为他们的工作成果,需要留下点东西。
另一方面可能就是对华为涉足内核安全领域的戒备。为什么不能像其他人一样,在社区里面客观分析补丁的优点和缺点呢?
而外国媒体,那更是听风就是雨了,华为、漏洞,这两个词同时出现,立刻就能刺激到外媒的肾上腺素,不死命地喷华为才怪了。
补充:
华为PIRST似乎联系grsecurity团队,希望修改博客内容,被回绝了。
理由是,作者修改readme,撇清跟华为关系时,好像把github的提交时间重置成了周五(grsecurity发博客之前)。
这风骚的操作,此地无银三百两的感觉。。。。
另外,听说作者已经做好被开除的准备了。。。
在这里,要吐槽一下华为的公关做的不行啊。
前面才出来任正非否认996,HKSP事件上来就否认跟华为的关系,让人感觉华为完全没有替员工考虑啊。
HKSP这个事,华为不应该撇清关系,而要替员工说话,肯定员工的行为。
不但可以树立华为关心员工,和员工站在一条线上的高大形象。而且,也可以从侧面证实,华为确实没有996,员工还有很多时间可以自己研究内核代码的(手动狗头)~~~
关于华为否认HKSP来自官方的一点看法的更多相关文章
- [转帖]IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”)
IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”) 2016-06-02 14:23:49 Times_poem 阅读数 9734更多 分类专栏: IPC网 ...
- edgedb-js 来自官方的js 驱动
目前对于edgedb 主要还是来自官方的python驱动,目前js 版本的已经快发布了,代码在github 可以看到了 同时官方文档也提供了一个关于edgedb 内部的协议说明,结合js 驱动以及文档 ...
- cube.js 学习(十)cube 来自官方的学习网站
尽管cube.js 包含了一个doc 站点,但是资料不是很全,同时如果查看了cube github 代码中的一些demo的话,发现还是很不错的 但是一些实践没有在文档展现出来,还好我们可以从cube ...
- 【Docker】来自官方映像的 6 个 Dockerfile 技巧
本文将根据我从官方镜像学到的经验,讲解编写Dockerfile的技巧. 1. 选择Debian 官方镜像的大多数Dockerfile,不管是直接还是通过其他镜像,都是基于Debian的.Dock ...
- go-elasticsearch 来自官方的 golang es client
elasticsearch 终于有了官方的golang sdk 了,地址 https://github.com/elastic/go-elasticsearch 当前还不稳定,同时主要是对于es7 的 ...
- Terracotta设计原理分析--(部分内容来自官方描述)
因为工作中历史产品采用了terracotta作为分布式缓存线性扩展平台,因此不得不提前对其原理做了相关了解,当然其中很多的设计思想和oracle.memcached的设计相似,但也有自己的亮点,那就是 ...
- 关于STM32的ST官方的库的一点看法
标题确实很别扭,因为我现在用这个库也很别扭. 在不久之前,一直有个讨论的话题:STM32开发是用库还是用寄存器? 很多人的结论是不需要讨论! 但是,今天我想说下我的看法. 首先,我还是一个菜鸟,对库对 ...
- 用Python操作Excel2007 及以上的版本读写,来自官方的Demo
大牛请略过,新手可以参考,具体见下面的代码注释, 另外一个问题,想学习这个语言,最好还是英语牛一些,可以去官网多看看有用的类库,汉语的资料不是很全 #运行环境 3.4,下面这个操作Excel的包是针对 ...
- 七夕——来自google的一点轻松
今天google在其hk主页推出了七夕主题的小游戏 先看看这个logo: 一共三轮 我的记录是7分21秒,还真是不容易
随机推荐
- [jvm] -- 类文件结构篇
类文件结构 结构图 魔数 头四个字节,作用是确定这个文件是否为一个能被虚拟机接收的 Class 文件. Class 文件版本 第五和第六是次版本号,第七和第八是主版本号. 高版本的 Java 虚拟机 ...
- justoj connect(边的处理)
CONNECT https://oj.ismdeep.com/contest/problem?id=1702&pid=2 Problem Description 有nn个顶点,每个顶点有自己的 ...
- OFD呼之欲来、来之跚跚,谁之罪?
软件国产化的浪潮势不可挡,美国逼得逾甚,我们压迫感逾强,唯有奋起直追方慰平生之志. 在板式文档领域,pdf已成为国际标准,亦可称为美国标准:它在该领域一枝独秀,已形成一览众山小之势! pdf出道20余 ...
- jQuery与javascript
jQuery 是一个 JavaScript 库,jQuery 极大地简化了 JavaScript 编程. javaScript(js)和jQuery(jq) 都是找元素.操作元素 Dom操作的区别: ...
- leetcode 5473
这个题真是当时想麻烦了,,,感谢LLdl 提供的题解 其实一个很重要的点就是,如果后面的玩意翻转了偶数次,那就跟没变一样.如果是奇数次就取反. 怪我天真,第一反应就去位运算去了,,,,哪有那么复杂诶 ...
- 最长不下降代码dp
我看以前写过一个最长不下降,但是感觉可能没有那么好理解emmmm 下面这个是从正序寻找的emmmm 先来一个WA代码,我给写了WA的具体行数,看看其他行其实可以看出它的思路 第二个代码是AC的 #in ...
- SpringCloud Bus消息总线简介
简介: SpringCloud Bus配合SpringCloud Config使用可以实现配置的动态刷新 SpringCloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了 ...
- Day08_商品规格管理
学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 0.学习 ...
- 第一部分_Mac技巧
原文是"池建强"的微信文章,公众号为"MacTalk" 第一天 直接在终端里输入 $ say "英文单词",Mac就会拼读该单词 第二天 使 ...
- ES6标准入门 2/26
第一章 ECMAScript6 简介 1.首先经典开头,ECMAScript跟JavaScript的关系,前者是后者的规格,后者是前者的一种实现.在日常场合中,这两个词是可以互换的. 2.ES6可以泛 ...