Processing math: 0%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

ChatModeler:基于大语言模型的人机协作迭代式需求获取和建模方法

靳东明, 金芝, 陈小红, 王春晖

靳东明, 金芝, 陈小红, 王春晖. ChatModeler:基于大语言模型的人机协作迭代式需求获取和建模方法[J]. 计算机研究与发展, 2024, 61(2): 338-350. DOI: 10.7544/issn1000-1239.202330746
引用本文: 靳东明, 金芝, 陈小红, 王春晖. ChatModeler:基于大语言模型的人机协作迭代式需求获取和建模方法[J]. 计算机研究与发展, 2024, 61(2): 338-350. DOI: 10.7544/issn1000-1239.202330746
Jin Dongming, Jin Zhi, Chen Xiaohong, Wang Chunhui. ChatModeler: A Human-Machine Collaborative and Iterative Requirements Elicitation and Modeling Approach via Large Language Models[J]. Journal of Computer Research and Development, 2024, 61(2): 338-350. DOI: 10.7544/issn1000-1239.202330746
Citation: Jin Dongming, Jin Zhi, Chen Xiaohong, Wang Chunhui. ChatModeler: A Human-Machine Collaborative and Iterative Requirements Elicitation and Modeling Approach via Large Language Models[J]. Journal of Computer Research and Development, 2024, 61(2): 338-350. DOI: 10.7544/issn1000-1239.202330746
靳东明, 金芝, 陈小红, 王春晖. ChatModeler:基于大语言模型的人机协作迭代式需求获取和建模方法[J]. 计算机研究与发展, 2024, 61(2): 338-350. CSTR: 32373.14.issn1000-1239.202330746
引用本文: 靳东明, 金芝, 陈小红, 王春晖. ChatModeler:基于大语言模型的人机协作迭代式需求获取和建模方法[J]. 计算机研究与发展, 2024, 61(2): 338-350. CSTR: 32373.14.issn1000-1239.202330746
Jin Dongming, Jin Zhi, Chen Xiaohong, Wang Chunhui. ChatModeler: A Human-Machine Collaborative and Iterative Requirements Elicitation and Modeling Approach via Large Language Models[J]. Journal of Computer Research and Development, 2024, 61(2): 338-350. CSTR: 32373.14.issn1000-1239.202330746
Citation: Jin Dongming, Jin Zhi, Chen Xiaohong, Wang Chunhui. ChatModeler: A Human-Machine Collaborative and Iterative Requirements Elicitation and Modeling Approach via Large Language Models[J]. Journal of Computer Research and Development, 2024, 61(2): 338-350. CSTR: 32373.14.issn1000-1239.202330746

ChatModeler:基于大语言模型的人机协作迭代式需求获取和建模方法

