软件基因
——赋能空间信息安全助力数字产业发展

2019-10-10 18:59上海戎磐网络科技有限公司CTO章丽娟
网信军民融合 2019年12期
关键词:网络空间代码信息安全

◎上海戎磐网络科技有限公司CTO 章丽娟

11月16日,在第十九期钱学森论坛暨2019长沙空间信息产业国际博览会空间信息安全分论坛上,上海戎磐网络科技有限公司CTO章丽娟作了题为《软件基因——赋能空间信息安全,助力数字产业发展》的主题报告。章总指出,不同于传统特征检测方法仅可解决个体识别、缺乏广度识别能力等问题,软件基因方法通过基因分析,研究并构建软件基因家族及其背后的黑客家族,以此作为病毒或恶意代码判定的依据,实现从精度的个体识别向广度的群体识别的迈进,真正实现从被动防御到主动防御的转化。

一、网络空间并非想象的那么安全

当前,严峻的信息安全形势已经到了众所周知的境地。几个案例更能直观地体现这种严峻的形势。上个月,在上海的一场黑客大赛上,一些国内顶尖的黑客技术研究团队,做了一些最新的黑客技术展示,他们展示的能力包括:无线网络内部盗取密码,投屏设备远程控制,照明设备劫持,指纹盗取验证及AI识别对抗。这些都是我们生活中最常见的一些应用场景。再举两个例子。第一个是对抗摄像头识别的攻击实验。演示者拿着一张A4纸大小的图片,神奇的是,当演示者举着这张通过人眼完全看不出任何含义的图片站在摄像头前的时候,在视频框已经完全显示不出这位演示者了,这就实现了隐身和欺骗的作用。第二个有趣的例子是静态的图像识别,也是基于AI技术的。演示者拿着黄健翔的图片来做演示,这张黄健翔的静态图片背后的代码是被篡改的。图片上,黄健翔手里拿着一个足球,站在宝马车旁。虽然图片背后的代码是被改掉的,但是通过我们人眼看起来还是原来的图片。当这样一张图片输入到我们图片识别系统里的时候,却被识别成了伊万卡拿着女士提包走在直升机旁。以上案例给我们一个直观的感受:我们一直都在使用一些智能化设备,可能它真的没有我们想象的那么安全。

二、网络空间的对抗实质上是代码和代码、软件和软件之间的博弈和较量

实际上,作为一个攻击者,想要去攻击一个信息系统,只需要找到其中的一个脆弱点或突破口,就能够成功实现攻击。如果要做安全防御,将是一个规模非常庞大的系统工程。那么这样一个系统工程,什么是里面根本性的核心问题?美国斯坦福大学法学院教授劳伦斯·莱斯格(Lawrence Lessig)给了我们一个很好的启示。他在《代码:塑造网络空间的法律》这本书中阐释了这样一个核心观点:网络空间中的法律和规则是通过什么样的代码和软件来创造和约束的。所以,软件和代码是塑造网络空间运转规则的核心要素。当前,网络空间已成为除陆海空天之外的第五维空间,钱学森先生多年前曾经将“Cybernetic”译为“控制论”,其实,“Cyberspace”也有控制的意思,它是指通过网络或者软件代码来控制操纵空间。现在越来越多的物理空间,包括人的大脑和人的思维,从各种物理节点中所产生的数据都在网络化、软件化,势必会带来如何监管、管理、认知软件和代码的安全性的问题。

攻击者使用软件和代码进行网络攻击,防御者也在对软件和代码进行防御,本质上来看,网络空间的对抗实际上就是代码和代码、软件和软件之间的博弈和较量。从一个比较通用的攻击链来看,不管是目标侦查、武器生产、突破防守、安插植入、指挥控制以及最后的目标实现,实际上每一个攻击链路背后操纵的都是人,但是真正发挥作用的都必须是工具,必须是软件和代码。

三、软件开发模式决定其所带有的遗传性和变异性,是用基因方式了解和认知软件的基础

