2. 中国科学院大学, 北京 101408;
3. 哈尔滨工业大学 电气工程及自动化学院, 哈尔滨 150001
2. University of Chinese Academy of Sciences, Beijing 101408, China;
3. School of Electrical Engineering and Automation, Harbin Institute of Technology, Harbin 150001, China
电力监控系统正面临信息化、数字化和智能化变革, 利用信息系统和物理系统的高度融合, 带来了“电力-信息-业务”的发展模式, 同时也为电力监控系统安全带来了新的挑战[1]. 由于用户站安全防护意识薄弱, 其安全防护能力主要依赖于专用的安防设备, 并且用户站安防人员多以运行和检修人员为主缺乏专业的安全防护技能. 目前, 影响能源行业的安全攻击事件和漏洞事件频繁出现, 大量针对能源行业的勒索病毒、蠕虫病毒等现代恶意代码为了躲避安全人员的审查多采用随机域名与命令和控制服务器(command and control server, C&C)进行通信, 这种通信方式可以有效对抗域名黑名单屏蔽和特征码检测. 这些问题使电力监控系统用户站处于巨大安全风险之中, 并且针对用户站的网络攻击事件甚至可以通过调度数据网从用户站蔓延至主站和其他用户站, 从而对整个电力监控系统造成巨大安全威胁. 为了解决用户站的安全防护问题, 有研究人员通过对网络流量进行检测来发现异常行为[2-6], 但是电力系统中海量的异构终端为流量数据的检测与分析带来巨大困难. 如何有效检测电力监控系统中面临的安全风险是很多研究人员都在思考的问题[7-9].
为了有效检测电力监控系统用户站面临的安全风险, 本文以随机域名为研究对象, 提出一种随机域名检测和主动防御技术相结合的方法, 用来提高用户站的安全防护能力. 本文提出的方法结合胶囊网络(capsule network, CapsNet)与长短期记忆网络(long short-term memory, LSTM)对随机域名进行检测, 同时使用主动防御技术对随机域名的恶意解析行为作出防御. 通过实验证明, 本文提出的CapsNet与LSTM融合的重建网络在随机域名检测的准确率上有明显提升, 达到99.16%. 并且主动防御技术可以对域名恶意解析行为做出有效防御.
1 随机域名检测研究现状目前, 对随即域名的检测方法以机器学习和深度学习为主流方法. 机器学习方法需要人工提取域名字符特征, 检测效果相对深度学习较差, 但是具有较强的可解释性; 深度学习无需人工提取特征, 检测效果好, 是目前域名检测领域应用最广泛的方法.
由于随机域名使用随机域名生成算法生成具有很大的随机性, 这很容易造成随机域名与正常域名存在统计差异, 因此使用机器学习传统方法从域名自身的角度出发进行分类检测可以有效检测出随机域名[10-13]. 郭向民等人以域名生成算法(domain generation algorithm, DGA)生成的域名为识别对象, 基于隐式马尔可夫模型对恶意域名进行聚类分析, 从而实现DGA域名判定[14]; 张洋等人提出一种基于多元属性特征的恶意域名检测方法, 该方法在词法特征方面提取更加细粒度的特征然后使用随机森林算法检测随机域名[15]. 于光喜等人设计了一种域名检测系统, 首先使用随机森林对域名进行分类分析, 然后使用聚类和集合分析方法对疑似恶意域名进一步检测, 降低系统误检率[16]. 机器学习虽然在随机域名检测方面取得令人满意的结果, 但是传统机器学习方法需要人工提取大量域名特征, 并且无法提取域名字符间的前后关系, 检测效果取决的特征工程的质量, 因此检测效率和检测精度较低.
从自然语言处理角度开展基于深度学习的DGA域名分类检测成为现在主流的解决方法[17]. Woodbridge 等人[18]设计了一种专门面向恶意域名的LSTM模型, 实现了对恶意域名的实时预测, 无需上下文信息且不用手工提取特征[19]. 陈立国等人提出一种基于门控循环单元(gate recurrent unit, GRU)的随机域名检测模型, 借助GRU自动学习域名向量特征, 最后通过神经网络计算分类[20]. 陈立皇等人则在GRU循环神经网络的基础上引入注意力机制, 加强域名中部分高随机性特征[21] . 张斌等人提出一种基于卷积神经网络(convolutional neural network, CNN)与LSTM相结合的域名检测模型, 该模型通过提取域名字符串中不同长度字符组合的序列特征进行恶意域名检测, 同时引入注意力机制为填充字符所处位置的输出特征分配较小权重, 降低填充字符对特征提取的干扰, 增强对长距离序列特征的提取能力[22]. 基于CNN提取域名字符串的组合特征, 然后使用LSTM充分挖掘域名字符串中字符上下文信息比单纯使用LSTM、GRU或CNN取得了更高的检测准确率, 但是CNN在识别空间关系特征时存在很大的局限性并且CNN的池化操作会丢失大量有价值的信息. 基于此, 本文提出一种结合CapsNet[23]和LSTM融合的域名检测模型, 该模型通过检测用户站中的随机域名并结合主动防御技术实现用户站的安全防护.
2 随机域名检测模型勒索病毒、蠕虫病毒等大量现代恶意代码为了保证与C&C服务器通信过程的隐蔽性和安全性使用DGA与C&C服务器建立通信. 为了隐藏真实的恶意域名, 恶意代码一次所产生的虚假域名数量高达上千. 为有效检测用户站中随机域名, 本文提出一种CapsNet和LSTM融合的域名检测模型检测随机域名, 模型结构示意图如图1所示. 模型分为输入层、特征提取层和输出层. 同时, 该模型结合主动防御技术对域名恶意解析行为做出防御.
本文随机域名检测模型使用的数据集中随机域名为26个恶意样本实际产生的随机域名, 正常域名为Alex网站排名前100万域名. 本文对域名的检测仅针对域名的二级域名, 例如google.com其二级域名为google.
2.1 输入层为了使神经网络能够处理域名数据需要首先将域名转换成向量. 本文中, 首先统计数据集中出现的所有字符形成字典, 然后对字典中的所有字符分配唯一索引. 对任意域名
特征提取层使用深度学习网络提取域名的字符组合和序列特征. 该层由词嵌入层、CapsNet和LSTM组成.
本文采用词嵌入方式将域名转换成向量, 与独热表示、矩阵表示等相比具有维度低、语义可计算等优势[24]. 经过向量化后的域名经过词嵌入层转换为一个向量序列 (w1, w2, w3, …, wL), wi
CapsNet用于提取域名字符串的空间特征, 将域名向量输入CapsNet, CapsNet首先使用一维卷积提取域名字符串中n-gram语法信息. 一维卷积通过尺寸为k, k∈{2, 3, 5}的卷积核ω, ω
$ {x_i} = \oplus \left( {{w_{i:i + k - 1}}} \right) $ | (1) |
$ {c_i} = g({x_i} \cdot u + b) $ | (2) |
$ {x_i}, u \in {\mathbb{R}^k}^{ \times d} $ |
其中,
T取值为3,
LSTM层用于提取域名字符串的单字符序列特征, 将经过词嵌入层的域名向量序列拼接成单个向量
最后, 本文将CapsNet的输出与LSTM的输出拼接输入到全连接层进行分类, 使用Sigmoid函数作为分类函数, 二元交叉熵作为损失函数, 使用Adam优化器最小化损失函数. 输出结果记作y, 其中y∈[0, 1]. 损失函数计算公式为:
$ L(\hat y, y) = - \frac{{\displaystyle\sum\limits_i^N {[{{\hat y}_i}\log {{\hat y}_i} + (1 - {y_i})\log (1 - {{\hat y}_i})]} }}{N} $ | (3) |
其中,
同时为了验证CapsNet的实际效果, 本文设计了消融实验即仅使用LSTM模型对随机域名进行检测, 将检测结果与CapsNet加LSTM模型的结果做对比, 来验证CapsNet对模型的实际贡献, LSTM模型结构如图2所示, 与CapsNet加LSTM模型结构相比, LSTM去除了卷积操作和胶囊神经网络. 经过向量化和词嵌入操作后仅使用LSTM对域名特征进行提取, 然后经过输出层以后输出检测结果.
3 实验及模型评估 3.1 数据源及数据预处理
本文实验所使用数据集由正常域名和随机域名两类域名组成, 其中随机域名来自26个恶意样本随机生成的域名共100万条, 类别标记为1; 正常域名来自Alex网站排名前70万域名, 类别标记为0. 本文首先统计域名中出现的所有唯一字符形成字典, 使用字典将域名向量化, 域名向量经过 Keras中的词嵌入层形成 63×128的张量作为神经网络的输入. 本文中数据集的80%用于训练, 20%用于测试.
3.2 模型参数设置本文提出的模型分为输入层、特征提取层和输出层. 输入层选用顺序结构, 将神经网络中神经元以顺序方式进行连接. 特征提取层首先使用embedding层进行字符级别的词嵌入, 嵌入维度d选择为128. 接着使用3个尺寸为k, k∈{2, 3, 5}的卷积核进行卷积操作, 神经元个数设置为64. 然后使用胶囊网络进行特征提取, 胶囊网络个数设置为64, 路由次数设置为3, 输出维度为128. 同时在特征提取层并行一个LSTM网络用于提取域名字符串中字符的上下文信息, 神经元个数设置为64, 为防止LSTM过拟合, 设置丢弃层, 丢弃率设置为0.5. 训练过程中batch_size和epochs分别设定为128和10.
3.3 模型评估为了评估本文提出的融合CapsNet和LSTM域名检测模型的效果, 将CNN模型、LSTM模型、CNN+LSTM模型与之做对比, 并使用传统机器学习分类方法K最近邻(K-nearest neighbor, KNN)、逻辑回归(logistic regression, LR)、决策树(decision tree, DT)等模型做参照.
从表1可以看出, 基于深度学习的分类模型性能要优于基于传统机器学习的分类方法. CNN检测模型通过卷积操作可以提取域名的n-gram语法信息, 但是需要设计更深层次的卷积网络提取更长距离的语法信息来提高准确率; LSTM检测模型可以提取域名字符串的序列特征, LSTM的F1-score比CNN提升了1个百分点, 准确率提升1个百分点, 说明通过提取域名字符串的序列特征可以提高准确率, 融合CNN和LSTM的模型相比较CNN模型和LSTM模型在准确率分别提升一个百分点和两个百分点. 同时对比CapsNet+LSTM与LSTM发现CapsNet+LSTM比单纯使用LSTM在召回率、精确率、准确率分别提高1, 2, 3个百分点. 表明CapsNet对模型提升效果明显.
为了更加直观的衡量不同模型的分类性能, 本文给出了不同模型的接收者操作特征(receiver operating characteristic, ROC)曲线, 如图3所示, ROC曲线下面积(area under ROC curve, AUC)越接近1代表检测模型的真实性越高.
由表1和图2可得, 本文提出的CapsNet结合LSTM的检测模型具有最高的检测准确率99%, 说明使用胶囊网络的动态路由替换CNN的池化操作可以有效减少信息的丢失达到较高的准确率; 同时本文提出的模型AUC面积达到0.999具有最高的检测真实性.
3.4 主动防御主动防御模块的作用是当随机域名检测模块检测到随机域名时根据随机域名解析结果作出主动防御以防止网络攻击事件进一步蔓延. 随机域名检测模型依次提取DNS流量中的域名, 使用白名单进行过滤, 接着随机域名检测模型对域名进行分类, 如果检测模型判定为随机域名则提取该域名对应的IP地址, 然后主动防御模块根据该IP地址通过Telnet协议更新交换机的访问控制列表(ACL), 阻止与该IP地址建立连接; 如果该域名被判定为正常域名继续分析下一条域名. 主动防御流程如图4所示.
4 结语
本文提出了一种结合随机域名检测和主动防御技术的电力监控系统用户站安全防护方法. 本文提出的方法可以从用户站DNS流量中检测出随机域名, 然后根据随机域名的解析结果利用主动防御技术进行恶意连接的阻断. 在随机域名检测阶段, 本文提出的检测模型首先将域名进行向量化处理然后对域名进行分类; 主动防御则根据随机域名检测的结果提取域名对应的网际协议(IP)地址并完成相对应IP地址恶意连接的阻断. 本文最后以用户站DNS流量数据对本文提出的方法进行验证, 实验结果表明, 使用CapsNet+LSTM模型成功在连续30天的DNS流量中检测出304条随机域名, 并成功更新2条交换机的ACL阻止了2次恶意连接, 检测效果最好; 单纯LSTM模型只检测出了268条随机域名, 效果次之; 而使用机器学习方法最好情况下也只检测出158条随机域名. 经过实际验证, CapsNet+LSTM的模型能够满足实际使用需求.
本文提出的方法可以在用户站不中断业务的情况下通过随机域名检测和主动防御技术解决其安全防护问题. 该方法与现有的用户站防护方案相比主要有以下优点: (1)针对用户站的安全防护现状提出了一种基于随机域名检测和主动防御结合的防护思路; (2)当发现用户站存在随机域名解析行为时可以做出主动防御措施来阻止恶意连接而不需要中断业务. 未来主要的工作为: 进一步提高现有检测引擎的准确性; 进一步缩短随即域名检测模型的训练时间.
[1] |
张露. 电力监控系统网络安全威胁溯源技术分析. 通信电源技术, 2020, 37(20): 48-49, 52. |
[2] |
杜浩良, 孔飘红, 金学奇, 等. 基于深度学习的电力信息网络流量异常检测. 浙江电力, 2021, 40(12): 117-123. DOI:10.19585/j.zjdl.202112016 |
[3] |
刘栋, 蒋正威, 朱英伟, 等. 基于LDSAD的电力监控系统网络流量异常检测. 浙江电力, 2022, 41(3): 87-92. DOI:10.19585/j.zjdl.202203011 |
[4] |
杨航, 刘益松, 刘贵恒, 等. 基于网络流量异常检测的电网工控系统安全监测技术. 电子技术与软件工程, 2020(22): 259-260. |
[5] |
李怡晨. 基于机器学习的电力工控网络流量异常检测技术研究[硕士学位论文]. 上海: 上海交通大学, 2019.
|
[6] |
刘亚丽, 孟令愚, 丁云峰. 电网工控系统流量异常检测的应用与算法改进. 计算机系统应用, 2018, 27(3): 173-178. DOI:10.15888/j.cnki.csa.006267 |
[7] |
刘博, 李梁, 刘军娜, 等. 新能源场站电力监控系统网络安全薄弱环节分析. 电工技术, 2021(18): 78-80. DOI:10.19768/j.cnki.dgjs.2021.18.026 |
[8] |
金学奇, 苏达, 毛南平, 等. 面向新能源场站的主动监视与预警技术研究. 浙江电力, 2019, 38(6): 106-112. DOI:10.19585/j.zjdl.201906018 |
[9] |
Gunduz MZ, Das R. Cyber-security on smart grid: Threats and potential solutions. Computer Networks, 2020, 169: 107094. DOI:10.1016/j.comnet.2019.107094 |
[10] |
Yadav S, Reddy AKK, Reddy ALN, et al. Detecting algorithmically generated malicious domain names. Proceedings of the 10th ACM SIGCOMM Conference on Internet Measurement. Melbourne: Association for Computing Machinery, 2010. 48–61.
|
[11] |
Schiavoni S, Maggi F, Cavallaro L, et al. Phoenix: DGA-based Botnet tracking and intelligence. Proceedings of the 11th International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment. Egham: Springer, 2014. 192–211.
|
[12] |
张维维, 龚俭, 刘茜, 等. 基于词素特征的轻量级域名检测算法. 软件学报, 2016, 27(9): 2348-2364. DOI:10.13328/j.cnki.jos.004913 |
[13] |
Truong DT, Cheng G. Detecting domain-flux Botnet based on DNS traffic features in managed network. Security and Communication Networks, 2016, 9(14): 2338-2347. DOI:10.1002/sec.1495 |
[14] |
郭向民, 梁广俊, 夏玲玲. 基于HMM的Domain-Flux恶意域名检测及分析. 信息网络安全, 2021, 21(12): 1-8. DOI:10.3969/j.issn.1671-1122.2021.12.001 |
[15] |
张洋, 柳厅文, 沙泓州, 等. 基于多元属性特征的恶意域名检测. 计算机应用, 2016, 36(4): 941-944, 984. DOI:10.11772/j.issn.1001-9081.2016.04.0941 |
[16] |
于光喜, 张棪, 崔华俊, 等. 基于机器学习的僵尸网络DGA域名检测系统设计与实现. 信息安全学报, 2020, 5(3): 35-47. DOI:10.19363/J.cnki.cn10-1380/tn.2020.05.04 |
[17] |
刘洋, 赵科军, 葛连升, 等. 一种基于深度学习的快速DGA域名分类算法. 山东大学学报(理学版), 2019, 54(7): 106-112. |
[18] |
Woodbridge J, Anderson HS, Ahuja A, et al. Predicting domain generation algorithms with long short-term memory networks. arXiv:1611.00791, 2016.
|
[19] |
吴警. 基于深度学习的恶意域名检测技术研究[硕士学位论文]. 北京: 中国人民公安大学, 2021.
|
[20] |
陈立国, 张跃冬, 耿光刚, 等. 基于GRU型循环神经网络的随机域名检测. 计算机系统应用, 2018, 27(8): 198-202. DOI:10.15888/j.cnki.csa.006466 |
[21] |
陈立皇, 程华, 房一泉. 基于注意力机制的DGA域名检测算法. 华东理工大学学报(自然科学版), 2019, 45(3): 478-485. DOI:10.14135/j.cnki.1006-3080.20180326002 |
[22] |
张斌, 廖仁杰. 基于CNN与LSTM相结合的恶意域名检测模型. 电子与信息学报, 2021, 43(10): 2944-2951. DOI:10.11999/JEIT200679 |
[23] |
Sabour S, Frosst N, Hinton GE. Dynamic routing between capsules. Proceedings of the 31st International Conference on Neural Information Processing Systems. Long Beach: Curran Associates Inc., 2017. 3859–3869.
|
[24] |
于政. 基于深度学习的文本向量化研究与应用[博士学位论文]. 上海: 华东师范大学, 2016.
|