HinCTI: 基于异构信息网络的网络威胁情报建模与识别系统

摘要

网络攻击日益复杂化、持久化、组织化和武器化。面对这种情况,全世界越来越多的组织正显示出越来越愿意利用网络威胁情报公开交换(CTI)来全面了解快速演变的网络威胁形势,并保护自己免受网络攻击。然而,由于CTI之间的显式和隐式关系以及CTI所涉及的网络威胁基础设施节点的异构性,对CTI的建模具有挑战性。由于CTI中涉及的网络威胁基础设施节点的标签有限,因此自动识别基础设施节点的威胁类型进行预警也是一个挑战。为了应对这些挑战,开发了一个名为HinCTI的实用系统,用于对网络威胁情报进行建模和识别威胁类型。我们首先设计了一个威胁情报元模式来描述基础设施节点的语义关联性。然后在异构信息网络(HIN)上建立网络威胁情报模型,该模型能够集成各种类型的基础设施节点及其之间丰富的关系。在此基础上,定义了一种基于元路径和元图实例的威胁基础设施节点间相似性度量方法,并提出了一种基于元路径和元图实例的异构图卷积网络(GCN)方法来识别CTI中所涉及的基础设施节点的威胁类型。此外,通过分层正则化策略,我们的模型可以缓解过度拟合的问题,在基础设施节点的威胁类型识别中取得了很好的效果。据我们所知,这项工作是第一个在HIN上建立CTI模型进行威胁识别,并提出了一种基于异构GCN的基础设施节点威胁类型识别方法。利用HinCTI在真实数据集上进行了综合实验,实验结果表明,与现有的最新基线方法相比,本文提出的方法能够显著提高威胁类型识别的性能。我们的工作有助于大大减轻安全分析师繁重的分析工作,并有效地保护组织免受网络攻击。

索引词 网络威胁情报,威胁类型识别,异构信息网络,图卷积网络,威胁基础设施节点。

1 简介