现在的问题在于:已经有很多种传统的防御设备和防御手段了,为什么还是不能完全解决网络安全问题?网络安全防御的瓶颈和问题在哪里?从被动防御向主动防御转变,有很多安全策略,但有一个问题是需要去解决的,即:传统防护设备对80%的未知恶意代码是难以及时有效发现和处理的。黑客不断编写新代码,称之为代码的变种。你不是查杀了我的代码了吗?我可以把我的代码简单改造,来绕过你的查杀,那就成了新的变种。实际上改造代码需要花费的代价是很小的,但却可以达到攻击的目的。改造后的代码,对传统防护设备而言是未知的,因此也无法检测、发现和处理。这该怎么办?我觉得最重要的就是如何去认知网络空间里面最重要的软件,应该从对软件的认知上去做一些工作。

怎么认识软件呢?这是一个最重要的问题。简单来说,软件有多大,有什么功能。再复杂一点,软件是怎么编译的,它用什么语言编写的,这都是来衡量它的不同维度。也有一些国外的学者把软件当作一个艺术品,这是从编程的设计角度上来考虑的。直到我们看到这样的观点:软件是个有机体,觉得有一些灵感了。即:软件跟生物一样,它的生命力是来自于自身迭代发展的。如果软件不再迭代发展了,它可能就失去了生命力和存在的价值。这对恶意代码、恶意软件和正常软件都适用,它们都在不停地更新、打补丁,不停地去提升自身的能力。其次,在软件开发过程中,普遍存在复用、调用、借鉴、引用其它代码及插件的情况。因为现在软件开发的规模越来越大了,开发的智能程度也越来越高了,所以开发者会用各种方式来提高开发效率,减少开发的技术难度。上述软件开发模式决定了软件带有遗传性和变异性,这种特点是我们用基因方式去了解软件、认知软件的基础。

其实,在软件仿生学方面已经有很多人在做了,尤其是美国军方。2007年3月,维基解密曝光大量美国CIA网络武器库,其中的Umbrage项目通过收集大量公开的黑客工具、攻击技术、泄露数据等信息,通过模仿、混淆等方法生成新工具,发起迷惑对手、嫁祸于人、隐藏自己的网络攻击,有一定“基因混淆”的思想。2010年,美国DARPA(国防高级研究计划局)发布了一项研究计划,面向社会召集能够承担软件DNA方向的信息安全领域研究的科研机构和企业。这些研究项目的研究成果我们不得而知,但是其研究思路和方式已经开始向软件基因方向探索了,我国应在这个方向上同步开展研究。此外,国外一些研究人员近年来提出针对软件的胎记(Birth Mark)识别,主要基于拥有源码的软件检测,用于对软件的知识产权检测,而非信息安全。也给了我们一些可借鉴的思想。

软件基因既然是仿生学的一种,就需要看看人类是如何了解和认知生物的。实际上,生物的认知方式有很多种,解剖学解决了从结构上的认知,分子生物学从微观上实现了认知,而“基因”则实现了对生命的基本构造和性能的认知。通过“基因”来了解和认知生物给了我们一个很大的启示,可以不同于传统认知方式,通过特征的提取和识别来实现对生物个体的了解和认知。基因出现以后解决的是种群、群体问题,它解决的是什么东西是一代一代遗传的。

认识生物如此,认识软件也可以借鉴“基因”的视角。这里面有两个基本假设。一是同源未必相似,相似未必同源。这是什么意思呢?同源未必相似,即:一个人或者同一个团队,要去开发一款软件,每个人都有自己的历史代码和编码习惯,因此,同样的功能由不同的人编写出来,从基因角度看是完全不同的。此外,同一个团队用同一种编码习惯编出来的代码,由于功能不同,代码拥有不同的特征,从特征角度来看代码是不一样的,但是实际上它们来自于同一个团队。相似未必同源,就是说虽然是同样的特征和功能,但由于不是同一个团队开发的,因此从基因角度来看,实际上它们是不一样的。这一假设是从基因学角度上研究软件的基础。第二个基本假设是:兼具“遗传性”与“变异性”。即:同一个团队或同一个人用同一种编码习惯,写出来的代码会不断地改进和变异,改进和变异之后还会遗传一些非常根本性的东西,这是进行种群分析的核心。

四、特征检测解决的是个体识别的问题,而软件基因则解决的是群体识别的问题

