一种基于Docker虚拟化的信息系统入侵检测方法

文档序号:9352852阅读:947来源:国知局
一种基于Docker虚拟化的信息系统入侵检测方法
【技术领域】
[0001] 本发明涉及一种基于Docker虚拟化的信息系统入侵检测方法。
【背景技术】
[0002] Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎。源代码 托管在Github上,基于go语言并遵从Apache2. 0协议开源。Docker自2013年以来非常 的火热,它的成功主要是由于解决了一下几个问题:(1)环境管理复杂:从各种0S到各种 中间件再到各种App,一款产品能够成功发布,作为开发者需要关心的东西太多,且难于管 理,这个问题在软件行业中普遍存在并需要直接面对。Docker可以简化部署多种应用实 例工作,比如Web应用、后台应用、数据库应用、大数据应用比如Hadoop集群、消息队列等 等都可以打包成一个Image部署。(2)云计算时代的到来:AWS的成功,引导开发者将应 用转移到云上,解决了硬件管理的问题,然而软件配置和管理相关的问题依然存在(AWS cloudformation是这个方向的业界标准)。Docker的出现正好能帮助软件开发者开阔思 路,尝试新的软件管理方法来解决这个问题。(3)虚拟化手段的变化:云时代采用标配硬件 来降低成本,采用虚拟化手段来满足用户按需分配的资源需求以及保证可用性和隔离性。 然而无论是KVM还是Xen,在Docker看来都在浪费资源,因为用户需要的是高效运行环境 而非0S,GuestOS既浪费资源又难于管理,更加轻量级的LXC更加灵活和快速。(4)LXC的 便携性:LXC在Linux2. 6的Kernel里就已经存在了,但是其设计之初并非为云计算考虑 的,缺少标准化的描述手段和容器的可便携性,决定其构建出的环境难于分发和标准化管 理(相对于KVM之类image和snapshot的概念)。Docker就在这个问题上做出了实质性 的创新方法。
[0003] 虽然和传统的虚拟机相比,Docker在性能和系统的占用上提升了不少,但在安全 方面还是有一些问题。(DDocker的隔离性相比KVM之类的虚拟化方案还是有些欠缺的,所 有container公用一部分的运行库。(2)网络管理相对简单,主要是基于namespace隔离;
[3]Root的权限更容易获得。由于以上的一些安全问题,Docker迫切需要一种主动的安全 机制来检测和抵制外来的入侵。本专利重点就是研究基于Docker虚拟化的信息系统入侵 检测技术。

【发明内容】

[0004] 本发明的目的是提供一种基于Docker虚拟化的信息系统入侵检测方法,能够通 过监听主机和容器间网络中的数据包来获取必要的数据来源,通过对捕获的数据流完成数 据的采集工作,然后经过支持向量机的学习和分类,实现对外来入侵的检测。
[0005] -种基于Docker虚拟化的信息系统入侵检测方法,其特别之处在于,包括如下步 骤:通过监听主机和容器间网络中的数据包来获取数据来源,然后通过捕获的数据流完成 数据的采集工作,进而经过支持向量机的学习和分类,区分正常信息和外来入侵,实现对外 来入侵的检测。
[0006] 其中支持向量机的学习和分类过程分为两个阶段,第一个阶段为训练阶段,使用 支持向量库中的训练数据训练SVM即支持向量机分类器,训练时采用SVM主动学习算法,具 体如下:
[0007] 第一个阶段,训练阶段:
[0008] (1)从候选样本集u中选择i个样本并正确标注其类别,构造初始训练样本集T, 使T中至少包含一个输出y为1和y为-1的样本;其中候选样本集u是指未带类别标注的 候选样本集u,每次从u中采样个数为1;
[0009] (2)根据训练集T构造SVM分类器f?即分类器,预标记样本;
[0010] (3)对u中所有样本使用f,标注为(X,2 ),其中t为分类器f给向量x预先打 j .y. 上的标注;
[0011] (4)从样本集u中选择一个离分类边界最近的未标注样本(X,);
[0012] (5)将该样本正确标注后加入训练集T中,其中y为x的正确标注;
[0013] (6)计算检测精度;
[0014] (7)当检测精度大于等于95%时,算法终止,返回f;否则重复第⑵步;
[0015] 第二个阶段,检测阶段:
[0016] (1)通过捕获流进主机和Docker容器间的数据流,完成数据采集工作;
[0017] (2)检测阶段对数据的处理:
[0018]a)将捕获的数据包进行特征提取;
[0019]b)将所有类型的数据转换成以二进制表示的数字形式,具体是采用基于距离度量 函数HVDM即异构距离函数的方法,对数据进行归一化处理;
[0020] C)对这些特征值的范围进行处理,使得每类特征数据的取值范围在[0, 1]中,经 过上述过程数据的预处理,转化为支持向量机能够处理的向量化形式;
[0021] d)将处理的数据存入支持向量库,支持向量库中保存了SVM训练数据、实时检测 数据及检测结果;
[0022] (3)将进过数据预处理的数据包进行检测,得到预测输出值y,当7为1是,表示为 正常网络通信;当y为-1时,表示异常的网络通信,即有外来事件入侵Docker容器;
[0023] (4)检测结果存入支持向量库;
[0024] (5)将入侵检测系统以app的形式封装到Docker的容器中,将此容器和主机组成 host主机模式,而其它容器以bridge网桥形式和主机进行网络通信;
[0025] (6)当检测到入侵时,封装有入侵检测系统的容器通过和主机的网络连接给被入 侵的容器发送指令dockerstop来终止被入侵容器的运行,或者发送指令dockerrm直接 删除被入侵的容器;
[0026] (7)若时间检测有误,则进行误差分析,并重新训练SVM分类器。
[0027] 本发明方法的有益效果是:(1)将入侵检测系统以软件app的形式封装到docker 的容器中,这样就很好的利用了Docker的特性、节约了空间。(2)根据docker的运行机制, 将装有入侵检测系统的容器和主机组成host主机模式,和主机共享网络环境,而其它容器 以bridge网桥模式和主机进行网络通信,当检测到入侵时入侵检测系统通过主机直接将 被入侵的容器停止运行或直接回收删除。
【附图说明】
[0028] 附图1为本发明方法的检测过程流程图;
[0029] 附图2为本发明方法中入侵检测的流程图。
【具体实施方式】
[0030] 本发明提供的是一种基于Docker虚拟化的信息系统入侵检测方法。如果发现有 外来入侵,入侵检测系统通过docker的主机直接发送指令,停止被入侵容器的运行或直接 删除被入侵的容器。
[0031] 此发明在Docker的实现过程如下:
[0032] 入侵检测技术选用异常入侵检测技术,这个技术是基于支持向量机主动学习的入 侵检测算法,这种算法在小样本的情况下能够实现很快的分类速度。
[0033] 检测系统的方式选用集中式的体系结构,将上面所用的入侵检测技术以软件app 的形式封装到Docker的容器中,这样就很好的利用了Docker的这个虚拟化平台,然后将这 个容器和主机构成host网络模式,而其他的容器和主机为bridge桥接模式。拥有入侵检 测系统的容器通过和主机直接建立网桥,使得此容器和主机共享一个网络环境,当发现有 外来入侵是,此容器可以通过主机来控制或删除其它容器。入侵检测系统通过捕获流经主 机和其它容器间的数据流,完成数据采集工作;由于捕获的网络数据包数据量大,为了减少 数据处理量,需进行特征提取,从截取的网络数据包中提取出用于网络入侵检测的相关属 性特征;由于支持向量机只能处理向量化的数据,因而必须通过数据预处理,将这些特征数 据转换成SVM能处理的向量形式,并存入支持向量库。支持向量库中保存了SVM训练数据、 实时检测数据及检测结果。然后对预处理后的数据进行训练和检测。
[0034] 具体流程见说明书附图的图1。
[0035] 支持向量机主动学习算法用于网络入侵检测实际上分为两个阶段,第一个阶段为 训练阶段,使用支持向量库中的训练数据训练SVM分类器,训练时采用SVM主动学习算法; 第二阶段为检测阶段,经过训练的SVM分类器用于对经过数据预处理
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1