如今,为了全面了解快速发展的网络威胁局势,保护自己免受复杂、持续、有组织和武器化的网络攻击,世界上越来越多的组织越来越愿意利用网络威胁情报公开交流[1]。CTI是基于证据的关于现有或新兴资产威胁的知识,可用于告知有关主体对威胁的反应的决定[2]。众所周知,网络犯罪分子通常充分利用网络基础设施(如域名、互联网协议或IP地址)进行网络攻击。痛苦金字塔模型[3]指出了用于检测攻击活动的六个级别的威胁指标,下面三个级别是文件哈希、IP地址和域名。这三个级别是原子指示符,可以由网络安全设备(如入侵检测系统(IDS)、防火墙和电子邮件服务器上的垃圾邮件过滤器使用。通过威胁情报共享平台(TISP)提供的应用程序接口(API),用户可以获得大量关于文件哈希、IP地址和域名的CTI(即本研究重点关注的疼痛金字塔模型的下三个层次)。一般来说,不同的情报来源有助于从不同的角度描述网络威胁基础设施节点。例如,域名不仅可以从商业CTI源(如IBM X-Force Exchange Platform1和ThreatBook2)描述,还可以从相关数据集(如被动域名系统(DNS)和域名黑名单中描述。面对日益复杂的网络攻击,CTI建模提供了许多优势[4]、[5]、[6]、[7],例如获得快速演变的网络威胁形势的全貌,以及揭示特定攻击背后的潜在集团。以域名基础设施节点为例,域名的威胁类型可以是垃圾邮件URL、暴力登录攻击、恶意软件活动和僵尸网络节点活动。识别基础设施节点的威胁类型不仅有利于细粒度的威胁预警,而且有利于采取有针对性的防御措施。注意,在本研究中,我们只考虑在结构化数据中表示的CTI。从安全技术报告等非结构化数据中提取结构化数据是另一个重要的研究方向[8],[9]。

1.1 动机

CTI的建模和基础设施节点的威胁类型识别无疑是任何网络威胁防御和预警系统的最基本要求。在过去的几年里,网络安全和数据挖掘领域的学术界和工业界都被这个话题所吸引,并进行了许多最新的研究,如[7]、[10]和[11]。其中一些是非常有创意和精心设计的,但其中大多数面临以下两个关键的限制,必须加以解决。

首先,很少有研究关注CTI中基础设施节点的有限威胁类型标识问题。由于人工标注的成本较高,CTI数据库中cyberthreat基础设施节点的威胁标识不完整,且由情报提供者或安全分析人员用威胁类型进行标注[11]。因此,如何准确有效地从有限的已标记基础设施节点及其之间的大量关系中学习,预测未标记节点的威胁类型,是大多数安全分析人员和运营商最为关注和关键的任务[11]。

此外,很少有研究从异构信息网络(HIN)的角度关注网络威胁基础设施节点之间的高层语义关系[12]。在大规模CTI共享环境中,基于图形的自动分析近年来吸引了大量的研究工作[5]、[10]、[13]。然而,这些研究大多集中在同质信息网络或二部图上,无法发现不同类型节点之间更高层次的语义关系。作为一种特殊类型的信息网络,HIN涉及多种类型的节点或关系,具有不同的语义。这种复杂且语义丰富的信息网络在知识发现方面有着巨大的潜力[14],[15]。然而,HIN在CTI采矿中的应用还没有得到充分的探索。虽然有些作品考虑了多种类型的节点和关系,但没有考虑更高层次的语义。在HIN上建立CTI模型,可以提供一种高效、紧凑的网络威胁基础设施节点的语义表示方法,如捕捉不同类型基础设施节点之间的复杂关系,根据网络行为的差异区分不同的网络攻击,探索对手如何组织等运动和调整他们的技术。因此,应该进一步探索一种实用的基于HIN的CTI模型,该模型利用网络相关性更好地挖掘CTI,以减轻安全分析师繁重的分析工作[16]。

1.2 我们的贡献

据我们所知,我们首次同时设计了一个用于CTI建模的HIN,并提出了一种基于元路径和元图实例的威胁基础设施相似度(MIIS)度量的异构图卷积网络(GCN)方法,用于网络威胁基础设施节点的威胁类型识别。我们机制的主要创新超越了现有机制,主要体现在以下三个方面:

  1. 计算(基于元路径和元图实例的计算)的角度提出了一种基于HIN的计算机集成制造系统建模方法通过对基于HIN的CTI进行建模,该框架不仅可以以语义上有意义的方式集成CTI中涉及的基础设施节点,包括域名、IP地址、恶意软件哈希、电子邮件地址及其关系,还可以提取和合并基础设施节点的高级语义。
  2. 提出了一种基于MIIS测度的异构GCN方法来识别基础设施节点的威胁类型我们定义了威胁基础设施节点之间的MIIS度量,并提出了基于MIIS度量的异构GCN方法来识别基础设施节点的威胁类型。通过分层正则化,该方法可以缓解过拟合问题,在基础设施节点威胁类型识别中取得良好效果。这项研究还可以促进对部分或不完整信息的网络安全调查。
  3. 开发了一个名为HinCTI的实用系统,用于模拟网络威胁情报和识别威胁类型。利用该系统,我们在真实数据集上进行了全面的实验,实验结果表明,与现有的基线方法相比,我们提出的方法能够显著提高威胁类型识别的性能。

这些创新的设计共同使HinCTI成为一个高效的解决方案,可用于复杂的网络安全环境。基于来自IBM X-Force交换平台和其他来源的真实网络威胁数据进行了一系列综合实验,以评估所提出方法的有效性和效率。实验结果表明,与现有的基线方法相比,该方法具有优越性。

论文的其余部分组织如下。第2节讨论了相关的工作。第3节描述了基于HIN的CTI建模,给出了初步的概念,并给出了系统架构的概述。第4节详细描述了所提出的基于GCN的异构威胁类型识别方法。第5节通过与最先进的基线方法进行比较,描述了所提出方法的实验和性能结果。第6节总结了论文并概述了未来的工作。

2 相关工作

我们机制的主要贡献受益于许多现有的代表性工作。在这一节中,我们首先回顾了典型的计算机集成技术的建模工作。然后,我们分析了基于图的威胁识别和用于威胁识别的网络表示学习。

2.1 CTI的建模

从CTI共享的角度来看,提出了许多交换格式,如结构化威胁信息表达(STIX) [17]、事件对象描述和交换格式(IODEF) [18]和OpenIOC [19]来描述与攻击活动相关的安全事件和观察。然而,STIX、IODEF和OpenIOC并不用于计算目的。为了提取和合并基础设施节点的高级语义,必须从计算的角度对CTI进行建模。

基于多种情报来源(如IBM X-Force Exchange和ThreatBook)的CTI建模非常有利于发现各种网络攻击事件之间的相关性,便于分析网络攻击,并获得跨杀伤链阶段的完整可见性[20]。例如,参考IP和DNS注册信息对于恶意软件数据库可能是有用的,并且参考恶意软件数据库条目对于IP和DNS黑名单是有用的。同样,漏洞数据库可以引用任何利用该漏洞的恶意软件样本,反之亦然。莫迪等人[4]提出了一个名为ATIS的自动CTI融合框架,该框架考虑了多个威胁源,并将明显孤立的网络事件联系起来。Gascon等人[21]提出了MANTIS,这是一个CTI平台,它为许多标准提供了统一的表示,并通过一种基于属性图的新型类型不可知相似性算法将来自不同来源的威胁数据关联起来。而相似度算法只考虑任意两个对象指纹(哈希值)的相似度,可用的更高级语义(涉及其他类型节点的间接关系)完全忽略。Boukhtouta等人[5]提出了一种调查网络威胁的方法,其中考虑了数十种类型的节点。然而,基础设施节点之间的更高级语义没有进一步分析。(前人研究的不足)

研究人员已经提出了从非结构化CTI文本中自动提取节点和关系的方法,如推文、博客和论坛[8],[9]。廖等人[8]提出了一种从自然语言博客帖子中自动提取妥协指标的方法。他们将问题建模为图形相似性问题,如果IoC项目具有与训练集相似的图形结构,则识别该项目。然而,已识别的IoC在恶意活动中不能保留其角色,这使得分析不同阶段的活动特征以及与现场测量相关联变得困难。Husari等人[9]提出TTPDrill,利用自然语言处理(NLP)和信息检索(IR)从非结构化CTI文本中提取威胁动作。然而,我们并不关注从非结构化文本中提取节点及其关系,而是简单地利用提取结果

2.2 基于图的威胁识别

基于图的威胁识别是网络安全和数据挖掘领域的一种重要研究方法,它提供了基础设施节点之间的交互特征和有影响的实体和组的识别。通过利用感兴趣的基础设施节点之间的链接信息,基于图的方法可以揭示潜在的关系,这对于攻击者来说相对更难逃避,因为进行网络攻击不可避免地会在图中生成大量链接[22]。

近年来,已经为网络安全开发了许多创新的基于图的威胁识别方法。然而,现有的研究主要集中在同构信息网络上,只能进行简单的相关性分析。Manadhata等人[13]利用图推理和适应性信念传播来检测恶意域名。然而,只构建主机域图,忽略IP域图和其他信息图极大地阻碍了识别的准确性。石等[23]提出了一种基于极限机器学习(ELM)的恶意域名识别方法,该方法提取基于构造、基于IP、基于TTL和基于Whois的特征来表征域名,并将其输入ELM。然而,忽略不同类型的基础设施节点之间的关系会大大降低识别的性能。一些学者开发了网络安全知识图的本体来表示网络实体之间的丰富关系[24]、[25]、[26]。然而,这种方法需要大量的工作来构建,并且使用起来有些困难。在我们之前的工作[27]中,我们提出了一种基于图挖掘的多维信任评估机制。在本文中,我们进一步分析了异构基础设施节点之间的高级关系,并研究了一个复杂的语义丰富的、易于构建和使用的HIN中的基础设施节点。

主题建模技术,如潜在狄利克雷分配(LDA),已被广泛用于自动识别目的未知的大量源代码的主题[28],[29]。Samtani等人[30]应用分类和主题建模技术来探索黑客论坛中资产的功能和特征。在[31]中,作者提出了AZSecure黑客资产门户,其中LDA用于在线黑客论坛源代码,以识别主要的黑客代码主题。在[32]中,作者利用主题建模来分析黑客社区源代码,并探索新兴的黑客资产和关键黑客,以进行主动CTI。鉴于我们在本研究中仅考虑结构化数据中表示的CTI,通常用于文本数据的基于主题建模的方法不适用于此任务。已经研究了从文本数据中提取结构化数据,例如[8],[9]。日志分析技术广泛用于威胁识别,例如分析DNS日志数据以检测恶意域名[33],[34]以及分析系统审计日志以发现攻击的入口点[9]。Pei等人[35]介绍了HERCULE,它对来自多个系统的日志进行社区发现,以重建一个完整、直观和人类可理解的攻击故事。然而,我们研究的目的是重新挖掘用于威胁识别的CTI数据,这与基于日志分析的异常检测有很大不同。

2.3 用于威胁识别的网络表示学习

网络表示学习,即网络嵌入,旨在将网络嵌入到低维空间中,同时预先提供网络结构和属性,以便通过机器学习技术可以容易地应用所学习的嵌入。最近,许多有效的网络嵌入方法已经被提出来解决同构网络的表示学习问题,例如DeepWalk [36],Node2Vec [37]。与广泛研究的同构信息网络相比,HIN的异构特性(即包含多种类型的节点或链接)使得直接应用同构技术进行HIN表示学习变得困难。为了应对这一挑战,董等人[38]提出了Metapath2Vec,它设计了一种基于元路径的随机游走,并利用跳跃式图来执行异构图嵌入。但是,Metapath2Vec只能使用一个元路径,可能会忽略有用的信息。傅等[39]提出HIN2Vec来探索表征学习的HINs元路径。图形神经网络(GNN) [40],[41]是为了扩展深度神经网络来处理任意图形结构的数据而提出的。王等人[42]提出了异构图注意力网络(HAN)来处理异构图,考虑了节点级和语义级的注意力。与书目网络(作者和论文节点的分类和聚类)[38]和推荐系统[43],[44]等领域的研究相比,网络表示学习只是最近才应用于网络安全的研究,如[45],[46]。

3 CTI建模

在本节中,我们首先定义在HIN上建模CTI的问题。然后我们介绍初步的概念。最后,我们给出了系统架构的概述。

3.1 基于HIN的CTI建模

“CTI”的定义和特征已经在学术界引起了广泛的关注,包括网络安全[10]和数据挖掘[11],[27]。CTI通常指与网络攻击相关的证据,涉及一组不同类型的威胁基础架构,如恶意IP地址、恶意域名、恶意哈希和恶意电子邮件地址。我们将上述基础架构称为威胁基础架构节点威胁基础设施节点之间存在关系,包括相同类型的节点之间和不同类型的节点之间的关系,即域名之间的关系、IP地址之间的关系、恶意软件哈希之间的关系、电子邮件地址之间的关系以及它们之间的关系。我们将上述关系称为威胁基础设施关系

通过威胁情报提供商提供的API,包括开源社区(如IoC Bucket3and)和商业CTI服务提供商(如ThreatBook),我们可以在不同类型的威胁基础架构节点(如域名、IP地址、电子邮件地址和恶意软件哈希)之间导出大量关系(如域-IP、域-恶意软件、域-电子邮件和IP-电子邮件),以构建网络威胁情报HIN。对于同类节点之间的关系,我们从各种外部来源中提取相关信息,以丰富威胁基础设施节点的上下文。如图1所示,两个域名之间的直接关系可以通过域相关服务来丰富,例如从Whois数据库获取共同所有者、共同组织、域名系统的共同位置和共同注册者的关系。两个IP地址之间的直接关系可以通过与IP相关的服务来丰富,例如从IP2Location服务获得具有相同互联网服务提供商的关系。两个恶意软件散列之间的直接关系可以通过开源恶意软件分析工具来丰富,例如从公共漏洞和暴露(CVE)数据库获得利用相同漏洞的关系。两个电子邮件地址之间的直接关系可以通过相同主机名的关系来丰富。

从CTI实例和外部来源提取上述威胁基础设施节点和威胁基础设施关系后,我们可以构建一个网络威胁情报HIN,如图1所示,它包含四种类型的威胁基础设施节点,即恶意软件哈希、IP地址、域名和电子邮件地址威胁情报可被视为一组威胁基础设施节点和威胁基础设施关系,它们有助于解释各种类型的节点之间的关系。因此,一个威胁情报实例可以被视为整个HIN的一个子图。HIN的一个特别的优点是,在节点类型上定义的元路径(在第3.2节中定义)和元图(在第4.2节中定义)可以反映关于相似性的语义上有意义的信息,因此,可以自然地为威胁分析和识别提供可解释的结果。例如,两个域名之间的关系可以通过元路径域-恶意软件-域来揭示,元路径域-恶意软件-域描述两个域名被相同的恶意软件访问,或者通过元路径域-电子邮件-域来揭示,元路径域-电子邮件-域描述由相同的电子邮件地址注册的两个域名。

3.2 准备工作

定义1(网络威胁基础设施节点[5])。由于网络犯罪分子通常会充分利用网络资源进行恶意活动,我们定义网络威胁基础架构节点由IP地址、域名、恶意软件哈希和电子邮件地址组成。

从情报提供者那里收集的CTI一般是恶意软件的哈希值、恶意IP地址和恶意域名的形式。因此,在本文中,我们只考虑较低级别的基本CTI,并将它们表示为一个HIN。图中的节点代表网络威胁基础设施,即域名、IP地址、恶意软件哈希和电子邮件地址。在本文中,我们研究了如何利用HIN来促进CTI数据集的挖掘。

定义2 (HIN [47])。HIN是一个节点类型映射φ : V → A,关系类型映射ψ : E → R的图G = (V,E),其中V表示节点集,E表示链接集。A表示节点类型集,R表示关系类型集,其中节点类型数|A| > 1或关系类型数|R| > 1。

图1给出了与不同类型的节点和关系相连接的两个CTI实例的例子。在为CTI建模给出一个复杂的HIN之后,为了更好地理解,描述它的元级别(即schemalevel)是必要的。

定义3(元模式(或网络模式))。给定一个节点类型映射为φ : V → A,关系类型映射为ψ : E → R的HIN G = (V,E),网络G的元模式(或网络模式),表示为,节点是来自A的节点类型,边是来自R的关系类型的图。

图2:基于HIN的CTI建模。(a)四类节点(即域名(D)、IP地址(I)、恶意软件哈希(M)、电子邮件地址(E))。(b)网络威胁情报网络由四类节点和五类关系组成。五条不同颜色的线代表不同类型节点之间的五种不同关系。(c)网络威胁情报的元模式。(d)HinCTI中涉及的元路径和元图的示例(例如,域-恶意软件-域、域-知识产权-域)。

如图2所示,CTI建模涉及四种类型的节点(即域名、IP地址、恶意软件哈希和电子邮件地址),以及不同类型节点之间的五种关系(即R、S、G、C、N,如表2所示)。图2(c)示出了在CTI中描述的表征威胁基础设施的关系的HIN元模式的例子。HIN的另一个重要概念是在类型上定义的元路径,它可以公式化节点之间的高级关系的语义,因此,可以自然地为威胁基础设施建模提供可解释的结果。在这里,我们遵循这个概念,并将其扩展到我们的HinCTI模型。

定义4(元路径[47])。元路径P是在网络模式的图上定义的路径,以的形式表示,在节点类型A1和Ad+1之间定义复合关系R = R1·R2·...·Rd,其中符号表示关系上的组合运算符,d是P的长度。

一般来说,元路径对应于网络模式中的一种路径,包含特定的链接类型序列。为了简单起见,当一对类型之间只有一个关系时,我们使用由符号“,”连接的对象类型来表示元路径:。如果并且边属于关系类型,则网络G中之间的元路径实例沿着元路径。我们在4.2节中进一步介绍了描述基础设施节点关系的语义上有意义的元路径。

文献给出了术语“威胁类型识别”的许多定义,它们因团队和项目而异。在这里,我们给出一个清晰的定义来描述论文的目的如下[48]。

定义5(威胁类型识别)。对于收集到的无威胁标签的网络威胁基础设施节点,威胁类型识别是指通过构建异构的基于GCN的威胁类型识别模型,利用带有威胁标签的网络威胁基础设施节点及其之间的关系来识别其威胁类型标签

在威胁情报共享平台上,大量威胁基础设施节点没有威胁标签,对于CTI消费者来说是不完整的。因此,利用基础威胁结构节点及其在大量基础威胁信息中的关系来预测无威胁标签节点的威胁类型具有重要意义。

3.3 系统架构

我们提出的基于HIN的CTI建模与识别系统的体系结构如图3所示,它主要由以下四个模块组成:

  • 基于HIN的CTI建模。通过各种CTI提供商提供的API,我们可以获得大量有价值的CTI,涉及到海量的威胁基础设施节点以及它们之间的关系。在网络威胁情报HIN中,上下文信息与节点关联越多,越有利于CTI分析。因此,为了丰富基础设施节点的上下文,我们从外部数据库中提取信息,以在相同类型和不同类型的节点之间建立关系,例如,“Whois”数据库用于域名和IP节点,“CVE”数据库用于恶意软件节点,以及“被动DNS”数据库用于域名和电子邮件地址节点。以这种方式,网络威胁情报HIN被构建来描述各种类型的基础设施节点之间的关系。
  • 特征提取器和元路径和元图生成器。基于为网络威胁情报HIN设计的元模式,我们构建了一组元路径和元图,以从不同的语义上捕捉基础设施节点之间的高级关联。
  • 基于异构GCN的威胁类型识别。首先提取基础设施节点特征,生成节点特征矩阵X,然后聚合基于元图的邻接矩阵,得到加权邻接矩阵B,最后利用异构GCN融合X和B,学习网络威胁基础设施节点的威胁类型。
  • 威胁类型标识符。对于每个新收集的未知威胁基础设施节点,将首先提取节点特征,然后从外部源提取其相关基础设施节点。将进一步分析这些基础设施节点之间的关系。基于提取的特征和构建的异构基于威胁类型识别模型,基础设施节点的威胁类型将由威胁标识符来标记。根据识别出的威胁类型标签,安全分析师可以给出预警并采取防御策略。

图3:建议的HinCTI的系统架构。(1)基于HIN的CTI建模,网络威胁情报HIN的生成。(2)基于网络威胁情报HIN的节点特征提取和一组元路径和元图的设计。(3)域名基础设施节点的节点特征矩阵X和基于MIIS测度的邻接矩阵B是异构GCN模型的输入。(4)异构GCN模型预测域名基础设施节点的威胁类型,如垃圾邮件、僵尸网络C&C服务器等。基础设施节点的威胁类型识别结果可用于给出预警和采取防御策略。注意HinCTI中不同类型节点(即D、I、M、E)的威胁类型识别任务是分开进行的,我们以域名基础设施节点(即D)为例。

4 建议的威胁类型识别方法

在本节中,我们首先介绍特征提取,然后是元路径和元图的构建。然后我们描述了异构的基于GCN的威胁类型识别方法,最后描述了分层正则化策略如何缓解过拟合问题。由于关于域名的CTI在网络安全方面比其他类型的基础设施节点更加静态和高效[3],我们特别关注域名基础设施节点的威胁类型识别。在详细描述提议的方法之前,我们首先在表1中列出关键符号及其描述。

4.1 特征提取

节点特征。域名经常被攻击者用来与服务器保持联系。与良性域名相比,恶意域名具有不同的属性。合法的网站所有者选择一个简洁的域名,这样用户可以更好地记住它,而恶意域名通常是由域名生成算法(DGA)批量生成的。即恶意域名的平均长度大于良性域名的平均长度[49]。关于域名内字母数字分布的信息熵,熵是无序的表现,熵越高,分布越混乱[50]。基于域名流量的恶意域名的特征分布通常是混乱的[50]。因此,我们选择域名的长度信息熵作为域名威胁类型识别的特征。

恶意域名的活跃时间被认为很短[23]。每当旧域名被当局停用时,攻击者就会迅速注册新域名,并在被当局检测和阻止之前出于恶意目的使用它们,这通常会使恶意域名的生命周期缩短很多。相比之下,良性的网站所有者通常会为长期业务注册域名。因此,我们将域名的有效时间定义为基于Whois数据的注册截止日期和创建日期之间的间隔(以天为单位)。此外,鉴于合法域名经常被用户查询,合法域名的所有者将及时更新他们的Whois信息,以确保域名很好地为用户服务。相反,恶意域名所有者不更新Whois信息,其更新频率低于良性域名所有者。接下来,我们将域名的活跃时间和更新频率作为与时间相关的节点特征。

基于关系的特征。尽管域名的节点特征可以用来反映它们的行为并检测恶意域名,如“amazon-gst-sale.com”,但它与相关恶意软件之间的内在复杂关系可以提供更关键的识别信息。节点之间提取的关系可以提供比简单统计更高级别的表示,这需要攻击者付出更多努力来逃避检测。如果攻击者减少与相关恶意软件、域名和IP地址的通信,攻击范围将大大缩小。因此,为了分析日益复杂的恶意域名,我们不仅要考虑节点特征,还要考虑表2中总结的关系,其中“元素”表示相关关系矩阵中的元素。

  • R:为了描述域名和它所解析的IP地址之间的关系,我们构建了域-解析到-IP矩阵R,其中每个元素表示域I是否解析为IP地址j。
  • S:为了表示恶意软件和域名之间的关系, 我们生成域-访问者-恶意软件矩阵S,其中每个元素表示域名I是否被恶意软件j访问。
  • G:为了描述域名和电子邮件地址之间的关系,我们生成域-注册者-电子邮件矩阵G,其中每个元素表示域名I是否被电子邮件地址j注册。
  • C:为了表示IP地址与恶意软件通信的关系, 我们生成IP-通信与恶意软件矩阵C,其中每个元素表示IP地址I是否与恶意软件j通信。
  • N:为了表示IP地址连接到电子邮件地址的关系,我们生成IP-连接到电子邮件矩阵N,其中每个元素表示IP地址I是否连接到电子邮件地址j。请注意,矩阵和NTR分别表示R、S、G、C和N的转置矩阵。

4.2 元路径和元图构建器

虽然元路径可以用来描述节点之间的相关性,但它不能捕捉更复杂的关系。元图[51]被提议使用节点的有向无环图来处理HIN节点之间更复杂的关系,其可以被定义如下:

定义6(元图[51])。元图是一个有向无环图,具有单个源节点和单个目标节点,定义在一个具有模式的HIN G = (V,E)上。形式上,元图定义为,其中分别受的约束。

图4:为域名基础设施节点的威胁类型识别而设计的元路径和元图。符号D代表域名,I代表IP地址,M代表恶意软件哈希,E代表电子邮件地址。

如图4所示,不同的元路径和元图从不同的方面表征了威胁基础设施节点上的相关性,即,具有不同的语义含义。例如,元路径通过域-IP关系(即两个域名都解析为同一个IP地址)来描述威胁基础架构的相关性。元路径通过域-恶意软件关系描述基础设施节点上的相关性(即,两个域名都被同一恶意软件访问)。元图从一个更全面的角度描述了威胁基础设施的相关性,该角度包括外部和内部联系。也就是说,在元图中,两个域名被连接,因为它们都被相同的恶意软件访问(外部连接),并且它们的解析的IP地址不仅连接到相同的电子邮件地址,而且与相同的恶意软件通信(内部连接)。

在我们的方法中,为了检测基础设施节点的威胁类型,元路径和元图被联合考虑来捕获基础设施节点之间的复杂相关性,这比基于纯元路径或纯元图的方法更具表达性。不同的元路径和元图从不同的角度衡量两个基础设施节点之间的相关性。也就是说,元模式列举的有意义的元路径和元图越多,相似性度量的准确性就越高。为了检测域名基础设施节点的威胁类型,基于图2(c)中描述的元架构和网络安全领域人类专家的领域知识,我们列举了不同长度上的12个有意义的对称元路径和元图(即,图4中所示的-),以表征域名基础设施节点上的相关性。

4.3 基于GCN的异构威胁类型识别

在提取了基础设施节点的特征并设计了前面小节中描述的有意义的元路径和元图之后,我们引入了所提出的基于MIIS测量的异构GCN方法来识别CTI中涉及的基础设施节点的威胁类型。这种异构GCN同时集成了节点特征和有意义的元路径以及基于元图的相似邻接关系,使得能够以更全面的方式表示基础设施节点。在定义MIIS之前,我们给出了下的元路径和元图实例数的定义,称为,如下:

定义7(下元路径和元图实例的数量)。给定一个网络G = (V,E),它的网络模式和一个对称元路径或元图,两个域名基础设施节点之间下的元路径/元图实例的数量,表示为,可以定义为

其中下域名基础设施节点之间的交换矩阵。

至于元路径,它在节点类型之间的交换矩阵可以计算为

其中型和型之间的邻接矩阵,符号·表示矩阵乘法。然而,对于元图,计算其交换矩阵以获得元图实例的计数的问题变得更加复杂。以图4中的元图为例,通过元图的两种方式是路径(D,I,E,I,D)和路径(D,I,M,I,D)。请注意,D代表网络威胁情报HIN中域名基础设施节点的类型。路径中(D,I,E,I,D)(I,E,I)表示两个IP地址(I)如果都连接到同一个电子邮件地址(E)就有相似之处。同样,在路径上(D,I,M,I,D),(I,M,I)表示两个IP地址(I)如果都与同一个恶意软件(M)通信,则具有相似性。受[51]的启发,当流有多种途径从源节点通过元图到达目标节点时,我们定义了我们的相似性逻辑。当有多条路径时,我们约束一个流来满足所有路径,这需要比简单的矩阵乘法多一个矩阵运算,即哈达玛乘积(Schur乘积)。以图4中的元图为例,算法1描述了如何计算其交换矩阵,其中是哈达玛乘积,N、C和R分别代表IP-电子邮件、IP-恶意软件和域-IP邻接矩阵,如表2所示。得到后,通过矩阵序列的乘法更容易得到整个交换矩阵。在实践中,本文定义的所有元路径和元图(即图4中所示的-)都可以通过相应矩阵上的乘法运算和哈达玛乘积来计算。

如第4.2节所述,我们设计了12个元路径和元图(即-),它们具有不同类型的节点和关系。由于不同的元路径和元图可以定义不同的相似性,并引入不同的高级语义,因此在识别基础设施节点的威胁类型时,自然会包含所有有用的元路径和元图。然而,不同的元路径和元图具有不同的重要性。平等对待不同的元路径和元图是不切实际的,并且削弱了由有意义的元路径和元图提供的语义信息。例如,域名D1可以通过元路径()连接到域名D2(均由同一电子邮件地址E1注册)或通过元路径()连接到域名D3(均由同一恶意软件M1访问)。当更多地考虑威胁的来源时,元路径(D,E,D)通常比(D,M,D)起着更重要的作用;然而,当更多地考虑威胁行为时,情况将会相反。因此,给定不同的元路径和元图以非常不同的方式描述威胁基础设施的相关性,为了探索这些不同方面的互补性,我们建议利用基于元路径和元图的加权相邻矩阵来结合不同的语义。在这里,我们为任何两个威胁基础设施节点定义了一个具有权重的相似度,表示为,定义如下:

定义8 (MIIS)。给定一个元路径和元图集,表示为,两个基础结构节点之间的MIIS度量可以定义为

其中基础结构节点之间的元路径和元图实例的数量,之间的,之间的。我们使用参数向量β = [β1,β2,.。。,βn]来表示的权重,其中是元路径/元图的权重,满足≥ 0,

MIIS度量是从两个部分的角度定义的:语义重叠,由威胁基础设施之间的路径数量定义;语义广度,由它们之间的路径实例数量定义(即从的路径,以及从的路径)。利用可自动学习的权重向量β将基于元路径和元图的节点相似性结合在一起。

通过MIIS测度计算任意两个域名基础设施节点的相似度后,我们可以构造一个维数为N × N的矩阵B,其中N为域名节点数,。根据第4.1节中的描述,我们可以推导出维度为N × m的域名节点特征矩阵X。这样做是利用流行的两层GCN [52]架构来识别基础设施节点威胁类型的一种显而易见的方法。这里,类别标签代表基础架构节点的威胁类型。基于GCN的识别模型的输入是B和X,,其中包含多维原始域名节点特征。我们首先计算出,其中是基于MIIS测度的自连接邻接矩阵,是单位矩阵,是对角矩阵。然后,正向模型采用以下简单形式:

其中ReLU表示定义为ReLU(·) = max(0,·)的激活函数,softmax激活函数按行应用,定义为。神经网络加权其为具有h个特征映射的隐藏层的输入到输出可训练加权矩阵;神经网络权重是一个隐藏的输出可训练权重矩阵,其中K是威胁类型标签的数量。两者都是使用梯度下降来训练的,并且我们在每次训练迭代中使用完整的数据集来执行批量梯度下降,只要数据集适合内存,这是一个可行的选择。训练过程中的随机性是由辍学引起的[53]。

给定一组威胁类型标记的威胁基础设施,我们的模型优化真实标记分布和预测分布之间的交叉熵H,如下所示:

是具有标签的域名基础设施节点索引的集合,K是层次中标签的数量,是指示基础设施节点是否属于标签K的二进制标签,是指基础设施节点的标签K的神经网络预测的概率。

4.4 分层正规化

如果我们简单地把每个标签当作一个独立的决定,那么等式(5)可以直接用来训练神经网络。但是,威胁类型标签之间通常存在层次结构,其中一个父标签包含多个子标签。图5显示了所有威胁基础设施节点的威胁标签层次的示例。父标签“僵尸网络”包含多个子标签,如暴力、垃圾、命令和控制(C&C)服务器、后门等。因此,在标签之间引入层次依赖可以提高威胁类型识别的性能。也就是说,当叶标签(在分层结构中没有子标签)具有很少的训练示例时,可以通过其父标签来规范决策。受[54]和[55]的启发,我们在GCN模型的最终输出层上使用了分层正则化。作为一种简化,标签之间的层次依赖关系促使具有层次关系的标签的参数相似。例如,在图5中,在标签“僵尸网络”和“C&C服务器”之间有一条边,因此这两个标签的参数趋向于彼此相似。

图5:所有威胁基础设施节点的威胁标签层级的简化示例,其中R2L表示从远程机器到本地机器的未授权访问,而U2R表示本地非特权用户对本地超级用户权限的未授权访问。

在形式上,我们将威胁类型标签集表示为L = {|i = 1,2,...,K},其中K为标签数。当我们关注标签的层次关系时,我们用作为标签的子标签集,其中的子标签的数目。我们用作为GCN模型最终输出层中标签的参数,其中是标签的参数。然后,我们使用以下分层正则化策略来正则化最终输出层中的参数:

最后,我们使用以下带有分层正则化的损失函数来优化参数:

其中,C是惩罚参数。

综上所述,HinCTI的整体流程可以简单描述为算法2。

4.5 建议方法的分析

建议的HinCTI可以处理各种类型的基础设施节点和关系,并在异构图中融合丰富的语义。信息可以通过不同的关系从一种类型的节点传递到另一种类型的节点。得益于这种网络威胁情报,多样的语义可以增强基础设施节点的威胁识别。然后,我们对我们提出的方法的计算复杂性进行如下分析。关于MIIS度量,以自然顺序方式乘以元路径/元图的邻接矩阵可能是低效的。然而,经典的矩阵链乘法问题可以通过中的动态规划[56]来优化,其中d是通常非常小的元路径/元图的长度。关于GCN训练,受[52]的启发,我们利用TensorFlow[57]对等式(4)来进行基于图形处理器的高效实现,使用稀疏-密集矩阵乘法。评估等式(4)的计算复杂度是,它根据表示为|ε|的图边数线性缩放。

5 实验

在这一部分,我们进行了全面的实验研究,以证明所提出的实际系统HinCTI的有效性,它集成了上述提出的方法。

5.1 实验设置

数据集。我们从两个流行的威胁情报共享平台,即IBM X-Force交换平台和VirusTotal收集真实世界的数据,并按照第3.1节所述丰富数据。虽然收集的数据集涉及126,933个基础设施节点,但由于爬虫约束和数据稀疏性,预处理后只剩下11,340个节点。10,833个基础设施节点的标签是从情报公司抓取的,其余507个未标记的基础设施节点是由三名招募的安全研究人员在第三方分析工具的帮助下标记的。表3描述了评估数据集的统计数据,包括用于训练、验证和测试的节点数量以及不同类型基础设施节点的类别数量(即威胁类型数量)。

基线。我们将我们提出的方法与以下基准进行了比较,包括最先进的网络表示学习方法和几种传统的威胁类型识别方法。

  • Node2Vec[37] + SVM:一种基于随机游走的同构图网络嵌入方法。这里,我们使用p = 1和q = 1,忽略节点的异构性,在整个异构图上执行Node2Vec。
  • Metapath2Vec [38] + SVM:一种异构图嵌入方法,它执行基于元路径的随机行走,并利用跳跃图嵌入异构图。在这里,我们测试所有元路径,并报告最佳性能。
  • HAN[42] + SVM:一种半监督异构图神经网络,它考虑节点级注意和语义级注意,分别学习节点和元路径的重要性。
  • HinCTI-:不考虑等级正规化的HinCTI模型。

评估指标。为了定量评估不同方法的威胁类型识别性能,我们遵循[54]使用Macro-F1评分和Micro-F1评分作为我们的评估指标。绩效评估中涉及的指标如表4所示。我们应用了10倍交叉验证,并报告了平均绩效衡量指标,即Macro-f1Micro-f1得分,显著性水平α = 0.05。Macro-F1是一种f1评分类型,用于评估层次结构中所有不同标签的平均f1。让,,分别表示标签集L中标签的真阳性、假阳性和假阴性。Macro-F1可以定义为:

Micro-F1是f1评分的另一种类型,它考虑了所有标签的整体精度和召回率。Micro-F1可以定义为:

基于所描述的实验装置,我们在操作系统Ubuntu 18.04.2、Intel(R)Core(TM)i56600 K CPU @ 3.50 GHz和NVIDIA GeForce GTX 1080 Ti GPU上进行了基础设施节点威胁类型识别实验。软件平台是TensorFlow-gpu 1.13.1和Python 3.7.3。

5.2 不同元路径和元图的评估

在这组实验中,基于第5.1节中描述的数据集,我们评估了不同元图(即-)描述的威胁基础架构之间的不同相关性的性能。在实验中,给定一个元图,我们基于第4.3节中描述的MIIS测度计算,并利用第4.4节中描述的分层正则化来学习HIN中具有域名类型的节点的威胁类型标签。不同元图的最佳识别结果如表5所示。不同的元图在威胁类型识别中表现出不同的性能。它们中的每一个都代表了威胁类型识别任务中的特定语义。

从表5中,我们还可以观察到:(1)一些元路径,例如,在测试集上表现良好,而其他元路径本身表现不佳,例如φ5,这可能是因为元路径的语义不能很好地反映基础设施节点的威胁类型识别问题。(2)基于元图的方法一般比基于纯元路径的方法更能表达节点间更复杂和全面的关系,从而获得更好的识别性能。a)集成了性能优于。b)由复杂相关性组成的元图(例如,-)所描述的节点之间的关系可以提供更高级别的语义,并且获得比其他图(例如,-)更好的识别结果。探索不同元路径和元图结合在一起进行识别时的性能是有意义的,这将在下一组实验中进行评估。

