一种系统抗DDoS性能的检测方法与流程

文档序号:21844912发布日期:2020-08-14 16:56阅读:197来源:国知局
一种系统抗DDoS性能的检测方法与流程

本发明属于计算机安全领域,具体地说,涉及一种系统抗ddos性能的检测方法。



背景技术:

随着网络技术的发展,越来越多的服务暴露在网络上,各种针对网络服务的攻击层出不穷。为了应对各种各样的网络攻击,出现了网络防火墙,专用于网站防护的web应用防火墙等安全设备。很多特征比较明显的攻击得到了有效的防护,但是攻击请求跟正常请求几乎没有差异的ddos攻击却因为难以识别而难以防护。随着ipv6与物联网的发展,可以用于ddos攻击的设备更是大规模增长,使得系统的抵抗ddos攻击的能力变得更加困难和重要。理论上,抗ddos系统或设备需要具有高于攻击者所有攻击机器性能之和的处理能力,才可能防护住所有的ddos攻击。所述dos是指denialofservice,拒绝服务攻击;而ddos是指:distributeddenialofservice分布式拒绝服务攻击。

即使系统部署了网络安全防护设备,服务商往往还是不能放心。近年来,很多采取了大量网络安全措施的系统仍出现了很多安全问题,其中很多是ddos攻击引起的安全问题。部署的安全设备为何没起到应有的安全作用,很多时候是因为安全设备的针对性和性能不足。只有对现有系统的漏洞和性能进行充分检测评估,才能采取足够有效的安全措施。为了对系统潜在的安全问题进行评估,出现了很多漏洞扫描设备与软件。对系统的用户鉴权问题、内存泄漏、sql注入潜在问题进行检测。但是漏洞扫描设备往往难以覆盖需要大量不同请求ip地址的抗ddos模拟和检测。

网络服务的设计者和运营商都迫切需要一种对系统抵抗ddos攻击的能力进行有效检测的手段。以获得对系统抵抗ddos攻击的能力的有效检测,并以此为依据,部署防护能力足够的抗d设备或软件。

ddos攻击是当前各种网络服务系统面临的主要问题之一。很多网络服务系统在设计之初就考虑到尽量提高性能并进行用户身份检测,以应对可能的ddos攻击。而且,市场上也出现了很多对ddos攻击进行防护的专用设备和带ddos功能的防火墙。但是,对于网络服务系统本身或专用抗ddos设备的抗ddos能力是否足够,目前还缺少简单有效的检测手段。购买或租用大量主机模拟ddos攻击成本很高,原因是租用的主机比较分散很难部署实施。而传统的漏洞扫描设备又很难覆盖系统抵抗ddos攻击的能力的检测。本方案提供一种局域网内对系统的抵抗ddos攻击的能力进行检测的方法,使得系统设计者在设计时可以方便的对系统的抵抗ddos攻击的能力进行评估,系统构建者也可以方便的对选购的抗d设备进行测试。保证系统具有足够的抵抗ddos攻击的能力。

现有的技术中主要是使用各种软硬件发包测试系统;而对于各种软硬件发包测试系统进行的性能测试,具有以下缺陷:

1)硬件测试仪可以构造大量源ip地址不同的数据包,但是难以在此基础上做到模拟真实的tcp流或者http请求。而各种tcp或者http性能测试软件,虽然很多可以模拟真实的tcp连接或者http请求,但是难以在此基础上模拟大量的不同的源ip地址。总之,两者都不能模拟真实的ddos攻击行为;

2)在启用多个模拟测试客户端对待测设备进行压力测试时,多个客户端很难协调配置与发包,各个客户端分散的统计数据难以自动汇总;总之,缺乏一种多客户端叠加扩展机制。

除了软硬件发包测试软件外,现有技术还有一种如专利申请号为us15501863的专利申请,记载了一种抗ddos性能的检测,但对比的申请专利也有着下述缺点:

1)发起ddos请求攻击的设备在internet上,需要的设备和带宽成本高,并且难于部署;对于本身抗ddos性能非常强的系统,在internet上找到足够多的攻击请求设备对其发起海量模拟攻击的成本非常高;

2)只能对部署在虚拟服务之间的抗d设备进行检测,在没有中间的抗d设备时,缺乏直接对服务系统本身抵抗ddos攻击的能力进行检测的机制;

3)客户端叠加扩展问题,不能做到百万级客户端源ip地址同时模拟ddos攻击。



技术实现要素:

本发明针对现有技术上述问题,提出了一种系统抗ddos性能的检测方法,通过设置一个总控与统计程序与多个模拟客户端发包程序,在低成本的情况下,实现了百万级数量的不同客户端ip地址的真实ddos攻击,同时可以直接对服务系统本身进行测试,并对多个客户端可轻松叠加协调。

