李红雨:美企发现华为设备大量漏洞?真是费心了

来源:观察者网

2019-07-12 08:07

李红雨

李红雨作者

网安资深工程师,中科院所属企业产品运行监护中心主任

【导读】 导语:Finite State公司是一家总部位于美国俄亥俄州哥伦布市网络安全公司,给网络硬件和软件提供安全评估,为美国国家安全和美国私营部门的最高层工作。

【文/观察者网专栏作者 李红雨】

这几天,网上很多有关美国俄亥俄州网络安全公司Finite State(以下简称F公司)发现华为公司网络产品存在大量漏洞和后门的消息传出来。《华尔街日报》在7月5日也报道了这一事件,为中美两国目前关于华为产品安全性的争论,似乎提供了一个确凿无疑的有利于美方的证据,据说相关报告在美国政府高层已经获得了相当多的认同,美国的盟友一直要求美国拿出来有关华为存在安全性漏洞的证据,按照现在美国政府毫无顾忌的行事表现,如果过几天有某些政客拿着个报告说事,一点都不会令人感到惊讶。

F公司花费了几个月的时间进行了调查分析,最终报告的详细内容是在上月底开始流出的,几乎在第一时间,华为在它的网站上发表了《华为PSIRT:《Finite State供应链评估》的技术分析报告》(以下简称华为报告),针对这份报告中的结论进行了详细回复。我们注意到这个回复修改的时间是7月3日,最初发布的回复应该更早,说明华为对这个报告提出的问题是重视的,响应是迅速的。

(华为公司官网回应)

华为报告中指出,F公司的“这份报告缺乏洞察力、完整性和准确性,F公司的这种做法也不是一个专业、认真、有能力的安全公司通常的做法。”并且“鉴于F公司的做法及其工具和方法的不足,其分析结果,最好的情况下是种质疑,最差的情况下就是不准确的。若是通过合作而不是在安全方面选择政治立场的话,这本应是可以避免的。”仔细阅读了华为报告之后,华为针对F公司相关报告的这段回复总结,分析是专业的,判断是准确的。

Finite State针对华为供应链给出评估报告

业界中,针对软件系统的漏洞无论是自查还是第三方辅助巡查,都是保证软件正常安全运行的常规机制,尤其第三方参与的查漏机制,对于很多大公司来说,不但不是反对的,而且往往还有一定的奖励措施。所以按照常理来说,F公司投入这么大资源,这么长时间专门针对华为产品进行漏洞检测,在正面的效果来说,对华为产品的安全性有很大的促进作用,理应当获得华为的欢迎.

不过正如华为报告中指出来的那样,F公司如此费劲气力做出来的结果,却在关键的一些环节上没有遵循业界惯常的做法,也就是说,F公司需要将报告提交给华为公司,提出漏洞存在的可能性,并且由双方共同进行验证。F公司没有遵循这个规范做法,而是直接将报告交给正在苦于找不到华为不安全证据的美国政府手中,其中的意味就显然有不善的成份,难怪华为对此表达了相当愤怒的情绪。

(Finite State公司对华为的CE12800和Juniper的EX4650、Arista的7280R产品做了对比分析,结果认为华为产品安全性差、有疑似后门,安全性低于友商)

华为针对报告中提到的AR3600 V200R007C00SPCb00存在10个已知漏洞的情况,经过分析确认,其中6个不受影响、2个已修复,2个风险低

F公司测试报告中使用的分析方法SCA(Software Composition Analysis)技术也是业界普遍采用标准化漏洞扫描技术,实现的方法非常简单,大致有以下几个检验原则:

1. 识别软件中所使用开源软件版本、License 信息,确保开源软件使用合规性

2. 根据开源软件版本到漏洞库中匹配,以得出开源软件的全部漏洞列表

3. 针对一些安全性薄弱的函数方法和调用手段给予警示

所有的SCA都是采用特征值检测,软件实现的逻辑是相对简单的,它通过扫描软件,与需要预警的特征值进行匹配,至于这个特征值的实际实现的功能究竟为何,不放到整个的软件逻辑和数据环境中,是不可能得到的。所以SCA扫描获得的结果只能用来做警示信息,还需要通过人工进行二次核对,这才是业界正确的规范做法。仅仅根据疑似的特征值,就贸然得出存在漏洞的结论是相当武断毛糙的,的确不是一个正常公司的正常做法。

要知道无论是源代码还是二进制代码,通过读取软件代码,分析出来软件的操作能力和运行结果的空间,还是一个相当有挑战新的话题,这属于机器证明的领域,不是现在时,在今后相当长时间内,都不会有什么显著的进展,目前甚至连理论都没有什么引人注目的成果,蓬勃发展的AI也还没有将这部分纳入到研究的范畴,更不用说F公司能够提供什么革命性的解决方案了,所以华为指责F公司的报告根本没有考虑到软件的上下文,这就一点也不奇怪,因为这个世界上目前还不存在这个技术。