5.3  HinCTI的性能评估

在这组实验中,我们通过与结合了SVM算法的几种典型网络表示学习方法(即,Node2Vec[37] + SVM、Metapath2Vec[38] + SVM和HAN[42] + SVM)和HinCTI-进行比较来评估我们提出的方法HinCTI。对于node2vec,我们忽略了HIN的异构性,直接将HIN反馈给表示学习。对于Metapath2vec,我们测试元路径-来引导Metapath2vec中的随机行走,并报告最佳性能。对于node2vec和metapath2vec这两种基于随机游走的方法,我们将窗口大小设置为5,游走长度设置为100,每个节点的游走次数设置为500。为了便于比较,我们使用[37],[42]中提供的实验程序,并根据[38]的描述实现算法。为了公平比较,嵌入的维度设置为64。学习的节点表示向量和节点特征被输入SVM算法,以识别基础设施节点的威胁类型。

图6:不同威胁类型识别方法在Macro-F1得分(左)和Micro-F1得分(右)方面的性能比较。

我们随机选择第5.1节中描述的一部分样本(范围从10%到80%)作为训练集,10%的样本作为验证集,其余10%的样本作为测试集。图6用Macro-F1得分(左)和Micro-f1得分(右)表示了HinCTI和几种典型网络表示学习方法在基础设施节点威胁类型识别任务中的比较结果。总的来说,所提出的模型HinCTI始终显著优于所有这些典型的网络表示学习方法:在Macro-F1中提高了大约4%-11%,在Micro-F1中提高了3%-10%。也就是说,HinCTI可以比现有的最先进的网络表示学习方法更好地识别基础设施节点的威胁类型。HinCTI的成功在于适当考虑和适应HIN的异构特性(即多种类型的节点和关系),以及元路径和元图引导的基础设施节点相似性计算的优势