本发明具体实现内容如下:

本发明提出了一种系统抗ddos性能的检测方法,在待测系统所处的局域网中,设置一个总控与统计程序和多个模拟客户端发包程序;通过模拟客户端发包程序构造多个源ip地址不同且类型不同的数据流,并将数据流发送给待测系统;由总控与统计程序控制模拟客户端发包程序的运行,并对待测系统的健康情况进行检查,同时,总控与统计程序还对模拟客户端发包程序的收发统计数据进行汇总。

为了更好地实现本发明,进一步地,所述总控与统计程序具体的工作流程如下:

流程一:首先对模拟客户端发包程序的模拟发包参数进行统一配置;

流程二:启动模拟客户端发包程序对待测系统进行ddos测试;

流程三:在模拟客户端发包程序对待测系统发送数据流进行测试的时候,总控与统计程序对待测系统健康状况进行检查;

流程四:若待测系统的健康状况检测为不健康,则不再让模拟客户端发包程序对待测系统发送数据流;并由总控与统计程序汇总每个模拟客户端发包程序的收发包数据进行统计汇总;

若待测系统的健康状况检测为健康,则判断模拟客户端发包程序对待测系统的测试时间是否达到测试时长;若没有达到测试时长,则重新对待测系统进行流程三所述的健康状况进行检查;若达到了测试时长,则不再让模拟客户端发包程序对待测系统发送数据流,并对每个模拟客户端发包程序的收发包数据进行统计汇总。

为了更好地实现本发明,进一步地,在待测系统中没有健康检查和告警的组件时,所述总控与统计程序对待测系统的健康状况进行检查的方式为侵入式检查:在待测系统上部署健康检测程序来检测待测系统的cpu和网络状态。

为了更好地实现本发明,进一步地,所述侵入式检查的具体操作为:通过总控与统计程序周期性地触发健康监测程序的执行,调用读取接口来读取每一项待测系统资源的使用率;当某一项待测系统资源的使用率持续达到100%时,总控与统计程序判定待测系统已经达到抗ddos性能的极限,认定待测系统健康状态为不健康,并结束测试输出统计报告。

为了更好地实现本发明,进一步地,在待测系统中存在有健康检查和告警的组件时,所述总控与统计程序对待测系统的健康状况进行检查的方式为非侵入式检查:由待测系统主动上报健康情况。

为了更好地实现本发明,进一步地,其特征在于,所述非侵入式检查的具体操作为:利用待测系统中已有的健康检查和告警组件,由待测系统将达到抗ddos性能极限的消息主动发送到总控与统计程序中,并由总控与统计程序结束模拟客户端发包程序对待测系统的测试;同时对于心跳信息的封装采用与待测系统类似的封装方式,便于对接。

为了更好地实现本发明,进一步地,所述模拟客户端发包程序工作流程如下:

流程1:模拟ddos数据流对待测系统发起请求;

流程2:接收待测系统的响应,并进行内部统计;

流程3:持续对待测系统进行测试,直到总控与统计程序反馈待测系统达到了抗ddos性能达到极限;

流程4:结束对待测系统的测试。

为了更好地实现本发明,进一步地,所述模拟客户端发包程序对待测系统发送的数据流类型包括:synflood数据、tcp负载泛洪,httppost泛洪,httpget泛洪。

为了更好地实现本发明,进一步地,所述总控与统计程序收发统计的数据包括收发包时长,收发包数量,连接数,新建连接速度,平均响应时间;且事先让用户设置对收发包时长,收发包数量,连接数,新建连接速度,平均响应时间的预期值,在统计了收发包时长,收发包数量,连接数,新建连接速度,平均响应时间后,与预期值进行比较,根据与预期值比较的偏差得到所有指标的评分,达到或超出预期值的,则评为满分,负偏差越大的,得分越低。

为了更好地实现本发明,进一步地,所述通过模拟客户端发包程序构造多个源ip地址的数据流的具体操作为:通过linux协议栈socket可以绑定非本地ip地址的特性,构造多个源ip地址不同的数据流。

本发明与现有技术相比具有以下优点及有益效果:

(1)可制造百万级数量的不同客户端ip地址;

(2)可模拟真实的ddos攻击;

(3)可以直接对服务系统本身进行测试;也可通过抗ddos设备后再对服务系统进行测试;

(4)可对多个客户端叠加进行测试,也能轻松实现多个客户端之间的协调;

(5)成本低。

附图说明

图1为本发明总控与统计程序、模拟客户端发包程序和待测系统之间的运作示意图;

图2为本发明总控与统计程序运作流程图;

图3为本发明模拟客户端发包程序运作流程图。

