在过去的十年中, 人工免疫系统(Artificial Immune System, AIS)在分类、优化、检测等方面的应用十分广泛[1]。文献[2]根据免疫系统中树突状细胞(Dendritic Cell, DC)的行为特征及分化过程, 提出树突状细胞算法(Dendritic Cell Algorithm, DCA), 由于该算法无需训练过程且复杂度较低, 常被用于分类[3]、预测[4]、异常检测[5]等领域。
DCA要求输入病原相关分子模式(Pathogenic Associated Molecular Patterns, PAMPs)、危险信号(Danger Signals, DS)、安全信号(Safe Signals, SS)3种信号, 而信号的定义取决于检测对象的特征, 因此需要提前对入侵行为进行分析和特征提取[6]。常用的信号提取方式有3类。第1类是依赖人工经验指定信号, 该方式缺乏智能性且准确度较低。第2类是统计学方式, 如标准差过滤、主成分分析(Principal Component Analysis, PCA)等[7], 这类方式的效率较低, 只能处理线性数据, 如果数据集中存在稀疏数据, 其特征提取的准确度会受到较大影响。第3类是使用粗糙集进行属性约简[8], 虽然粗糙集支持稀疏数据的处理, 但算法复杂度高, 约简效率低[9], 在约简过程中易造成信息损失, 影响约简结果的精度[10]。
XGBoost(eXtreme Gradient Boosting)是Gradient Boosting算法的一个优化版本。Gradient Boosting具有高效性和准确性, 常被应用于特征提取[11]。XGBoost对决策树的切分点查找算法进行优化, 改进其对稀疏数据的处理过程, 通过正则化和内置交叉验证解决Gradient Boosting的过拟合问题[12], 提高特征提取的准确度。该算法已被广泛应用于降维与特征提取[13]、分类[14]和行为预测[15]。
本文提出一种改进的树突状细胞算法, 将XGBoost与DCA相结合, 使用XGBoost对Web服务器的指标进行特征提取, 并将提取结果作为DCA的信号输入, 从而对Web服务器进行网络入侵检测。
1 结合XGBoost的树突状细胞算法 1.1 树突状细胞算法在计算机免疫中, DC接受PAMPs、DS、SS作为输入信号, 经过权值矩阵和相关函数变换以后, 输出协同刺激分子(Co-Stimulatory Molecules, CSM)、半成熟信号(semi)和成熟信号(mat)。当CSM达到迁移阈值时, DC会对semi和mat各自累加的结果进行比较, 并迁移到浓度较大的状态, 根据迁移结果将该DC采集到的所有抗原标记为semi或mat。用成熟环境抗原值(Mature Context Antigen Value, MCAV)计算代表抗原的异常程度, 具体过程如下:
$ MCAV = \frac{{抗原被标记为成熟环境抗原的次数}}{{抗原被标记的总次数}} $ |
当MCAV值达到阈值时, DC将异常提交给T细胞进行免疫应答[16], 流程如图 1所示。
![]() |
Download:
|
图 1 DCA流程 |
XGBoost定义的学习目标函数如下:
$ Obj (\Theta ) = L(\Theta ) + \mathit{\Omega} (\Theta ) $ |
其中, $L = \sum\limits_{i = 1}^n l \left({{y_i}, {{\hat y}_i}} \right)$为损失函数, 一般使用方差损失或者逻辑损失来计算, Ω为惩罚函数, 通过正则化项约束模型的复杂度, 例如, L1正则(Lasso回归)或者L2正则(岭回归)。然后不断构建分类回归树(Classification And Regression Tree, CART), 通过枚举所有不同树结构的贪心法求出最优分割点, 使得树的预测模型的误差最小。在枚举过程中引入新叶子的惩罚项, 计算树的复杂度, 当引入的分割带来的增益小于阈值时, 剪掉此分割, 避免过拟合。通过不带权重地累加所有树的打分得到预测值[8]。根据生成的决策树, 获得每个节点的权重, 按照权重排名获取需要提取的特征。
2 实验设计 2.1 特征提取本文采用KDD99数据集中10%的子集作为实验数据, 其数据可分为4类:TCP连接基本特征, TCP连接的内容特征, 基于时间的网络流量统计特征以及基于主机的网络流量统计特征。通过数据转化把其中的值为字符串的特征转化为数值表示, 例如, 将“tcp”映射成数值2, 将“udp”映射成数值3, 将“icmp”映射成数值4。由于XGBoost内置数据正则化, 并且对缺失值做了处理, 因此可直接使用XGBoost对映射后的数据集进行训练。
选取目标函数binary:logistic对数据集进行二分类。经过参数调优后选取的参数如表 1所示, 得出分类树与特征权重的排名。
![]() |
下载CSV 表 1 参数选取列表 |
根据XGBoost的提取结果可以得出有显著影响的特征, 结合四轮迭代生成树的差异和皮尔森相关系数, 去除关联度高的特征, 并将信号分为3类, 即PAMPs、SS和DS。
PAMPs和SS是一对相反信号, 即同一信号输入不同值时, 该输入一定为PAMPs或SS, 因此该属性(属性集)能够敏感地反映系统的安全状况, 并进行异常感知[5]。如果选择在决策树中不会被剪枝的属性(属性集), 则表明此属性(属性集)对判定结果的影响较为明显。
DS的影响力相对较弱, 根据生成决策树中共有的特征选取决策树中被剪枝的属性, 说明这些属性会影响系统安全, 但影响程度相对较弱。
2.2.2 信号集和抗原向量的处理将数据集中采集的一行数据作为抗原向量, DC接受PAMPs、DS、SS作为输入, 则权值W的取值情况如图 2所示。
![]() |
Download:
|
图 2 数据信号权值矩阵 |
由输入信号得到输出信号的计算公式如下:
$ \begin{array}{*{20}{l}} {{C_{\left[ {{\rm{CSM, semi, mat }}} \right]}} = }\\ {\frac{{\left( {{W_{{\rm{PAMPs}}}} \times {C_{{\rm{PAMPs}}}}} \right) + \left( {{W_{{\rm{DS}}}} \times {C_{{\rm{DS}}}}} \right) + \left( {{W_{{\rm{SS}}}} \times {C_{{\rm{SS}}}}} \right)}}{{\left| {{W_{{\rm{PAMPs}}}}} \right| + \left| {{W_{{\rm{DS}}}}} \right| + \left| {{W_{{\rm{SS}}}}} \right|}}} \end{array} $ |
比较计算的CCSM与迁移阈值的大小, 判断当前DC是否成熟, 并对采集的抗原进行标记。然后使用MCAV值对抗原进行评价, 判断抗原是否异常。
3 实验结果与分析在DCA应用于小样本集时, 其检测效果较明显, 本文从KDD99数据集10%的子集中随机抽取1 000条、5 000条、10 000条数据作为测试数据集的输入, 使用XGBoost和粗糙集进行特征提取。由于1 000条数据、5 000条数据的结果与10 000条数据的结果类似, 因此本文仅给出10 000条数据的结果, 如图 3~图 6所示。
![]() |
Download:
|
图 3 10 000条数据的决策树1 |
![]() |
Download:
|
图 4 10 000条数据的决策树2 |
![]() |
Download:
|
图 5 10 000条数据的决策树3 |
![]() |
Download:
|
图 6 10 000条数据的决策树4 |
根据生成的决策树节点, 在10 000条数据的样本中, 分别选取count、dst_bytes、src_bytes作为PAMPs和SS的判定信号, 如果样本对应属性的值大于该信号总体属性的平均值, 则置PAMPs的值为信号值的极差平均值, SS为0, 反之则PAMPs为0, SS为极差平均值。将dst_host_srv_serror_rate、dst_host_same_src_port_rate、dst_host_srv_count、hot、dst_host_srv_diff_host_rate作为DS信号, 取计算信号的属性值与均值的差的平均作为该样本的DS值。5 000条和1 000条数据的PAMPs与SS信号分别为count、dst_bytes和count, DS信号为src_bytes、hot、dst_host_srv_serror_rate、dst_host_same_src_port_rate、dst_host_srv_diff_host_rate和src_bytes、dst_bytes、hot、dst_host_srv_count、dst_host_same_src_port_rate、srv_serror_rate、duration。设置每个DC每次采集10个抗原, 每一个抗原被采集的上限为10次。根据每一组样本运行的结果调整CSM的迁移阈值和权值矩阵, 直至检测结果稳定。每一组运行10次并取实验结果的平均值, 结果如表 2所示。
![]() |
下载CSV 表 2 2种算法的检测结果对比 |
由表 2可知, 使用XGBoost提取特征的DCA比使用粗糙集的DCA准确率更高, 误报率、漏报率更低。数据集越小, 准确率越高, 说明当DCA用于分类问题时, 只需维护一个小的DC抗原池, 占用较小的系统资源, 即可取得较高的检测效率。然而, DCA的权值矩阵需要针对特定的应用环境(数据集)进行调试, 尽管其不需要训练, 但在将DCA用于分类问题时, 需要提前调试权值矩阵。
4 结束语本文提出一种改进的树突状细胞算法, 将XGBoost与DCA进行结合实现特征提取, 并使用KDD99数据集进行实验。结果表明, 与基于粗糙集的DCA方法相比, 使用XGBoost进行特征提取的DCA检测效率更高。下一步将对DCA权值矩阵的人工调整问题以及炎症因子的影响进行研究, 改善DCA算法的性能。
[1] |
DASGUPTA D, YU Senhua, NINOB F. Recent advances in artificial immune systems:models and applications[J]. Applied Soft Computing, 2011, 11(2): 1574-1587. DOI:10.1016/j.asoc.2010.08.024 ( ![]() |
[2] |
GREENSMITH J, AICKELIN U, CAYZER S.Introducing dendritic cells as a novel immune-inspired algorithm for anomaly detection[C]//Proceedings of International Conference on Artificial Immune Systems.Berlin, Germany: Springer, 2005: 153-167.
( ![]() |
[3] |
MOHSIN M F M, HAMDAN A R, BAKAR A A.An evaluation of feature selection technique for dendrite cell algorithm[C]//Proceedings of 2014 International Conference on IT Convergence and Security.Washington D.C., USA: IEEE Press, 2014: 1-5.
( ![]() |
[4] |
甘颖, 梁意文, 谭成予, 等. 基于危险理论的地震预测方法[J]. 计算机工程, 2019, 45(1): 278-283. ( ![]() |
[5] |
GREENSMITH J.Securing the internet of things with responsive artificial immune systems[C]//Proceedings of 2015 Annual Conference on Genetic and Evolutionary Computation.New York, USA: ACM Press, 2015: 113-120.
( ![]() |
[6] |
杨超.计算及免疫危险理论的数字微分方法[D].武汉: 武汉大学, 2012. http://cdmd.cnki.com.cn/article/cdmd-10486-1013151912.htm
( ![]() |
[7] |
GU FENG, GREENSMITH J, OATES R, et al.PCA 4 DCA: the application of principal component analysis to the dendritic cell algorithm[EB/OL].[2018-07-01].https: //arxiv.org/ftp/arxiv/papers/1004/1004.3460.pdf.
( ![]() |
[8] |
CHELLY Z, ELOUEDI Z.RC-DCA: a new feature selection and signal categorization technique for the dendritic cell algorithm based on rough set theory[C]//Proceedings of Artificial Immune Systems.Berlin, Germany: Springer, 2012: 152-165.
( ![]() |
[9] |
CHELLY Z, ELOUEDI Z.QR-DCA: a new rough data pre-processing approach for the dendritic cell algorithm[C]//Proceedings of Adaptive and Natural Computing Algorithms.Berlin, Germany: Springer, 2013: 140-150.
( ![]() |
[10] |
CHELLY Z, ELOUEDI Z.Improving the dendritic cell algorithm performance using fuzzy-rough set theory as a pattern discovery technique[C]//Proceedings of the 5th International Conference on Innovations in Bio-Inspired Computing and Applications.Berlin, Germany: Springer, 2014: 23-32.
( ![]() |
[11] |
蔡文学, 罗永豪, 张冠湘, 等. 基于GBDT与Logistic回归融合的个人信贷风险评估模型及实证分析[J]. 管理现代化, 2017(2): 1-4. DOI:10.3969/j.issn.1003-1154.2017.02.001 ( ![]() |
[12] |
CHEN Tianqi, GUESTRIN C.XGBoost: a scalable tree boosting system[C]//Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.New York, USA: ACM, 2016: 785-794.
( ![]() |
[13] |
MARTINEZ-DE-PISON F J, FRAILE-GARCIA E, FERREIRO-CABELLO J, et al.Searching parsimonious solutions with GA-PARSIMONY and XGBoost in high-dimensional databases[C]//Proceedings of International Joint Conference SOCO'16-CISIS'16-ICEUTE'16.Berlin, Germany: Springer, 2016: 201-210.
( ![]() |
[14] |
LUCKNER M, TOPOLSKI B, MAZUREK M.Application of XGBoost algorithmin fingerprinting localisation task[C]//Proceedings of IFIP International Conference on Computer Information Systems and Industrial Management.Berlin, Germany: Springer, 2017: 661-671.
( ![]() |
[15] |
兰晓然, 张灏, 李明, 等. 基于数据挖掘的手机用户换机行为预测研究[J]. 数学的实践与认识, 2017, 47(16): 71-80. ( ![]() |
[16] |
GREENSMITH J.The dendritic cell algorithm[D].Nottingham, UK: University of Nottingham, 2007.
( ![]() |