另外,如图6所示,我们比较了HinCTI(红线)和HinCTI-(绿线)。考虑分层正则化的HinCTI在Macro-F1和Micro-F1方面始终获得约1%的改进,这可以证明我们系统中分层正则化的有效性

此外,从表5和图6中,我们观察到,与基于单个元路径或元图(即-))学习的任何节点表示相比,所提出的HinCTI有效地将不同的元路径和元图结合在一起,并学习节点表示的更高级语义,可以显著提高基础设施节点的威胁类型识别的性能:在Macro-F1和Micro-F1中提高了6%以上。

5.4 HinCTI与传统识别方法的比较

在这组实验中,我们将HinCTI与其他四种典型的识别方法,即朴素贝叶斯(NB)、决策树(DT)、支持向量机(SVM)和K近邻(KNN)进行了比较。在NB-1、DT-1、SVM-1和KNN-1中,我们将第4.1节中讨论的原始节点特征作为输入。在NB2,DT-2,SVM-2,KNN-2中,我们把所有HIN相关的节点和关系作为特征供算法学习。所有算法都用Python实现,并以最佳参数值进行训练和执行。对于SVM,我们使用sklearn中的GridSearchCV来获得参数的最佳组合。

图7:HinCTI和传统识别方法在Macro-F1得分(左)和Micro-F1得分(右)上的性能比较。“NB-1”、“DT-1”、“SVM-1”和“KNN-1”表示将原始节点特征作为输入的算法。“NB-2”、“DT-2”、“SVM-2”和“KNN-2”表示与HIN相关的节点和关系也被用作算法学习的特征的算法