为什么要提软件基因和特征检测不同呢?因为有很多人会问:把传统的检测设备定义成特征检测,新型的检测设备定义成基因检测,它们到底有什么不同呢?还是软件基因只是一个特殊的特征?对此,我们做了自己的提炼和总结:特征检测解决的是个体识别的问题,而软件基因则解决的是群体识别的问题。如:运用特征检测方法,一个病毒过来,由安全分析人员去提取它的一些代码特征,一般都是静态数据,这样就可以高效地查杀它,但查杀的只是一个个体,提交了一个就是一个,所以它是个体识别的问题。个体识别局限于真的要知道它是谁,然后才能提取它的特征,它再来的时候就能认识它,跟公安机关录指纹、录视频、采血是一样的道理,它的广度识别能力实际上是没有的。这就导致它有一个致命缺陷,即:首次来攻击的病毒或恶意代码是很难及时发现的。而运用软件基因方法,即使是首次来攻击的病毒或恶意代码,通过基因分析便可知道是跟某个组织有关联,这就可以成为病毒或恶意代码判定的依据,实现从精度的个体识别向广度的群体识别去的迈进,真正实现从被动防御到主动防御的转化。软件基因和特征检测并非要比谁优谁劣,谁要替代谁,它们都有自己的优势,所以未来二者应该是并行发展的,它们可以在同一个监测系统里发挥更好的作用。

软件基因到底是什么?它并不是凭空想象出来的,它原本就是二进制里存在的东西。我们把软件基因定义为:携带软件遗传信息的代码片段,它用OPCODE表示,是遗传信息的最小单位,是控制软件功能的基本遗传单位。软件基因有6个基本特点:变异性、稳定性、原子性、表意性、中立性、统一性。实际上,一个软件可以提取出多个不同的基因片断,它们在逻辑上互相依赖。但并不是所有二进制片断都是基因,需要去分析这样的片断是否具备遗传性和功能性表达。

在软件基因家族研究上,我们长期跟踪了恶意的代码及其背后的黑客组织。目前,我们已经构建了一百多个黑客家族。这可以很好地帮助我们识别APT和有组织的、有国家背景的网络犯罪。在我们的客户中,有很多医疗、军队等行业的,他们号称防护措施已经做得很好了,然后还在物理隔离的网络被勒索病毒入侵,这都是我们要去关注的地方。这使我们觉得软件基因技术可以很好地为国家网络空间战略安全去提供服务的优势。因为它是基本检测能力的提升,它很基础,所以可以结合现有的各种客户、各行业的信息安全解决方案,包括大数据方案、云端解决方案等等。软件基因技术可以跟大家的产品和解决方案进行很好的融合和赋能,能够打造一个更加强有力的安全方案。

软件基因本身跟传统的特征检测不一样。因为特征检测库是来一个恶意样本,就要提取一下它的特征,然后导入到库里面,以后再来一个样本时,让它在特征库里匹配一遍,才能识别出来它是谁。问题就是,未来越发展,特征库就会越庞大,庞大到一定程度,终端设备都很难储存,终端或者边缘计算的性能都很难支撑的情况下该怎么办?可以用云计算、云查杀。但是,如果有些环境是不允许远程连接云的,该怎么办?这就导致了隔离的物理网络里面病毒很难及时发现,其实这也是一个痛点。因此,软件基因技术的应用可以很好地避免这个问题,因为它匹配的对象不是特征规则,它匹配的是家族。我们经过几年的研究,也不过是建立了一百多个家族的模型,这是我们自己学习训练之后得到的,所以它不会无限制地、规模化地增长,在物联网、边缘计算等新兴应用领域可以提供很好的服务。

软件基因是一个比较新的技术和方向,还有很多问题,需要大家共同去探讨和研究,希望大家可以共同把这个技术更好地应用在信息安全的服务和保障中。

猜你喜欢
网络空间代码信息安全
共建诚实守信网络空间
网络空间并非“乌托邦”
创世代码
创世代码
创世代码
创世代码
保护信息安全要滴水不漏
高校信息安全防护
网络空间安全人才培养探讨
保护个人信息安全刻不容缓