一种基于Android系统的DDoS防御系统和方法
技术领域
本发明涉及移动平台安全技术领域,具体涉及一种基于Android系统的DDoS防御系统和方法。
背景技术
分布式拒绝服务攻击(distributed denial of service attack,DDoS)是通过控制互联网上多台机器同时向目标系统发送大量正常请求,使受害服务器遭受无法承受的海量请求,导致服务器无法处理真正的请求,从而达到拒绝服务攻击的目的。一直以来互联网的DDoS攻击事件层出不穷,困扰着网络服务商。随着移动平台如智能手机的迅猛发展,移动互联网和传统网络的不断融合,移动平台用户的不断增多,移动平台逐渐进入网络黑客的视野,成为网络攻击的受害者和被利用者,典型的DDoS攻击技术也开始进入移动平台领域。移动平台成为DDoS攻击的新目标,现有的攻击方式有控制移动平台,使其变成DDoS攻击发起的“肉机”,或者利用DDoS攻击的各种变种,例如反射式DDoS攻击,在不需直接控制主机的情况下达到攻击目的。这些攻击方式具有很强的隐蔽性,因此用户往往已经成为网络攻击的受害者而没有任何察觉。
目前利用移动平台进行DDoS攻击的案例远远不如利用PC机攻击的案例,但是随着移动平台软硬件水平和移动互联网技术的迅速发展以及移动用户数量的不断增加,利用移动平台进行DDoS攻击将成为一种常见的攻击手段。
现有典型的DDoS防御技术方案可以归纳为:入口防御类、回推追踪类和基于路由跳数类。
入口防御类,这类方法在网络边界的路由器和网关部署,对进出网络的数据包进行检查和过滤。由于移动平台和传统互联网的区别,普通用户不可能在网关处进行修改和部署,因此这类方法对移动平台用户并不适用。
回推追踪类,这类方法包括源回溯和路由回推。
源回溯方法是在数据包传输过程中,由路由器等网络节点记录其经过的全部或部分路由信息,根据记录的路由信息得到DDoS攻击的攻击路径,并进行处理。路由回推法是当某条链路达到该链路拥塞阈值时,路由器丢弃数据包,同时检查造成其拥塞的入口链路,并通知这些链路的上个节点路由器,要求其对网络流量进行相应的限制,而上个节点路由器也以同样的方式进行流量限制并回推给上个节点的上个节点的路由器,照理不断回推,以限制网络流量达到防御效果。
基于路由跳数类的方法是利用IP欺骗后到达被攻击目标的数据包经过的路由跳数和实际的源IP到目的IP经过的路由跳数不一致来判断数据包是否经过IP欺骗,进行防御。但是这类方法需要维护庞大的源IP和TTL值表,且攻击者完全可以将伪造IP的数据包的TTL值进行设置躲过该方法的检查。
移动平台的硬件性能远不如PC平台,回推追踪和基于路由跳数两类方法虽然很有效,但很难应用于移动平台。
由于移动平台的特殊性,移动平台的DDoS攻击防御方法需要低消耗,低网络流量消耗。而目前网络的DDoS防御方法部署实施复杂,资源开销大,不适用于移动平台的DDoS攻击防御,并且移动平台首先需要保证的是本机的安全,查找问题根源并不是其的主要责任。
虽然现有DDoS防御的技术方案很多,但是专门针对移动平台的防御方案还没有正式提出。
发明内容
本申请通过提供一种基于Android系统的DDoS防御系统和方法,以解决现有DDoS防御方法部署实施复杂,资源开销大,不适用于移动平台的技术问题。
为解决上述技术问题,本申请采用以下技术方案予以实现:
一种基于Android系统的DDoS防御系统,包括控制模块、系统监控模块、系统处理模块。其中,控制模块负责防御系统的启动、初始化设置、暂停和关闭,所述防御系统的初始化设置包括异常次数SYN包速率阈值、ACK_SYN包速率阈值、UDP包速率阈值、异常次数阈值。
进一步的,所述防御系统的初始化设置还包括监控间隔时间、监控时长。
系统监控模块用于监控系统网络端口,监听数据包的发送和接收,如果当前进程发向同一个IP地址同一端口的SYN包、ACK_SYN包或UDP包速率超过速率阈值,则启动系统处理模块,并将异常进程数据传递给系统处理模块。
系统处理模块包括异常数据库和异常处理单元,其中异常数据库接收并存储来自系统监控模块的异常进程数据,异常处理单元用于处理异常数据包的进程,根据系统设置的等级,直接终止或报告用户终止异常数据包进程。
作为一种优选方案,异常数据库采用轻量级的Sqlite数据库,所述数据库包括异常数据表和进程表,其中异常数据表的表项包括ID、进程号、发包速率、请求IP,进程表的表项包括ID、进程号、进程名、应用名、异常次数。
一种基于Android系统的DDoS防御方法,包括以下步骤:
步骤S1:在Android系统中植入上述DDOS防御系统程序,编译系统,在目标移动平台上刷入编译后的系统;
步骤S2:初始化防御系统的设置,将设置内容保存在系统参数文件中,其中设置的内容包括SYN包速率阈值、ACK_SYN包速率阈值、UDP包速率阈值、异常次数阈值,所述SYN包速率阈值设置为三个等级:严格、中等、宽松,所述ACK_SYN包速率阈值设置为三个等级:严格、中等、宽松,所述UDP包速率阈值设置为三个等级:严格、中等、宽松;
步骤S3:启动系统监控模块,监控系统网络端口;
步骤S4:监控当前进程发向同一个IP地址同一端口的SYN请求,ACK-SYN响应或UDP包的速度是否超出阈值,如超出,则进入步骤S4,否则继续进行步骤S4;
步骤S5:启动系统处理模块,接收来自系统监控模块的异常进程数据,并存储到异常数据库中;
步骤S6:异常处理单元读取系统设置等级,关闭异常进程或通知用户后关闭进程;
步骤S7:检查异常数据库中异常次数是否超过设定异常次数阈值,如超过,则进入步骤S8,如没有超过,则继续执行步骤S7;
步骤S8:建议用户删除该进程的应用程序。
进一步的,所述方法还包括以下步骤:
若用户选择暂停,则暂停系统监控模块的运行,直到用户重新启动程序;
若用户选择关闭,则终止系统。
与现有技术相比,本申请提供的技术方案,具有的技术效果或优点是:提供了一种基于Android系统的DDoS防御系统和方法,将DDOS防御系统安装于移动平台的Android系统中,监控速率异常的SYN请求包或ACK+SYN响应包或UDP包,跟踪、记录并终止发送这些包的异常进程,实现在移动平台上对DDoS攻击的防御,具有网络流量开销低、系统开销低,不影响移动平台的正常使用的优点。
附图说明
图1为本发明DDoS防御系统结构示意图;
图2为本发明异常数据库的表结构图;
图3为本发明DDoS防御方法流程图。
具体实施方式
本申请实施例通过提供一种基于Android系统的DDoS防御系统和方法,以解决现有DDoS防御方法部署实施复杂,资源开销大,不适用于移动平台的技术问题。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式,对上述技术方案进行详细的说明。
实施例
如图1所示,DDoS防御系统包括控制模块10、系统监控模块20、系统处理模块30,其中,控制模块10负责防御系统的启动、初始化设置、暂停和关闭,所述防御系统的初始化设置包括异常次数SYN包速率阈值、ACK_SYN包速率阈值、UDP包速率阈值、异常次数阈值,所述防御系统的初始化设置还可以包括监控间隔时间、监控时长。
系统监控模块20用于监控系统网络端口,监听数据包的发送和接收,如果当前进程发向同一个IP地址同一端口的SYN包、ACK_SYN包或UDP包速率超过速率阈值,则启动系统处理模块30,并将异常进程数据传递给系统处理模块30。
系统处理模块30包括异常数据库301和异常处理单元302,所述异常数据库301接收并存储来自系统监控模块20的异常进程数据,所述异常处理单元302用于处理异常数据包的进程,根据系统设置等级,直接终止或报告用户终止异常数据包进程。
作为一种优选方案,异常数据库301采用轻量级的Sqlite数据库,所述数据库包括异常数据表和进程表,如图2所示,所述异常数据表的表项包括ID、进程号、发包速率、请求IP,所述进程表的表项包括ID、进程号、进程名、应用名、异常次数。
一种基于Android系统的DDoS防御方法,如图3所示,包括以下步骤:
步骤S1:在Android系统中植入上述DDOS防御系统程序,编译系统,在目标移动平台上刷入编译后的系统;其中,所述DDoS防御系统的应用程序分为应用层程序和Linux内核层的协议栈层程序,应用层程序将监听开机广播,将程序应用层开机启动。
步骤S2:初始化防御系统的设置,将设置内容保存在系统参数文件中,其中设置的内容包括SYN包速率阈值、ACK_SYN包速率阈值、UDP包速率阈值、异常次数阈值,所述SYN包速率阈值设置为三个等级:严格、中等、宽松,所述ACK_SYN包速率阈值设置为三个等级:严格、中等、宽松,所述UDP包速率阈值设置为三个等级:严格、中等、宽松。
步骤S3:启动系统监控模块,监控系统网络端口
步骤S4:监听数据包的发送和接收,监控当前进程发向同一个IP地址同一端口的SYN请求,ACK-SYN响应或UDP包的速度是否超出阈值,如超出,则进入步骤S5,如没有超出,则继续进行步骤S4;
其中步骤S4的具体操作为:系统监控模块运行期间,定时扫描统计发包情况,并统计数据包速率;当发现有异常流量时,追踪到发送数据包的异常进程,并将异常进程数据传递给系统处理模块;传递结束后自动删除记录文件,继续监控。
步骤S5:启动系统处理模块,接收来自系统监控模块的异常进程数据,并存储到异常数据库中;数据库采用轻量级的Sqlite数据库,Sqlite数据库包括异常数据表和进程表,如图2所示,所述异常数据表的表项包括ID、进程号、发包速率、请求IP,所述进程表的表项包括ID、进程号、进程名、应用名、异常次数。
步骤S6:异常处理单元读取步骤S2中的系统设置等级,根据系统设置的等级,关闭异常进程或通知用户后关闭进程;
步骤S7:检查异常数据库中异常次数是否超过设定异常次数阈值,如超过,则进入步骤S7,如没有超过,则继续执行步骤S8;
步骤S8:建议用户删除该进程的应用程序。
进一步的,所述方法还包括以下步骤:
若用户选择暂停,则暂停系统监控模块的运行,直到用户重新启动程序;
若用户选择关闭,则终止系统。
本申请的上述实施例中,通过提供一种基于Android系统的DDoS防御系统和方法,将防御系统程序安装于移动平台的Android系统中,通过监控系统网络端口,定时检测当前进程发向同一个IP地址同一端口的SYN请求,ACK-SYN响应或UDP包的速率是否超出设定阈值,跟踪、记录并终止发送数据包的异常进程,实现了移动平台上对DDoS攻击的防御。本发明提供的DDoS防御系统安装容易,且无论是网络流量还是系统开销都非常低,不影响移动平台的正常使用,解决了现有DDoS防御方法部署实施复杂,资源开销大,不适用于移动平台的技术问题。
应当指出的是,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改性、添加或替换,也应属于本发明的保护范围。