留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

结合主动学习的威胁情报IOC识别方法

罗琴 杨根 刘智 唐宾徽

罗琴, 杨根, 刘智, 唐宾徽. 结合主动学习的威胁情报IOC识别方法[J]. 电子科技大学学报, 2023, 52(1): 108-115. doi: 10.12178/1001-0548.2022090
引用本文: 罗琴, 杨根, 刘智, 唐宾徽. 结合主动学习的威胁情报IOC识别方法[J]. 电子科技大学学报, 2023, 52(1): 108-115. doi: 10.12178/1001-0548.2022090
LUO Qin, YANG Gen, LIU Zhi, TANG Binhui. ICAL: A Threat Intelligence IOC Identification Method Combined with Active Learning[J]. Journal of University of Electronic Science and Technology of China, 2023, 52(1): 108-115. doi: 10.12178/1001-0548.2022090
Citation: LUO Qin, YANG Gen, LIU Zhi, TANG Binhui. ICAL: A Threat Intelligence IOC Identification Method Combined with Active Learning[J]. Journal of University of Electronic Science and Technology of China, 2023, 52(1): 108-115. doi: 10.12178/1001-0548.2022090

结合主动学习的威胁情报IOC识别方法

doi: 10.12178/1001-0548.2022090
基金项目: 国家自然科学基金(61902328);四川省重点研发计划(2022YFG0323)
详细信息
    作者简介:

    罗琴(1981 − ),女,博士,副研究员,主要从事网络空间安全与机器学习方面的研究

    通讯作者: 罗琴,E-mail: dorothy_lq@163.com
  • 中图分类号: TP391

