安全漏洞频现?用机器黑客保障网络安全,实现机器的自我突破

发表于:2019-7-23 09:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:演绎inSite

  大家好,我是清华大学张超。今天很高兴能在这里跟大家分享话题:机器黑客——网络安全的破局者。
  我将从机器黑客的前世、今生和未来展开这次演讲,提起黑客大家想到的就是网络空间中做坏事的人,但实际上黑客在早期是追求技术的极客,他们以炫耀技术为目的,到后来出现一部分黑客以追逐各种利益为目的,包括政治目的、经济目的,那么黑客群体因此划分为追逐利益的黑帽子黑客,以及守卫安全的白帽子黑客。
  黑客攻击的逻辑是什么?
  20年前的一部电影《黑客帝国》为黑客揭开了神秘的一角,在这部电影中人类被机器奴役,人类的意识被圈养在Matrix中,电影的主角是一个黑客,他用各种技术带领人类逃脱Matrix的控制,在电影中角色们通过创建一个特殊的电话亭,通过接通电话人类意识就可以从Matrix中退出,听起来很玄幻。
  在现实中与这很像的一个场景是越狱,苹果手机的越狱做的就是同样的事情,黑客利用一些手段摆脱系统的控制,在手机上安装一些第三方的应用程序。实际上这听起来还是很玄幻,那么黑客到底是怎么做到的呢?
  这就不得不提到一个概念叫漏洞,实际上漏洞不仅仅是网络安全中的概念,也是日常生活中广泛存在的一个概念,人性存在弱点可以被欺骗,法律规章存在漏洞可能被突破,逻辑推理可能存在漏洞导致一些谬论出现,在网络空间中同样存在着大量的漏洞,这些漏洞就是网络安全的很重要的因素,也是我们攻防双方必争的一种资源,是众多的安全事件的根源。
  比如2009年针对伊朗核设施的震网病毒,以及今年爆发的MongoDB的弱口令问题都引起了非常严重的后果,还早一些的包括2015年针对乌克兰电网设施的,2016年针对美国Dyn网络的攻击,还有针对互联网上所有的加密网站的“心脏滴血”漏洞,甚至是包括我们每个人电脑中的因特尔CPU中的幽灵熔断漏洞,都造成了非常非常大的影响。
  普通用户可能还听说过香菇勒索软件,这是2017年爆发的安全事件。这些背后其实都是由各种各样的漏洞造成的,漏洞是我们安全事件的一个根源,有了这些漏洞之后,攻击者才可以发起后面的各种动作,来实现前面提到的突破Matrix的效果。
  在实践中,攻击者或者说黑客,首先要用各种方式去挖掘潜在漏洞,找到这些漏洞之后利用漏洞去突破目标系统,实现目标系统不存在的功能。比如在《黑客帝国》中他们在Matrix中创建电话亭,这本来不应该属于Matrix的功能。但这只是一种临时性的控制,黑客为了实现持续性的控制,通常会进一步的植入恶意代码,来实现安营扎寨,然后伺机而动。漏洞和恶意代码是网络安全核心的问题。
  除了漏洞和恶意代码之外,实际上在一个完整的攻击中黑客通常还做一些其他事情。第一步是侦查,黑客通常会去探索目标的资产信息、网络架构、资产的分布等等,进而发掘目标中的漏洞,然后针对这个漏洞制作各种各样的武器,并且把这些武器通过垃圾邮件、钓鱼网站等方式分发到用户受害者,漏洞在用户侧被触发后实现控制权的获取,进而利用恶意代码实现持久的控制,最终实现一种按需的攻击。实践中完整的攻击流程实际上是非常复杂,也非常有挑战性的。
  国际上针对这种漏洞的发现,有大量的顶尖的赛事和悬赏,包括国内的天府杯、国际的pwn2own,还有面向学生Defcon CTF,以及针对智能设备的极棒等一系列赛事。这些赛事的赏金通常高达几十万美元,就是为了征集各种未知漏洞。实际上,在黑市上漏洞相关的价值会更高。
  安全漏洞频现?用机器黑客保障网络安全,实现机器的自我突破
  例如,Zerodium公司公开悬赏的针对客户端服务器的漏洞赏金高达300万美金,针对手机的漏洞赏金高达150万美金。通过这种高昂的赏金,我们可以看到漏洞的价值是非常大的。但是,发现未知漏洞,以及针对未知漏洞进行攻击是非常困难的。
  在这个流程里最难的一个步骤是,利用漏洞来实现这种鸠占鹊巢的效果,实现突破原有程序的功能,实现新的能力。这一步与一些棋类游戏非常相似,它们都需要做动态的决策,需要根据当时受害者的程序和状态来做决策,没有一种静态棋谱能解决这个问题。
  但是与棋类游戏不同的地方在于,这个问题的状态空间没有上界,而像围棋它状态空间是有限的,所以它们的难度不可同日而语。而且在实践中针对漏洞的这种攻击还需要非常丰富的经验,而且需要有很好的精力因为非常耗时间,同时它还需要足够好的运气,因为找漏洞是一个非常碰运气的事情。
  黑白对抗,研究机器自动化是必然趋势
  刚才回顾了这个机器黑客的前世,下面我们看看机器黑客的今生。首先,我们为什么需要机器黑客?
  第一个原因是这是机器的自我突破,是科学研究的一个必然方向。自从有了机器,人们一直尝试用机器来解决各种问题,我们熟知的包括用机器来下棋,现在机器在各类棋类游戏中包括围棋中已经完胜人类。那么一个很自然的问题是,在网络安全领域机器能不能像人一样,做这些攻防的事情?
  第二个原因是当前的网络安全防御态势实际上是比较的被动,里面存在很多问题,而机器黑客能够为解决这个问题提供一种新的思路。下图展示了一个经典的漏洞的生命周期,漏洞通常是在开发阶段程序员无意引入的,程序员没有意识到漏洞的存在,但这个产品被发布之后,攻击者或者黑客会在这个产品中发现漏洞,然后攻击这个漏洞,一定时间之后厂商或者开发者才发现了这个漏洞,再过一段时间之后这个漏洞才被更多公众知道。
  在第一个阶段,攻击者发现并攻击漏洞到厂商发现漏洞,这段时间我们称为零日攻击的时间窗口。在这个时间窗口内用户是没有任何保护的。在厂商知道这个漏洞之后,一般来说会升级他们的杀毒软件来检测这种攻击,会发布补丁来更新他们的软件。有了补丁之后最终的普通用户才会去打补丁更新他们的产品,打完补丁之后这种攻击才会失效。
  在这个生命周期中,第一个阶段就是零日攻击,这个窗口通常来说平均时间是300多天,也就是说一年的时间内这种攻击可能都没有人知道,在这一年时间窗口内普通用户完全是暴露在攻击者的范围之内。在这个阶段之后,即在发现漏洞然后再修补的这个过程中,还有平均一个月的时间用来打补丁。在这一个月内,其实用户的安全性极大地受到了影响,因为这个时候不只是最顶尖的黑客知道这个漏洞,普通的黑客也知道这个漏洞了,但是这个时候还没有任何补丁出来,普通的黑客也可以发起攻击。
  第三个阶段是补丁被发布出来到终端用户打补丁之间,这个时间窗口实际上没有一个固定的时间。在现实中,有大量的用户并没有主动更新系统,他们的系统中可能几年前的漏洞都存在,所以这个时间窗口会更大。实际的现状是,很多攻击发生在这个阶段,补丁已经出来了但是用户并没有打补丁,处于非常危险的状态。所以这样的现状就说明,完全靠人来解决安全防御问题,实际上是非常被动的,我们如果能够研发机器黑客,就能够有效地改善这一现状。
  第三个原因就是目前在攻击这个环节,坏人们已经运用了各种自动化技术,对大量已知的低级漏洞批量的自动化的重复利用,这对安全生态造成了非常大的影响,所以我们作为白帽子也更应该去研究自动化技术,研究机器黑客对抗。
  机器黑客仍与顶尖黑客差距巨大
  国际上已经在机器黑客方面做了一些初步的尝试,美国DARPA发起了一个CGC的挑战赛,目标就是构建自动化攻防的机器人。我当时也带队参加了这个比赛,并且也做了一些尝试性的研究,但是现阶段的机器黑客水平还是比较有限。
  在CGC比赛第二天,14支人类队伍与一支机器队伍进行了一次人机大战,机器毫无意外的排名倒数,我所在的国内战队当时是拿到了第二名,也是国内的战队目前在这个赛事中最好的一个成绩。从这个比赛可以看出来,机器黑客其实还有很远的距离要走,粗略来讲现在的机器黑客大概只有十年前的普通黑客的水平,与当今这种顶尖的黑客之间的差距非常巨大。
  差距在哪里呢?它面对的挑战有哪些呢?第一个方面是攻防的人才非常稀缺,网络安全本质上是一个攻防博弈,这里面非常需要人才智力的支持,而现在网络安全的人才非常匮乏,机器黑客实际上是这里面非常小的一个研究方向,它所需要的安全人才更是稀缺。
  第二个方面就是机器黑客所需要的基础设施非常匮乏,当今的互联网生态非常繁荣有各种各样的应用,但是这些应用本质上是由底层的网络等基础设施来支撑的。正如俗语所说,要致富先修路,基础设施对于上层应用非常重要,如果想制造机器黑客也需要有充分的基础设施。
  但生产出机器黑客所需要的基础设施难度是非常大的,第一就是它所分析的对象非常复杂,与围棋游戏有固定的空间大小不一样,在机器黑客的场景下要分析的每一个单一的对象,可能包含百万级的指令;而且单个对象可能存在信息损失,例如我们通常没有目标对象的源代码;另外,不同对象之间又存在各种各样的差异,它们甚至是不同平台的、不同语言的;这些都对我们分析带来极大的障碍。
  另外一个方面是我们在分析技术上的局限性。首先是分析技术存在理论上的天花板,我们在计算机理论中存在不可判定问题,NP难问题,在做机器黑客过程中会面临大量这样的问题;其次是工程实现难题,我们需要长期的这种人力时间投入,才能做基础设施;第三是当今的机器黑客自动化手段还非常有限。现在自动化的机器黑客非常像早期的棋类游戏的做法,简单来说就是把人类已知的棋谱或者攻防经验硬编码到机器中,让机器具有一定的自动化能力。我们知道,这种已知的东西没办法应对广泛存在着的未知的场景。因此一个非常重要的研究点就是,我们怎样应用一些更高级的技术,像人工智能技术,来提升自动化水平,来实现像AlphaGo一样智能的机器黑客?这是目前学术界一个最前沿的研究方向。
  最后让我们展望一下机器黑客的未来,有了机器黑客之后我们能做什么?首先机器黑客能为我们的网络安全提供一种全周期的防御。我们以软件开发周期为例,一个软件产品开发需要有很多个阶段,第一个阶段是目标产品的定位,要需求分析看实现什么样的功能,然后才是设计实现并且进行测试和集成,最后是维护包括应急响应和打补丁等。
  机器黑客可以在这整个生命周期中提供一些安全的保障,比如在早期的需求分析阶段自动提取安全需求;在分析和设计阶段可以分析这个目标软件中可能存在的风险;在设计实践阶段可以提供安全培训、安全工具来供开发者使用;在实现阶段可以自动化进行安全加固,为我们提供安全保障;在测试阶段也可以做安全测试、安全审计;在维护阶段具有提供安全补丁和应急响应的能力。那么通过机器黑客就能够实现在这生命周期中全方位的防护,最终就也许能达到天下无贼的目的,尽可能的消除漏洞让攻击者找不到漏洞可以利用。
  从市场角度讲,机器黑客可以降低人类的人力成本,创造更大的市场。当今互联网生态在蓬勃发展,在用户设备数据方面都急剧增长,目前已覆盖40亿网民,拥有百亿级的设备和万亿级的数据,支撑这一蓬勃发展生态的基础就是安全。随着物联网、工业互联网的普及,安全与个人、企业、国家的关系会越来越紧密,那么这里面会创造越来越大的市场,机器黑客能降低目前阶段安全对人的依赖,能以极低的成本去提供更多的服务,从而创造一个更繁荣的市场。谢谢大家!

      上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号