实验结果如图7所示。所提出的HinCTI明显优于所有这些传统的识别方法。与NB1的性能结果相比,NB-2在M acro-F1和M micro-F1上的性能提高了大约7%-9%。与DT-1的性能结果相比,DT-2在Macro-F1上的性能提高了6%-8%,在Micro-F1上的性能提高了5%-8%。与SVM-1的性能结果相比,SVM-2在M acro-F1上实现了大约5%-7%的改进,在Micro-F1上实现了4%-7%的改进。类似地,与KNN-1的性能结果相比,KNN-2在Macro-F1上实现了近4%-6%的改进,在Micro-F1上实现了6%-7%的改进。也就是说,通过机器学习方法杠杆化的HIN相关节点和关系可以帮助提高基础设施节点的威胁类型识别性能,这表明在不同类型的关系中编码的丰富语义可以带来更多的信息。

此外,与NB-2、DT2、SVM-2和KNN-2的性能结果相比,HinCTI在Macro-F1上实现了大约10%-20%的改进,在Micro-F1上实现了11%-19%的改进。HinCTI明显优于我们比较的最佳基线方法。原因是传统识别算法的输入都是简单的平坦特征,即不同特征的简单组合。相比之下,在HinCTI中,我们设计了表达性表示,并在基础设施节点数据的高级语义和它们的威胁类型标签之间建立了联系。为了识别日益复杂的威胁基础设施中的威胁类型,HinCTI使用基于元图的方法在HIN上建立更高层次的语义和结构联系,从而获得更好的识别性能。