通过特征值扫描技术得到的结果可信度非常低,有证据表明,90%以上的疑似结果都证明是错误的,这就好比说,窃贼往往在夜深人静的时候登门入户行窃,但是如果因此你将所有夜行的人都当作窃贼,那就是极其荒腔走板了。F公司的检测报告就是这样一个荒腔走板的报告。如果F公司遵循业界正常的流程,将这个报告提交给华为公司做进一步的确认,或者F公司也可以自己组织资源针对潜在的漏洞进行攻击验证,那么获得的结果可信度就能大大提高,也能排除绝大多数的虚假警示,也是业界提倡的两种行为规范。但是F公司走的是另外一条上层路线,直接将这个报告交给对于技术一无所知的政客,让他们拿来作为攻击华为安全性的炮弹,这样的用意动机首先就不纯,违反了业界的行为规范,也给自己公司的专业性、公正性蒙上污点。我们注意到尽管F公司提及那么多漏洞和后门,但是没有一个得到最终的确认,所有结果就仍然还属于莫须有的状态。


(美国国家漏洞数据库中显示微软公司漏洞数量位于TOP5的第一位

动机不纯,公正性就无从谈起,如何制造更有指向性的结论就是一件简单的事情。任何一个公司的软件系统都有一些公共的资源共享,都有一些特殊的编码模式可以遵循,因此选取一些具有指向性的特征值集合,就能获得期望的有偏向性的结果。我们无从知道F公司采用的特征值集合组成情况,是否具有普适性,是否经过目标明确的裁剪,这同样会让F公司的测试报告失去可对比的公允性。华为报告也指出来,用来对比的公司既非主流也缺少足够的数据采集量,获得的采样分析结论就肯定不具有统计学上的显著意义,这对于一个专业公司来说,如果连基础统计学意义都没有达到,那么付出那么大代价所要得到的结论首先就禁不起科学的推敲,显得很不专业。上面两种可能性导致结果偏差的存在,不能不令人怀疑F公司背后隐藏着的动机。

华为报告中用明确的例子一一指出来F公司不专业的表现,他们对于嵌入式系统需要遵循的规范显然比较陌生,更要命的是,华为产品是对Linux系统的深度改版,只保留了系统最核心的基础功能,更多的有关用户管理、远程接入控制、TCP/IP协议栈都是由自主开发的VRP(Versatile Routing Platform)接管,取代了Linux原有的功能。虽然我们不知道这与鸿蒙系统的承继关系如何,不过可以看出来华为对于Linux系统吃得很透,已经进入自由王国境界的门槛。

但是F公司显然不知道这个情况,他们做的扫描检测一律按照标准的Linux系统实现的模式来进行,走入的技术路径跟华为南辕北辙,也难怪华为一再指出来,如果F公司之前与华为进行沟通就不会犯这种低级的错误,将根本不存在的问题拿出来说事。标准模式下运行的扫描系统会按照Linux实现规范进行检测,根本不会理会华为专有的设计架构,所以得出的结果自然是无效的,除非系统能够专门针对华为产品进行定向定制,而这样的工作其实只有华为自己公司才能实现。

(VRP接管远程用户接入)

不过华为报告中同时也认可了F公司报告中发现的一些问题,这些问题包括:

1. 遗留超级用户帐户的授权authorized_keys文件

2. 已修复的漏洞,没有将相应的版本号同步修订

由于华为产品相关操作都已经转为在VRP环境下运行,不再需要Linux环境下的authorized_keys授权文件,这类文件属于开发工程调试阶段的遗留产物,在正式发布的产品中应该被剔除。显然华为在产品发布清单管理方面的工作还有待加强。任何一个大系统中,多多少少都会遗留一些陈旧的代码文件,这些文件在任何动态测试的环节中都无法被发现,只有建立起来明确的产品发布清单核查机制后,才能有效地避免类似的垃圾文件混入发布产品中的情况发生。当然因为这些数据或者文件不会影响产品的功能实现,在很多公司,除了比较认真的团队会做一个彻底的清理外,基本都会多多少少忽视这个环节。其实包括微软在内,发布的windows产品一直都有很多类似的垃圾文件存在,至于共享生态下的Linux体系,这类文件就更多了,很少引起大家的重视。但是不管怎么说,存在这类垃圾文件本来就不是好现象,更何况还是这样敏感的授权文件,就更不应该,华为在新发布的修正版中已经剔除掉这个文件。总的来说,这个文件属于废弃的文件,由于Linux对应的操作代码在系统中不复存在,因此任何时候都无法将其利用作为提权的手段,因此不属于存在实质性的安全问题,顶多算是系统环境清理得不够干净。

有关漏洞修复后不同步更新版本号,其实也是共享软件一直存在的痼疾,毕竟散乱的开发成员之间是否能够严格遵循版本管理的约定,很多时候都是依靠自我管理,这不像在同一个公司能够制定刚性的纪律来强制执行,所以对于这个业界普遍知晓的问题,也确实需要得到重视,能够在巡检的过程中发现此类问题,并进行更正也是很有必要的。我们注意到华为针对此类问题都做了再次仔细的核查,并确认标识的版本中存在的漏洞都已经修复过,但是版本号没有进行过更新,因此导致扫描软件发生误判。严格来说,虽然漏洞在实际的代码中早已被修复,但是这种版本号没有同步更新的情形仍然算作系统的缺陷,但是不归入到威胁安全水平的致命型缺陷中。

可以说,F公司发现的上述两种类型的问题,确实属于实实在在需要改进的缺陷,只是这些缺陷并不属于安全漏洞或者后门,通常测试时候发现类似的问题,如果出于交付时间和工作量的综合考虑,仍然可以将产品交付,不用进行修复,这在测试领域内也是允许和经常发生的。毕竟任何已经发布的软件产品中都必然存在一些缺陷,那是真正影响到软件功能实现的问题。软件领域中,完美主义是根本无法实现的理想,你看看手头上那些主要使用的软件,哪个不是经常在打补丁,堵漏洞?所以类似上述与功能实现都一点不相关的问题,在很多公司中,甚至都不当作缺陷来看待。当然,一个优秀的公司,它的优秀应该是体现在方方面面的,在细节上的精雕细琢是必须具备的品质,所以来说,华为也确实需要在上述两个环节中加强管理,因为确实会发生某些特殊的情况,垃圾文件也会被有心人利用起来,作为攻击的手段;版本管理的失调,更会在后续的版本迭代过程中发生很多意想不到的疏漏,这是华为在这个事件中需要吸取的教训。

尽管F公司发布了所谓发现华为产品存在疑似漏洞和后门的报告,但是因为这个报告违反了业界约定俗成的规范,在数据采集过程中存在某些法律越界的现象,也没有采用最新的固件版本,发现疑似漏洞也没有进一步多方核查,就贸然将高达90%以上不可靠结论的报告当作最终报告,也不奇怪华为很不客气地评价说:最好的情况下是种质疑,最差的情况下就是不准确的。并且在美中两国进行贸易争端谈判和美国单方面将华为列入实体清单,并号召全世界进行封杀的时候,如此违反常规的做法,背后没有政治目的是很不令人信服的,何况这些所谓的漏洞后门在华为报告中都已经进行了一一反驳,一个进行了几个月的调查,采集了500多种产品软件,近1万个固件和150多万份文件的专业公司,走了这么不专业的路径,得出这么不专业结论,我们不相信不是出于某些非技术的目的。

科学家和工程师们面对问题需要具有客观性,但是政客们可以随意筛选他们想要的论据,不具专业能力的普通人只能在科学技术工作者和政客的言论之间选择自己的立场。如果前两种人物具有某种默契,就会形成一个远离事实的舆论场,等到真相到来的时候,有些成见已经固化,难以挽回,中国成语有所谓的“三人成虎”就是这个道理。

你得承认美国人确实在国际事务中积累了丰富的博弈经验,他们知道在叫牌之前,如何制造出来一个有利于自己的氛围,让参加博弈的对方还没开局就已落下方,逼迫对方知难而退,特朗普的极限施压是这个博弈方法最登峰造极的典型例子。F公司的作为显然也是制造这个不公正氛围的一个有机组成,他们不光彩的是一面打着科学公正的面目,另一面却在做着违反行业各种规范的事情,一面在明,一面在暗,而公众只能从他们充满谬误的结论中,误认为这就是公正。

科学家和工程师们面对客观世界虽然需要秉持客观公正的态度,遵循业界业已行之有效的各种行事规范,但是就科学家、工程师个人以及公司而言,同样需要面对各种私利的诱惑,没有哪个研究表明科学家团体具有更高的道德水准,一旦他们的行为失范,就会利用公众对科学的信任,将错误的信息传达给整个社会。这样的事例可以说是层出不穷,国内国外皆如此,就F公司的这个报告来说,就是提供的又一个典型的例子。很多国内的公众仅仅从表面的结论中误以为华为确实被美企抓住了把柄,但实际的情况,这只是中美大博弈过程中一个小小的浪花,对于技术界来说, 这个充满偏见和非专业色彩的报告根本没有多少可供参考的价值,只能被政客拿来做他们博弈过程中一个小小的筹码。

本文系观察者网独家稿件,未经授权,不得转载。

责任编辑:柳叶刀
美国公司 缺乏洞察力 政治立场 华为产品漏洞
观察者APP,更好阅读体验

布林肯来华谈的怎么样?是否不虚此行?

“看看,这就是美国的警察”

习近平会见布林肯:中美应彼此成就,而不是互相伤害

“宁愿关闭在美业务也不卖”

王毅见布林肯,对美方提出三个“不要”