ICAL: A Threat Intelligence IOC Identification Method Combined with Active Learning

  • 摘要: 威胁指标(IOC)作为网络威胁的特征描述,是识别和防御网络攻击的重要凭证。当前IOC识别主要依赖于神经网络模型,其效果取决于标注数据的数量。然而,目前IOC识别领域缺乏公认的数据集,且IOC的标注只能由安全专家手动完成,标注成本高,难以获取大量已标注数据。针对该问题,提出了一种结合主动学习的威胁情报IOC识别方法ICAL。该方法首先基于样本的代表性选择初始样本进行人工标注,然后基于聚类假设对聚类样本进行伪标注,最后基于样本的不确定性继续迭代标注,直到满足终止条件。使用CNNPLUS作为分类模型,在自构建的威胁情报数据集上进行实验。结果表明,相比于传统IOC自动识别策略,ICAL的识别准确率达到94.2%、召回率达到94.1%,同时减少了58%的人工标注工作量,具有较高的实用价值。
  • 图  1  ICAL整体筛选流程

    图  2  不同数据处理方法实验结果对比

    图  3  随机抽取不同数据量的实验结果对比

    表  1  威胁情报数据来源

    文章来源 情报数量/条
    https://www.mcafee.com/blogs/ 599
    https://securelist.com/ 39
    https://www.welivesecurity.com/ 117
    https://github.com/CyberMonitor/APT CyberCriminal Campagin Collections 529
    https://blog.trendmicro.com/ 465
    https://www.virusbulletin.com/blog/ 198
    https://blog.sucuri.net/ 107
    https://nakedsecurity.sophos.com/ 1 302
    总计 3 356
    下载: 导出CSV

    表  2  数据集中不同IOC结构数据分布

    类型 URL SHA256 SHA1 EMAIL IP MD5
    数量/条 2788 471 453 372 1034 382
    下载: 导出CSV

    表  3  不同初始样本选择策略实验结果对比

    初始样本选择策略 Accuracy Recall AUC
    随机采样策略 0.897 0.895 0.895
    密度聚类采样策略 0.937 0.936 0.935
    ICAL初始样本选择策略 0.942 0.941 0.940
    下载: 导出CSV

    表  4  ICAL与全量数据模型训练时间对比

    方法 数据量/条 时间/s
    全量数据 4 950 1 120
    ICAL策略 3 780 862
    下载: 导出CSV

    表  5  全量数据集下不同模型结果对比

    方法 Accuracy Recall AUC
    Bert+LSTM 0.941 0.940 0.941
    Bert+CNN 0.945 0.945 0.944
    Bert 0.944 0.944 0.943
    Bert+ATT 0.945 0.944 0.944
    Bert+RCNN 0.943 0.943 0.943
    Bert+CNNPLUS 0.946 0.945 0.945
    下载: 导出CSV

    表  6  ICAL数据筛选后不同模型结果对比

    方法 Accuracy Recall AUC
    Bert+LSTM 0.929 0.929 0.929
    Bert+CNN 0.940 0.938 0.938
    Bert 0.940 0.940 0.938
    Bert+ATT 0.940 0.940 0.940
    Bert+RCNN 0.940 0.939 0.940
    Bert+CNNPLUS 0.942 0.941 0.940
    下载: 导出CSV
  • [1] MOHAISEN A, AL-IBRAHIM O, KAMHOUA C, et al. Rethinking information sharing for threat intelligence[C]//Proceedings of the 5th ACM/IEEE Workshop on Hot Topics in Web Systems and Technologies. New York: ACM, 2017: 1-7.
    [2] 林玥, 刘鹏, 王鹤, 等. 网络安全威胁情报共享与交换研究综述[J]. 计算机研究与发展, 2020, 57(10): 2052-2065. doi:  10.7544/issn1000-1239.2020.20200616

    LIN Y, LIU P, WANG H, et al. Overview of threat intelligence sharing and exchange in cybersecurity[J]. Journal of Computer Research and Development, 2020, 57(10): 2052-2065. doi:  10.7544/issn1000-1239.2020.20200616
    [3] 黄克振, 连一峰, 冯登国, 等. 基于区块链的网络安全威胁情报共享模型[J]. 计算机研究与发展, 2020, 57(4): 836-846. doi:  10.7544/issn1000-1239.2020.20190404

    HUANG K Z, LIAN Y F, FENG D G, et al. Cyber security threat intelligence sharing model based on blockchain[J]. Journal of Computer Research and Development, 2020, 57(4): 836-846. doi:  10.7544/issn1000-1239.2020.20190404
    [4] SETTANNI G, SHOVGENYA Y, SKOPIK F, et al. Acquiring cyber threat intelligence through security information correlation[C]//2017 3rd IEEE International Conference on Cybernetics (CYBCONF). Piscataway: IEEE, 2017: 1-7.
    [5] KUROGOME Y, OTSUKI Y, KAWAKOYA Y, et al. EIGER: Automated IOC generation for accurate and interpretable endpoint malware detection[C]//Proceedings of the 35th Annual Computer Security Applications Conference. New York: ACM, 2019: 687-701.
    [6] RUDMAN L, IRWIN B. Dridex: Analysis of the traffic and automatic generation of IOCs[C]//2016 Information Security for South Africa (ISSA). Piscataway: IEEE, 2016: 77-84.
    [7] DARLING M, HEILEMAN G, GRESSEL G, et al. A lexical approach for classifying malicious URLs[C]//2015 International Conference on High Performance Computing & Simulation (HPCS). Piscataway: IEEE, 2015: 195-202.
    [8] BENJAMIN V, LI W, HOLT T, et al. Exploring threats and vulnerabilities in hacker web: Forums, IRC and carding shops[C]//2015 IEEE International Conference on Intelligence and Security Informatics (ISI). Piscataway: IEEE, 2015: 85-90.
    [9] LIAO X, YUAN K, WANG X F, et al. Acing the ioc game: Toward automatic discovery and analysis of open-source cyber threat intelligence[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. New York: ACM, 2016: 755-766.
    [10] PANWAR A. IGEN: Toward automatic generation and analysis of indicators of compromise (IOCS) using convolutional neural network[D]. Phoenix: Arizona State University, 2017.
    [11] XUN S, LI X, GAO Y. AITI: An automatic identification model of threat intelligence based on convolutional neural network[C]//Proceedings of the 2020 the 4th International Conference on Innovation in Artificial Intelligence. New York: ACM, 2020: 20-24.
    [12] ZHU Z, DUMITRAS T. Chainsmith: Automatically learning the semantics of malicious campaigns by mining threat intelligence reports[C]//2018 IEEE European Symposium on Security and Privacy (EuroS&P). Piscataway: IEEE, 2018: 458-472.
    [13] 范纯龙, 王翼新, 宿彤, 等. 基于样本冗余度的主动学习优化方法[J]. 计算机应用与软件, 2021, 38(3): 291-297. doi:  10.3969/j.issn.1000-386x.2021.03.044

    FAN C L, WANG Y X, SU T, et al. Active learning optimization method based on sample redundancy[J]. Computer Application and Software, 2021, 38(3): 291-297. doi:  10.3969/j.issn.1000-386x.2021.03.044
    [14] KEE S, DEL CASTILLO E, RUNGER G. Query-by-committee improvement with diversity and density in batch active learning[J]. Information Sciences, 2018, 454: 401-418.
    [15] 徐海龙, 别晓峰, 冯卉, 等. 一种基于 QBC 的 SVM 主动学习算法[J]. 系统工程与电子技术, 2015, 37(12): 2865-2871. doi:  10.3969/j.issn.1001-506X.2015.12.31

    XU H L, BIE X F, FENG H, et al. Active learning algorithm for SVM based on QBC[J]. Systems Engineering and Electronics, 2015, 37(12): 2865-2871. doi:  10.3969/j.issn.1001-506X.2015.12.31
    [16] 胡峰, 张苗, 于洪. 基于三支决策的主动学习方法[J]. 控制与决策, 2019, 34(4): 718-726. doi:  10.13195/j.kzyjc.2017.1342

    HU F, ZHANG M, YU H. An active learning method based on three-way decision model[J]. Control and Decision, 2019, 34(4): 718-726. doi:  10.13195/j.kzyjc.2017.1342
    [17] 毛蔚轩, 蔡忠闽, 童力. 一种基于主动学习的恶意代码检测方法[J]. 软件学报, 2017, 28(2): 384-397. doi:  10.13328/j.cnki.jos.005061

    MAO W X, CAI Z M, TONG L. Malware detection method based on active learning[J]. Journal of Software, 2017, 28(2): 384-397. doi:  10.13328/j.cnki.jos.005061
    [18] COLETTA L F S, PONTI M, HRUSCHKA E R, et al. Combining clustering and active learning for the detection and learning of new image classes[J]. Neurocomputing, 2019, 358: 150-165. doi:  10.1016/j.neucom.2019.04.070
    [19] ZENG W, LIU Z, YANG Y, et al. QBC inconsistency-based threat intelligence ioc recognition[J]. IEEE Access, 2021, 9: 153102-153107. doi:  10.1109/ACCESS.2021.3128070
    [20] HÜLLERMEIER E, WAEGEMAN W. Aleatoric and epistemic uncertainty in machine learning: An introduction to concepts and methods[J]. Machine Learning, 2021, 110(3): 457-506. doi:  10.1007/s10994-021-05946-3
  • [1] 李海林, 张丽萍.  时间序列数据挖掘中的聚类研究综述 . 电子科技大学学报, 2022, 51(3): 416-424. doi: 10.12178/1001-0548.2022055
    [2] 张林兵, 郭强, 吴行斌, 梁耀洲, 刘建国.  基于多维行为分析的用户聚类方法研究 . 电子科技大学学报, 2020, 49(2): 315-320. doi: 10.12178/1001-0548.2018212
    [3] 钱志森, 黄瑞章, 魏琴, 秦永彬, 陈艳平.  半监督语义动态文本聚类算法 . 电子科技大学学报, 2019, 48(6): 803-808. doi: 10.3969/j.issn.1001-0548.2019.06.001
    [4] 李海林, 魏苗.  自适应属性加权近邻传播聚类算法 . 电子科技大学学报, 2018, 47(2): 247-255. doi: 10.3969/j.issn.1001-0548.2018.02.014
    [5] 于娟, 曹晓.  基于百科词条的本体概念聚类方法研究 . 电子科技大学学报, 2017, 46(3): 636-640. doi: 10.3969/j.issn.1001-0548.2017.03.026
    [6] 吴一全, 李海杰, 宋昱.  基于引导核聚类的非局部均值图像去噪算法 . 电子科技大学学报, 2016, 45(1): 36-42. doi: 10.3969/j.issn.1001-0548.2016.01.005
    [7] 杨燕, 冯晨菲, 贾真, 王红军.  基于链接的模糊聚类集成方法 . 电子科技大学学报, 2014, 43(6): 887-892. doi: 10.3969/j.issn.1001-0548.2014.06.016
    [8] 朱郁筱, 吕琳媛.  推荐系统评价指标综述 . 电子科技大学学报, 2012, 41(2): 163-175. doi: 10.3969/j.issn.1001-0548.2012.02.001
    [9] 曾翎, 王美玲, 陈华富.  遗传模糊C-均值聚类算法应用于MRI分割 . 电子科技大学学报, 2008, 37(4): 627-629.
    [10] 舒红平, 徐振明, 邹书蓉, 何嘉.  网格聚类在多雷达数据融合算法中的应用 . 电子科技大学学报, 2007, 36(6): 1253-1256.
    [11] 姜斌, 潘景昌, 郭强, 衣振萍.  PCA和相融性度量在聚类算法中的应用 . 电子科技大学学报, 2007, 36(6): 1292-1295.
    [12] 郑晓鸣, 吕士颖, 王晓东.  免疫接种粒子群的聚类算法 . 电子科技大学学报, 2007, 36(6): 1264-1267.
    [13] 牛强, 夏士雄, 周勇, 张磊.  改进的模糊C-均值聚类方法 . 电子科技大学学报, 2007, 36(6): 1257-1259,1272.
    [14] 祝金荣, 胡望斌.  聚类电价预测方法研究 . 电子科技大学学报, 2007, 36(6): 1278-1281.
    [15] 朵春红, 王翠茹.  网格和密度的聚类算法在CRM中的应用 . 电子科技大学学报, 2007, 36(6): 1289-1291,1314.
    [16] 董韵涵, 杨万麟.  改进最优聚类中心雷达目标识别法 . 电子科技大学学报, 2006, 35(2): 183-185,192.
    [17] 耿技, 印鉴.  改进的共享型最近邻居聚类算法 . 电子科技大学学报, 2006, 35(1): 70-72.
    [18] 叶茂, 陈勇.  基于分布模型的层次聚类算法 . 电子科技大学学报, 2004, 33(2): 171-174.
    [19] 李秀森, 韩静轩, 马力.  增长因素为聚类变量的因素分析 . 电子科技大学学报, 2002, 31(2): 204-206.
    [20] 唐寅, 杨睿, 宫亚峰.  一类基于KTC的主动节点密钥建立协议 . 电子科技大学学报, 2002, 31(5): 456-459.
  • 加载中
图(3) / 表(6)
计量
  • 文章访问数:  4315
  • HTML全文浏览量:  1248
  • PDF下载量:  58
  • 被引次数: 0
出版历程
  • 收稿日期:  2021-07-21
  • 修回日期:  2021-10-15
  • 网络出版日期:  2023-01-13
  • 刊出日期:  2023-01-25

结合主动学习的威胁情报IOC识别方法

doi: 10.12178/1001-0548.2022090
    基金项目:  国家自然科学基金(61902328);四川省重点研发计划(2022YFG0323)
    作者简介:

    罗琴(1981 − ),女,博士,副研究员,主要从事网络空间安全与机器学习方面的研究

    通讯作者: 罗琴,E-mail: dorothy_lq@163.com
  • 中图分类号: TP391

摘要: 威胁指标(IOC)作为网络威胁的特征描述,是识别和防御网络攻击的重要凭证。当前IOC识别主要依赖于神经网络模型,其效果取决于标注数据的数量。然而,目前IOC识别领域缺乏公认的数据集,且IOC的标注只能由安全专家手动完成,标注成本高,难以获取大量已标注数据。针对该问题,提出了一种结合主动学习的威胁情报IOC识别方法ICAL。该方法首先基于样本的代表性选择初始样本进行人工标注,然后基于聚类假设对聚类样本进行伪标注,最后基于样本的不确定性继续迭代标注,直到满足终止条件。使用CNNPLUS作为分类模型,在自构建的威胁情报数据集上进行实验。结果表明,相比于传统IOC自动识别策略,ICAL的识别准确率达到94.2%、召回率达到94.1%,同时减少了58%的人工标注工作量,具有较高的实用价值。

English Abstract

罗琴, 杨根, 刘智, 唐宾徽. 结合主动学习的威胁情报IOC识别方法[J]. 电子科技大学学报, 2023, 52(1): 108-115. doi: 10.12178/1001-0548.2022090
引用本文: 罗琴, 杨根, 刘智, 唐宾徽. 结合主动学习的威胁情报IOC识别方法[J]. 电子科技大学学报, 2023, 52(1): 108-115. doi: 10.12178/1001-0548.2022090
LUO Qin, YANG Gen, LIU Zhi, TANG Binhui. ICAL: A Threat Intelligence IOC Identification Method Combined with Active Learning[J]. Journal of University of Electronic Science and Technology of China, 2023, 52(1): 108-115. doi: 10.12178/1001-0548.2022090
Citation: LUO Qin, YANG Gen, LIU Zhi, TANG Binhui. ICAL: A Threat Intelligence IOC Identification Method Combined with Active Learning[J]. Journal of University of Electronic Science and Technology of China, 2023, 52(1): 108-115. doi: 10.12178/1001-0548.2022090
  • 近几年,安全威胁的数量迅速增加,给企业的安全管理带来了巨大的压力。当系统受到威胁并做出响应时,所收集的信息对于遭受类似威胁的其他人是有价值的,这使得威胁情报共享成为检测和防御攻击的重要手段。因此威胁情报引起了学术界和工业界的广泛关注, 当前已有针对威胁情报共享机制[1-3]、威胁关联分析[4]等研究方向的探索。

    威胁指标(indicators of compromise, IOC)作为网络威胁的行为特征描述,不仅包括IP等静态信息,还包含恶意软件运行时的动态特征。因此,通过提取网络威胁情报中的IOC,结合企业间的信息共享和集体协作,建立一个新的快速检测和快速反应保护系统,是应对当前日益增加的网络攻击的有效手段。

    当前针对IOC自动提取已有大量研究工作,文献[5-6]通过搭建沙盒模拟真实的网络环境,收集恶意样本运行过程中产生的行为信息并进行分析,从而生成IOC。这种方法虽然可靠性高,但危险性也很高,且难以获取大量IOC数据。当前IOC提取领域的研究重点是如何从非结构化文本信息中识别和提取IOC。文献[7]基于URL中的词汇特征构建分类系统,可以用于检测网络钓鱼和恶意域。文献[8]将机器学习方法与信息检索技术相结合,实现黑客论坛中威胁情报的识别和提取。文献[9]提出通过构建上下文词库,采用一种图挖掘技术自动化识别IOC的方法iACE。这些方法具有较高的精度和显著的性能优势。然而,这些方法的泛化能力较低,过于依赖网络安全专业词库和特征匹配规则库的手工编制和维护,需要大量的人力物力进行前期准备。为此,文献[10]提出了一种利用卷积神经网络实现IOC的识别系统iGen。文献[11]在iGen的基础上引入BERT作为词向量。文献[12]提出通过语法和语义两个方面构建分类器实现IOC识别。这些工作通过训练神经网络实现IOC自动识别,无需依赖人工构造的上下文词库,也无需严格依赖书写语句语法的规范性,具有较好的效果。但这些工作忽略了神经网络依赖大量已标注训练数据,而IOC识别领域数据标注成本高的问题。

    威胁情报领域与其他领域不同,缺乏公认的数据集。这是因为IOC数据的标注只能通过安全专家手动完成,标注成本极高。之前的工作大多采用神经网络作为分类模型,然而由于成本限制,实验数据集往往较小。如iGen中采用5000个IOC语句和2500个非IOC语句训练和测试模型;iACE中采用1500个IOC语句和3000个非IOC语句训练和测试模型;而在AITI中,实验数据集仅包括3564个句子。数据标注成本高的问题成为了限制IOC识别领域发展的重要因素。

    主动学习(active learning)[13-14]是指主动选择最有价值的样本进行标注,试图通过最少的样本训练出与预期性能相符合的模型。文献[15]利用SVM 模型将样本到分类超平面的距离作为选点依据,利用置信度减少相似样本选择。文献[16]以模型预测概率的差值作为不确定度量来筛选样本进行标注。文献[17]通过结合样本间最大距离和最小化估计风险筛选样本实现对恶意代码的检测。除此之外,文献[18-20]提出使用样本不确定性和样本相似性来提高主动学习抽样的有效性。这些方法虽然一定程度上解决了模型迭代时的数据选择问题,但初始样本选择仍具有盲目性。随机初始化模型或者随机采样部分数据进行人工标注来实现模型初始化的方法无法确定初始样本数量,也无法保证最终效果。以模型分类效果作为迭代终止条件的方法也不能很好的适用于威胁情报领域。

    因此,为了解决IOC识别中所存在的数据标注成本高的问题,本文在IOC识别领域引入主动学习方法,提出了一种结合主动学习的威胁情报IOC识别方法ICAL(IOC identification combined with active learning)。首先,针对于传统主动学习初始样本选择具有盲目性的问题,提出了一种基于样本代表性的初始样本选择策略,实现了自动化确定初始样本集大小和选取范围。其次,提出对未标注数据进行伪标注从而实现初始样本集的有效扩展。再次,针对威胁情报领域数据特点,提出通过设置样本信息熵阈值,有效获取高不确定性样本。最后,提出设置样本更新量阈值作为终止条件,及时停止迭代标注,避免后续低效标注。该方法解决了在标注成本较高的情况下,如何有效实现IOC识别的难题。

    • ICAL整体筛选流程分为6个步骤,具体框架如图1所示。

      1)对未标注样本进行密度聚类,得到i个簇和j条噪声点样本。所有样本分为簇中数据集C={C1,C2,···,Ci}和噪声点数据集N={N1,N2,···,Nj}两部分。

      2) 从C1中随机筛选一条样本进行人工标注。同时,根据半监督学习中的聚类假设,聚类簇中样本具有较高相似度,很大概率有相同的类标签。由此对C1中所有数据添加相同的伪标注。

      3) 将步骤2)重复进行i次,仅标注i条数据,完成对C中所有数据的标注工作。然后将所有已标注样本加入已标注样本集L1,所有噪声点数据都加入未标注样本集U1

      4) 将已标注样本集L1作为训练集,利用随机森林作为分类器进行模型训练。并将未标注样本集U1作为测试集进行分类概率预测。

      5) 根据预测结果,基于信息熵进行数据筛选。将筛选出的数据进行人工标注并更新到L1中,构成已标注样本集L2。同时将数据从U1中移除,构成未标注样本集U2

      6) 当筛选出的数据量少于数据总量的1%时,标注结束。反之,将已标注样本集L2作为训练集,未标注样本集U2作为测试集,重复步骤4)~6)。

      图  1  ICAL整体筛选流程

    • 对于传统主动学习初始样本选择具有盲目性的问题,ICAL提出了一种基于样本代表性的初始样本选择策略,实现了自动化确定初始样本集大小和选取范围。同时,提出了通过伪标注实现初始样本集的有效扩展。基于样本代表性的初始样本选择策略如算法1所示。

      算法 1 基于样本代表性的初始样本选择策略

      输入:原始数据集O

      输出:已标注样本集L,未标注样本集U

      使用密度聚类算法对原始数据集O进行聚类,得到聚类簇数据集C和噪声点数据集N

      for CiC do

        a = random(Ci) // 从簇Ci中随机选择一条数据a

        al= lable(a) // 对a进行人工标注,得到标签al

        for (bCi) do

          bl = al // 对簇中所有数据打上相同标签

          L.add(b, bl) //添加到已标注样本集L

        end for

      end for

      for (cN) do

        U.add(c) // 添加到未标注样本集U

      end for

      return L and U

      为了从原始数据集中获取具有代表性的数据作为初始样本集,首先,ICAL针对原始样本集进行密度聚类处理。通过对句向量聚类,相似度高的语句会被聚在一类。然后采用多子类抽样,从每一类中分别选出一条数据进行标注。多子类抽样能够有效确保样本的差异性和代表性,使人工标注的收益最大化。人工标注完成后,按照同一子类中所有数据标签相同的原则,对所有子类中的数据实现伪标注,实现初始样本集的有效扩展。

      主动学习中最常用的聚类算法包括K均值聚类(K-means clustering, K-Means)和基于密度的噪声空间聚类算法(density-based spatial clustering algorithm with noise, DBSCAN)。

      本文选择DBSCAN算法作为初始聚类算法,因为与划分和层次聚类方法不同,DBSCAN将空间中紧密堆积在一起的点聚集为簇,将单独位于低密度区域的点标注为异常值。因此DBSCAN可以发现任意形状的聚类。与K均值聚类算法相比,DBSCAN不需要指定簇的数量,并且对于数据集中的异常点不敏感,更适用于威胁情报领域。

      DBSCAN主要包含扫描半径(eps)和最小包含点数(MinPts)两个参数。为了尽量对所有相似数据进行聚类,ICAL将最小包含点数设为2,这表示对于数据集中的任意一点来说,只要在扫描半径内存在另一点,那么这些点就会被划分为一个簇。

      DBSCAN计算对象点的eps邻域时,采用的是最近邻度量策略。而常见的个体差异度量包含两种,一种是距离度量(欧式距离),另一种是相似度度量(余弦距离)。

      本文采用余弦距离作为距离度量。因为相比欧氏距离,余弦距离更加注重两个向量在方向上的差异,能够更好地关注于句子的语义差异。余弦距离公式为:

      $$ {D_C}\left( {{\boldsymbol{A}},{\boldsymbol{B}}} \right) = 1 - {S_C}\left( {{\boldsymbol{A}},{\boldsymbol{B}}} \right) $$ (1)

      式中,AB为向量;DC表示AB之间的余弦距离;SC表示AB之间的相似度,其中相似度的计算公式为:

      $$ {S_C} = \frac{{{\boldsymbol{A}} \cdot {\boldsymbol{B}}}}{{\left| {\boldsymbol{A}} \right|\left| {\boldsymbol{B}} \right|}} = \frac{{\displaystyle\sum\limits_{i = 1}^n {{A_i} {B_i}} }}{{\sqrt {\displaystyle\sum\limits_{i = 1}^n {{{ {{A_i}} }^2}} } \sqrt {\displaystyle\sum\limits_{i = 1}^n {{{ {{B_i}} }^2}} } }} $$ (2)

      式中,AiBi是向量AB的分量。扫描半径需要根据数据分布情况来设定,不同的扫描半径对最终的模型训练影响较大。

      完成未标注数据的聚类后,依次从每个子类中随机抽取一条数据进行人工标注。同时,依据半监督学习中的聚类假设(cluster assumption):聚类簇中样本具有较高相似度,很大概率下有相同的类标签。因此,依据每个子类中已标注的一条数据,就可以对整个子类中的所有数据打上相同的伪标签。而经过实验分析,扫描半径设置为0.03时,仍能保证聚类簇中标签的一致性。

      通过上述操作,实现了对密度聚类簇中所有数据的标注,剩下的噪声点数据之间相似度较低,且都未标注。在许多领域中,考虑到实际的计算能力以及效果,大都会对数据进行去噪处理,直接过滤噪声数据。按照ICAL所提出的聚类策略对威胁情报数据进行密度聚类时,近50%的数据被划分为了噪声点。而噪声点并非错误值,同样是真实情况的表现,之所以在进行密度聚类时被认为异常,只是因为数据量不够大。所以本文没有轻易删除掉噪声点数据,而是通过基于样本不确定性的迭代选择策略将噪声点纳入模型训练。

    • 为了从噪声点数据中进一步筛选出部分数据,ICAL提出一种基于不确定性的迭代选择策略。具体流程如算法2所示。

      算法 2 基于样本不确定性的迭代选择策略

      输入:已标注样本集L,未标注样本集U,初始随机森林模型R

      输出:最终已标注样本集L,最终未标注样本集U

      while 增加量小于总量的1% do

        R.train(L) //使用已标注数据L训练模型R

       for (jU) do

         aj= R.predict_proba(j) //使用模型R预测j属于每个类别的概率

         hj= H(aj) // 计算j的信息熵hj

        if (hj > 0.9) then

          jl= lable(j) // 对j进行人工标注,得到标签jl

          L.add(j, jl) // 添加到已标注样本集L

          U.del(j) // 从未标注样本集U中删除

        end if

       end for

      end while

      return L and U

      信息熵是从热力学概念而来,代表了系统的混乱程度。信息熵H的计算方法为:

      $$ H = - \sum\limits_i {{p_i}\log \left( {{p_i}} \right)} $$ (3)

      式中,pi为每一种可能的情况发生的概率,对数的底数决定了信息熵的单位,一般以2为底数。变量的不确定性越大,熵也就越大。而信息不确定性越大时,对于模型来说该信息的价值越高。

      在选择迭代数据时,ICAL优先对未标注数据中信息熵较高的数据进行人工标注。为此,ICAL采用初始样本进行模型训练,然后对未标注噪声数据进行概率预测并计算对应的信息熵值。ICAL将信息熵阈值设为0.9。熵值大于0.9的样本会在进行人工标注后加入已标注样本集,小于或等于0.9的样本仍被保留在未标注样本集中。

      传统主动学习中,常常以准确率和总体数据量作为迭代终止的判断指标。在威胁情报领域,由于训练集和测试集关联度不高且数据分布不同,随机森林的分类效果具有很高的随机性,因此不能将模型准确率作为终止条件。ICAL中采用筛选出的样本量作为终止条件,这是因为每次迭代选取的数据量越少,对模型产生的影响也就越小。ICAL将数据量的阈值设为数据总量的1%,当筛选出的样本量少于总量的1%,则停止迭代。

      ICAL首先通过多子类抽样从密度聚类结果中筛选出具有高代表性的数据作为初始样本进行人工标注。然后通过代表数据的标签对子类中其他数据进行扩展伪标注。最后通过已标注数据迭代选择剩余未标注数据中具有高不确定性的数据继续进行人工标注,直到满足迭代终止条件后停止。通过这一系列流程成功减少了数据标注量,同时尽可能保留了数据中的重要数据。

    • 目前威胁情报分析领域缺乏标准数据集,为此本文构建了一个用于模型训练和测试的数据集。表1中的8个数据源收集了来自不同安全组织的529篇安全报告和2827篇博客文章。提取文本后,使用NLTK分句器对文本进行分句处理,然后使用正则表达式匹配出所有包含疑似IOC结构的句子。

      表 1  威胁情报数据来源

      文章来源 情报数量/条
      https://www.mcafee.com/blogs/ 599
      https://securelist.com/ 39
      https://www.welivesecurity.com/ 117
      https://github.com/CyberMonitor/APT CyberCriminal Campagin Collections 529
      https://blog.trendmicro.com/ 465
      https://www.virusbulletin.com/blog/ 198
      https://blog.sucuri.net/ 107
      https://nakedsecurity.sophos.com/ 1 302
      总计 3 356

      本文根据当前已知的IOC类型,从中选取了URL、SHA256、SHA1、EMAIL、IP和MD5这6种常见且较为重要的IOC结构作为实验数据集。值得注意的是,本文并没有将漏洞(common vulnerabilities & exposures, CVE)加入数据集,因为漏洞编号有着独特的结构,可以直接采用正则匹配进行提取。

      通过正则匹配,本文提取出5 500条疑似IOC的句子,包含2 461条IOC句子和3 039条非IOC句子。数据集中不同IOC结构的数据量如表2所示。

      表 2  数据集中不同IOC结构数据分布

      类型 URL SHA256 SHA1 EMAIL IP MD5
      数量/条 2788 471 453 372 1034 382
    • 实验在Ubuntu 16.04的服务器上运行,使用RTX2080Ti GPU。

      为了保证结果的可信性,采用十折交叉验证进行实验。数据总量5 500条,划分为10份,每份550条数据。实验时依次选取九份(4 950条)作为训练集,剩余一份(550条)作为测试集。使得每份数据都能作为测试集,提高实验结果的可信性。

    • 本文采用了准确率(Accuracy)、召回率(Recall)和AUC作为评价指标。具体计算方式为:

      $$ {\text{Accuracy = }}\frac{{{\text{TP + TN}}}}{{{\text{TP + TN + FP + FN}}}} $$ (4)
      $$ {{\rm{Recall}}} = \frac{{{\rm{TP}}}}{{{\rm{TP}} + {\rm{FN}}}} $$ (5)

      式中,TP表示将正类预测为正类的数量;TN表示将负类预测为负类的数量;FP表示将负类预测为正类的数量;FN表示将正类预测为负类的数量。

      AUC(area under curve)是ROC曲线的面积,越大意味着分类器效果越好。其中ROC(receiver operating characteristic)曲线是以假正率(false positive rate, FPR)和真正率(true positive rate, TPR)为轴的曲线。真正率计算方法为:

      $$ {\text{TPR = }}\frac{{{\text{TP}}}}{{{\text{TP + FN}}}} $$ (6)

      代表分类器预测的正类中实际正实例占所有正实例的比例。假正类率计算方法为:

      $$ {\text{FPR = }}\frac{{{\text{FP}}}}{{{\text{FP + FN}}}} $$ (7)

      代表分类器预测的正类中实际负实例占所有负实例的比例。

    • 在构建的数据集上分别采用3种初始数据选择策略进行实验,具体实验结果如下。

      1) 随机采样策略:由于随机采样数量不确定,为了保证对比效果,选取约870条数据进行人工标注。在后续的迭代标注中,随机采样策略从数据中选取了约200条数据,总共标注约1 078条数据,标注占比约21.8%。

      2) 密度聚类采样策略:经过密度聚类处理,得到约870个聚类簇。然后从每个簇中随机选择一条数据进行人工标注,得到约870条标注数据。再运用迭代选择策略从数据中选取约1 380条数据,总计标注约2 250条数据,标注占比约45.5%。

      3) ICAL初始样本选择策略:ICAL所提出的初始样本选择策略包含密度聚类和伪标注处理。经过密度聚类处理,标注得到约870条数据,伪标注后得到约2 500条已标注数据。然后运用迭代选择策略从剩余约2 450条未标注数据中选取约1230条数据,总计标注约2 100条数据,标注占比约42%。经过伪标注处理,总计得到3 780条已标注数据。

      使用3种初始数据选择策略所筛选出的数据分别进行实验,实验结果如表3所示。ICAL的初始选择策略在准确率和召回率上都取得了最好的效果。以准确率为例,ICAL比只采用密度聚类选择数据的效果高0.5%,比传统的随机采样策略高4.5%。这是因为密度聚类策略是先进行密度聚类,再从每一个聚类簇中选择一条数据进行人工标注。与随机选择的数据相比,经过密度聚类筛选的数据更加具有代表性;在训练随机森林模型时,模型分类准确率也更高;在后续迭代选择时,密度聚类策略也能够更加准确的从未标注数据中迭代选择出具有高不确定性的数据。

      表 3  不同初始样本选择策略实验结果对比

      初始样本选择策略 Accuracy Recall AUC
      随机采样策略 0.897 0.895 0.895
      密度聚类采样策略 0.937 0.936 0.935
      ICAL初始样本选择策略 0.942 0.941 0.940

      ICAL通过密度聚类策略实现了自动化确定初始样本集,有效解决了初始样本选择具有盲目性的问题。在此基础上,通过伪标注策略实现了初始样本扩展,能够通过增加训练数据量的方式加强模型训练效果。而且由于聚类方式的独特性,基本不会出现错误标注。

    • 经过ICAL筛选,累计从数据集中选择出42%的数据进行人工标注。为了验证该方法的有效性,本文以全量数据为基准,采用ICAL和随机采样的方法分别选取42%的数据进行实验。3种数据选择方法的实验结果如图2所示。

      图  2  不同数据处理方法实验结果对比

      图2中可以看出,与全量数据相比,ICAL减少了58%的数据标注量,模型准确率达到94.2%,取得较好效果。由此说明ICAL能够在降低58%的数据标注工作量的情况下,达到与全量数据相近的模型分类效果。同样选取42%的数据时,ICAL比随机采样的准确率高1.82%,验证了ICAL数据选择的有效性。由此说明在获取相同量数据时,ICAL所选取数据的模型分类效果优于随机抽取。

      为了进一步验证ICAL的效果,本文继续随机抽取更多数据来对比分类效果。从40%的数据开始,每次增加10%的数据,多次进行实验后,实验结果如图3所示。

      图  3  随机抽取不同数据量的实验结果对比

      图中,虚线为ICAL选取42%的数据的实验结果。随着随机抽取数据量的不断增加,模型分类效果也在不断加强。在抽取数量达到90%时,准确率接近于ICAL抽取42%数据的准确率。由此说明与随机抽取相比较,ICAL能够从未标注数据中筛选出对模型训练较为重要的数据。

    • 与常用的IOC识别模型训练策略相比,ICAL在相近的模型分类效果下,减少了58%的数据标注工作量,降低了模型训练成本。同时,由于模型训练数据量减少,模型训练时间同样减少。如表4所示,经过ICAL处理,从全量数据中标注得到约3780条数据,与全量数据相比,模型训练时间减少23%。ICAL在模型训练时间成本上也具有优越性。

      表 4  ICAL与全量数据模型训练时间对比

      方法 数据量/条 时间/s
      全量数据 4 950 1 120
      ICAL策略 3 780 862
    • 为了验证ICAL主动学习策略的适用性,本文选取了自然语言处理领域的几种流行方法:CNN(convolutional neural network)、LSTM(long short-term memory)、ATT(attention mechanism)、RCNN(regions with CNN features)和CNNPLUS分别进行实验。首先采用构建的全量数据集进行实验,实验结果如表5所示。在构建的数据集中,CNNPLUS的准确率达到94.6%,召回率达到94.5%,AUC得分达到0.945,优于上述所有模型的结果,具有最好的分类性能。在采用Bert作为词嵌入模型的情况下,总体来说,各个模型的分类效果差距不大,分类效果最好的CNNPLUS和最差的LSTM也只相差了0.5%。

      表 5  全量数据集下不同模型结果对比

      方法 Accuracy Recall AUC
      Bert+LSTM 0.941 0.940 0.941
      Bert+CNN 0.945 0.945 0.944
      Bert 0.944 0.944 0.943
      Bert+ATT 0.945 0.944 0.944
      Bert+RCNN 0.943 0.943 0.943
      Bert+CNNPLUS 0.946 0.945 0.945

      从原始数据集中通过ICAL策略筛选出部分数据后,再次进行实验,实验结果如表6所示。

      经过主动学习选择标注,数据量减少了58%左右,模型分类效果也出现了一定程度的下降。以准确率为例,除了LSTM下降较多,达到了1.2%,其他的几个分类模型都只有轻微下降,降幅在0.3%~0.5%左右。在全量数据中取得了最佳分类效果的CNNPLUS 在新数据集上表现同样优秀,准确率仅下降了0.4%,达到了94.2%,召回率仅下降了0.4%,达到了94.1%。这在一定程度上说明ICAL在不同的分类模型下都是有效的,能够在减少数据标注量的情况下保证模型的效果。

      表 6  ICAL数据筛选后不同模型结果对比

      方法 Accuracy Recall AUC
      Bert+LSTM 0.929 0.929 0.929
      Bert+CNN 0.940 0.938 0.938
      Bert 0.940 0.940 0.938
      Bert+ATT 0.940 0.940 0.940
      Bert+RCNN 0.940 0.939 0.940
      Bert+CNNPLUS 0.942 0.941 0.940
    • 为解决IOC识别领域数据标注成本高的问题,本文提出了一种结合主动学习的IOC识别方法ICAL。该方法在威胁情报领域引入主动学习,并通过改进主动学习减少了IOC自动化识别中58%的人工标注工作量。ICAL在后续可以继续尝试其他主动学习策略,探究不同的主动学习策略在IOC识别领域的适用性。

参考文献 (20)

目录

    /

    返回文章
    返回