5.5 HinCTI对其他类型节点的性能

图8:其他类型基础设施节点在Macro-F1分数(左)和Micro-F1得分(右)上的HINTI性能。

该方法在威胁类型识别中比较通用,可应用于域名节点和其他类型的节点。对于本研究中考虑的其他基础设施节点的威胁类型识别(即,IP地址、恶意软件哈希和电子邮件地址),图8显示了HinCTI的初步结果。总的来说,所提出的方法HinCTI始终优于所有其他典型方法,并在Macro-F1中实现了大约6%-8%的改进,在Micro-F1中实现了6%-7%的改进。

5.6 讨论和限制

首先可以收集大量结构化的CTI,然后可以利用所提出的方法来提取不同的语义信息。正如我们的测量研究所证明的那样,这不仅对于威胁基础设施节点的威胁类型识别,而且对于CTI的挖掘都具有重要意义。其实我们现在的设计还是初步的,这里讨论一下它的局限性。在本研究中,考虑到数据采集的局限性,只明确考虑了四种基础设施节点和五种关系。然而,我们的模型是可扩展的,其中可以引入更多类型的节点和关系来产生更高级别的语义,例如组织、域所有者、用于实现攻击的技术和工具、攻击事件的发生时间和位置以及它们之间的关系。此外,我们没有考虑基础设施节点威胁类型的动态性,也就是说,我们在本研究中只处理基础设施节点的最新威胁类型。然而,忽略基础设施节点的历史威胁类型会影响识别性能。

