今天很高兴我作为思博伦的代表在今天的大会上做一个《下一代网络安全测试方法》的探讨。今天上午和下午与会嘉宾从不同的视角诠释了网络安全,包括金融安全、电子政务网安全、移动互联网云安全。作为传统的测试仪表厂商,我想从测试角度来看一看网络安全方面的情况。我今天的第一个话题就是关于测试,到底能够给网络安全带来什么。
大家可能以前了解思博伦,我们在网络安全方面,从测试角度能够给大家带来什么帮助,这是我们今天想要探讨的一个话题。既然是硬件测试仪表,我们首先要测试网络安全设备的性能,这个不用说了,之前大家测吞吐量、延迟,包括测后来的4到7层,这些都是主项。我们在近几年通过收购一些安全测试的公司,在网络攻击方面做了一个长足的研究和支持。通过我们发送攻击的一些流量,评估网络安全设备对攻击的识别以及阻断的能力。对于像运营商,像一些企业,他们会选择一些安全设备,比如上午提到下一代防火墙,怎么来保证我选择的这个安全设备能满足网络的要求?也是可以通过测试来达到这个目的。有些像政务网,包括一些企业他们会部署一些新的网络,在网络部署的时候,是不是这个网络建设以后能够达到未来的要求?包括承载方面,包括对安全的防范能力,是不是我在这个网络构造好以后,在上线之前做一个全面的评估来衡量这个网络的承载能力以及安全性?对于安全体系的一个支撑,现在大家知道国家有很多测评机构,对于一些网络安全设备,包括像运营商入网测试都有一些严格的要求,那么怎么通过标准化的进程来达到这个目的?这也是一个测试要解决的问题。
下午第一场邵处长讲了网间安全,这一块提到了一个培训。都是源自美国军方的一些概念,在这里面有一个概念叫Cyber Range,我们翻译过来叫赛博靶场,通过演练达到目的,这一块也是可以通过测试来解决的。政府部门每年会搞一些安全的竞赛,通过测试仪表发出的流量来仿真网络的一些攻防,也可以完全达到安全竞赛的公正性。上午清华大学的教授讲了学术方面,对于培训,包括大学生的教育其实一样,可以通过测试来解决。比如说在课堂上来模拟这种攻击的流量,用一些安全设备来做检测,这样攻和防都可以看到整个实际的动态效果,这也是测试能够给网络安全带来的一些正面的东西。
上午的嘉宾主要从两个角度,从用户角度和厂商角度来看待网络安全,测试恰恰正好是中间环节。就是用户需要测试来验证厂商提供的数据,规格是不是符合用户最终的要求。厂商在研发的过程中也要结合市场的需求,来验证在设备推向市场之前是不是能够符合最终用户的需求,所以说测试正好是衔接了用户和厂商的一个桥梁。
测试为什么对于网络安全是很重要的?大概总结了这几个方面。性能毋庸置疑,但是在保护性能的同时,安全性也是很重要的。大家做安全设备也知道,安全设备有很多的策略,策略的产生对攻击有一些检测,同时肯定对性能有些衰减。但是你的安全设备放在网络上,首先它是网络转发设备,不能说安全性做到了,那性能极差,满足不了用户的需求也不行。所以我们提到一个平衡,怎么来平衡性能和安全?你也是可以通过测试模拟这些现网的流量来达到这个目的。上午有一个厂商说到了对于应用的感知,就是下一代防火墙可能现在面临更多的是互联网应用,怎么来保证我这个设备在推向市场之前就能用最新的应用来验证设备的性能?这就是如何保证你的被测设备能够处理最新的应用和内容,甚至是一些攻击,是不是都需要在测试里面融入这些内容?运营商更关心的就是如何保证网络或者网络设备在处理真实流量的情况下,同样来平衡性能和安全,最后是最高要求。因为这种真实流量的反映是每天都在变化,而且不同的网络有不同的流量模型,我们在评估的时候怎么来做到在处理真实流量的情况下同样达到性能个安全的平衡。
说到测试,我们不能不提到一个标准,刚才讲政务网的邵处长讲过一个规范,安全里面有很多规范。对于安全测试里面,同样我们也要遵守一定的标准。RFC3511可能在座有些人知道,最早的是与安全设备测试相关的性能标准,我不想详细把这10个项目都介绍,但是重点就是标红颜色的4个,我们常说的并发连接数、连接建立速率、有效吞吐量和HTTP的事务处理速率,后面都是4到7层。也就是说,对于安全设备来说,我们不再像以前只是关注二三层的吞吐量和延迟,而是更关注上层应用,这个标准是给我们的一个反馈。但是这个标准已经过去11年了,在2003年“非典”的时候发布的,到现在发展了11年,其实互联网,包括安全已经发生了日新月异的变化。所以我们现在可以拿它作为参考,但是不能作为完全的部分。
比较荣幸的是思博伦是标准的主要制定者,有两个作者是我们研发的同事。这个标题是防火墙的测试基准,但是可以适用于所有的网络安全设备。这里面我摘录了运营商的研究院在设备选型的时候测试要求,我不详细讲了,因为内容比较多。但是反映了一个状况,就是里面提到的条件,比RFC3511标准里面提到的要求要复杂得多,相当于把不同的指标融合在一起了。因为现实当中这些因素都是交叉存在的,而不是像RFC3511里面只是单纯的一个性能指标的测试,那个我们只能说是最基本的,但是不能反映你安全设备真正的性能。所以你看这里面,在测并发连接数的时候,要以新建为背景,什么样新建的时候再做并发,当新建的时候,要在一个什么样并发的情况下来测新建,都是相辅相成的过程,而不是孤立的某一个指标,那个意义不大了。
这个里面的网络分层基本上都是应用层的东西,包括一些流量模型,包括像VPN,中午也提到了用VPN,还有新的应用识别。比如下一代防火墙也需要具备DPI的功能,但是它的DPI不再是识别应用协议,而是应用。不知道大家有没有注意到我用的这个词,以前我们叫Application Protocol,现在 Protocol去掉了,每一个行为的变化是非常大的,我们对于设备厂商,或者是对于运营商会产生很大的困惑。对于测试厂商来说,我们同样面临的问题就是如何模拟。而且这些应用是日新月异,怎么来做?
这是我们现在互联网应用爆炸性增长的一个过程。刚才我们只是讲了中间的层面,各种应用的反馈,实际上下面有很多的设备,下面有一个流行词是BYOD,就是现在自己的设备都可以带进办公室,不再像以前就是一个电脑、台式机,现在不同的手机,三星平,太多种了,它给网络安全带来什么问题呢?就是说用不同的终端设备,它发的流量,实际上如果大家监测的时候会发现,它的Header是不一样的,不同的设备会有不同的安全隐患,比如Android系统,比如iOS等等。从测试角度,我们把这些行为都要模拟出来,那么怎么办?这些问题都给了我们测试厂商。
我们对应用做了进一步的分析,首先刚才我也提到了,应用种类比较多,同一个应用有不同的版本和行为。比如原来用Skype,现在用微信,有语音聊天和视频,有不同的行为。不同的用户可能有帐号,可能有不懂得喜好,有是有变化的。还要和网络各种应用混合下来进行性能测试,还有一些攻击行为,我们怎么来做?所以我们把应用做了一些解析。大家可以看右边这三张图,就相当于把应用解析分成三块:一个是Application ID,最简单的层面;二是User ID,就是基于用户的层面,不同的用户有不同的行为,不同的用户有不同的帐号,通过这个来表现不同行为的模拟;三是Content ID,所以这些就是BPI这些设备要解决的,对于我们测试厂商,我们要把这些充分的模拟出来。
实现的方法有两种,一种就是通过及时的或者周期性的更新我们的特征库,我们应用有一个TestCloud,用户可以把这些数据从不同的库里面筛选出来。举个例子,我们做安全设备可能要推向国外,有一些国外典型的应用,国内可能阻断掉了,可以从这个库里面得到国外的一些流行应用。与此同时,像微信,国内经常用的这种应用我们也是集成在这个库里面,中国的微信比较流行,日本有一个下载软件都是不一样的,在各个国家都是不一样的,当你推向国外的其他市场,怎么来测试?所以这个库存体了丰富的场景。另一种就是有些用户说,我想要的你的库里面没有,我们提供第二种方法,有一个工具,比如有一个PKI界面,导入到这个仪表的文件里面,可以不同的用户名登录,不同的行为模拟,都是可以进行修改的。提供两种方式,目的就是把这个应用库能够建设得非常完善。
这就是我们应用库的一个界面。有点像苹果App Store,右下角就是大家经常搜索的一些关键词,大家可以通过这个根据自己的测试要求来设定自己想要的应用库。我们可以通过导入,有点像协议分析的界面,但是可以改下面的一些二进制码,通过这个来修改内容,做回放的时候,可以任意把自己想要的回放特征都放在里面。包括还可以通过变量,来设定不同的用户名、密码进行模拟的仿真度。最后可以同时设定多种应用,来达到这种复杂场景的设定。回到我们之前提到的问题,就是如何在实验室来模拟真实的场景,就是通过这种方式来混合这些各种应用达到的。
提到网络安全,首先我们不能忽略攻击。大家都是安全专家,可能以前更牵扯到这种攻击都是一些自研。比如我个人的专业就是网络安全,原来是做攻击的研究。当时就是用C语言,通过网络编程,写一些很多的攻击小的脚本。大家会觉得我这个库的建立没有标准,如果参加外面的测试我怎么来让大家承认?都是自研的一些东西。现在通过这个测试,我们可以统一这些度量衡,这里面涉及到恶意软件,因为我看今天的嘉宾也是反复强调,是不是需要测试我们也要大量的模拟这些行为来做?另外就是传统的,像DDoS攻击,是不是也要通过测试模拟出来验证?通过硬件仪表发出的流量跟软件不一样,后面我会讲,有很多网络特征,可以在仪表的这种发送当中能够体现出来,而不是单纯的通过软件,通过PC能够模拟出来。后面我有两个链接,主要是针对Facebook和Twitter的应用有哪些攻击,这个我就不多讲了。
我们看一下对于攻击仿真测试我们做了哪些方法上的研究。首先是大流量,这个就体现了硬件测试仪器的能力。因为是DDoS,用软件很难体现第一个D,就是分布式,实际上是消耗PC的性能。对于测试仪器来说很容易,甚至可以说我们开放一些接口,你可以把你的DDoS放在仪表里面,一样可以做流量。但是它可以利用仪表这种强大的引擎来做到这种多流量模型的模拟,比如说像一些突发的,一些随机的等等这些流量模型,都可以模拟得很充分。因为我们发送的同时还有一个接收,接收的时候就看经过你的网络安全设备,你是被阻断了,有部分漏过还是全部漏过去,我们都有一个检测的依据。借助于仪表强大的流量模型,可以把DDoS和正常的流量进行一个混合,这样的话,能够很客观的来评价网络安全设备对于这种DDoS攻击的防范。另外还有一些更深入的使用,比如像内嵌攻击,对于一些特有的动作列表和模拟的技术,我们可以模拟中间人的攻击,就看你怎么来操作这些仪表,一样可以达到自研软件的一些作用,但是流量可以达到一个比较高的级别。我们可以在IPSec网关、VPN发起攻击,模拟黑客。
对于内部是不是需要有一个攻击库?美国有一个CVE,其实我们也是基于CVE的一些编号,把一些非常有典型作用的网络攻击放进来。因为CVE包括了很多攻击,包括系统攻击和一些其他的攻击,我们只关注在网络攻击这一块。这个攻击库其实我们每个月都更新,并且包含了很多不同的平台、应用场景和正常业务,也可以混合,这个就是一些例子。对于已知攻击我们有一个例子,这是比较典型的,当时产生了一个恐慌,心脏滴血,其实我们2000年就支持了这个。这张图很像一个安全软件,就相当于把攻击的流程通过可视化的图形给你描绘出来。当然你也可以通过我们有一个过程描述语言,叫MSL,非常像我们的攻击描述语言,我以前正好做攻击研究,这一块很像,很亲切。可以通过非常细节的东西,可以把你的攻击的特征进行自己的定制和修改,甚至还可以产生更强的攻击的变种,都是可以自己通过我们提供的界面来编辑。这样的话,不像大家对于传统仪表厂商的概念,可能全是固定好的一些模式,我们都把这些开放给客户,开放给最终使用者,甚至可以把你自己的安全小组研究的攻击通过这种方式能够加到这个库里。这样的话,相当于利用仪表强大的发包能力,就可以把这个攻击发得非常完整和真实。这相当于一个对应关系,从流程到特征。我们还可以通过纯脚本来编写应用和攻击,这个里面可以通过我们库里面的应用和脚本,都可以导出来,做进一步的研究。
我今天讲攻击主要是从测试的角度来讲的,第一部分主要是讲已知攻击,第二部分我们主要是讲的Malware,它也是攻击的范围,但是变种非常多,我们的Malware库增长也是非常快的,对于硬件测试来说,我们也可以通过一个测试端口,来同时模拟Malware和正常流量的混合,因为Malware绝大部分都是应用攻击,把Malware和非常类似的应用攻击混合在一起,是不是会对网络安全设备造成很大的干扰?这是从测试角度我们做攻击方法的探讨。对于隔离测试,如何来模拟受感染主机行为?因为有些Malware的软件可能只是发Malware的流量,但是后面受感染的那一部分它模拟不出来,这样的话,有可能你的Malware根本发不出来。发不出来的时候,中间如果是一些网络设备,就没有办法监测到了。仪表的好处就是,我这边发Malware,我这边就模拟受感染的系统,可以正常的保证Malware通过你的设备或者网络能够正常的发出来,这样的话,能够很有效的来检测你的被测设备对于Malware的识别和阻断。另外我们还提供这种高级根源分析,就是刚才我们看到的MSL语言的东西,可以做进一步的追踪,有一个内部交互的流程,可以很快的把Malware测试得非常充分。
对于攻击来说,这是近两三年比较流行的一个词汇,叫未知漏洞挖掘,英文是Fuzzing,世界翻译就是模糊攻击。因为我在测试攻击之前不知道它是不是攻击。举个例子,我特别喜欢用TCB协议,大家比较熟悉,有6个标记位,它的组合有多少种呢?一共2的6次方,对于Fuzzing来说,不管哪些是合法的,哪些是非法的,它整个变了一遍,当变到6个1的组合,历史上有一个很有名的攻击叫“圣诞树攻击”,这就是一种攻击行为。如果在十几年前有Fuzzing技术的时候,可能“圣诞树攻击”就不会为大家所知了,因为它已经早被防范了。因为“圣诞树攻击”在十几年前还是给这个网络造成了很大的恐慌,编辑6个1,很多设备是不认的。Fuzzing就是利用协议便利,做这种未知攻击的探讨。有Protocol Mutation,还有就是Scenario Mutation,这不是一个标准协议,可以导到我们的库里面,生成这种Fuzzing攻击。
这个里面是我们对于Protocol Fuzzing的测试,去年“棱镜门事件”出来之后,国家对工业防火墙非常重视,国家设置了一些部门,专门对工业防火墙做了一些研究。所以说我们在这个库里面,对于工业防火墙的工业控制协议,大概支持的4到5个,就可以很有效的从工业防火墙的协议层面,能够防患于未然。对于场景模糊攻击,其实就是说你有一个私有的Pcap报文,导入到我们的场景分析器里面,这个里面牵扯到一个引擎,根据分析结果,我们可以对私有的协议进行Fuzzing测试,补充我们在75种协议里面没有的这些私有协议。
模糊攻击到底是一个什么样的分析结果?因为模糊攻击是未知的。当我们发现这种攻击可能会导致你的被测网络设备瘫痪,我们会记住那个点,也就是说发生了什么失败事件,我们会自动化记录下来。另外在哪里出现的,什么时间出现的我们也会记录下来,而且把当时失败的状态机截获下来,生成文件。我们还有一个重启的功能,一般的测试会放在午夜,如果在上班时间不能在旁边等待完成,因为一个协议的字段会进行循环测试。当我们发现被测设备出现故障的时候,一般是宕机死机了,我们可以重启,把故障点记录下来,重启以后可以把后面的攻击再记录下去,我们当时保存了故障重启的条件,并且可以非常迅速的能够重现这个故障,所以是一个相对自动化和智能化的过程。
我们总结一下网络攻击的测试方法。刚才我们讲到的可能是从实现的角度,这个小结我们主要想从网络的角度。因为你发攻击不可能只是从固定IP去发,选择这些IP,我们要从不同的源地址、源IP、源MAC,甚至是不同的子网。这样的话,我们相当于把分布式就构造得非常真实。通过什么来做呢?我们有一个VR,就是在实验网络,不一定要找真正的路由器,测试仪器可以作为一个虚拟的层面,把不同来源的汇聚到一个接入点上,能够分配真实的IP。在IPSec隧道上发送攻击流量,在接入协议后发送攻击流量。从测试角度,我们一定要是攻击流量和真实流量能够混合在一起,既来保证网络安全设备没有性能衰耗的同时要对攻击做防范和阻断。另外我们还可以在攻击过程当中加入一些网络损伤元素,在实验室这是很难模拟出来的,比如像丢包延迟,但是在真实网络当中,这些流量是不是能够影响网络设备的处理性能?也是需要考虑的问题。现在从IPv4到IPv6来说怎么做?对于刚才模拟应用的问题,怎么来扩展我的攻击的特征?我们一样提供两种方式,一种是我们提供Zero-day的攻击,另外我们提供一个Attack Designer,就可以很容易的变成一个新的攻击脚本,当然可以基于那个软件进行特性修改,生成变动都是可以的,这是下一代网络安全测试要解决的问题,就是如何把特征库能够补充得相对完整。还有像Malware、未知攻击这两个新兴的攻击方式。尤其像Malware,Malware最早是去年在韩国,他们有一个非常重要的320事件,大家可能多少有所耳闻。韩国去年是第一次通过Malware,把几家电视台和银行的网络中断,造成很严重的后果。
讲到现在,我们对于网络安全测试有一些了解,我们为什么要强调攻击流量和正常流量的混合?其实在我刚才讲的过程当中应该有一些答案了,安全设备在单一环境当中可能阻断攻击,但是把应用加入进来以后,造成一些干扰,对于这些安全事件,可能判断得就不那么准确了。在真实的网络中也没有单纯的攻击行为,也没有单纯的应用行为,都是混合在一起的,所以我们要在实验室把这些因素考虑进去。我还是想引用RFC3511里面说的一句话,实际上突出的不是说在测DDos拒绝服务攻击的时候,不是说单纯的测对攻击的一个识别阻断,而是强调一个影响。就是说测试界的术语,DOT,就是被测设备和被测系统,拒绝服务攻击,这些对于性能指标的影响,强调的还是影响力。所以一般我们认为,网络安全设备测试分三个步骤,我们要基于RFC3511测性能指标,我们还要测攻击的验证,一定要混合在一起来模拟类似于线网的一些实际情况,来测这个网络设备。
为什么我们要进行真实的网络环境下的攻击仿真行为?也是对于RFC3511思考过的一个扩展,不能只看单一的协议,不能只看攻击流量对于单一性能指标的影响,一定要看攻击流量在特定的应用流量模型下的表现。右边就是一个例子,因为不同的网络模型是不一样的,其实最大的变化就是在右边这张图,它的比例分配以及这个里面含有多少个应用。所以说,这一部分的问题其实答案比较简单,主要对比前面那个问题,更多强调的是对于正常流量部分一个模拟的真实性,要更好的折射出线网的流量。
给大家举一个小例子,当时我记得在2007年,那个时候国内一些安全厂商刚开始做内容过滤,那个时候还没有下一代防火墙的概念,就是对各种内容做检测。当时的设备放在一个网吧环境,以前在实验室测得很好,放在网吧环境,两个小时重启一次,你说这个问题是不是严重?但是网吧环境是最复杂的一个流量特征的浓缩,所以当时找了一台协议分析,到网吧环境抓了两天,分析四了张类似于右边的网络流量模型图。所以按照实验室的比例我们一张张放大,最后在实验室发现一个Bug,而且三分钟就重启一次,这样就很好的帮助那个客户解决了在线网中实现不了的一个抓Bug的目的。因为抓Bug太慢了,但是3分钟就可以看到Bug到底在哪儿,最后可以帮助这个客户把Bug修复。这是为什么我们强调在真实网络环境下进行攻击测试的原因。
去年我们推出了一个新的测试方案,叫Avalanche Next,对攻击内容的测试,内容和特征是不是我们要有一个库来建立?这个是我们在这里面的一个亮点。另外对于攻击,从测试角度三种攻击的支持,已知攻击、未知攻击和Malware都有很好的支持。我们第一次尝试,从事方法学的角度给大家呈现一个不一样的测试,因为以前大家可能觉得仪表比较难用,上来有很多参数要选。但是现在不是这样了,我们基于RFC3511的测试,我们浓缩成一个套件,比如要测并发连接数,你只要点并发连接数那个按钮进去,就可以看到里面相关的测试项,就可以很容易的完成这个测试了,这就是一个界面的例子。大家可以看右边,都是基于这个测试方法学的一些入口,你只要点进去,比如说你要测并发连接数,点并发连接数那个按钮,进去以后,我这个界面就专门为这一个指标来设计。刚才我们茶歇的时候有些用户问你这个测试到底是什么东西?这是我们的测试对象,囊括和几乎所有的安全里面涉及到的测试。
我们对下一代网络安全测试方法做一个总结,我们可以测试已知攻击、未知攻击和Malware,对于已知攻击,我们可以通过特征库,另外可以通过Attack Designer,还有定期升级,我们提供TestCloud,还有一个就是Knowledge Base。仪表既然是硬件的实现,我们有一个高性能的测试,可以达到千万级的并发连接数,百万级的每秒新建,可以达到应用仿真。我们还做应用流量和攻击流量的混合,可以模拟网络的真实场景,可以应用到赛博靶场,对于这种攻防演练要求比较高的场所。我们还可以利用Virtual的方案做云安全测试。
今天因为时间的关系,很难一一给大家展现。如果大家有什么问题的话,我们会后可以再进行进一步的交流,谢谢大家!