基金项目: 国家自然科学基金项目(62192730, 62192731, 62162051)
详细信息
    作者简介:

    靳东明: 2001 年生. 博士研究生. 主要研究方向为智能化需求工程

    金芝: 1962 年生. 博士,教授. 主要研究方向为需求工程、软件自动化

    陈小红: 1982 年生. 博士,副教授. 主要研究方向为需求工程、基于知识的软件工程和形式化方法

    王春晖: 1979 年生. 博士,副教授. 主要研究方向为软件工程、需求工程

    通讯作者:

    金芝(zhijin@pku.edu.cn

  • 中图分类号: TP311

ChatModeler: A Human-Machine Collaborative and Iterative Requirements Elicitation and Modeling Approach via Large Language Models

Funds: This work was supported by the National Natural Science Foundation of China (62192730, 62192731, 62162051).
More Information
    Author Bio:

    Jin Dongming: born in 2001. PhD candidate. His main research interest includes intelligent requirements engineering

    Jin Zhi: born in 1962. PhD, professor. Her main research interests include requirements engineering and software automation

    Chen Xiaohong: born in 1982. PhD, associate professor. Her main research interests include requirements engineering, and knowledge based software engineering and formal method

    Wang Chunhui: born in 1979. PhD, associate professor. Her main research interests include software engineering and requirements engineering

  • 摘要:

    需求获取和建模是需求工程中的关键步骤,影响后续系统设计与实现. 传统的需求获取和建模方法通常由需求提供者、需求分析师等多类干系人共同协作、反复迭代完成,需要耗费大量的人力. 如何减轻需求提供者与需求分析师的负担、提高获取和建模的效率有着重要意义. 现有工作中有的使用知识库来提供更多知识,以辅助获取或者建模,有的利用自然语言处理等技术对获取或者建模过程进行自动化,但是它们并没有减轻需求提供者的负担. 利用大语言模型(large language models,LLMs )的生成能力,提供了一种人机协作的迭代式需求获取和建模框架ChatModeler.具体来说,根据真实世界中需求团队的分工及协作关系,将部分需求提供者、需求分析师等角色的工作由大语言模型承担,而需求提供者只需要进行确认. 为大语言模型扮演的各种角色进行了提示词设计,该提示词会随需求的元模型而变化. ChatModeler在7个需求案例上与3种需求模型的自动建模方法进行了14组对比实验,证明了ChatModeler在降低需求提供者的负担和生成高质量需求模型2个方面上的优越性.

    Abstract:

    Requirements elicitation and modeling is a critical step in requirements engineering that affects subsequent system design and implementation. Traditional requirements elicitation and modeling methods usually involve multiple types of stakeholders, such as requirement providers and requirements analysts, working together in an iterative manner, which requires a lot of manpower. It is important to reduce the burden of requirements providers and requirements analysts and improve the efficiency of elicitation and modeling. Some of the existing efforts use knowledge bases to provide more knowledge to assist modeling or elicitation, and some use natural language processing techniques to automate the elicitation or modeling process. But they do not reduce the burden of requirements providers. Leveraging the generative capability of LLMs (large language models), we provide ChatModeler, a requirement elicitation and modeling framework for iterative human-machine collaboration. Specifically, based on the division of labor and collaboration relationship of real-world requirements teams, some work of requirements providers and requirements analysts is taken up by LLMs, while requirements providers only need to perform confirmation. In this paper, prompts are designed for the various roles played by the various LLMs, which varies with the meta-model of the requirements. ChatModeler is used in 14 sets of comparative experiments with state-of-the-art automated modeling approaches for three types of requirement models on seven requirement cases, demonstrating the superiority of ChatModeler in both reducing the number of interactions of the requirements provider and generating higher quality requirement models.

  • 域名系统(domain name system,DNS)是互联网的一项重要基础设施服务,它使得域名和IP之间可以相互映射,网络中各种应用活动都与其密切相关. 但是近年来,DNS在提供正常解析服务的同时,也成为各种网络非法活动的主要攻击对象. 越来越多的攻击者通过滥用DNS来达到恶意的目的,如僵尸网络在其扩散与通信中使用DNS技术定位命令和控制(command and control,C&C)、网络钓鱼和恶意代码下载等,企图通过频繁变更域名对应的IP地址或名称服务器(name server,NS)记录隐藏背后的真实的服务器.

    为了应对频发的网络攻击事件,诸多学者开展了利用DNS流量检测恶意域名的研究工作,以缓解攻击活动带来的损失和危害. 相关恶意域名检测方法主要集中于基于统计特征的方法和基于关联关系的方法,其中统计特征可以分为域名字符统计特征和DNS流量统计特征. 通过收集中国科技网骨干网2022年1月至2022年7月的域名数据构造恶意域名检测数据集,将相关算法进行实验分析得到3点结论:

    1)通过域名字符串统计特征实现恶意域名检测的方法只需要字符串就可以提取,易于实现,尤其是在域名生成算法(domain generation algorithm,DGA)域名检测中效果更好一些,但是这类特征比较简单,效果有限. 将中国科技网收集的数据集应用于基于特征的自动分类模型[1]中,取得了87.45%的准确率和83.44%的召回率.

    2)DNS流量统计特征包括解析内容、活动时间记录、TTL(time to live)值等信息,这些特征在良性域名和恶意域名上存在较明显的差异,虽然利用庞大的DNS流量特征可以有效检测出恶意域名,但是往往容易忽略流量攻击行为之间的关系. 将中国科技网收集的数据集应用于基于被动DNS的恶意域名检测模型[2]中,取得了90.36%的准确率和92.54%的召回率.

    3)基于关联关系的方法可以充分发掘域名之间的关联性,能够通过这些关联发现更加高级隐蔽的恶意域名,这种关联是在攻击者实施攻击过程中就形成的,不容易被篡改,将中国科技网收集的数据集应用于基于异构图卷积网络的恶意域名检测模型[3]中,取得了86.58%的准确率和85.72%的召回率.

    经过分析,这3类方法在准确率和召回率方面还有待于进一步提升的原因是不能够全面表示域名各个属性之间的高阶关系,无法达到多维指标的高效平衡.

    为了更好地应对隐蔽攻击,提出一种基于超图学习的恶意域名检测方法. 通过对中国科技网流量进行分析,发现域名流量存在时空相似、跨节点关联的特性. 例如,对于一个恶意域名攻击事件,其存在与其关联的IP或域名节点,这些节点存在多重关联的高阶关系. 在一次攻击事件中,节点关联出现,相互配合完成一次完整的网络活动. 同时,在恶意域名请求之间也存在类似形式的多阶关联关系,不同的恶意域名在一次恶意网络活动中的时空上共同出现,很难在不影响恶意资源利用的情况下消除这种连接关系. 据此,首先通过域名内在的关联行为,从攻击事件角度出发,将域名流量之间的全局相关性进行清晰全面地表示,基于超图表示机制表征域名之间的空间高阶关系;然后利用高阶关系矩阵对域名字符嵌入特征进行变换,强化域名的深层隐含特征;最后结合分类器实现恶意域名的识别. 面临的挑战有2个:

    1)如何表征真实环境下某个攻击事件中DNS流量之间的高阶关系;

    2)如何充分挖掘域名间隐含的时空共现、跨节点关联特征.

    针对挑战1,提出基于决策树的超图构建方法,将域名流量的注册特征、解析特征、字符统计作为基本属性,基于决策树算法形成域名流量样本的超边集,将决策路径的倒数第2层节点的分类输出作为构建超边的依据. 利用决策树构建超边集的原因主要有2个:一是考虑决策树可以在相对短的时间内能够对大型数据源做出可行且效果良好的分类结果;二是决策树对缺失值不敏感,对于输入数据要求不严格,能够很好地处理个别特征缺失给分类带来的影响.

    针对挑战2,提出超图学习恶意域名检测方法,首先利用节点−边缘−节点的特征传播方式将超图结构特征进行细化,并通过超图结构收集域名间高阶空间关联关系,形成超图表示矩阵;再利用表示矩阵强化域名字符嵌入特征以充分挖掘超图结构中的高阶相关性特征来提升模型分类效果.

    与前人工作相比,本文工作共有3个贡献:

    1)提出一种基于决策树的域名流量超图表示方法,利用决策树模型的倒数第2层结果作为先验条件形成超边,能够快速将域名流量之间的多阶关联关系清晰地表示出来.

    2)提出一种基于增强嵌入特征超图学习的恶意域名检测模型,该模型基于域名空间统计特征和域名字符嵌入编码特征从DNS数据中挖掘出隐藏的高阶关系.

    3)结合中国科技网连续7个月的真实DNS流量数据,对有效性和可行性进项分析与评估,实验验证本文模型能够快速高效地检测恶意域名.

    目前已经有很多恶意域名检测的研究工作,这些工作主要集中在基于统计特征的方法和基于关联关系的方法2方面. 其中,基于统计特征的方法多采用机器学习算法或者深度学习算法来构建分类器;基于关联关系的方法多采用图结构及推理算法实现恶意域名的分类.

    在基于统计特征机器学习的恶意域名检测方面的相关成果较多[4-8]. 最初Antonakakis等人[9]提出一种未知的DGA发现机制,从域名字符统计特征的角度基于域名相似性以及查询这些相似域名的用户对域名进行聚类,然后利用交替决策树构建簇分类器,能够有效地检测出从未报道过的DGA域名. 为了能检测出更多类型的恶意域名,Schüppen等人[1]从字符串中提取了域名的结构特征、语言特征及统计特征,利用随机森林和支持向量机(SVM)来构建恶意分类器;并在大型公司内部网络和大学校园网环境中验证了该模型的可行性,具有较高的分类精度和低误报率. Chin等人[10]提取了处于活动状态的恶意域名DNS流量特征,通过分类和聚类方法构建了一个检测恶意域名的2级机器学习框架,在一级恶意域名分类和二级恶意域名聚类下分别达到了95.14%和92.45%的准确率. Wang等人[11]针对恶意域名与良性域名的应答记录进行分析,分别提取了NS数量、MX记录数量、NS相似性、IP地址数量、IP反向解析域数量,发现恶意域名与良性域名的应答信息区别比较明显.

    为了更深层次地挖掘恶意域名与良性域名在语义层面上的区别,还有一些工作利用深度学习的方法来自动提取特征实现恶意域名检测[12-13]. Anderson等人[14]发现正常域名和恶意域名在字符统计分布方面是有差异的,并基于该发现建立了生成对抗网络的DGA家族检测模型. Ren等人[15]利用神经网络和双向长短期记忆(LSTM)神经网络提取域名字符序列特征,实现恶意域名的有效识别和分类,该模型在检测常规和隐蔽的恶意域名方面取得了较高的F1值. Ravi等人[16]利用孪生神经网络来分析域名之间的相似性,然后建立基于深度学习的恶意域名分类,该方法可以有效地识别DNS同形异义词攻击,并且对常见的规避网络攻击具有弹性. Opara等人[17]基于深度学习端到端自动网络钓鱼网页分类方法实现恶意域名识别,利用卷积神经网络(CNN)自动学习HTML文本内容中存在的内容统计特征. Yuan等人[18]通过将双向独立循环神经网络、注意力机制、胶囊网络进行结合的方式提取域名相关的语义信息,以实现高效的恶意域名检测.

    上述单纯通过分类实现恶意域名检测的方法大多只考虑了域名本身的特征,没有考虑到域名之间的关联关系,这增加了识别未知或者变种恶意域名的难度. 因此,诸多学者也将域名之间的关联关系作为恶意域名检测的重要特征[19-21]. Zou等人[22]利用域-IP关联以及域-主机关联来构建域相似关系的推理图. Zhang等人[23]给出一种无监督的分析方法,其可以推断出参与恶意软件活动的相关服务器组. Rahbarinia等人[24]构建一个主机到域的二分图,通过使用从大规模ISP网络中收集的DNS数据跟踪 DNS查询行为来有效地检测新的恶意域名. Stevanovic等人[25]通过分析DNS流量识别受感染的来自不同运营ISP网络的主机. Peng等人[26]提出了一种恶意域名检测方法,该方法分析出通过DNS CNAME 记录与恶意域名连接的域往往也是恶意的结论,通过计算其恶意概率来识别非法域,实验证明了该方案的高检测性能. Sun等人[27]提出了一个名为HinDom的鲁棒域检测系统,该系统将DNS场景建模为由客户端、域、IP地址及其不同关系组成的异构信息网络(HIN),基于元路径的转导分类方法使HinDom能够仅用一小部分标记样本检测恶意域名. 结果表明,HinDom 准确、健壮,可以识别MsraMiner僵尸网络.

    恶意域名流量往往相互关联出现,这些域名或者IP存在多重节点间的高阶关系,并非相互独立. 例如,攻击者通过僵尸网络发起钓鱼攻击,注册了2类不同的域名attack_fish_*.com和attack_bot_*.com,这2个域名通过DGA域名算法生成,因此彼此间具有字符语义上的相似性关联. 同时注册使用的信息(注册时间、注册人等)也具有一定关联性. 为了控制僵尸主机,攻击者需要将大量域名attack_bot_*.com映射到同一个IP. 在现有的研究工作中,基于域名统计特征虽然可以检测出僵尸网络域名,但是难以通过同样的方法同时检测出与之关联的钓鱼域名,对这种通过僵尸网络发起钓鱼攻击行为的检测效果不理想. 基于域名关联分析的方法形成的是普通图的关联结构,只能表示2个节点间存在某一种关联关系,无法同时表示在网络攻击中存在的多个域名之间的高阶关联关系,如上述攻击例子中恶意域名间的算法生成关联、注册信息关联、攻击行为关联等多重节点间的高阶关系. 当攻击者伪装或者隐藏其行为时,普通的单一关联难以描述完整的攻击关系,而超图可以原生表示多个节点间多重关联关系,因此超图网络可以传播节点间的高阶信息.

    因此,借鉴现有的工作基础,综合考虑域名空间统计特征和域名字符嵌入特征,利用域名空间统计特征构建超图结构,表示出域名之间存在的高阶空间关系,包括域名−IP−注册商−注册时间−更新时间−有效时间等;然后利用表征高阶空间关系的超图表示矩阵增强域名字符嵌入特征,挖掘域间及域内特征的深层关系,实现全局特征强化,使得同类域名流量特征具有强关联性.

    基于增强嵌入特征超图学习的恶意域名检测方法架构如图1所示,包括特征分析、超图构建和检测模型3部分:1)在特征分析部分,首先从DNS流量中提取域名空间统计特征,表征域名之间的高阶关联关系,其次利用CNN与LSTM相结合的方式提取域名字符嵌入式编码特征;2)在超图构建部分,利用决策树对域名空间特征进行粗分类,将决策树倒数第2层节点输出结果作为分类依据形成超边集,决策树分到同一个类别的样本位于一个超图区域内,具有一条超边,形成超图结构;3)检测模型部分,利用超图结构的表示矩阵对域名字符的编码特征进行变换,进一步强化域名特征,完整表示出域名之间的全局关联,然后将强化之后的特征输入到神经网络检测模型中训练,构建恶意域名分类器,有效识别与已知恶意域名有关联的恶意域名特征,完整表示出域名之间的全局关联,最后将强化之后的特征输入到神经网络检测模型中训练,构建恶意域名分类器,有效识别与已知恶意域名有关联的恶意域名.

    图  1  基于增强嵌入特征超图学习的恶意域名检测方法架构
    Figure  1.  Architecture for malicious domain name detection method based on enhanced embedded feature hypergraph learning

    1)域名空间统计特征

    为了充分挖掘正常域名和异常域名的差异之处,本文分析了3类域名空间的统计特征,包括域名本身统计特征、Whois查询统计特征、NS查询记录统计特征,共计39维. 令 {{\boldsymbol N}_p} = ({x_{p,1}},{x_{p,2}}, … ,{x_{p,39}}) 表示一条域名样本特征向量,其中 p 表示集合中域名样本的数量,39表示每一条样本的39维域名空间统计特征.

    ① 4维域名本身统计特征. 包括域名的长度、域名中的数字占比、域名中最长的连续数字的长度、最长连续数字序列的偏移值. 为了方便用户记忆,便于人们访问网络服务,良性域名简短易读且具有一定的实际含义,在字符长度、数字占比、连续数字长度等方面规律性比较明显,而恶意域名字符特征分布很随机,这两者域名在统计特征概率分布上存在明显的差异.

    ② 25维Whois查询统计特征. 包括注册商的数量、注册国家的数量、名称服务器的数量、注册人的数量、域名系统安全扩展(DNSSEC)是否启用、可选注册状态的数量、注册状态值、注册年、注册月、注册日、册时、注册分、注册秒、过期年、过期月、过期日、过期时、过期分、过期秒、最近更新年、最近更新月、最近更新日、最近更新时、最近更新分、最近更新秒. 通过Whois查询可以知道域名注册人相关信息,包括域名的注册商、注册人、注册时间、过期时间等信息. 正常域名具有域名信息的稳定特征,生命周期往往较长,提供的服务几乎都可以被访问. 相比之下,恶意域名的主要目的是为了欺骗用户开展恶意活动,为了降低被发现的概率,恶意域名的有效期通常较短. 另外,良性域名为了提高知名度,在注册时拥有较完整的注册信息,而恶意域名为了掩人耳目,注册信息随机且不完整.

    ③10维NS查询记录统计特征. 包括IP数量、域名别名的数、解析服务器数量、域名服务器的数量、主要名称服务器的数量、负责人邮件地址数量、重刷新时间、重试时间、有效时间、生存时间. 良性域名通常根据需要使用负载均衡技术,在一定时间内域名会解析出多个不同的IP,而恶意攻击者掌握的IP资源有限,使得恶意域名在一定时间内解析的IP个数比正常域名少,并且恶意域名的NS记录不完整,缺失值比较明显.

    2)域名字符嵌入特征编码

    域名特征提取是实现恶意域名检测的基础,特征选取的好坏直接影响模型的检测效果,因此,有必要挖掘出域名字符中可能存在的深层关系. 本文采用嵌入式时空特征编码的方式对域名字符深层关系进行分析:首先利用Word2vec对域名进行了嵌入学习,根据域名字母出现的频次对域名进行字符编码;其次利用CNN结合LSTM模型对域名进行编码以挖掘域名字符串的字符之间的相关关系,其中CNN的卷积和滑动窗口的操作可以提取域名字符串中字符和字符之间的局部相关性,而LSTM通过保留前序序列的状态来捕获各个局部之间长序列之间的语义信息,通过先细粒度的局部卷积提取再长序列全局关联的方式挖掘出单个域内的隐含语义信息.域名 嵌入式时空特征编码模型如图2所示,该模型包括3个部分:域名编码层、CNN层和LSTM层.

    图  2  域名嵌入特征编码架构
    Figure  2.  Architecture of domain embedded feature encoding

    ①编码层. 模型编码时,将域名数据样本输入到编码模型之后经过模型运算最终输出能表示域名并且保留域名中字符关联关系的编码向量. 首先,本文选择Word2vec编码模型将每个域名编码成数值向量 {\boldsymbol{e}} ,将词映射成较短的向量同时也保留词和词之间的相关性. 域名经过Word2vec编码后的特征矩阵表示为

    {\boldsymbol{S}} = ({{\boldsymbol e}_1},{{\boldsymbol e}_2},… ,{{\boldsymbol e}_l}) , \quad{\boldsymbol{S}} \in {\mathbb{R}^{d \times l}} , (1)

    其中 {{\boldsymbol e}_r} \in {\mathbb{R}^d} 为每个域名的第 r 个字符的词袋编码向量, d 为字符向量词袋编码的维度, l 为字符个数.

    ② CNN层. 将域名词袋编码矩阵 {\boldsymbol{S}} 输入到卷积层,卷积层通过卷积核对域名词袋编码向量进行卷积操作,计算过程为:

    C(i,j) = ({\boldsymbol{S}} \cdot {\boldsymbol{K}})(i,j) = f\left( {\displaystyle\sum_{i = 1}^\ell { \displaystyle\sum_{j = 1}^d S(i + m,j + n)}}K(m,n) + k \right) , (2)

    其中 i j 为卷积核的位置坐标,卷积核的大小为 m \times n f 为激活函数,{\boldsymbol{ K}} 为卷积核, k 为偏置项, {\boldsymbol{K}} k 通过模型训练更新. 通过多层卷积操作,捕获域名字符和字符之间的局部关联,得到域名的卷积编码向量. 词袋编码输出为 l \times d 维的矩阵,矩阵经过卷积之后变成了 c\times (l-m+1)\times (d-n+1) 维的矩阵, c 为通道数, m d 为嵌入的大小,将卷积矩阵展开重构为 c \times (l - m + 1) \times (d - n + 1) 的向量{\boldsymbol C}_{1},{\boldsymbol C}_{2},… , {\boldsymbol C}_{(c\times (l-m+1)\times (d-n+1))} .

    ③LSTM层. 为了捕捉域名字符串之间的前后关联深层信息,将上述输出的卷积层编码向量输入LSTM层进行预训练对域名进行编码. 按照 {\boldsymbol C}_{1},{\boldsymbol C}_{2},… , \text{ }{\boldsymbol C}_{(c\times (l-m+1)\times (d-n+1))} 的顺序依次输入到LSTM网络中,对于序列中的每个元素,每一层的运算为:

    \left\{\begin{aligned} &{\boldsymbol i}_{t}=\sigma ({\boldsymbol W}_{i{\boldsymbol i}}{\boldsymbol C}_{t}+{b}_{i{\boldsymbol i}}+{\boldsymbol W}_{h{\boldsymbol i}}{\boldsymbol x}_{t-1}+{b}_{h{\boldsymbol i}}),\\ &{\boldsymbol f}_{t}=\sigma ({\boldsymbol W}_{i{\boldsymbol f}}{\boldsymbol C}_{t}+{b}_{i{\boldsymbol f}}+{\boldsymbol W}_{h{\boldsymbol f}}{\boldsymbol x}_{t-1}+{b}_{h{\boldsymbol f}}),\\ &{\boldsymbol g}_{t}={\rm{tanh}}({\boldsymbol W}_{i{\boldsymbol g}}{\boldsymbol C}_{t}+{b}_{i{\boldsymbol g}}+{\boldsymbol W}_{h{\boldsymbol g}}{\boldsymbol x}_{t-1}+{b}_{h{\boldsymbol g}}),\\ &{\boldsymbol o}_{t}=\sigma ({\boldsymbol W}_{i{\boldsymbol o}}{\boldsymbol C}_{t}+{b}_{i{\boldsymbol o}}+{\boldsymbol W}_{h{\boldsymbol o}}{\boldsymbol x}_{t-1}+{b}_{h{\boldsymbol o}}),\\ &{\boldsymbol l}_{t}={\boldsymbol f}_{t}\odot {\boldsymbol l}_{t-1}+{\boldsymbol i}_{t}\odot {\boldsymbol g}_{t},\\ &{\boldsymbol x}_{t}={\boldsymbol o}_{t}\odot {\rm{tanh}}({\boldsymbol l}_{t}),\end{aligned} \right. (3)

    其中 t \in [1,c \times (l - m + 1) \times (d - n + 1)] 表示LSTM的单元数, {{\boldsymbol C}_t} 是输入序列的第 t 个向量元素, {{\boldsymbol{x}}_t} 表示 {{\boldsymbol C}_t} 在隐藏层的状态, {{\boldsymbol{l}}_t} 是第 t 个单元所处的状态, {{\boldsymbol{x}}_{t - 1}} 是第 t - 1 个元素的隐藏层状态, {{\boldsymbol{i}}_t} {{\boldsymbol{f}}_t} {{\boldsymbol{g}}_t} {{\boldsymbol{o}}_t} 分别是输入门、遗忘门、单元门、输出门, \sigma 为激活函数, \odot 为矩阵的乘法运算, {{\boldsymbol{W}}_i} 为LSTM输入的权重矩阵,下角标 i 表示LSTM的输入内容, {b}_{i{\boldsymbol i}},{b}_{i{\boldsymbol f}},{b}_{i{\boldsymbol g}},{b}_{i{\boldsymbol o}} 为LSTM输入的偏置数, {{\boldsymbol{W}}_h} 为单元输入的权重矩阵,下角标 h 表示单元的输入内容, {b}_{h{\boldsymbol i}},{b}_{h{\boldsymbol f}},{b}_{h{\boldsymbol g}},{b}_{h{\boldsymbol o}} 为单元输入的偏置数,都是训练过程中要学习的超参数. 最后利用LSTM的输出结果训练全连接层预测器.

    对于一个简单图,其每条边均与2个顶点相关联,即每条边的度被限制为2,而超图则允许每一条边的度为任何非负整数,超图的简单示意如图3所示.

    图  3  超图结构的简单示意图
    Figure  3.  A simple schematic diagram of hypergraph structure

    超图的数学定义可以表述为,超图是一个三元组 G = \left( {V,E,{\boldsymbol{W}}} \right) ,其中 V 表示顶点集合, E 表示超边集合, {\boldsymbol{W}} 表示记录各条超边权重的对角矩阵. 可以用邻接矩阵 {\boldsymbol{H }}来表述一个超图, {\boldsymbol{H}} 是一个 \left| V \right| \times \left| E \right| 的矩阵,表示方式定义为

    h(v,{e}^{\prime })=\left\{\begin{aligned} &1,\;\;v\in {e}^{\prime },\text{}\text{}\text{}\text{}\text{}\\ &0,\;\;v\notin {e}^{\prime }\text{},\text{}\text{}\text{}\text{}\text{}\text{}\end{aligned} \right. (4)

    其中 h 表示矩阵 {\boldsymbol{H}} 的元素, v \in V,e' \in E ,如图3中的10个顶点 v_{1} ~v_{10} 构成了集合 V ,5条超边 e'_1 ~e'_5 构成了集合 E .

    d(v) \delta (e') 分别表示顶点的度和超边的度, d(v) = \displaystyle\sum_{e' \in E} {w(e')} \times h(v,e') \delta (e') = \displaystyle\sum_{v \in V} {h(v,e')} . {{\boldsymbol D}_v} {{\boldsymbol D}_{e'}} 分别表示超图顶点度矩阵和超边度矩阵的对角矩阵. 超图的顶点(超边)分类问题的学习目标函数为:

    \mathop {\arg \min }\limits_g \{ {R_{\rm emp}}(g) + \varOmega (g)\} , (5)

    其中 g(\cdot) 为分类函数,本文形成超图的分类函数为决策树, \varOmega (g) 为标准化损失函数, {R_{\rm emp}}(g) 为有监督的经验误差,标准化损失函数计算方法为:

    \varOmega (g) = \dfrac{1}{2}\displaystyle\sum_{e' \in E} {\displaystyle\sum_{ u,v\in V} {\dfrac{{w(e')h(u,e')h(v,e')}}{{\delta (e')}}{{\left(\dfrac{{g(u)}}{{\sqrt {d(u)} }} - \dfrac{{g(v)}}{{\sqrt {d(v)} }}\right)}^2}} } , (6)

    其中u v 表示V 中不同的顶点.

    为了呈现域名之间的空间全局关联关系,利用39维域名空间特征形成超图结构,通过超图结构把具有关联关系的域名划分到一个超边区域内. 在超图算法中,超边构建的好坏直接影响到模型的整体检测效果. 本文利用的域名空间统计特征大多是数量特征或者类别特征,比较适合决策树的分类方法. 超图构建过程分为4个阶段:

    阶段1. 针对选取的28万条域名样本进行空间特征提取操作,提取39维域名空间统计特征,其中包括4维域名本身统计特征、25维Whois查询统计特征和10维NS查询记录统计特征,一条域名样本的特征向量可以表示为 {{\boldsymbol N}_p} = ({x_{p,1}},{x_{p,2}}, … ,{x_{p,39}}) 的形式,其中 p \in [1,280\ 000] 表示集合中域名样本序号.

    阶段2. 从上述28万条域名样本中随机选取1万条数据作为训练样本对决策树模型进行训练,得到最优参数组合的决策树分类模型.

    阶段3. 将其余27万条数据作为测试样本输入决策树,根据决策路径倒数第2层叶节点的预测结果将样本分成 C 个类别,然后根据分类结果形成超边集 E E 中包含 C 条超边;超边区域内的所有测试样本形成顶点集合 V=\{{v}_{1},{v}_{2},… ,{v}_{270\;000}\} ,即 V 中包含27万个元素.

    阶段4. 根据式(4)计算 h(v,e) 的值,构建超图的邻接矩阵 {\boldsymbol{H}} ;根据 d(v) \delta (e) 的计算方法生成超图顶点度矩阵 {{\boldsymbol D}_v} 和超边度矩阵的对角矩阵 {{\boldsymbol D}_{e'}} ,这3个矩阵将用于式(7)中实现域名嵌入特征的增强.

    构造超图结构后,利用超图神经网络完成节点分类任务来实现恶意域名检测. 首先利用超图结构的表示矩阵对域名字符的编码特征进行卷积变换,进一步强化域名特征,完整表示出域名之间全局关系. 超图的单层卷积运算公式为:

    {{\boldsymbol X}^{(l + 1)}} = \sigma ({{\boldsymbol D}_v}^{ - 1/2}{\boldsymbol{HW}}{\boldsymbol D}_e^{ - 1}{{\boldsymbol H}^{\rm T}}{{\boldsymbol D}_v}^{ - 1/2}{{\boldsymbol X}^{(l)}}{\varTheta ^{(l)}}), (7)

    其中{{\boldsymbol X}^{(l)}}为第 l 层神经网络的嵌入向量,{{\boldsymbol X}^{(0)}}为域名字符嵌入编码特征矩阵,\sigma 为非线性激活函数, {\varTheta _l},l \in \{ 1, 2,… ,L\} 为训练过程中要学的参数,使用交差熵损失函数来反向传播更新参数\varTheta L为神经网络层数.

    最后将增强之后的域名嵌入特征输入到神经网络的全连接层输出预测结果,实现对恶意域名的识别,取得高效均衡的指标.

    本文选取了中国科技网骨干网真实的域名流量数据,收集2022年1月到2022年7月的域名流量数据并利用恶意域名威胁情报库对其进行标记,恶意样本数量为18万条,其中包括200多种恶意域名类型,正常的域名由威胁情报厂商提供,样本数量为10万条. 本文对恶意域名数据进行了去重,然后记录了恶意域名随时间的分布情况,对于多次出现的恶意域名只记录首次发现的时间,分布情况如图4所示. 由于在2022年2月进行了一次大规模数据的入库,故采集到的恶意域名数据在2月左右有1次较大的波动. 可以看出随着时间的推移,会出现少量的先前从未出现过的域名.

    图  4  恶意域名随时间的分布
    Figure  4.  Distribution of malicious domain name with time

    本文模型的实验运行在Windows10专业版本的工作站上,Intel® Xeon® Gold 5218 CPU,内存128 GB,利用Pytorch神经网络框架,版本为1.12.

    为了评估本文方法的鲁棒性和有效性,实验选取了少量数据样本和大量数据样本2种情况进行分析. 同时,对于每种情况分别选取了3个当前主流的恶意域名检测方法作为基线,这些算法分别从不同的角度对恶意域名进行了预测:FANCI[1]方法使用了域名的字符串特征对恶意域名进行检测,在实际情况中仅仅使用域名本身特征,具有快速检测的优点. Liu等人[2]利用了域名字符特征和NSLookup解析记录,并结合域名的一些静态特征进行恶意域名检测,提升了模型的检测效果和可解释性. 另外,还有通过异构图分析的方法提取域名节点之间的关联关系,以实现恶意域名检测的相关工作 [3],可以进一步挖掘域间隐含关系.

    本文考虑少量域名数据样本的原因主要有2个:1)现有的恶意域名检测相关工作已经可以取得不错的检测效果,但大多依赖大量的恶意标签,这在真实的网络场景中比较难实现,因此本文考虑了少量样本少标签的情况;2)从图4中可以看出随着时间的推移,往往出现数量不多的新的恶意域名,用已经训练好的模型去检测新的恶意域名容易被漏掉,而在真实网络环境下,模型需要有较快的检测速度和较高的召回率,少量样本可以加快模型的更新速度. 综合考虑上述2方面的问题,本文在实验中考虑了少量样本条件下模型的性能,从数据集中随机选取100条样本进行训练,其中良性域名样本和带有标记的恶意域名样本的比例相同,其余27.99万条作为测试数据集,以此验证本文方案适用于少量标记样本的场景.

    为了验证本文方法的泛化性能,也考虑了大量域名样本对模型的影响,从28万条样本中随机选取10000条域名数据作为训练数据,其中良性域名样本和带有标记的恶意域名样本的比例相同,其他27万条数据作为测试数据. 一般情况下,选取训练的样本数量越多则预测效果就越好,但是经过实验发现使用过多的样本会使超图构建消耗大量的时间. 如果超图过大需要输入足够的样本构建图进行检测,从而造成了检测时延,经过实验权衡分析,选择10000条数据作为训练集构建超图.

    为了定量衡量本文模型在恶意域名检测方面的效果,本文采用4个指标:准确率(Accuracy)、精确率(Precision)、 召回率(Recall)、F1值.

    1) Accuracy = \dfrac{{TP + TN}}{{TP + FP + TN + FN}}

    2) Precision = \dfrac{{TP}}{{TP + FP}}

    3) Recall = \dfrac{{TP}}{{TP + FN}}

    4) F1 = \dfrac{{2Precision \times Recall}}{{Precision + Recall}} .

    其中, TP (true positive)表示预测是恶意而实际是恶意的样本数量; FP (false positive)表示实际是良性而预测是恶意的样本数量; TN (true negative)表示实际是良性而预测为良性的样本数量; FN (false negative)表示实际是恶意而预测为良性的样本数量.

    1)根据3.2.1节中对实验数据进行划分,验证在少量样本训练的情况下模型的有效性,分别将本文采集的域名样本输入到FANCI[1]方法、Liu等人[2]的方法以及异构图分析[3]方法中进行训练和预测,得到模型的性能如图5所示. 字符嵌入部分本文利用Word2vec编码输出100×100的向量,经过CNN层后输出100×1024的特征矩阵,再经过LSTM之后域名变换成100个1×100的嵌入向量. 在预测器部分采用2个全连接层,输出2维向量. 在决策树部分,本文选择基尼指数作为划分标准构建CART决策树. 在超图构建部分,使用128大小的隐含层,进行4次卷积并进行全连接层输出预测结果.

    图  5  各方法中评价指标结果和测试时间的比较(100条训练样本)
    Figure  5.  Comparison of evaluating indicator results and testing time for each method (100 samples)

    在训练样本选取100条的情况下,本文方法取得了96.33%的准确率、96.81%的召回率、99.17%的精确率和0.9718F1值,测试时间为0.0279 s;FANCI方法取得了84.53%的准确率、82.52%的召回率、85.12%的精确率和83.8%的F1值,测试时间为3.07 s;Liu等人的方法取得了86.72%的准确率、88.60%的召回率、90.74%的精确率和89.66%的F1值,测试时间为0.019 s;异构图分析方法取得了82.76%的准确率、81.25%的召回率、86.67%的精确率和83.87%的F1值,测试时间为0.075 s.

    图5可以看出,本文方法4个关键指标均高于其他模型,虽然在训练时间上比Liu等人的方法慢0.0089 s,但是这个不会给检测速率带来较大的影响. 本文方法在召回率、精确率、准确率和F1值方面相比其他3种方法取得了较好的效果. 在使用少量样本情况下训练,本文方法具有较好的泛化性能,可以通过少量样本学习到半年时间内恶意域名的内在特征.

    同时,本文也对FANCI方法、Liu等人的方法以及异构图分析的方法模型的适用场景进行了分析. FANCI方法利用NXD响应数据包的字符串统计特征,使用随机森林和支持向量机实现DGA域名检测,因此该方法在DGA域名识别方面效果好,而在中国科技网真实骨干网络环境中NXD数据包比较少,结合中国科技网网络安全应急小组实际业务需求,本文需要关注DGA之外的恶意域名,因此FANCI方法不适用于中国科技网真实网络环境中. Liu等人的方法考虑单个域名的字符特征和解析特征,在开源数据集上验证了方法的高效性,但是没有考虑域名解析特征和注册信息的特征,也没有考虑域名空间的统计特征,在识别跨节点关联的恶意域名攻击方面效果不理想,因此,将该方法应用于本文数据集中在准确率、召回率、精确率、F1值这4个指标上达不到较优结果. 异构图分析方法是对校园网流量进行分析,基于特征元路径的注意力和随机游走机制实现恶意域名检测,因为校园网络环境部署节点清晰,通过特征元路径的方式构建异构图模型可以取得比较理想的结果. 但是中国科技网环境比较复杂,且本文数据集在骨干网出口位置分流捕获,因此流量中没有中国科技网内部节点的往来信息,通过构建元路径的方式构建图结构容易出现孤立点.

    2)根据3.2.2节中对实验数据进行划分,验证多样本训练的情况下模型的有效性,分别将域名样本输入到 FANCI方法、Liu等人方法以及异构图分析方法中进行训练和预测,得到模型的性能如图6所示.

    图  6  各方法中评价指标结果和测试时间的比较(100条训练样本)
    Figure  6.  Comparison of evaluating indicator results and testing time for each method (100 samples)

    在训练样本选取10000条的情况下,本文方法取得了98.29%的准确率、98.73%的召回率、99.95%的精确率和98.69%的F1值,测试时间为0.027 8 s;FANCI方法取得了87.45%的准确率、83.44%的召回率、89.94%的精确率和86.57%的F1值,测试时间为6.16 s;Liu等人的方法取得了90.36%的准确率、92.54%的召回率、92.62%的精确率和92.58%的F1值,测试时间为0.032 s;异构图分析方法取得了86.58%的准确率、85.71%的召回率、88.0%的精确率和86.84%的F1值,测试时间为0.183 s.

    由此可以看出本文方法拥有较高的召回率,对于恶意域名的检测误报率低. 同时检测时间也比较快,在实际系统中可以满足实时检测的需求. 相对于少量样本训练的情况,本文模型召回率得到了进一步提升,说明本文模型学习到了更多的恶意域名特征,从各项指标可以看出本文模型的检测效果远好于其他对比方法. 在样本量变大的情况下,本文模型依旧可以实现较好的检测效果,泛化性能比较高. 此外,本文还利用更大数量的样本构建超图,发现使用10000条样本数据作为训练集已经能够达到最优的效果. 进一步分析,由于本文使用了域名语料库训练出一个良好的嵌入,然后决策树构建的超边又可以学习到域名之间的关联特征,把域名静态特征相近的域名聚合到一个超边里面,并使用超图的卷积运算融合了超边中域名的特征,使得域名之间以及域名中每个字符串的特征得到强化,更能体现出恶意域名通用的特征,而不仅仅是每个域名的特征. FANCI方法只使用了域名本身字符串提取的特征进行分类,需要较大的数据集训练,模型性能一般;而使用域名构建异构图的方法由于缺少足够的样本,无法学习到域名通用的特征.

    本文利用域名空间统计特征构建超图结构,为了找到最适合用于对本文域名空间统计特征分类的模型,应用5类适合处理统计特征的机器学习算法:随机森林、决策树、朴素贝叶斯、SVM、 K 近邻分别对39维域名空间统计特征分类,得到的准确率、召回率、精确率、F1值及测试时间结果,如表1所示. 另一方面,形成超图结构阶段包括训练和超图构建2个过程,其中训练指的是模型参数训练的过程,超图构建指的是模型训练好之后的预测过程,表2给出了2种算法构建超图结构的效率对比结果.

    表  1  选择5种机器学习算法对统计特征分类的效率比较
    Table  1.  Efficiency Comparison of Five Machine Learning Algorithms for Classification of Statistical Features
    模型 训练样本
    条数
    准确率/
    %
    召回率/
    %
    精确率/
    %
    F1值/
    %
    测试时间/
    s
    随机森林 100 89.62 89.81 93.93 91.82 2.97
    10000 95.61 96.31 96.91 96.61 4.19
    决策树 100 87.33 86.60 91.63 89.51 0.82
    10000 93.04 96.85 95.35 96.59 0.81
    朴素贝叶斯 100 76.01 73.53 87.52 79.91 1.30
    10000 78.69 78.23 87.62 82.66 1.24
    SVM 100 89.40 92.05 91.65 91.85 3.93
    10000 93.08 93.10 96.13 94.59 75.42
    K近邻 100 86.67 87.48 91.61 89.50 3.80
    10000 92.32 94.12 94.06 94.09 5.33
    下载: 导出CSV 
    | 显示表格
    表  2  利用2个模型建超边集实现恶意域名检测效率
    Table  2.  Efficiency of Malicious Domain Detection Using Hyperedge Set Constructed by Two Models
    模型 训练样本
    条数
    准确率/
    %
    召回率/
    %
    精确率/
    %
    F1值/
    %
    训练时间/
    s
    超图构建
    时间/s
    随机
    森林
    100 96.55 98.09 98.74 97.37 14 30.0
    10000 98.65 99.55 99.07 98.97 300 54.0
    决策树 100 96.33 96.81 99.17 97.18 4 0.1
    10000 98.29 98.73 99.95 98.69 54 4.7
    下载: 导出CSV 
    | 显示表格

    表1可以看出,随机森林在统计特征分类方面效果最好. 当训练样本为100条时,效果较优的模型是SVM、随机森林和决策树,其中SVM的准确率达到89.4%、召回率达到92.05%、精确率达到91.65%、F1值达到91.85%、测试时间为3.93 s;随机森林模型的准确率达到89.62%、召回率达到89.81%、精确率达到93.93%、F1值达到91.82%、测试时间为2.97 s;决策树模型的准确率达到87.33%、召回率达到86.6%、精确率达到91.63%、F1值达到89.51%、测试时间为0.82 s. 当训练样本数量为10000条时,效果最好的2个模型是随机森林和决策树,其中随机森林模型的准确率达到95.61%、召回率达到96.31%、精确率达到96.91%、F1值达到96.61%、测试时间为4.19 s;决策树模型的准确率达到93.49%、召回率达到94.7%、精确率达到95.23%、 F1值达到94.98%、测试时间为2.53 s;虽然SVM模型在准确率、召回率、精确率以及F1值方面与随机森林及决策树模型的结果相差不大,但是测试时间高达75.42 s,在时间方面没有优势. 因此,综合考虑选择多训练样本与少训练样本2种情况,加上时间优势,本文选择决策树和随机森林对39维域名空间统计特征进行分类形成超图结构和超边集.

    表2可以看出随机森林和决策树这2种算法在选择100条训练样本和10000条训练样本时准确率、召回率、精确率、F1值4项指标结果相差不大,但是决策树的训练时间及超图构建时间优势很明显,100条训练样本情况下,随机森林的训练需要14 s,构建超图需要30 s;而决策树的训练需要4 s,构建超图需要0.1 s. 10000条训练样本情况下,随机森林训练需要300 s,构建超图需要54 s;而决策树训练需要54 s,构建超图需要4.7 s. 时间差别比较大的原因是使用随机森林构建超边,运算量过于庞大,对超图的构建时间造成较大影响,因此在经过权衡之后选择了使用决策树的方法构建模型中的超图.

    本文同时做了消融实验的分析,分别将超图表示特征和字符嵌入特征输入到超图神经网络分类器中去训练并实现恶意域名检测,检验这2类特征单独使用在恶意域名检测中的效果. 本文使用了全部的28万条域名样本数据,选定其中70%作为训练数据,其余30%作为测试数据,结果如表3所示.

    表  3  超图表示特征和字符嵌入特征的消融实验分析
    Table  3.  Analysis of Ablation Study on Hypergraph Representation Feature and Character Embedding Feature %
    使用的方法 准确率 召回率 精确率 F1值
    仅使用字符嵌入特征训练分类器 91.98 89.29 98.16 93.48
    仅使用超图表示特征训练分类器 81.13 84.21 86.09 85.14
    使用超图表示和字符嵌入特征
    分类器(本文)
    99.19 99.03 99.96 98.79
    下载: 导出CSV 
    | 显示表格

    表3可以看到,仅仅将字符嵌入特征输入到检测模型中时,各个指标比本文将2类特征增强变换后输入检测模型的效果有所下降,但是依旧有较高的精确率,说明字符嵌入可以有效地学习到恶意域名具有区分度的特征. 同样,仅将域名空间统计特征构建的超图表示矩阵输入到检测模型中去训练,在各个指标上的效果也不是很理想. 经分析发现域名空间统计特征虽然能够表示域名之间的关联关系,但是并没有学习到字符间隐含的深层特征,这样无法很好地区分字符之间的高阶距离,使得特征在融合之后也无法得到有效地区分. 因此,本文利用域名空间统计特征构建超图,利用超图结构中的超边将域名之间的空间关系呈现出来,再将表示域名空间关系的超图表示矩阵作用于域名字符嵌入特征以对字符特征进行增强,这样既保留了域间的空间特征,也考虑到了域内的字符特征,使得域名时空特征进一步强化,最终在各项指标上的结果比较均衡.

    在实际的网络流量分析过程中,可能会出现由于人工打标签不准确而误判的情况,本文模型能很好地应对该问题,并针对该情况做了充分的实验分析. 同样选择10000个域名流量数据作为样本,随机更改训练集中一部分数据的标签为错误标签以产生噪声,然后将这些带有噪声的样本输入到超图学习模型中去训练,得到的结果如表4所示.

    表  4  本文所提方法在不同错误比率标签情况下的效率分析
    Table  4.  Efficiency Analysis of Our Proposed Method Under Labels with Different Error Ratios
    标签错误率 准确率 召回率 精确率 F1值
    0 98.29 98.73 99.95 98.69
    10 94.75 96.36 98.10 95.97
    20 93.70 95.39 97.10 95.16
    30 93.40 97.95 96.97 94.95
    40 92.23 97.94 96.85 93.96
    50 63.13 85.04 79.97 75.08
    下载: 导出CSV 
    | 显示表格

    实验中,本文分别制造10%,20%,30%,40%,50%的错误标签,并分析这5种情况下模型的准确率、召回率、精确率以及F1值变化情况. 从表4可以看出,在破坏少量样本标签之后精确率和准确率都有所降低,存在对于良性域名的误报,但是依旧具有较高的召回率. 当样本破坏量达到一定大小的时候,即当噪声样本达到50%左右时,在判断决策树叶子节点中错误样本数量占了多数后,决策树会把更多的不相干的域名划分到一个超边中,导致了超边中存在不相关域名的特征融合,使得模型的精确率比没有噪声时的数据降低了35个百分点,召回率降低了13个百分点,精确率降低了20个百分点,F1值降低了23.61个百分点,即便是具有错误标签的样本数量达到一半,本文模型的召回率仍然保持较高.

    对于真实环境下的恶意域名检测来说,尽可能希望将全部的恶意域名识别出来,因此召回率是本文重点关注的一个关键指标. 所以本文模型可以很好地处理由于人工等原因在一定程度上错误标记的场景,在少量错误标记的情况下依旧可以检测出几乎全部的恶意域名.

    在本文方案中,超图神经网络训练过程花费的时间相对来说是最多的,因此,仅对图神经网络的复杂度进行分析. 在超图神经网络中,频谱卷积需要使用拉普拉斯矩阵的特征向量,然而对拉普拉斯矩阵做特征分解时要用到傅里叶变换,傅里叶变换的计算代价为 O({n^2}) . 另外分析了本文模型各部分的实际运行时间,模型字符嵌入的时间约需要5 min,10000个样本构建超图结构需要4.7 s,训练200个遍历需要54 s,100个样本构建超图结构需要0.1 s,训练200个遍历仅需要4 s. 训练的复杂度及时间消耗主要来源于训练字符嵌入模块的时间,但是本文训练的字符嵌入只需训练1次就可以供之后每次训练超图时使用.

    域名系统(DNS)在提供正常解析服务的同时也成为了各种网络非法活动的主要攻击对象,当前研究主要集中在基于统计特征的方法和基于关联关系的方法上. 针对相关方法无法准确呈现域间全局高阶关系的问题,提出基于嵌入式特征超图学习的恶意域名检测方法. 首先利用决策树倒数第2层节点的输出结果作为先验条件形成超边,将域名流量之间的多阶关联关系快速清晰地表示出来;其次构建基于增强嵌入特征超图学习的恶意域名检测模型,并基于域名空间统计特征和域名字符嵌入编码特征挖掘域名隐藏高阶关系;最后结合中国科技网连续7个月的真实的DNS流量数据,对本文方法的有效性和可行性进行分析与评估,实验验证本文方法能够快速高效地检测出恶意域名.

    此外,还发现超图构建的速率受到输入样本数量的影响,下一步将着重解决超图结构优化的问题,打破超图网络现有的固定结构,根据样本特点构建大规模样本自适应超图分类方法.

    作者贡献声明:魏金侠提出算法思路、调研文献、撰写论文以及完成论文修订工作;龙春负责文献指标及论文修改;付豪负责实验分析及论文修订;宫良一和赵静负责论文修改;万巍负责数据分析;黄潘提供实验数据.

  • 图  1   问题框架方法的需求元模型

    Figure  1.   Requirement meta-model of problem frame

    图  2   太阳搜索控制系统的部分问题图

    Figure  2.   Part problem diagram of the sun search control system

    图  3   人机协作的需求获取与建模框架

    Figure  3.   Human-machine collaborative framework for requirement elicitation and modeling

    图  4   4种角色之间的协作关系序列图

    Figure  4.   Sequence diagram of collaboration relationships among four roles

    图  5   最终生成的太阳搜索控制系统的问题图

    Figure  5.   Final generated problem diagram of the sun search control system

    表  1   问题框架方法中的实体建模元素

    Table  1   Entity Modeling Elements in Problem Frame Method

    实体元素含义举例说明
    机器领域指待开发软件太阳搜索控制系统
    需求领域希望看到的效果追踪太阳
    外部实体现实中的环境实体太阳、卫星
    物理设备现实中的物理设备太阳敏感器
    共享现象领域间共享的数据太阳可见标志
    下载: 导出CSV

    表  2   需求获取和建模团队中不同角色的提示词模板

    Table  2   Prompt Template for Different Roles in the Requirements Elicitation and Modeling Team

    参数 具体说明
    Team 现有一个需求获取和建模团队,包括1个需求收集者、1个需求建模师、1个需求检测员,不同人员之间分工不同,相互合作.
    Role 我希望你能在这个需求团队中扮演一个<Role>,负责<Duty>. 你会收到来自<Team>的<Message>.
    Action 如果你收到<Team>的<Message>,请做<Action>.
    Message 来自<Team>的<Message>的内容是<Content>.
    注: Prompt = Team + Role + Action + Message. Role表示大模型扮演的角色,Duty表示角色的职责,Team表示发生交互的其他角色,Message表示交互角色会发送什么信息,Action表示角色执行的动作,Content表示来自交互角色的反馈内容. 这些都是提示词模板的参数.
    下载: 导出CSV

    表  3   收集者提示词的参数取值

    Table  3   Parameter Values of Collector Prompt

    参数 取值
    Role 需求收集者
    Duty 与需求提供者沟通需求
    Team 需求检测员
    Message 待补充的缺失需求
    Action 向需求提供者提问
    Content 当前缺少<MissingReq>,请询问
    下载: 导出CSV

    表  4   需求文档生成的提示词

    Table  4   The Prompt for Requirements Documents Generation

    请你以下面的模版格式输出相应的需求文档,注意不要输出其他内容.
    #1.概述
    <系统名称>需要能够<系统目标>.
    #2.系统组成
    <系统名称>由<物理设备集合>组成.
    #3.功能需求
    * 为了实现<需求领域>:
    <机器领域>使用<物理设备><感知/采集/接收/控制><外部实体>的<共享现象>.
    注: Prompt = Explain + Document.
    下载: 导出CSV

    表  5   建模师的提示词

    Table  5   The Prompt for the Modeler

    我希望你能在这个需求团队中扮演一个需求建模师,负责从需求收集者提供的需求中提取建模元素. 你会收到来自需求收集者的需求片段.
    具体要提取的建模元素及含义为:
    机器领域:待开发软件.
    外部实体:外部世界的实体.
    物理设备:一些外部世界的设备.
    需求领域:预期达到的效果.
    共享现象:领域间共享的数据.
    需求引用关系 :存在于需求领域和外部实体之间,表示期望在机器领域上出现的效果.
    现象共享关系: 存在于机器领域、物理设备和外部实体之间,表示接收或发送数据或指令.
    如果你收到需求收集者的需求片段,请立即提取建模元素.
    来自需求收集者的需求片段的内容是<Content>
    注: Content表示当前迭代阶段来自需求收集者的需求片段.
    下载: 导出CSV

    表  6   检测员的提示词

    Table  6   The Prompt for the Checker

    我希望你能在这个需求团队中扮演一个需求检测员,负责从需求建模师提取的建模元素中检查需求的完整性. 并返回缺失的需求. 你会收到来自需求建模师提取的建模元素.
    请按照以下规则从上往下依次检查需求的完整性. 如果全部满足,则反馈需求完整.
    规则1:机器领域有且仅有一个.
    规则2:需求领域至少要有一个.
    规则3:每个需求领域至少要引用或者约束一个外部实体或者物理设备.
    规则4:每个外部实体都通过物理设备与机器领域相连.
    规则5:每个物理设备都要与机器领域相连.
    规则6:每个外部实体与相连的物理设备之间至少存在一个共享现象.
    规则7:机器领域与相连的物理设备之间至少存在一个共享现象.
    规则8:每个需求领域实体至少与一个物理设备或外部实体之间存在需求引用关系.
    规则9:每个外部实体至少要与一个物理设备之间存在共享现象关系.
    规则10:机器领域要与物理设备之间存在共享现象关系.
    如果你收到需求建模师提取的需求建模元素,请立即根据上述规则检查需求的完整性.
    来自需求建模师提取的需求建模元素的内容是<Content>
    下载: 导出CSV

    表  7   与需求提供者发生交互的次数

    Table  7   Numbers Interacted with Requirement Providers

    案例情况 其他方法 ChatModeler
    GPT-3.5 ChatGLM-6B
    需求模型案例方法名称交互次数交互次数交互次数
    用例图ATMIT4RE955
    COS876
    TLS15109
    TAS746
    TMS1158
    序列图SSSGSQ141210
    问题图HCSGPD1088
    下载: 导出CSV

    表  8   ChatModeler在建模质量上的评估结果

    Table  8   Evaluation Results of ChatModeler on Modeling Quality

    案例情况 其他方法 ChatModeler
    GPT-3.5 ChatGLM-6B
    需求模型案例方法名称准确率/%召回率/%F1值/%准确率/%召回率/%F1值/%准确率/%召回率/%F1值/%
    用例图ATMIT4RE50836362.583.371.455.683.366.7
    COS63565969.2907872.772.772.7
    TLS50565358.377.866.7507560
    TAS1710029141002514.310025
    TMS561007110010010037.57550
    序列图SSSGSQ87.17580.681.686.183.88092.385.7
    问题图HCSGPD76.458.365.785.792.383.881.881.881.8
    下载: 导出CSV

    表  9   最终生成的太阳搜索控制系统需求文档

    Table  9   Final Generated Requirement Document for the Sun Search Control System

    1. 概述
     太阳搜索控制系统需要能够感知太阳位置,控制卫星姿态以及接 受地面操作员的指令,以达成准确定位和操作卫星的目的.
    2. 系统组成
     太阳搜索控制系统由太阳敏感器、陀螺、三轴推力器和数据管理 计算机组成.
    3. 功能需求
    1)为了实现追踪太阳:
     太阳搜索控制系统使用太阳敏感器来感知太阳的可见标志.
     太阳搜索控制系统使用推力器来采集卫星的角度.
    2)为了实现响应操作员的指令:
      太阳搜索控制系统使用推力器来采集卫星的角度.
      太阳搜索控制系统使用陀螺来采集卫星的模拟量.
      太阳搜索控制系统使用数据管理计算机来接收地面操作员的指令.
    下载: 导出CSV
  • [1]

    Goguen J A, Linde C. Techniques for requirements elicitation [C]//Proc of the IEEE Int Symp on Requirements Engineering. Piscataway, NJ: IEEE, 1993: 152-164

    [2]

    White J, Hays S, Fu Quchen, et al. Chatgpt prompt patterns for improving code quality, refactoring, requirements elicitation, and software design[J]. arXiv preprint, arXiv: 2303. 07839, 2023

    [3]

    Jahan M, Abad Z S H, Far B. Generating sequence diagram from natural language requirements[C]//Proc of the 29th IEEE Int Requirements Engineering Conf Workshops (REW). Piscataway, NJ: IEEE, 2021: 39-48

    [4]

    Wang Chunhui, Hou Lu, Chen Xiaohong. Extracting requirements models from natural-language document for embedded systems[C]//Proc of the 30th IEEE Int Requirements Engineering Conf Workshops (REW). Piscataway, NJ: IEEE, 2022: 18-21

    [5]

    Dardenne A, Van Lamsweerde A, Fickas S. Goal-directed requirements acquisition[J]. Science of Computer Programming, 1993, 20(1-2): 3−50 doi: 10.1016/0167-6423(93)90021-G

    [6] 金芝. 基于本体的需求自动获取[J]. 计算机学报,2000,23(5):486−492

    Jin Zhi. Ontology-based requirements elicitation[J]. Chinese Journal of Computers, 2000, 23(5): 486−492(in Chinese)

    [7] 陈小红,尹斌,金芝. 基于问题框架方法的需求建模:一个本体制导的方法[J]. 软件学报,2011,22(2):177−195 doi: 10.3724/SP.J.1001.2011.03755

    Chen Xiaohong, Yin Bin, Jin Zhi. Ontology-guided requirements modeling based on problem frames approach[J]. Journal of Software, 2011, 22(2): 177−195(in Chinese) doi: 10.3724/SP.J.1001.2011.03755

    [8]

    Elbendak M, Vickers P, Rossiter N. Parsed use case descriptions as a basis for object-oriented class model generation[J]. Journal of Systems and Software, 2011, 84(7): 1209−1223 doi: 10.1016/j.jss.2011.02.025

    [9]

    Pudlitz F, Brokhausen F, Vogelsang A. Extraction of system states from natural language requirements[C]//Proc of the 27th IEEE Int Requirements Engineering Conf (RE). Piscataway, NJ: IEEE, 2019: 211-222

    [10]

    Qian Chen, Wen Lijie, Kumar A, et al. An approach for process model extraction by multi-grained text classification[C]//Proc of the 32nd Conf on Advanced Information Systems Engineering(CAiSE). Berlin: Springer, 2020: 268-282

    [11]

    OpenAI. ChatGPT. [2023-08-01] .https://openai.com/blog/chatgpt/. 2023.09

    [12]

    Dong Qingxiu, Li Lei, Dai Damai, et al. A survey for in-context learning[J]. arXiv preprint, arXiv: 2301. 00234, 2022

    [13] 李戈,彭鑫,王千祥,等. 大模型:基于自然交互的人机协同软件开发与演化工具带来的挑战[J]. 软件学报,2023,34(10):4601−4606

    Li Ge, Peng Xin, Wang Qianxiang, et al. Challenges from LLMs as a Natural Language Based Human-machine Collaborative Tool for Software Development and Evolution[J]. Journal of Software, 2023, 34(10): 4601−4606(in Chinese)

    [14]

    Grady J O. System requirements analysis[M]. Cambridge: Elsevier, 2010

    [15]

    Katzenbach J R, Smith D K. The wisdom of teams: Creating the high-performance organization[M]. Boston: Harvard Business Review Press, 2015

    [16]

    Belbin R M, Brown V. Team roles at work[M]. Oxfordshire: Routledge, 2022

    [17]

    Jackson M. Problem frames: analysing and structuring software development problems[M]. Boston: Addison-Wesley, 2001

    [18]

    Jin Dongming, Wang Chunhui, Jin Zhi. Automating extraction of problem diagrams from natural language requirements document[C]//Proc of the 31st IEEE Int Requirements Engineering Conference Workshops (REW). Piscataway, NJ: IEEE, 2023

    [19]

    Chen Xiaohong, Jin Zhi. An ontology-guided process for developing problem frame specification: an example[C]//Proc of the 3rd Int Workshop on Applications and Advances of Problem Frames(IWAAPF'08) . Leipzig: ACM, 2008: 36-39

    [20]

    Xing Zhenchang, Huang Qing, Cheng Yu, et al. Prompt sapper: LLM-empowered software engineering infrastructure for AI-native services[J]. arXiv preprint, arXiv: 2306.02230, 2023

    [21]

    Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. Advances in Neural Information Processing Systems, 2017, 5998-6008

    [22]

    Devlin J, Chang M W, Lee K, et al. BERT: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint, arXiv: 1810. 04805, 2018

    [23]

    Brown T, Mann B, Ryder N, et al. Language models are few-shot learners[J]. Advances in Neural Information Processing Systems, 2020, 33: 1877−1901

    [24]

    Bajaj D, Goel A, Gupta S C, et al. MUCE: A multilingual use case model extractor using GPT-3[J]. International Journal of Information Technology, 2022, 14(3): 1543−1554. doi: 10.1007/s41870-022-00884-2

    [25]

    Leong I T, Barbosa R. Translating Natural Language Requirements to Formal Specifications: A Study on GPT and Symbolic NLP[C]//Proc of the 53rd Annual IEEE/IFIP Int Conf on Dependable Systems and Networks Workshops (DSN-W). Piscataway, NJ: IEEE, 2023: 259-262

    [26]

    Chen Boqi, Chen Kua, Hassani S, et al. On the Use of GPT-4 for Creating Goal Models: An Exploratory Study[C]//Proc of MoDRE workshop at Requirement Engineering conf. Hannover. Piscataway, NJ: IEEE, 2023: 262-271

    [27]

    Liu Pengfei, Yuan Weizhe, Fu Jialan, et al. Pre-train, prompt, and predict: A systematic survey of prompting methods in natural language processing[J]. ACM Computing Surveys, 2023, 55(9): 1−35

    [28]

    Wei Jason, Wang Xuezhi, Schuurmans D, et al. Chain-of-thought prompting elicits reasoning in large language models[J]. Advances in Neural Information Processing Systems, 2022, 35: 24824−24837

    [29]

    Ross D T, Schoman K E. Structured analysis for requirements definition[J]. IEEE Transactions on Software Engineering, 1977(1): 6−15

    [30]

    Graham I. Requirements engineering and rapid development: an object-oriented approach[M]. Boston: Addison-Wesley Press, 1998

    [31]

    Vinay S, Aithal S, Desai P. An approach towards automation of requirements analysis[C]//Proc of the Int Multi Conf of Engineers and Computer Scientists. Piscataway, NJ: IEEE, 2009: 1

    [32]

    Umber A, Bajwa I S, Asif Naeem M. NL-based automated software requirements elicitation and specification[C]//Proc of 1st Conf on Advances in Computing and Communications (ACC). Berlin: Springer, 2011: 30-39

    [33]

    Bajwa I S, Choudhary M A. From natural language software specifications to UML class models[C]//Proc of 13th Int Conf on Enterprise Information Systems(ICEIS). Berlin: Springer, 2012: 224-237

    [34]

    Bajwa I S, Asif Naeem M. On specifying requirements using a semantically controlled representation[C]//Proc of 16th Int Conf on Applications of Natural Language to Information Systems (NLDB). Berlin: Springer, 2011: 217-220

    [35]

    Umber A, Bajwa I S. A step towards ambiguity less natural language software requirements specifications[J]. International Journal of Web Applications, 2012, 4(1): 12−21

    [36]

    Pohl K, Böckle G, van der Linden F, et al. Overview of the example domain: Home automation[J]. Software Product Line Engineering: Foundations, Principles, and Techniques, 2005: 39-52

    [37] 金芝,刘璘,陈小红,等. 软件需求工程方法与实践[M]. 北京:清华大学出版社,2023

    Jin Zhi, Liu Lin, Chen Xiaohong, et al. Software Requirements Engineering Methods and Practices[M]. Beijing: Tsinghua University Press, 2023(in Chinese)

    [38]

    Al-Hroob A, Imam A T, Al-Heisa R. The use of artificial neural networks for extracting actions and actors from requirements document[J]. Information and Software Technology, 2018, 101: 1−15 doi: 10.1016/j.infsof.2018.04.010

    [39]

    LangchainAI. LangChain. [2023-08-01]. https://www.langchain.com/

    [40]

    THUDM. ChatGLM. [2023-08-01].https://github.com/THUDM/ChatGLM-6B

    [41] 杨孟飞,顾斌,段振华,等. 嵌入式软件智能合成框架及关键科学问题[J]. 中国空间科学技术,2022,42(4):1−7

    Yang Mengfei, Gu Bin, Duan Zhenhua, et al. Intelligent program synthesis framework and key scientific problems for embedded software[J]. Chinese Space Science and Technology, 2022, 42(4): 1−7(in Chinese)

    [42] 顾斌,董云卫,王政. 面向航天嵌入式软件的形式化建模方法[J]. 软件学报,2015,26(2):321−331

    Gu Bin, Dong Yunwei, Wang Zheng. Formal modeling approach for aerospace embedded software[J]. Journal of Software, 2015, 26(2): 321−331(in Chinese)

图(5)  /  表(9)
计量
  • 文章访问数:  474
  • HTML全文浏览量:  89
  • PDF下载量:  207
  • 被引次数: 0
出版历程
  • 收稿日期:  2023-09-11
  • 修回日期:  2023-12-11
  • 网络出版日期:  2023-12-20
  • 刊出日期:  2024-02-01

目录

/

返回文章
返回