6 结论和未来工作

在本文中,我们提出了一个基于HIN的CTI建模和威胁类型识别系统,称为HinCTI。我们设计了元模式和一组元路径和元图来对HIN上的网络威胁基础设施进行建模,它可以提取和合并网络威胁基础设施中涉及的网络威胁基础设施节点的高级语义。通过所提出的基于MIIS测度的异构基于GCN的威胁类型识别方法,我们克服了网络威胁基础设施节点标签有限的挑战。通过分层正则化,我们的识别方法也可以缓解过拟合的问题。基于真实数据集的实验表明,与现有的最先进的基线方法相比,我们开发的集成了我们提出的方法的系统HinCTI可以显著提高威胁类型识别的性能。对于未来的工作,我们计划探索其他信息,以丰富网络威胁情报HIN的节点特征和关系,从而进一步提高我们的方法的性能。未来工作的另一个有趣方向是利用主题建模和自然语言处理技术,从以自然语言记录的智能报告中提取细粒度的结构化数据(包括节点及其关系)。这样做将极大地丰富异构信息网络,提高威胁识别的性能。

【论文翻译】HinCTI: 基于异构信息网络的网络威胁情报建模与识别系统相关推荐

  1. 基于改进YOLO v3网络的夜间环境柑橘识别方法

    基于改进YOLO v3网络的夜间环境柑橘识别方法 人工智能技术与咨询 本文来自<农业机械学报>,作者熊俊涛等 关注微信公众号:人工智能技术与咨询.了解更多咨询!

  2. 基于Python的BP网络实现手写数字识别

    资源下载地址:https://download.csdn.net/download/sheziqiong/86790047 资源下载地址:https://download.csdn.net/downl ...

  3. 深度学习——从网络威胁情报中收集TTPs

    从网络威胁情报中收集TTPs 摘要 为啥要用网络威胁情报 被动防御 & 主动防御 网络威胁情报的概念 何为情报(Intelligence)? 何为网络威胁(Cyber Threat)? 何为网 ...

  4. 网络威胁情报与美国国防工业基地

    网络威胁情报(CTI)是一门情报学科,利用收集,完善和分析数字信息来应对网络空间领域中存在的威胁.网络威胁情报基于内部到外部数据源,威胁社区或商业产品中收集的数据,可以帮助检测和防御网络犯罪分子,高级 ...

  5. 网络威胁情报:数据的力量

    在一个日益互联和数字化的世界中,网络威胁已成为一项重大挑战,可能危及您组织的声誉.财务稳定性和整体运营效率. 事实上,根据 IBM 2022 年的一份报告,数据泄露的平均成本现在为 435 万美元. ...

  6. 网络威胁情报项目:为什么仍然很疯狂

    大约五年前,向首席信息安全官( CISO)询问他们的网络威胁情报 (CTI) 计划时,得到了两种截然不同的回答. 资源丰富的大型企业正在投资他们的威胁情报计划,目的是为了战术.运营和战略目的更好地实施 ...

  7. 基于stm32单片机RFID门禁刷卡/指纹识别系统

    基于stm32单片机RFID门禁刷卡/指纹识别系统 采用两种模式 1:通过rfid卡识别,读取卡号 2:通过指纹识别模块进行录入,对比 标价为资料设计编号,需要实物可问我 资料包含 原理图,程序,元器 ...

  8. 基于TensorFlow和mnist数据集的手写数字识别系统 ,可识别电话号码,识别准确率高,有对比实验,两组模型,可讲解代码

    基于TensorFlow和mnist数据集的手写数字识别系统 ,可识别电话号码,识别准确率高,有对比实验,两组模型,可讲解代码

  9. 基于YOLOv5和Python开发的中国交通标志识别系统

    基于YOLOv5和Python开发的中国交通标志识别系统,可识别45种交通标志,识别率高 YID:95120644426759544cmfighting233

