本发明涉及网络安全技术,具体涉及一种基于云平台的统一安全防御系统。
背景技术:
随着信息科学的高度发展,互联网技术已经融入到大众生活的方方面面,互联网使人们在娱乐、商务及沟通的方式上产生了重大变革,但也带来了一些问题,网络安全问题是首要问题,直接影响互联网业务的运行和用户的使用,用户数据的泄露还可能导致重大安全事件。
当前互联网产品开发过程中,为了解决网络安全问题,通常采用引入安全组件对用户请求、用户数据、返回数据进行加密解密、编码解码、入侵检测及异常检测等策略,采取将安全组件引入业务逻辑代码的方法实现。这种方法导致产品业务逻辑代码与安全组件代码间耦合度过高,迭代速度慢,升级及部署不易,沟通成本大等问题。同时,由于多个开发小组业务水平不一,可能导致某些安全组件引入的遗漏,造成安全事件,给系统运行及用户使用造成严重隐患。
传统的安全组件在网络方面通常对异常流量,异常连接等安全问题进行检测,在业务方面,通常检测异常登录,用户身份认证枚举爆破,跨站脚本攻击,跨域请求伪造,数据库注入等。这样的方式可以检测部分安全问题,但也存在一定缺陷,例如,缺少对返回数据的检测(返回数据是否满足业务经常返回数据的特征),任意文件下载(由于附件或代码执行等多种问题导致)等,这遗留了一部分安全隐患。
因此,传统技术中的网络安全方案还存在的如下缺陷:
1、安全组件与业务代码耦合度过高,一旦安全组件需要更改,必须影响到业务开发团队,导致迭代速度慢,开发成本增大。
2、现有的安全组件只能解决部分安全问题,缺少对基于特定应用的请求数据和返回数据的特征分析,可能检测不到某些安全问题,造成安全事件。
3、发生安全事件后,如果需要开发新的安全组件,将影响所有的现有业务,所有现有业务代码必须升级,导致对安全事件的响应速度慢。
4、检测出0day漏洞的可能性极低,无法及时告警和防止数据泄露。
技术实现要素:
本发明所要解决的技术问题是:提出一种基于云平台的统一安全防御系统,以解决传统网络安全方案中业务代码与安全组件耦合度高、安全组件解决的安全问题不完备、对于安全事件响应速度慢以及无法发现新安全事件等问题。
本发明解决上述技术问题所采用的方案是:
一种基于云平台的统一安全防御系统,包括:
流量分析集群,用于接收网络流量数据,从中分析异常连接及异常流量,对异常情况进行日志记录和告警,将无异常的流量转发给请求接收集群;
请求接收集群,用于提取所需访问的应用id并读取配置文件,根据配置文件完成对客户端发送的加密数据的解密,以及对编码数据的解码,然后综合应用id、用户请求和用户数据构造一个或多个服务请求发送给安全组件集群;并对安全组件集群返回的响应数据进行相关组合;
安全组件集群,用于判断用户请求的服务是否安全,判断用户发送的数据是否安全;检测是否带有会话信息和用户身份信息;检测告警可能存在的跨域请求伪造;基于用户常用行为模式分析判断是否存在异常连接信息;对服务返回的信息进行检测、告警可能存在的安全问题;所述安全组件集群将安全的服务请求转发给应用服务组件,并接受应用服务组件返回的数据;
应用服务组件集群,以微服务构架软件的方式存在,为用户提供应用服务。
作为进一步优化,所述流量分析集群接收网络流量数据,从中分析异常连接及异常流量,包括:流量分析集群在接收到网络流量数据后,首先根据首先根据历史黑白名单判断是否为异常流量,并做相关处理;
然后,流量分析集群分析在传输层对于不同协议的流量特征,并提取成向量,再和表示正常访问的特征向量求相似性,当相似性大于某动态阈值时,判断为正常流量并转发到请求接收集群,否则,判断为异常流量,记入安全日志及告警系统,并更新黑名单。
作为进一步优化,所述流量分析集群分析在传输层对于不同协议的流量特征,并提取成向量,包括:
以[源ip,源端口,目的ip,目的端口,协议]表示身份信息,分析一段时间内syn包数、fin包数、连接成功数、连接失败数、零窗口、小窗口次数、半开连接次数等,用向量表示这些特征为:
所述求相似性为求两个向量的欧式距离相似性或者两个向量的余弦相似性,其中求两个向量的余弦相似性表示为:
当
作为进一步优化,所述安全组件集群判断用户发送的数据是否安全包括检测其中可能存在的具有数据库注入、跨站脚本攻击等数据。
作为进一步优化,所述安全组件集群基于用户常用行为模式分析判断是否存在异常连接信息,包括:安全组件集群分析用户常用行为模式,并将于用户常用行为模式不符的行为通过数值算法转换为相关异常累加值,当异常累加值超过一定阈值后,告警可能存在的异常连接信息。
作为进一步优化,所述安全组件集群对服务返回的信息进行检测、告警可能存在的安全问题,包括:安全组件集群对服务返回的数据进行特征提取,告警其中可能存在的数据库注入、跨站脚本攻击、任意文件下载等安全问题,可提前进行安全响应和/或发现oday漏洞。
作为进一步优化,所述流量分析集群在对异常情况进行日志记录的同时,还在可视化系统中进行显示。
本发明的有益效果是:
1、将异常流量、异常连接检测、业务安全检测集成到一套系统中,不仅可以发现常见的已知漏洞,还能根据流量特征、用户行为特征、数据特征等发现部分0day漏洞,提前进行安全预警。
2、所有业务使用统一安全防御系统,可以避免由于开发团队遗漏引入相关安全组件而导致的安全事件。
3、安全组件与业务代码耦合度低,便于迭代,更新,部署。当新安全事件发生时,只需开发新安全组件或更新现有安全组件,基本不影响业务代码。
附图说明
图1为本发明实施例中基于云平台的统一安全防御系统构架图;
图2为异常流量及异常连接检测示意图;
图3为业务安全检测示意图。
具体实施方式
本发明旨在提出一种基于云平台的统一安全防御系统,以解决传统网络安全方案中业务代码与安全组件耦合度高、安全组件解决的安全问题不完备、对于安全事件响应速度慢以及无法发现新安全事件等问题。
在本发明中,基于云的统一安全防御系统以服务的方式存在,并将各个安全组件以微服务架构软件的方式运行于云平台中,各个安全组件以进程间通信接口进行交互。所有部署于云平台上的应用只需考虑自身业务代码的实现,默认用户请求、用户数据、返回数据均为安全的;用户请求、用户数据、返回数据的安全性检查及过滤交由安全组件完成。
下面结合附图及实施例对本发明的方案作更进一步的描述:
如图1所示,本实施例中的基于云平台的统一安全防御系统,包括:流量分析集群、请求接收集群、安全组件集群、应用服务组件集群;
流量分析集群,用于接收网络流量数据,从中分析异常连接及异常流量,对异常情况进行日志记录和告警,将无异常的流量转发给请求接收集群;
请求接收集群,用于提取所需访问的应用id并读取配置文件,根据配置文件完成对客户端发送的加密数据的解密,以及对编码数据的解码,然后综合应用id、用户请求和用户数据构造一个或多个服务请求发送给安全组件集群;并对安全组件集群返回的响应数据进行相关组合;
安全组件集群,用于判断用户请求的服务是否安全,判断用户发送的数据是否安全;检测是否带有会话信息和用户身份信息;检测告警可能存在的跨域请求伪造;基于用户常用行为模式分析判断是否存在异常连接信息;对服务返回的信息进行检测、告警可能存在的安全问题;所述安全组件集群将安全的服务请求转发给应用服务组件,并接受应用服务组件返回的数据;
应用服务组件集群,以微服务构架软件的方式存在,为用户提供应用服务。
基于上述系统,本发明实现网络安全防御的原理为:
流量分析集群接收到网络流量数据后,首先根据历史黑白名单判断是否为非异常流量,并做相关处理:先判断相关连接属性是否在白名单中,如果在白名单中,则直接转发到安全组件集群进行下一步处理;如果不在白名单中,则继续判断相关连接属性是否在黑名单中,如果在黑名单中,则启动安全响应机制(如拒绝连接、记录安全信息并告警),如果也不在黑名单中,则分析在传输层对于不同协议一些正常/异常特征(例如,对tcp,将分析一段时间内syn包数,连接成功数,连接失败数,零窗口或/和小窗口次数,半开连接次数等),并提取成向量,并和表示正常访问的特征向量求相似性(欧式距离,余弦相似性等),当相似性大于某动态阈值时,表示正常流量并转发到请求接收集群,否则,表示异常流量,记入安全日志及告警系统。在判断为异常流量或者异常连接后,对黑名单进行更新。异常流量及异常连接的检测如图2所示。
连接的身份信息为[源ip,源端口,目的ip,目的端口,协议(tcp)],时间差建议设置为1‐2分钟,用向量表示流量特征信息为:
两个向量的余弦相似性如下所示:
当
异常流量和异常连接检测过程如附图2所示。
对非异常流量,流量检测集群将转发到请求接收集群,请求接收集群将完成以下一些功能:
1、提取所需访问应用id并读取相关配置文件。
2、将客户端编码数据进行解码,加密数据进行解密。
3、综合[应用id,用户请求,用户数据]构建一条或多条请求,并将相关请求和数据转发到安全组件集群。
4、将各个安全组件返回的信息进行合并及返回。
安全组件拆分为具体功能的服务,并以进程的形式运行于多个容器中,各自以进程间通信的方式进行交互。收到[应用id,用户请求,用户数据]的安全组件进程将对请求数据进行相关分析,其中,安全组件进程将完成以下功能:
1、判断用户请求服务是否安全。
2、检测用户提交的数据中是否含有sql注入的相关特征。
3、检测用户提交的数据中是否含有跨站脚本攻击的相关特征。
4、检测是否带有会话信息和用户身份信息。
5、根据历史数据检测该应用的请求数据特征(并非具体到某一用户),判断是否是异常行为数据。
6、根据历史数据检测返回的数据是否异常。对于一个常用服务的访问,得到的数据特征与以前差异很大,就表示异常。(正常返回的页面信息和sql注入返回数据差异很大)。
7、检测返回数据是否具有某些特定文件的特征,如/etc/passwd,~/.bash_history或服务配置文件等(任意文件下载漏洞返回的数据通常具有一些特征)。
8、更新黑名单,进行安全告警或者日志记录等。
业务安全检测示意图如附图3所示。
优选地,对于特定模式的判断,仍然采取将应用id,用户请求,用户数据,返回数据根据特征提取为向量的形式,与正常访问/安全事件的特征向量求取相似性。对于给定经验阈值,如果大于经验阈值,则归为一类,其具体操作过程类似于流量分析集群中的异常流量检测,在此不再赘述,其参数值应根据业务实际情况分析选取。安全组件与告警系统,黑白名单,日志系统相连,并做好相关安全响应工作。此类安全防御手段不仅可以检测已知类型的漏洞,还可对于未知类型漏洞/0day漏洞做出一定程度的检测与响应,提高了系统整体安全性,保护了用户数据。
优选地,安全相应组件以微服务软件架构开发部署,当需要开发新安全组件或更新现有安全组件时,只需要注册新的安全组件服务或更改现有安全组件服务后重新部署,基本不影响业务代码。所有的业务应用共享一整套安全防御系统,各个集群中的组件冗余部署,在负载均衡的同时保证系统高可用。
安全防御可视化子系统采集黑白名单,安全日志,告警系统等相关信息供网络安全从业人员使用,用于做好安全响应及安全预警相关工作。