具体实施方式

为了更清楚地说明本发明实施例的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,应当理解,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,因此不应被看作是对保护范围的限定。基于本发明中的实施例,本领域普通技术工作人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1:

本发明提出了一种系统抗ddos性能的检测方法,如图1所示,在待测系统所处的局域网中,设置一个总控与统计程序和多个模拟客户端发包程序;通过模拟客户端发包程序构造多个源ip地址不同且类型不同的数据流,并将数据流发送给待测系统;由总控与统计程序控制模拟客户端发包程序的运行,并对待测系统的健康情况进行检查,同时,总控与统计程序还对模拟客户端发包程序的收发统计数据进行汇总。

工作原理:整个ddos模拟测试系统由“总控与统计程序”和“模拟客户端发包程序”两部分组成,与待测系统处于同一局域网中。其中总控与统计程序只有一个,模拟客户端发包程序有一个或多个,最多可达上千。总控与统计程序主要功能是统一配置与下发各个发包程序的模拟发包参数,对待测系统的健康情况进行检查,以及对发包程序的收发统计数据进行汇总。

实施例2:

本发明在上述实施例1的基础上,如图2所示,所述总控与统计程序具体的工作流程如下:

流程一:首先对模拟客户端发包程序的模拟发包参数进行统一配置。

流程二:启动模拟客户端发包程序对待测系统进行ddos测试。

流程三:在模拟客户端发包程序对待测系统发送数据流进行测试的时候,总控与统计程序对待测系统健康状况进行检查;其中对于待测系统的检测也根据待测系统中是否有健康检查和告警的组件分为两种处理情况:

(1)在待测系统中没有健康检查和告警的组件时,所述总控与统计程序对待测系统的健康状况进行检查的方式为侵入式检查:在待测系统上部署健康检测程序来检测待测系统的cpu和网络状态;所述侵入式检查的具体操作为:通过总控与统计程序周期性地触发健康监测程序的执行,调用读取接口来读取每一项待测系统资源的使用率;当某一项待测系统资源的使用率持续达到100%时,总控与统计程序判定待测系统已经达到抗ddos性能的极限,认定待测系统健康状态为不健康,并结束测试输出统计报告;

(2)在待测系统中存在有健康检查和告警的组件时,所述总控与统计程序对待测系统的健康状况进行检查的方式为非侵入式检查:由待测系统主动上报健康情况;所述非侵入式检查的具体操作为:利用待测系统中已有的健康检查和告警组件,由待测系统将达到抗ddos性能极限的消息主动发送到总控与统计程序中,并由总控与统计程序结束模拟客户端发包程序对待测系统的测试;同时对于心跳信息的封装采用与待测系统类似的封装方式,便于对接。

流程四:若待测系统的健康状况检测为不健康,则不再让模拟客户端发包程序对待测系统发送数据流;并由总控与统计程序汇总每个模拟客户端发包程序的收发包数据进行统计汇总;

若待测系统的健康状况检测为健康,则判断模拟客户端发包程序对待测系统的测试时间是否达到测试时长;若没有达到测试时长,则重新对待测系统进行流程三所述的健康状况进行检查;若达到了测试时长,则不再让模拟客户端发包程序对待测系统发送数据流,并对每个模拟客户端发包程序的收发包数据进行统计汇总;

所述总控与统计程序收发统计的数据包括收发包时长,收发包数量,连接数,新建连接速度,平均响应时间;且事先让用户设置对收发包时长,收发包数量,连接数,新建连接速度,平均响应时间的预期值,在统计了收发包时长,收发包数量,连接数,新建连接速度,平均响应时间后,与预期值进行比较,根据与预期值比较的偏差得到所有指标的评分,达到或超出预期值的,则评为满分,负偏差越大的,得分越低。

工作原理:发包测试过程中,客户端发包程序与待测系统之间进行双向数据交互,控制与统计程序不对数据流进行干涉,只是周期性采集统计与健康信息。

侵入式指的是测试程序侵入业务系统,需要在待测系统上部署健康检查程序。这种健康检查方式不检查具体的业务,仅对通用的处理器,内存,网络吞吐这几个系统指标进行监控。监控方式为,总控程序周期性的触发健康检查程序的执行,调用操作系统提供的读取接口,读取每一项系统资源的使用率。当某项系统资源使用率持续达到100%时,总控程序判定待测设备已经达到性能极限,结束测试并输出报告。

非侵入式指的是测试程序不入侵业务系统,由业务系统主动上报自己的健康情况。这种方式主要应用与业务系统本身已经存在健康检查和告警组件的场景。利用已有的告警机制,业务系统将达到性能极限的消息主动通知到测试主控程序,结束测试。