最新文章

  1. 2018年终总结之摄影作品展
  2. 脑电信号滤波方式汇总
  3. RequiredFieldValidator----验证控件不起作用
  4. IsPostBack原理
  5. jax-rs配置_具有MicroProfile配置的可配置JAX-RS ExceptionMapper
  6. 摩拜不死,已入美团!
  7. vim 之cscope的使用
  8. ObjC学习4-多态、动态类型、动态绑定及异常处理
  9. 设计模式笔记之二(工厂模式)
  10. 安卓android eclipse运行提示no compatible targets were found
  11. 走进C标准库(6)——string.h中函数的实现memchr
  12. 微软Hyper-V虚拟化技术全面体验
  13. Vue-CoreVideoPlayer 一款基于 vue.js 的轻量级、优秀的视频播放器组件
  14. 00 - JavaScript 简介
  15. SQL_Xbar代码
  16. [Mac] Newifi mini路由器刷breed+Padavan固件
  17. java swing实现文件浏览器功能小程序
  18. 用户名或密码错误html,用户名或密码错误【解决办法】
  19. 1st percentile  分位数的理解 quartile quantile percentile
  20. python画小猪佩奇、星星

热门文章

  1. linux下geany配置python_Linux系统下搭建基于Geany+Python开发环境
  2. 学习英语01——听力——剑雅12 T7S3
  3. 汽车的另一双眼睛 | 一文读懂车载激光雷达点云及发展情况!
  4. iOS app 上架 App Store
  5. VMware无法创建共享文件夹
  6. GDOUCTF2023-web-wp
  7. python:整数转换
  8. 员工(人才),留得住是因为本身就留得住;留不住的,你永远留不住
  9. Athena电商系统(21)——Athena生产环境部署
  10. 生成式 AI 讲故事,儿童也能创作自己的睡前故事? #Create With Alexa