心跳消息的封装采用与业务系统类似的封装,便于业务系统对接。假如测试系统是一个web站点,则心跳消息是一个httppost报文。当待测系统达到抗ddos的极限时,系统告警或崩溃,此时控制与统计程序会汇总发包程序的收发包统计。统计信息包括收发包时长,收发包数量,连接数,新建连接速度,平均响应时间等。根据汇总的信息生成待测系统的抗d性能检测报告。对ddos设备或软件性能打分评估的具体标准:抗d性能主要有以下几个指标参数:

·报文吞吐率:吞吐率由收发包的总数量除以发包时长计算得到。业务系统的吞吐率越高表明抵抗ddos攻击的能力越强;

·总连接数:测试过程中,随着多个tcp连接的建立,被测设备的内存表项会逐渐被消耗,当连接数达到业务系统处理极限时,即达到性能极限。测试客户端和待测系统建立的总连接数越多,抗d性能越强;

·新建连接速度:新建连接速度越快,待测系统的处理能力越强,抗d性能越高;

·平均响应时间:客户端从发出报文到收到回复的时间即待测系统的响应时间,整个周期内所有请求的响应时间取平均值,就是平均响应时间。对于有回复的待测系统,平均响应时间是重要的性能指标。响应时间越小,抗d性能越强。

本实施例的其他部分与上述实施例1相同,故不再赘述。

实施例3:

本发明在上述实施例1-2任一项的基础上,如图3所示,所述模拟客户端发包程序工作流程如下:

流程1:模拟ddos数据流对待测系统发起请求;

流程2:接收待测系统的响应,并进行内部统计;

流程3:持续对待测系统进行测试,直到总控与统计程序反馈待测系统达到了抗ddos性能达到极限;

流程4:结束对待测系统的测试。

其中,所述模拟客户端发包程序对待测系统发送的数据流类型包括:synflood数据、tcp负载泛洪,httppost泛洪,httpget泛洪。

工作原理:本发明的配置项如下表1所示:

表1

发包模拟程序部署在一台或多台linux主机上,一台主机上的多个发包程序使用linux网络namespace进行隔离,以便使用不同的虚拟网卡发包。一个客户端发包程序,使用linux协议栈socket可以bind非本地ip地址的特性,可以构造数千级别以上的源ip地址不同的数据流。ddos数据流类型包括synflood数据、tcp负载泛洪,httppost泛洪,httpget泛洪等多种ddos攻击种类。为了充分适应待测系统的业务,还可以对数据流的网络服务类型、数据和时序进行定制。构造mac/ip/port/payload不同类型的多条数据连接,具体实现方式如下:

(1)不同mac地址构造方式,在不同的linux网络namespace中创建虚拟网卡,虚拟网卡上配置不同的物理地址,不同虚拟网卡发出的包源mac地址不同;

(2)不同ip地址构造方式,设置linuxsocket的绑定非本地ip选项,发包时根据配置的源ip地址范围构造不同的源ip地址发包;

(3)不同tcp/udp端口(port)的构造方式:有连接的tcp创建多条源端口不同的连接,无连接的udp直接发送源port不同的报文;

(4)不同payload的构造方式:根据不同的ip协议类型的payload模版,填写payload内容,构造业务测试报文。

例如,对于应用层的http协议,模版包括如下字段:

1)请求的url;

2)请求的header;

3)请求的body;

对http报文字段的定制,可以满足web系统的测试需求。

本实施例的其他部分与上述实施例1-2任一项相同,故不再赘述。

实施例4:

本发明在上述实施例1-3任一项的基础上,本发明可以针对待测系统拥有抗d设备和没有抗d设备进行不同的处理:

当专用的抗d设备存在:当抗d设备检测到系统的请求数量过大时,会主动丢包,以缓和大量数据报文对业务系统的冲击,避免业务系统崩溃,丧失业务处理能力。因此,尽管业务系统的业务处理能力相比原来没有提升,但可能不会出现负载过大系统崩溃且响应能力变为0的情况。这种场景下,测试系统的健康检查模块的不会检查到业务系统出现异常。测试系统需要根据设置的测试时长按时主动结束测试输出报告或者人工结束测试输出报告。

当专用抗d设备不存在:没有专用抗d设备的保护,业务系统极限业务处理能力就是系统的抵抗ddos攻击的能力。随着测试系统的大量客户端持续加压,业务系统的资源被逐渐消耗,可能出现某种资源耗尽响应能力变为0的情况。这种场景下,健康检查模块会探测到业务系统出现异常,主动上报主控程序停止测试并输出测试报告。当然,没有专用抗d设备的场景也可以设置测试时长或人工主动结束测试。

本实施例的其他部分与上述实施例1-3任一项相同,故不再赘述。

以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1