-
摘要:
近年来,随着物联网(Internet of things, IoT)设备的大规模部署,针对物联网设备的恶意代码也不断出现,物联网安全面临来自恶意代码的巨大威胁,亟需对物联网恶意代码检测技术进行综合研究. 随着人工智能(artificial intelligence, AI)在计算机视觉和自然语言处理等领域取得了举世瞩目的成就,物联网安全领域也出现了许多基于人工智能的恶意代码检测工作. 通过跟进相关研究成果,从物联网环境和设备的特性出发,提出了基于该领域研究主要动机的分类方法,从面向物联网设备限制缓解的恶意代码检测和面向性能提升的物联网恶意代码检测2方面分析该领域的研究发展现状. 该分类方法涵盖了物联网恶意代码检测的相关研究,充分体现了物联网设备独有的特性以及当前该领域研究存在的不足. 最后通过总结现有研究,深入讨论了目前基于人工智能的恶意代码检测研究中存在的问题,为该领域未来的研究提出了结合大模型实现物联网恶意代码检测,提高检测模型安全性以及结合零信任架构3个可能的发展方向.
Abstract:In recent years, with the large-scale deployment of Internet of things (IoT) devices, there has been a growing emergence of malicious code targeting IoT devices. IoT security is facing significant threats from malicious code, necessitating comprehensive research on IoT malware detection techniques. Following the remarkable achievements of artificial intelligence (AI) in fields such as computer vision (CV) and natural language processing (NLP), the IoT security field has witnessed numerous efforts in AI-based malware detection as well. By reviewing relevant research findings and considering the characteristics of IoT environments and devices, we propose a classification method for the primary motivations behind research in this field and analyze the research development in IoT malware detection from two perspectives: malware detection techniques towards IoT device limitation mitigation and IoT malware detection techniques towards performance improvement. This classification method encompasses the relevant research in IoT malware detection, which also highlights the unique characteristics of IoT devices and the current limitations of the IoT malware detection field. Finally, by summarizing existing research, we extensively discuss the challenges present in AI-based malware detection and present three possible directions for future research that consists of combining foundation models in IoT malware code detection, improving the safety of detection models, and combining zero trust architecture in this field.
-
基于软件复用和模块化开发的原则,现代软件系统的开发通常需要使用外部库. 开发者基于一些基础库、第三方库或者一些常用框架,能够快速地构建编程环境、实现编程任务、提高开发效率. 有研究表明[1],在超过5000个软件项目的研究中,45%的应用程序编程接口(application programming interface,API)是直接从第三方库导入的.
因此,在软件开发过程中,开发者常常面临API使用问题. 在不熟悉的编程任务面前,开发者可能不知道使用哪些API能对编程任务更有帮助. 除此之外,如果缺乏相关的编程经验,开发者也可能不了解一些API的具体使用方法. 在这些情况下,开发者可能会查阅官方帮助文档,或者通过代码开源平台和相关论坛查询、搜索代码示例,从而学习API的使用. 然而当前很多官方文档存在质量问题[2-3],且通常只提供API的描述信息而不提供代码示例[4]. 利用一些非正式的平台或者论坛进行检索和学习也会面临许多障碍[5],并且这些返回的搜索结果可能是错误的、不完整的[6]. 开发者需要花大量时间去筛选和测试才能找到自己需要的API及其使用示例.
近年来,研究者们提出了各种方法为开发者推荐合适的API及其使用模式,从而促进开发者对API的学习和使用. API使用的模式推荐方法通常是从大型代码库中挖掘API的使用模式,然后通过有显式或者无显式的查询匹配这些使用模式[7],最终推荐符合条件的API元素或者代码片段.
API使用模式推荐的关键是API的预测与推荐. 主要有基于序列模式挖掘的方法、基于自然语言处理的方法以及基于机器学习的方法. 基于序列模式挖掘的方法主要是利用序列模式挖掘算法挖掘API调用序列[8-10],根据API使用频率进行预测,但是得到的模式通常包含很多重复子序列和无关子项,造成结果的冗余,即存在模式爆炸问题[11]. 此后有研究人员提出使用图结构来表示API调用序列[12],并利用N-Gram语言模型思想计算子图的生成概率,从而预测对应的API. 但是当上下文信息变得复杂时,子图的生成效率变低,也容易出现长距离依赖问题. 有研究人员提出基于神经网络的方法来解决自然语言处理的长依赖问题. 例如利用深度学习模型RNN学习API调用序列[13-14],从而预测下一步API出现的概率. 也有利用图深度学习模型GCN融合拓扑信息和API文本属性[15]学习图结构的表示,从而预测潜在的API. 这些方法主要利用API上下文结构信息学习API的特征表示,然而API之间细粒度的关系表示还不够充分,导致难以区分API之间的差异性.
文献[8-15]方法在基于上下文的API推荐场景中,以当前正在编写程序的项目或者方法中的API调用信息作为上下文,然后利用上下文的结构信息或语义信息对API进行预测. 利用结构信息的方法通常结合API调用序列或者上下文结构进行分析,然后基于API使用频率对候选API进行预测. 利用语义信息的方法主要对上下文的语义特征进行分析,然后根据候选API与上下文的语义相似性进行预测,最后根据候选API预测值大小进行排序推荐. 然而这些方法形成的推荐列表,由于上下文信息考虑不充分,会导致推荐列表中冗余项和同质化内容的出现,影响推荐性能. 主要有3种情况出现:
1)基于API序列结构的方法通常只考虑API之间的调用关系,导致一些与上下文语义不相关的API也被预测和推荐. 例如,假定API元素A,B,C能够组成2组序列模式L1=(A,B)和L2=(A,C),结合上下文的API调用序列进行预测,当推荐A时,根据使用频率,B,C也将被预测成为候选API. 如果L1与上下文语义相关,那么C为冗余项. 当冗余项变得越来越多时,一些使用频率较高但与上下文语义无关的API因为预测值大而排在推荐列表前面,推荐性能受到影响.
2)基于上下文结构的方法通常会考虑上下文的语义关系而不考虑API之间的调用关系,导致推荐结果容易出现模式冗余. 例如,由1)中2组序列模式L1=(A,B)和L2=(A,C)可知,如果L1和L2都与上下文语义相关,那么将同时推荐L1和L2组成的API使用模式. 由于B,C不是有效的使用关系,同时推荐B,C容易造成模式冗余,其中,C为模式L1的冗余项,B为模式L2的冗余项. 这种情况造成一些不存在使用关系的API作为使用模式被推荐在列表中也会影响推荐性能.
3)当前基于语义信息的推荐方法通常考虑的是项目与API或者方法与API的语义关系,缺乏API之间细粒度关系的考量. 当推荐列表中存在能够实现相同功能的API时,且这些API之间具有类似的属性,那么API之间差异性小,由于不区分API之间的差异性,容易造成部分结果同质化. 当一些具有类似属性的同质化API也被推荐系统考虑而占用了推荐列表位置时,会影响推荐性能.
针对这3种情况,本文从不同粒度考虑API的使用关系,充分利用上下文结构和语义信息,对现有不同粒度的研究方法进行改进,使它们能够利用更多的特征信息,得到更好的推荐结果;然后再对这些方法推荐的相关结果配以关联性分析结果后进行重排,减少推荐列表中前排冗余项和同质项,从而增加推荐列表中有效API的比例,提高推荐准确率和平均精度. 本文以图模型为对象,提出一种基于上下文感知并面向多样性的API推荐方法, (context-aware based API recommendation with diversity, CAPIRD) .
本文的主要贡献有4点:
1) 提出一种名为AHC (GAPI hierarchy call graph)的API层次调用图模型,从不同粒度上表示API的上下文关系,为相关性和关联性的分析服务;
2) 基于AHCG模型分别构造项目上下文和方法上下文的协同信号,进而感知相似的API上下文,缩小候选API的范围,减少上下文冗余项的出现,并度量相关性;
3) 基于AHCG模型构建API关联图,考虑细粒度的API结构关系,挖掘已选API的关联模式,减少模式冗余项的产生,并度量关联性;
4) 提出一种相关性与关联性的线性组合算法,并从标准模式中学习最佳权重组合,对候选API进行重排推荐,降低推荐列表中同质化API出现的可能性,提高推荐结果的准确率.
1. 相关工作
研究人员提出了许多API推荐方法和工具,来帮助开发者搜索和学习API的使用. 根据API推荐场景,目前主要有2类方式,即有显式查询推荐和无显式查询的推荐[7].
1.1 有显式查询的API推荐
有显式查询方法主要是根据关键字或者自然语言显式地表达开发者的意图,然后进行代码或API的搜索,最终推荐相关的API使用模式. 例如,RACK[16],NLP2API[17]通过自然语言查询Stack Overflow上Q&A中的API使用知识. DeepAPI[14]将用户查询作为源语言,API调用序列作为目标语言,利用RNN编码-解码器模型解决问题. CODEnn[18]将自然语言描述和代码片段嵌入到高维的向量空间,使用户可以通过自然语言查询相关的代码片段. BIKER[19]融合Stack Overflow上的Q&A和API文档来弥补自然语言和代码之间的词法和知识代沟. SSAPIR[20]将API描述信息和查询信息构建为同一向量空间模型,利用TF-IDF算法计算向量空间中每个词袋的语义特征,然后基于语义相似度匹配API使用模式. GeAPI[21]使用图嵌入技术学习API图的语义表示,根据用户查询返回相似的子图. PreMA[22]提取了API文档中的功能性词汇用于计算用户查询和功能语句的相似性. BRAID[23]利用开发者的反馈信息,通过主动学习和学习排序(LTR)技术,使得推荐结果更稳定.
1.2 无显式查询的API推荐
无显式查询方法主要是从API上下文中研究开发者的编程意图,从而挖掘或者预测相关的API信息. 一些经典的工具如MAPO[8],UPMiner[9],PAM[10],分别通过序列挖掘算法、聚类算法和EM算法挖掘API调用序列并用于API推荐. 文献[24]通过将API使用对象和共现关系构建为关系网,将网络中相似对象的使用作为相似API使用模式. SALAD[25]使用隐马尔可夫模型学习API调用序列,从而根据上下文中的API调用序列预测下一步候选API被使用的概率. FOCUS[26]将客户端方法视为用户,将API调用视为物品,利用协同过滤算法推荐相似的API使用模式. HiRec[27]通过分析API调用之间的层次结构,利用层次推理模型预测可能匹配的API. APIRec-CST[28]利用门控图神经网络(GG-NNs)学习结构信息的向量表示,利用序列神经网络(如LSTM)学习文本信息的向量表示,连接GG-NNs和LSTM,然后对目标Hole位置的API进行预测. GAPI[15]融合API调用的结构信息和API的文本属性,利用图学习技术从API的调用关系中捕捉高阶协同信号,从而发现与API上下文相似的候选API.
2. 相关定义
API使用模式推荐示意如图1所示,假设开发者编写到光标处时遇到API使用问题,不知道调用哪些API或者怎么使用这些API才能完成当前客户端方法myWork中的剩余编程任务. 记开发者编程现场的上下文信息为Q. 相关定义为:
定义1. 实体. 表示遇到API使用问题时所涉及的研究对象,有3种,即项目实体、方法实体和API实体.
开发人员在编程环境中正在编写的项目称为活动项目,正在编写的客户端方法称为活动方法,活动方法所在项目即为活动项目.
定义2. 上下文信息. 用来刻画某状态下的实体关系和属性信息,用四元组Q=(E,V,R,T)来表示. 其中,E表示上下文中所研究的实体;V表示上下文中实体的属性;R表示实体间的关系;T表示时间,反映某一时刻编程现场的上下文信息.
定义3. 上下文相关性. 表示上下文信息与API存在逻辑关系,定义为R1={(Q,i)|sim1(Q,i)≥λ1,i∈Ei}. 其中,Q表示上下文信息,i表示API实体,Ei表示API实体集合,λ1表示阈值,sim1表示逻辑推断函数.
定义4. API关联性. 表示API之间的逻辑联系,通过API实体之间的共同使用关系或属性信息标识,其定义为R2={(mi,mj)|sim2(mi,mj)≥λ2,mi,mj∈Ei},R2表示API实体mi和mj具有相似的使用关系或语义信息,mi和mj存在关联性. 其中,Ei表示API实体集合,λ2表示阈值,sim2表示相似性函数.
定义5. API层次调用图( API hierarchy call graph,AHCG). 定义GAHCG={V,E},其中节点集合V有3种类型的节点,包括项目、方法和API;边集合E表示项目和方法,以及方法和API之间的层次关系. 项目节点包括语料库项目和客户端项目;方法节点表示项目中定义的方法声明;API节点表示方法中的API调用,其包括内置API调用、第三方API调用和本地方法调用.
3. 面向多样性的API推荐框架
基于开发者活动项目的上下文信息,本文提出CAPIRD,整体框架如图2所示. CAPIRD模型主要由4个模块组成:元数据结构提取模块、相关性分析模块、关联性分析模块和重排推荐模块. 元数据结构提取模块主要是从项目源码库中提取项目、方法与API的层次结构,并基于这些信息构建AHCG图;相关性分析模块主要从项目和方法粒度上,计算上下文的特征表示,然后基于特征相似性感知相似的上下文,进而推断与上下文相关API,并度量相关性;关联性分析模块从API的粒度上,构建API之间的细粒度使用关系,然后从中挖掘频繁使用模式作为API关联图以获得更充分的API结构关系,并从图中度量关联性;API多样性重排从多样性角度将相关性和关联性进行线性组合,提升推荐性能.
3.1 AHCG图模型构建
AHCG图用来表达API与项目和方法之间的层次关系,从而能够更好地利用元数据集中API的结构信息对客户端项目进行建模,并从不同粒度上表达API在项目中的结构特性.
利用静态分析工具解析每个项目的类文件信息,将提取的方法名称、方法参数、方法体、API名称、API参数作为元数据集. 对于给定项目元数据集,AHCG图的构建过程为:
1)确定图的项目节点集合P. 确定元数据集中涉及的项目文件,并对不同项目进行编号,添加到P中.
2)确定方法节点集合U,以及项目和方法的关系边E1. 从项目起始编号开始,获取项目所有类中定义的方法声明,然后对这些方法进行编号,添加到U中,最后再建立该项目和方法的关系边. 例如,项目p解析后提取了方法u,那么p和u存在一条边,即e1=(p,u),e1∈E1.
3)确定API节点集合I,以及方法和API的关系边E2. 从方法起始编号开始,依次提取方法中涉及的API调用. 然后判断该API是否存在,不存在,则添加新的API节点编号到I中;否则从I中取出已存在的API节点编号. 最后建立方法和API的关系边. 例如方法u中提取了API节点i,那么u和i存在一条边,即e2=(u,i),e2∈E2.
根据1)~3)步骤构建的结果示例如图3所示,节点Pi (i=0,1,2,3)表示项目节点,节点Uj (j=0,1,…,4)表示方法节点,节点Ik (k=1,2,…,7)表示API节点,关系边E1和E2都表示层次关系. E1表示P到U这一类边的集合,E2表示U到I这一类边的集合.
3.2 相关性分析
相关性分析模块主要是基于上下文相似性对API进行预测,并尽可能减少冗余项的出现. 上下文信息的分析包括活动项目上下文和活动方法上下文的分析.
2个项目的相似性可由项目特征项的集合进行计算[29],因此可以根据活动项目上下文的特征集合感知相似的项目集合,从而缩小候选API搜索范围. 此外,为了给活动方法提供相关的API使用建议,还需要研究活动方法上下文的API使用信息.
基于AHCG的图模型可知,项目节点和方法节点这2类节点包含的API使用信息规模不同,因此针对这2类节点的上下文信息,分别使用不同的特征提取方法提取特征. 然后从相似项目集合中计算活动方法与目标API的相似性.
3.2.1 基于项目上下文的特征提取
项目上下文反映项目中的API使用情况,本文通过评估不同项目中API的被使用情况反映项目上下文的特征,利用TF-IDF算法进行计算. 其中,特征TF表示API在当前项目中的使用频率,特征IDF反映API在整个项目源码库中的普遍性.
从AHCG中的项目节点开始,通过层次遍历能够得到API节点集合. 给定项目的API节点集合p ={i1,i2,…,in},API节点ik的特征TF计算如式(1)所示:
TFik=Tikn∑m=1Tim, (1) 其中n表示集合p中API节点的数量,Tik表示API节点ik的出现次数.
API节点ik的特征IDF计算如式(2)所示:
IDFik=log(|P|1+aik), (2) 其中|P|表示AHCG中项目节点的数量,aik表示AHCG中使用了ik的项目节点数量.
在整个项目源码库的体系下,API节点ik在项目p中的被使用情况ϕik的计算公式为
ϕik=TFik×IDFik. (3) 给定项目集合p,那么p的特征可以用API被使用情况的向量表示,即{{\boldsymbol{\phi}} _p} = ({\phi _{{i_1}}},{\phi _{{i_2}}},…,{\phi _{{i_k}}},…).
3.2.2 基于方法上下文的特征提取
方法上下文反映了方法中的API使用情况,同时以方法为单位的程序在一定程度上隐含了代码的语义信息,因此考虑方法和API的文本属性应该能够增强上下文的语义表示. 图卷积神经网络(GCN)[30]利用图结构信息和节点属性信息,能够学习图的特征表示. 本文利用GCN进行方法上下文的特征提取,其网络结构主要由3部分组成:输入层、图卷积层和输出层.
1)输入层. AHCG图的结构信息、节点初始化特征表示为 {{\boldsymbol{e}}^0} ,如式(4)所示.
{{\boldsymbol{e}}^0} = Encode(x,{\varTheta ^{{\rm{in}}}}) \text{,} (4) 其中 x 代表节点文本属性信息,{\varTheta ^{{\rm{in}}}}是编码函数Encode(\cdot)待学习的参数, {{\boldsymbol{e}}^0} 是编码后的节点向量表示,分为方法u节点表示 {\boldsymbol{e}}_u^0 和API i节点表示 {\boldsymbol{e}}_i^0 .
2)图卷积层. 其主要目的是聚合邻居节点的协同信号,从而实现消息传递. 主要任务是协同信号的获取和节点向量的更新.
协同信号的获取公式为
{\boldsymbol{e}}_{N(u)}^k = \sum\limits_{v \in N(u)} {p \cdot \left({{\boldsymbol{W}}^k}{\boldsymbol{e}}_v^{k - 1} + {{\boldsymbol{b}}^k}\right)} \text{,} (5) 其中p = {\raise0.7ex\hbox{$1$} \mathord{\left/ {\vphantom {1 {\sqrt {|{N(u)}| \cdot |{N(v)}|} }}}\right.} \lower0.7ex\hbox{${\sqrt {|{N(u)}| \cdot |{N(v)}|} }$}}是信号强度系数, |{N(u)}| 和 |{N(v)}| 分别表示节点u和节点v的度, {N(u)} 表示AHCG中与节点 u 具有层次关联的邻居节点, {\boldsymbol{e}}_v^{k - 1} 表示k−1层节点v的特征表示,W和b是待学习的参数.
根据聚合函数的消息传递机制,AHCG中节点最新的特征表示通过与邻居节点的聚合更新得到,如式(6)所示:
{\boldsymbol{e}}_u^k = f\left({\boldsymbol{e}}_u^{k - 1},{\boldsymbol{e}}_{N(u)}^{k - 1}\right) \text{,} (6) 其中聚合函数 f( \cdot ) 使用ReLU函数实现.
3)输出层. 其获得方法节点 u 和API节点 i 的最终特征表示如式(7)所示. 通过线性转换层输出 k 层卷积层的节点表示,然后对API节点进行预测.
\left\{ \begin{gathered} {{\boldsymbol{z}}_u} = {{\boldsymbol{W}}_u}[concat({\boldsymbol{e}}_u^1,{\boldsymbol{e}}_u^2,…,{\boldsymbol{e}}_u^k)] + {{\boldsymbol{b}}_u}{\text{,}} \\ {{\boldsymbol{z}}_i} = {{\boldsymbol{W}}_i}[concat({\boldsymbol{e}}_i^1,{\boldsymbol{e}}_i^2,…,{\boldsymbol{e}}_i^k)] + {{\boldsymbol{b}}_i}, \\ \end{gathered} \right. (7) 其中连接函数 concat( \cdot ) 将每一层节点的特征表示顺序连接.
3.2.3 相关性度量
相关性度量的主要目的是根据上下文提取的不同粒度特征对目标API进行预测,预测值越大,则API与上下文越相关. 因此,定义函数context(·)作为相似性度量的计算方法,从而适应不同粒度的研究方法. 输入是上下文信息Q和目标API i,返回值是Q与i的相关性,如式(8)所示:
si{m_1}(Q,i) = context(Q,i) . (8) 若Q是项目上下文信息,context(·)采用缺失评分算法[31]实现API的预测并返回预测结果;若Q是方法上下文信息,根据式(7)中方法节点 u 和API节点 i 的向量内积进行预测,即sim(u,i) = {\boldsymbol{z}}_u^{\rm{T}}{{\boldsymbol{z}}_i}.
3.3 关联性分析
关联性分析模块的主要目的是从相似上下文中获取API关联信息,并分别从结构和语义上分析API之间的相似性. 从另一个角度看,相似API可以反映相似的上下文[32],因此相似的上下文中有可能隐含相似API. 本文基于活动方法上下文和AHCG图模型构建API关联图,增强细粒度的API结构表征,并从中挖掘API的关联模式;再基于关联模式,分别从结构关系和语义信息上度量API之间的关联强度.
基于AHCG图模型,API关联性分析模块的分析对象是方法节点和API节点.
3.3.1 关系构建
基于方法特征的向量表示,利用余弦相似性计算活动方法与其他方法的相似性,将相似性值大于0的方法作为相似方法. 将这些相似方法中使用的API作为节点、共现关系作为边,构建API关联图. 如图4左图所示,节点I表示API,边表示2个API在方法中具有共同使用关系,边权重表示2个API在方法中的共现次数. 为了挖掘目标API在相似上下文中的关联程度,本文基于AHCG图模型将关联关系保存在图数据库中,如式(9)所示:
D = \{ {g_{{U_i}}} = \left({V_{{U_i}}},{E_{{U_i}}}\right)|i = 1,2,…,n\} \text{,} (9) 其中 {U_i} 为AHCG中第i个相似的方法节点, {g_{{U_i}}} 表示节点 {U_i} 构建的API关联图, {V_{{U_i}}} 和 {E_{{U_i}}} 分别表示 {U_i} 中的API节点和共现关系构成的边.
3.3.2 关联模式挖掘
基于AHCG图模型,本文将API之间关联关系的发现转化为频繁子图的挖掘. 为了避免图匹配过程的子图同构问题[33]和挖掘的模式出现冗余问题,本文锁定目标节点避免子图任意扩展,将挖掘的关联模式覆盖在目标节点关联的子图上避免冗余输出,进而提出关联目标节点的子图挖掘方法. 首先将目标节点作为初始节点,基于AGM算法[34]思想,通过添加新节点产生候选子图,为防止候选子图任意扩展,对目标节点的高阶邻居节点进行剪枝,使挖掘的子图作为目标节点关联的子图. 记录目标节点关联新节点的2阶子图的支持度,丢弃支持度不符合条件的候选2阶子图,针对图4(a)关联图的挖掘结果如图4右图所示.
具体的关联目标节点的子图挖掘算法如算法1所示,主要有4个步骤:
1)首先设定支持度阈值,然后从相似的数据集合中构建关联图数据库,将不同的API节点进行编号;
2)在目标节点上添加新节点进行子图扩展,对目标节点的高阶邻居进行剪枝,只保留与目标节点有直接关联关系的目标子图;
3)计算目标节点与新节点构成的2阶子图的支持度,将未达到阈值的子图丢弃;
4)将满足条件的2阶子图添加到目标子图上,当所有节点都被访问时,生成最终的关联目标节点的子图 d(i) ,其中i表示目标API节点.
最终,API关联子图d中包含了API之间各种可能的使用模式,可以为开发者展示更多可能性.
算法1. 关联目标节点的子图挖掘算法.
输入:上下文信息Q,API节点i,支持度minsup;
输出:节点i关联的子图G_i .
① getTargetSubgraph(Q, i, minsup);
② let S = getSimilarDatas(Q);
/* 获得相似的上 下文数据集 */ ③ let D, I = buildGraphDatabase(S); /* 从相似数 据集中构建API关联图G,返回图数据库D 和已编号的API节点集合I */
④ let G = {V={},E={}}; /* 初始化目标子图 */
⑤ for k in I do /* 依次读取集合I中节点编号 */
⑥ if k not in G.v and e(i,k) in D then
⑦ g = {v={i,k},e=(i,k)} ;/* 获取2阶子图 */
⑧ if e(i,k) ≥ minsup then
⑨ G = G ∪ g; /* 子图扩展 */
⑩ else
⑪ 丢弃g;
⑫ end if
⑬ else
⑭ 剪枝;
⑮ end if
⑯ end for
⑰ return Gi.
3.3.3 关联性度量
关联性度量的主要目的是度量2个API之间的相似性,分别从结构关系和语义关系上进行度量. 关联性越强,说明2个API相似的可能性越大. 本文定义函数correlation(·)作为关联性度量的计算方法,从而融合不同类型关系表示的研究方法. 输入是2个API节点i和j,返回值是i和j的关联性,如式(10)所示:
si{m_2}(i,j) = correlation(i,j) . (10) 若度量API的结构关系,correlation(·)计算节点i与j的权重系数,由节点i和j的2阶子图的支持度与图数据库数量的比值得出;若度量API的语义关系,利用图嵌入技术[15]将图d中i节点的特征表示zi和节点j的特征表示zj进行内积,从而计算2个节点的语义相似性,即sim(i,j) = {\boldsymbol{z}}_i^{\rm{T}}{{\boldsymbol{z}}_j}.
3.4 API多样性重排推荐
API多样性重排推荐的目的是优化有效API在推荐列表中的排名,减少冗余项和同质化内容的产生,使得推荐结果在保障推荐性能的前提下具有更好的多样性.
根据最大边缘相关(MMR)算法[35]的思想,通过结合查询内容的相关性和推荐内容的新颖性能够增加推荐结果的多样性. 新颖性反映了推荐内容之间的差异性程度,若推荐内容之间差异性小容易造成内容同质化,即相同结构关系或功能属性的API同时被推荐. 适当调整一些同质化内容在推荐列表中的排名,能够改变推荐内容的多样性.
本文在保持上下文相关性的同时,协调推荐内容之间的差异性来增加推荐结果的多样性. 推荐内容之间的差异性可以通过API之间的关联性进行度量,调整相关性和关联性权重能够使推荐列表展示更多可能的情况. 因此,重排推荐的目标是找到合适的平衡参数,从而降低推荐列表中同质化内容出现的可能性,提升有效API被推荐的可能性. 相关性分析模块和关联性分析模块分别度量了上下文与API之间的相关性和与API的关联性. 利用式(11)之间将相关性和关联性进行线性组合来度量每个API被推荐的可能性:
MMR(Q,R) = \mathop {arg\max }\limits_{i \in R\backslash S}^N \left[\lambda si{m_1}(i,Q) - (1 - \lambda )\mathop {\max }\limits_{j \in S} si{m_2}(i,j)\right] \text{,} (11) 其中Q表示上下文信息,R表示候选API集合,S表示R中已被选择的API集合,R\S表示R中未被选择的API集合;1用于上下文信息和API之间相关性的度量,用于API之间关联性的度量,参数 \lambda 用来度量sim1和sim2的权重.
根据式(11),当参数 \lambda =1时,MMR表示标准的相关性API推荐结果;当参数 \lambda =0时,MMR表示最大的多样性推荐结果. 这些API推荐结果是一种线性组合,本文利用算法2所示方法从标准模式的训练数据集中获取能够平衡相关性和关联性的最佳参数.
算法2. Top-N参数优化算法.
输入:上下文信息Q,API候选集合R;
输出:Top-N(N=1,5,10,15,20)的最佳参数topNLambdas.
① getTopNOptimumParameters(Q, R, N);
② let topNLambdas = 1;
③ for i = 0 to numIter do
④ maxEvalScore = 0;
⑤ maxLambda = 0;
⑥ for lambda = 1 to 0 by step = −0.1 do
/* 使用最新的采样参数lambda进行多 样性重排序并评价输出结果 */
⑦ score = evaluate(lambda;MMR(Q,R));
⑧ if score > maxEvalScore then
⑨ maxEvalScore = score;
⑩ maxLambda = lambda;
⑪ end if
⑫ end for
⑬ topNLambdas = maxLambda;
⑭ end for
⑮ return topNLambdas.
给定训练数据集,首先计算相关性条件下的性能指标,并以该指标作为该训练集的基准. 然后结合API多样性重排算法计算不同参数下Top-N的评价指标,迭代计算每一次参数采样的评分,选择评分最优时Top-N取得的参数作为该数据集的最佳参数.
4. 实验与结果
为了验证所提API推荐方法的有效性,本文使用真实的软件项目模拟开发者的编程场景,并在3个不同的数据集上进行实验验证,且与方法FOCUS和GAPI进行对比实验.
本文实验的硬件和系统环境为Intel Xeon Gold 6148处理器、256.0 GB RAM、Nvidia V100 GPU的Linux 64位服务器;Intel® CoreTM i7-10700 2.90 GHz处理器、16.0 GB RAM的Windows 10 64位操作系统;使用的软件环境有JDK 1.8,Python3,PyTorch等.
4.1 数据集
本文采用文献[26]中所使用的开源数据集,其中数据集SHL是从Github软件遗产存储库中任意提取的610个Java项目;数据集SHS是在SHL中筛选出的200个最小项目;数据集MV是从Maven中央仓库中提取的1600个JAR项目,且不同版本的同一JAR项目只保留其中一个版本.
基于原始数据集,首先解析项目源码库构建元数据集,并从中构建AHCG模型,提取初始特征. 表1详细统计了上述3个数据集的相关信息,包括用于上下文模型输入的项目特征和方法特征. 其中项目特征指每个项目中API的TF-IDF特征,由于每个项目的API不同,本文统计了每个项目平均调用的API数作为该数据集的平均项目特征数. 方法特征采用文献[15]的方法,利用驼峰式拆分法将方法名称和API名称拆分为单词序列并作为节点的文本属性,这些单词在相同的向量空间中进行编码和对齐,方法节点的特征维度与单词数有关,因此统计数据集中不同单词数作为方法特征数.
表 1 实验元数据集统计数据Table 1. Meta Datasets Statistics for Experiments数据集 项目节点数 方法节点数 API节点数 层次关系数 关联关系数 项目平均特征数 方法特征数 SHS 200 15531 20866 77168 263819 308 5351 SHL 610 1032888 643162 5243380 19044976 6902 30576 MV 1600 111732 194965 1638360 12338006 954 30442 4.2 实验设置
为了评价本文方法的有效性并与其他方法形成对比,遵循前人的研究方法对实验进行离线评估. 实验将软件项目中的部分代码抽取出来,从而模拟开发者编程现场及API上下文的使用情况. 具体规则是:将项目节点P下的方法节点U按照编号顺序排成数组,然后按照不同比例划分为训练集和测试集. 测试集中每个方法节点下的API节点按照编号顺序排成数组,然后保留前4个API节点来模拟开发者已完成的代码,剩余的API节点作为该测试方法的标准数据,用以验证在当前开发情景下的推荐性能.本文使用10折交叉验证法,将数据集划分成10份. 每一份进行1轮训练与验证,并且每一轮验证的时候,将其中9份数据作为训练集,1份作为测试集. 最后取这10轮测试结果的平均值作为该数据集的最终实验结果.
4.3 评价指标
API使用模式推荐场景中,一般通过Top-N的API排名情况评价推荐结果的有效性. 本文使用成功率(S@k),精确度(P@k),召回率(R@k)和平均精度(MAP)来评价方法在Top-N上的推荐性能. 给定测试集合M,其中的测试项表示方法节点,用来模拟当开发者遇到API使用问题时,给该方法节点对应的方法声明提供API使用建议,推荐列表中将包含开发者接下来可能调用的API. 设RECk(q)表示本文CAPIRD模型在一个测试项q中输出Top-N的API推荐结果集合,GT(q)表示一个测试项q的标准API集合.
S@k反映测试集预测成功的比例.
S@k = \frac{\mathop{count}\limits_{{q \in M}}\left(|GT(q) \cap RE{C_k}(q)| \gt 0\right)}{{|M|}} \text{,} (12) 其中count表示满足条件的测试项数量.
P@k 反映在推荐列表中有效API的占有比例.
P@k = \frac{{|GT(q) \cap RE{C_k}(q)|}}{k} . (13) R@k 反映推荐列表中有效API的数量在标准列表中的比例.
R@k = \frac{{|GT(q) \cap RE{C_k}(q)|}}{{|GT(q)|}} . (14) MAP的计算公式为
MAP = \frac{{\displaystyle\sum_{q \in M} {\displaystyle\sum_{k = 1}^N {(R@(k) - R@(k - 1))P@(k)} } }}{{|M|}} . (15) 4.4 基线方法
为了更好地评价本文方法,设计了2个对比实验,分别与相同场景下的2个基线方法进行比较.
1) FOCUS. FOCUS发表于2019年,是近3年高被引用的方法. FOCUS基于项目上下文,使用协同过滤技术挖掘并推荐API使用模式. 它将方法声明视为用户,将API调用视为物品. 因此,FOCUS能够推荐相似项目中类似的API使用模式,从而缩小搜索范围,减少冗余.
2) GAPI. GAPI发表于2021年,是目前公开文献中在相同实验数据集下实验效果最好的方法. GAPI是一种基于方法上下文和GNN技术的API使用模式推荐方法. 它利用项目中方法与API的交互关系,融合API文本属性,从拓扑网络上学习API的Embedding表示,从而给相似的方法推荐相似的API使用模式.
4.5 实验结果分析
从推荐性能和多样性表现2个方面进行实验设计,针对提出的2个研究问题,依次进行实验验证与分析.
问题1:本文CAPIRD模型在API推荐性能上表现如何.
为了检验CAPIRD在API推荐上的效果,本文在3个数据集上分别比较Top-N推荐结果在不同指标上的性能表现. 实验前,对比实验设置了相同的实验环境;实验时,针对不同类型上下文的基线方法FOCUS和GAPI,在CAPIRD相关性分析中实现不同类型基线方法的相关性计算,计算结果作为基线各自的相关性分析结果,并将该结果作为后续重排模块的参数优化基准. 然后再融合CAPIRD方法的关联性推荐和重排推荐,最终将推荐结果分别记为CAPIRD-FOCUS和CAPIRD-GAPI. 根据最终结果验证CAPIRD融合基线方法在API多样性推荐上的有效性. 在3个数据集上S@k和MAP的实验结果分别如表2~4所示.
表 2 SHS数据集上S@k和MAP对比结果Table 2. Comparison Result of S@k and MAP on SHS Data Set方法 S@1 S@5 S@10 S@20 MAP FOCUS 0.195 0.255 0.310 0.355 0.0188 CAPIRD-FOCUS
(本文)0.215 0.280 0.315 0.360 0.0216 GAPI 0.377 0.692 0.822 0.910 0.2924 CAPIRD-GAPI
(本文)0.577 0.813 0.886 0.973 0.3709 表 3 SHL数据集上S@k和MAP对比结果Table 3. Comparison Results of S@k and MAP on SHL Data Set方法 S@1 S@5 S@10 S@20 MAP FOCUS 0.302 0.389 0.420 0.456 0.0699 CAPIRD-FOCUS
(本文)0.323 0.402 0.425 0.467 0.0750 GAPI 0.493 0.799 0.896 0.951 0.3531 CAPIRD-GAPI
(本文)0.519 0.825 0.912 0.960 0.3610 表 4 MV数据集上S@k和MAP对比结果Table 4. Comparison Results of S@k and MAP on MV Data Set方法 S@1 S@5 S@10 S@20 MAP FOCUS 0.670 0.803 0.849 0.885 0.2674 CAPIRD-FOCUS
(本文)0.698 0.808 0.856 0.888 0.2755 GAPI 0.574 0.851 0.949 0.971 0.3971 CAPIRD-GAPI
(本文)0.578 0.854 0.948 0.977 0.3973 由表2~4结果中的MAP指标可以看出,CAPIRD在MAP的表现明显优于基线方法. 尤其是在SHS数据集上,在GAPI方法的基础上融合本文方法后,MAP由0.2924提升至0.3709,其推荐的平均精度提升约27%,在S@1 上由0.377提升至0.577,提升了约53%. 而在数据集MV上相对来说并不太显著,尤其是在以图学习模型为基础的GAPI上MAP及S@k 上提升相对较小. 这是因为随着数据量的增加,图学习机制作用显著,能够捕捉更多高阶协同信号,使得API推荐的多样性也增加. 而融合本文方法依然有小幅度提升,说明CAPIRD依然能够在保持原有多样性推荐结果的基础上,通过增加候选结果的差异性,使得推荐性能较原推荐性能有所提升. 在以传统协同过滤算法为基础的FOCUS上融合CAPIRD后的MAP提升在3%~15%,在大数据集上相对稳定. 因此,在3类不同的数据集上,本文CAPIRD模型在MAP指标上都得到了有效提升.
在实际的开发场景中,假设开发人员遇到API使用问题,当系统为其提供合适的API推荐列表时,那么开发人员更希望列表中靠前的API是对其有帮助的. 为了体现CAPIRD模型在这种场景中的推荐性能优势,需要分析S@1 和S@5,同时结合S@20 的成功率和MAP,分析模型的有效性.
由表2~4所示,CAPIRD模型在S@1 和S@5 相比S@20 具有显著效果. 在S@1 上,CAPIRD模型在所有数据集上平均提升约13%,说明第1个推荐的API与上下文最相关且又能够区别于其他已使用的API,因此也更可能是开发者在当前编程场景下想使用的API. S@5在所有数据集上平均提升约6%,其中CAPIRD在SHS数据集和基线方法GAPI比,S@5由0.692提升到0.813,提升约17.5%.
在S@20上,所有数据集相差不大,平均提升仅约2%,说明在Top-20推荐列表中,CAPIRD模型推荐的API与基线方法推荐的API差异不大,而结合CAPIRD改变了原有推荐结果的排序,在所有数据集的MAP指标上平均提升约9%. 说明Top-20推荐列表中有效API的排名得到提升,达到本文多样性重排推荐的预期. 因此,CAPIRD模型在API使用模式推荐场景中能够有效提高S@k,同时提高有效API在推荐列表中的排名.
问题2:CAPIRD模型中决定相关性和关联性推荐所占比重的参数对结果的影响如何.
在API多样性重排模块,本文利用MMR算法将相关性和关联性进行线性组合. 以方法CAPIRD-FOCUS为例,当参数 \lambda = 1 时,方法CAPIRD-FOCUS与基线方法FOCUS的结果是一样的,因为此时关联性度量的权重为0. 实验通过调整参数 \lambda ,使得关联度的权重发生变化,观察在不同参数\lambda 下模型的表现能力. 采用等间距的控制重排采样样本调节参数 \lambda ,观察MAP在不同参数\lambda 下的影响. MAP在不同数据集上的变化趋势如图5~7所示.
图5~7中,横轴表示参数 \lambda 的取值,纵轴表示该数据集上的MAP. 实线表示基线方法,由于不需要进行重排,因此基线的曲线不发生变化. 虚线表示增加重排后的结果,在3个不同数据集上其对应曲线都发生了变化.
图5~7中,虚线对应曲线整体上都表现出了类似的变化趋势,即随着 \lambda 的增大,对应的MAP值整体呈现先增后减的趋势. 虚线对应曲线位于实线对应曲线上方的部分表示增加重排后的MAP优于基线方法的MAP. 由图5~7中的6个曲线图可以看出,MAP在这个部分能够达到某个峰值,该峰值对应 \lambda 的值为该样本空间内的最佳参数. 例如在图5(b)的曲线图中, \lambda 取值在0.7~0.8之间时,MAP的值达到峰值. 说明 \lambda 在该区间内,关联性的度量发挥了最大作用.
当\lambda 发生变化即关联性的权重发生变化,MAP也发生变化,说明推荐列表中候选API的排名也发生了变化. 进一步观察3类数据集最佳参数的取值,发现随着测试集数据量的增加,达到最佳参数的取值越接近1,说明数据量越大,要达到MAP最优时的关联性权重越小. 这是由于数据量变大时,API之间关联性的差异性变小,使得MAP提升的表现并不明显,但是推荐结果仍发生变化.
综合以上分析,本文提出的CAPIRD模型,能够通过关联性分析增加候选API的多样性,同时也能够保证推荐结果的有效性,提高推荐性能.
5. 结 论
本文为了提高API推荐性能,提出了基于上下文感知并面向多样性的API推荐方法CAPIRD. CAPIRD是一种结合上下文相关性和API关联性的推荐方法. 通过相关性分析,发现上下文相关API,然后度量相关性值;通过关联性分析,挖掘API的关联模式,发现与目标API关联的其他API,然后度量关联性值;最后利用MMR算法线性组合相关性和关联性,协调纯相关API与纯关联API的比重,增加候选API中的差异性,提高推荐性能.
采用3个数据集进行验证实验,在与2个基线方法的对比实验中,CAPIRD在MAP,S@1,S@5都有提升,其中在MAP的平均提升率约为9%,S@1的平均提升率约13%. 实验结果充分表明,CAPIRD在API使用模式推荐场景中具有更好的表现.
CAPIRD利用的上下文信息有限,如何更充分地利用上下文信息来推断开发者的编程意图,是未来工作需要探索和思考的.
作者贡献声明: 赖宝强负责论文方法的设计与实现,并撰写论文;李征负责论文整体结构的审核;赵瑞莲负责论文的指导与校对;郭俊霞提供方法和实验指导,并修改和审核论文.
-
表 1 开源物联网恶意代码数据集
Table 1 Open Source IoT Malware Datasets
数据类型 数据集 支持的CPU架构 数据收集方式 可执行文件 TWISC[32] MIPS,ARM,PPC,SPARC,X86,X86_64 互联网下载 Badthings[26] MIPS,ARM,PPC,SPARC,SH4 互联网下载 firmware[33] MIPS,ARM,PPC,SPARC,X86,X86_64 互联网下载 IoTPoT[6] MIPS,ARM,PPC,SPARC,X86,X86_64,m68k 部署蜜罐捕获 VirusTotal[34] 多种常见物联网CPU架构 用户自主提交 VirusShare[35] 多种常见物联网CPU架构 部署检测设备捕获 流量数据包 IoT-23[36] 多种常见物联网CPU架构 真实环境捕获 Bot-IoT[37] 多种常见物联网CPU架构 实验室模拟 ToN_IoT[38] 多种常见物联网CPU架构 真实环境捕获 MedBIoT[39] 多种常见物联网CPU架构 真实环境捕获 Kitsune[40] 多种常见物联网CPU架构 实验室模拟 表 2 基于人工智能的跨架构物联网恶意代码检测技术对比
Table 2 Comparison of AI-based Cross-Architecture IoT Malware Detection Techniques
数据来源 特征类别 人工智能算法 数据集 支持的架构 年份 文献[25] 操作码及API SVM,kNN IoTPOT ARM,MIPS,MIPSE 2019 文献[52] 操作码及API SVM,kNN IoTPOT ARM,MIPS,MIPSEL 2018 文献[59] 操作码及CFG SVM firmware ARM,MIPS,PPC,SPARC,X86,X86_64 2019 文献[63] 操作码及ELF文件特征 CNN VirusTotal ARM,MIPS,PPC,SPARC 2020 文献[58] 操作码及IG RNN-CNN IoTPoT,VirusShare ARM,MIPS,PPC 2020 文献[68] 字节序列 SVM VirusTotal ARM,MIPS,PPC,SPARC,X86、X86_64 2020 文献[69] 字节序列 SVM VirusTotal ARM,MIPS,PPC,SPARC,X86,X86_64 2020 文献[70] 字节序列 Bi-GRU-CNN TWISC ARM,MIPS,X86,SuperH4,PPC 2022 文献[50] 可打印字符串 聚类 IoTPOT ARM,MIPS,PPC,SPARC 2018 文献[27] 可打印字符串 RF,kNN,SVM VirusTotal ARM,MIPS,X86,X86-64,PPC,SPARC 2020 文献[71] 图相关特征 RF,kNN,SVM,MLP,LR VirusTotal ARM,MIPS,SPARC,X86,X86-64,PPC 2023 文献[75] 图相关特征 GNN ARM,MIPS,SPARC,PPC,X86-64 2021 文献[72] 系统调用 KMM VirusTotal ARM,Intel X86 2023 表 3 基于人工智能资源限制的物联网恶意代码检测技术对比
Table 3 Comparison of Resource-constrained AI-based IoT Malware Detection Techniques
数据来源 资源限制类别 限制缓解方案 特征选择/处理方法 人工智能算法 年份 文献[79] 计算资源限制 降低特征维度 Word2Vec MLP 2021 文献[80] 计算资源限制 降低特征维度 ACO SVM 2023 文献[81] 计算资源限制 降低特征维度 相关性分析 Random Forest,Bagging,Stacking,SVM,LR,kNN 2021 文献[82] 计算资源限制 降低特征维度 无 SVM,Random Forest,Decision Tree 2023 文献[84] 计算资源限制 降低特征维度 图像化 CNN 2023 文献[33] 计算资源限制 降低算法复杂度 N-gram CFD 2020 文献[85] 计算资源限制 降低算法复杂度 C500-CFG SVM 2019 文献[88] 内存限制 设计轻量级模型 无 LiMNet 2021 文献[87] 内存限制 设计轻量级模型 图像化 LCNN 2021 文献[91] 电力限制 设计可独立于物联网设备部署的检测 图像化 CNN 2021 文献[92] 电力限制 设计可独立于物联网设备部署的检测 过滤电信号噪声 Seq2Seq 2020 文献[93] 电力限制 设计可独立于物联网设备部署的检测 无 SVM 2018 表 4 性能提升的物联网恶意代码检测技术对比
Table 4 Comparison of Performance-enhancing IoT Malware Detection Techniques
数据来源 检测对象 技术重心 人工智能算法 数据集来源 年份 文献[96] 二进制可执行文件 提高检测准确率 CNN+LSTM VirusTotal,VirusShare 2021 文献[99] 二进制可执行文件 提高检测准确率 ResNet18+MobileNetV2+DenseNet161 未公开 2022 文献[98] 二进制可执行文件 提高检测准确率 GCNN 未公开 2023 文献[97] 二进制可执行文件 提高检测准确率 FPT VirusShare 2019 文献[101] 二进制可执行文件 检测混淆恶意代码 SVM 未公开 2020 文献[102] 二进制可执行文件 检测混淆恶意代码 Inception-v3 未公开 2022 文献[103] 二进制可执行文件 检测混淆恶意代码 Bi-LSTM+EfficientNet-B3 VirusTotal 2021 文献[111] 二进制可执行文件 检测混淆恶意代码 Bi-LSTM+SPP-Net 未公开 2022 文献[100] 二进制可执行文件 提高检测模型鲁棒性 VGAE-MalGAN 未公开 2023 文献[119] 流量数据 及时发现攻击行为 Auto-encoder 未公开 2018 文献[15] 流量数据 提高检测模型性能 ANN ToN_IoT 2022 文献[122] 流量数据 提高检测模型性能 RF IoT-23 2022 文献[114] 流量数据 提高检测模型性能 FastGRNN MedBIoT 2020 文献[120] 流量数据 及时发现攻击行为 LR,kNN,RF,AdaBoost 未公开 2019 表 5 挑战与机遇
Table 5 Challenges and Opportunities
类别 具体内容 面临的挑战 缺少针对物联网设备特性的评估指标; 缺少统一可用的动态分析环境; 缺乏对攻击的鲁棒性. 未来研究方向 结合大模型实现物联网恶意代码检测; 提高检测模型安全性; 结合零信任架构实现检测. -
[1] STATISTA. Number of Internet of things (IoT) connected devices worldwide from 2019 to 2021 [EB/OL]. [2023-05-29]. https://www.statista.com/statistics/1183457/iot-connected-devices-worldwide/
[2] Wall S. 2022 Cyber threat report[R]. Santa Clara, CA: Palo Alto Networks, 2022: 5−7
[3] Antonakakis M, April T, Bailey M, et al. Understanding the Mirai botNet[C] //Proc of the 26th USENIX Security Symp. Berkeley, CA: USENIX Association, 2017: 1093−1110
[4] Griffioen H, Doerr C. Examining Mirai’s battle over the Internet of things[C] //Proc of the 27th ACM SIGSAC Conf on Computer and Communications Security (CCS). NewYork: ACM, 2020: 743−756
[5] 国家互联网应急中心. 物联网安全威胁情报(2022年10月)[R]. 北京: 国家计算机网络应急技术处理协调中心, 2022: 1−426 CNCERT. IoT security threat intelligence report (Oct 2022)[R]. Beijing: National Computer Network Emergency Response Technical Team/Coordination Center of China, 2022: 1−426 (in Chinese)
[6] Pa Y M P, Suzuki S, Yoshioka K, et al. IoTPOT: Analysing the rise of IoT compromises[C] //Proc of the 9th USENIX Workshop on Offensive Technologies (WOOT). Berkeley, CA: USENIX Association, 2015: 1−9
[7] Breitenbacher D, Homoliak I, Aung Y L, et al. HADES-IoT: A practical host-based anomaly detection system for IoT devices[C] //Proc of the 24th ACM Asia Conf on Computer and Communications Security. New York: ACM, 2019: 479−484
[8] Çetin O, Gañán C, Altena L, et al. Cleaning up the Internet of evil things: Real-world evidence on ISP and consumer efforts to remove mirai[C] //Proc of the 26th Annual Network and Distributed System Security Symp (NDSS). Reston, VA: The Internet Society, 2019: 1−5
[9] Xu Yiwen, Jiang Yu, Yu Lu, et al. Brief industry paper: Catching IoT malware in the wild using HoneyIoT[C] //Proc of the 27th Real-Time and Embedded Technology and Applications Symp (RTAS). Piscataway, NJ: IEEE, 2021: 433−436
[10] Dang Fan, Li Zhenhua, Liu Yunhao, et al. Understanding fileless attacks on Linux-based IoT devices with honeycloud[C] //Proc of the 17th Annual Int Conf on Mobile Systems, Applications, and Services. New York: ACM, 2019: 482−493
[11] Downing E, Mirsky Y, Park K, et al. DeepReflect: Discovering malicious functionality through binary reconstruction[C] //Proc of the 30th USENIX Security Symp. Berkeley, CA: USENIX Association, 2021: 3469−3486
[12] Alrawi O, Ike M, Pruett M, et al. Forecasting malware capabilities from cyber attack memory images[C] //Proc of the 30th USENIX Security Symp. Berkeley, CA: USENIX Association, 2021: 3523−3540
[13] Wang Qi, Wajih H, Ding Li, et al. You are what you do: Hunting stealthy malware via data provenance analysis[C] //Proc of the 27th Annual Network and Distributed System Security Symp (NDSS). Reston, VA: The Internet Society, 2020: 1−17
[14] Chen Jinyin, Hu Keke, Yu Yue, et al. Software visualization and deep transfer learning for effective software defect prediction[C] //Proc of the ACM/IEEE 42nd Int Conf on Software Engineering. New York: ACM, 2020: 578−589
[15] Jamal A, Hayat M F, Nasir M. Malware detection and classification in IoT network using ANN[J]. Mehran University Research Journal Of Engineering & Technology, 2022, 41(1): 80−91
[16] 张书钦,白光耀,李红,等. 多源数据融合的物联网安全知识推理方法[J]. 计算机研究与发展,2022,59(12):2735−2749 doi: 10.7544/issn1000-1239.20210954 Zhang Shuqin, Bai Guangyao, Li Hong, et al. IoT security knowledge reasoning method of multi-source data fusion[J]. Journal of Computer Research and Development, 2022, 59(12): 2735−2749 (in Chinese) doi: 10.7544/issn1000-1239.20210954
[17] 张玉清,周威,彭安妮. 物联网安全综述[J]. 计算机研究与发展,2017,54(10):2130−2143 doi: 10.7544/issn1000-1239.2017.20170470 Zhang Yuqing, Zhou Wei, Peng Anni. Survey of internet of things security[J]. Journal of Computer Research and Development, 2017, 54(10): 2130−2143 (in Chinese) doi: 10.7544/issn1000-1239.2017.20170470
[18] 杨毅宇,周威,赵尚儒,等. 物联网安全研究综述:威胁,检测与防御[J]. 通信学报,2021,42(8):188−205 doi: 10.11959/j.issn.1000-436x.2021124 Yang Yiyu, Zhou Wei, Zhao Shangru, et al. Survey of IoT security research: Threats, detection and defense[J]. Journal on Communications, 2021, 42(8): 188−205 (in Chinese) doi: 10.11959/j.issn.1000-436x.2021124
[19] Chen Jiongyi, Diao Wenrui, Zhao Qingchuan, et al. IoTFuzzer: Discovering memory corruptions in IoT through app-based fuzzing[C] //Proc of the 25th Annual Network and Distributed System Security Symp (NDSS). Reston, VA: The Internet Society, 2018: 1−15
[20] Symantec. Symantec: Security response [EB/OL]. [2023-05-16]. https://www.symantec.com/connect/blogs/iot-devicesbeing-increasingly-used-ddos-attacks
[21] Egg S. Standing egg chooses MIPS CPUs for sensor hubs targeting mobile, IoT, wearables and automotive [EB/OL]. [2023-05-29]. https://electroiq.com/files/files/ables-and-automotive_xqh4b2rmudu6skntuhhadd/
[22] 彭安妮,周威,贾岩,等. 物联网操作系统安全研究综述[J]. 通信学报,2018,39(3):22−34 Peng Anni, Zhou Wei, Jia Yan, et al. Survey of the Internet of things operating system security[J]. Journal on Communications, 2018, 39(3): 22−34 (in Chinese)
[23] Hackett R. Why a hacker dumped code behind colossal website trampling botnet [EB/OL]. [2023-05-16]. https://finance.yahoo.com/news/why-hacker-dumped-code-behind-145847907.html?
[24] Shekari T, Cardenas A A, Beyah R. MaDIoT 2.0: Modern high-wattage IoT botnet attacks and defenses[C] //Proc of the 31st USENIX Security Symp. Berkeley, CA: USENIX Association, 2022: 3539−3556
[25] Ban T, Isawa R, Huang S Y, et al. A cross-platform study on emerging malicious programs targeting IoT devices[J]. IEICE Transactions on Information and Systems, 2019, 102(9): 1683−1685
[26] Alrawi O, Lever C, Valakuzhy K, et al. The circle of life: A large-scale study of the IoT malware lifecycle[C] //Proc of the 30th USENIX Security Symp. Berkeley, CA: USENIX Association, 2021: 3505−3522
[27] Lee Y T, Ban T, Wan T L, et al. Cross platform IoT-malware family classification based on printable strings[C] //Proc of the 19th Int Conf on Trust, Security and Privacy in Computing and Communications (TrustCom). Piscataway, NJ: IEEE, 2020: 775−784
[28] Clements A A, Almakhdhub N S, Saab K S, et al. Protecting bare-metal embedded systems with privilege overlays[C] //Proc of the 2017 IEEE Symp on Security and Privacy (SP). Piscataway, NJ: IEEE, 2017: 289−303
[29] Xu Yiwen, Yin Zijing, Hou Yiwei, et al. MIDAS: Safeguarding IoT devices against malware via real-time behavior auditing[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2022, 41(11): 4373−4384 doi: 10.1109/TCAD.2022.3200908
[30] Zhou Jie, Du Yufei, Shen Zhuojia, et al. Silhouette: Efficient protected shadow stacks for embedded systems[C] //Proc of the 29th USENIX Security Symp. Berkeley, CA: USENIX Association, 2020: 1219−1236
[31] Imteaj A, Thakker U, Wang Shiqiang, et al. A survey on federated learning for resource-constrained IoT devices[J]. IEEE Internet of Things Journal, 2021, 9(1): 1−24
[32] TWISC Research Centers. IoT-based end-to-end system security [EB/OL]. [2023-05-29].https://www.twisc.org/research-centers/
[33] Phu T N, Tho N D, Hoang L H, et al. An efficient algorithm to extract control flow-based features for IoT malware detection[J]. The Computer Journal, 2020, 64(4): 599−609
[34] VirusTotal. VirusTotal [EB/OL]. [2023-05-19]. https://www.virustotal.com/gui/home/upload
[35] VirusShare. VirusShare [EB/OL]. [2023-05-26]. https://virusshare.com/
[36] Parmisano A, Garcia S, Erquiaga M J. A labeled dataset with malicious and benign IoT network traffic[EB/OL]. [2023-06-04]. https://www.stratosphereip.org/datesets-iot23
[37] Koroniotis N, Moustafa N, Sitnikova E, et al. Towards the development of realistic botnet dataset in the Internet of things for network forensic analytics: Bot-IoT dataset[J]. Future Generation Computer Systems, 2019, 100: 779−796 doi: 10.1016/j.future.2019.05.041
[38] Moustafa N. The ToN_IoT datasets [EB/OL]. [2023-05-24]. https://www.unsw.adfa.edu.au/unsw-canberra-cyber/cybersecurity/ADFA-ton-iot-Datasets/
[39] Guerra-Manzanares A, Medina-Galindo J, Bahsi H, et al. MedBIoT: Generation of an IoT botnet dataset in a medium-sized IoT network[C] //Proc of the 6th Int Conf on Information Systems Security and Privacy (ICISSP). Setúbal, Portugal: Scitepress, 2020: 207−218
[40] Mirsky Y, Doitshman T, Elovici Y, et al. Kitsune: An ensemble of autoencoders for online network intrusion detection[J]. arXiv preprint, arXiv: 1802.09089, 2018
[41] Vailshery L S. Malware for network devices [EB/OL]. [2023-05-29]. https://www.statista.com/statistics/1183457/iot-connected-devices-worldwide/
[42] Ronen E, Shamir A, Weingarten A O, et al. IoT goes nuclear: Creating a ZigBee chain reaction[C] //Proc of the 2017 IEEE Symp on Security and Privacy (S&P). Piscataway, NJ: IEEE, 2017: 195−212
[43] Costin A, Zaddach J. IoT malware: Comprehensive survey, analysis framework and case studies[R]. Las Vegas, LA: Black Hat, 2018: 1−9
[44] Raju A D, Abualhaol I Y, Giagone R S, et al. A survey on cross-architectural IoT malware threat hunting[J]. IEEE Access, 2021, 9: 91686−91709 doi: 10.1109/ACCESS.2021.3091427
[45] Ngo Q D, Nguyen H T, Le V H, et al. A survey of IoT malware and detection methods based on static features[J]. ICT Express, 2020, 6(4): 280−286 doi: 10.1016/j.icte.2020.04.005
[46] Clincy V, Shahriar H. IoT malware analysis[C] //Proc of the 43rd Annual Computer Software and Applications Conf (COMPSAC). Piscataway, NJ: IEEE, 2019: 920−921
[47] Imteaj A, Mamun Ahmed K, Thakker U, et al. Federated learning for resource-constrained IoT devices: Panoramas and state of the art[J]. Federated and Transfer Learning, 2022, 27: 7−27
[48] Venkatasubramanian M, Lashkari A H, Hakak S. IoT malware analysis using federated learning: A comprehensive survey[J]. IEEE Access, 2023, 11: 5004−5018 doi: 10.1109/ACCESS.2023.3235389
[49] Vignau B, Khoury R, Hallé S, et al. The evolution of IoT malwares, from 2008 to 2019: Survey, taxonomy, process simulator and perspectives[J]. Journal of Systems Architecture, 2021, 116: 102143 doi: 10.1016/j.sysarc.2021.102143
[50] Alhanahnah M, Lin Qicheng, Yan Qiben, et al. Efficient signature generation for classifying cross-architecture IoT malware[C] //Proc of the Conf on Communications and Network Security (CNS). Piscataway, NJ: IEEE, 2018: 1−9
[51] Cozzi E, Graziano M, Fratantonio Y, et al. Understanding Linux malware[C] //Proc of the 2018 IEEE Symp on Security and Privacy (S&P). Piscataway, NJ: IEEE, 2018: 161−175
[52] Ban T, Isawa R, Yoshioka K, et al. A cross-platform study on IoT malware[C] //Proc of the 11th Int Conf on Mobile Computing and Ubiquitous Network (ICMU). Piscataway, NJ: IEEE, 2018: 1−2
[53] Davie H. Assemblers and Loaders: DW Barron, Macdonald and Janes Computer Monographs[M]. Amsterdam, Netherlands: Elsevier, 1979
[54] Bilar D. Opcodes as predictor for malware[J]. International Journal of Electronic Security and Digital Forensics, 2007, 1(2): 156−168 doi: 10.1504/IJESDF.2007.016865
[55] Yewale A, Singh M. Malware detection based on opcode frequency[C] //Proc of the 2016 Int Conf on Advanced Communication Control and Computing Technologies (ICACCCT). Piscataway, NJ: IEEE, 2016: 646−649
[56] Santos I, Brezo F, Nieves J, et al. Idea: Opcode-sequence-based malware detection[C] //Proc of the Engineering Secure Software and Systems: Second Int Symp (ESSoS). Berlin: Springer, 2010: 35−43
[57] Venkatraman S, Alazab M. Use of data visualisation for zero-day malware detection[J]. Security and Communication Networks, 2018, 2018: 1−13
[58] Vasan D, Alazab M, Venkatraman S, et al. MTHAEL: Cross-architecture IoT malware detection based on neural network advanced ensemble learning[J]. IEEE Transactions on Computers, 2020, 69(11): 1654−1667 doi: 10.1109/TC.2020.3015584
[59] Phu T N, Hoang L H, Toan N N, et al. CFDVex: A novel feature extraction method for detecting cross-architecture IoT malware[C] //Proc of the 10th Int Symp on Information and Communication Technology. New York: ACM, 2019: 248−254
[60] O’Kane P, Sezer S, McLaughlin K, et al. SVM training phase reduction using dataset feature filtering for malware detection[J]. IEEE Transactions on Information Forensics and Security, 2013, 8(3): 500−509 doi: 10.1109/TIFS.2013.2242890
[61] Zhang Jixin, Qin Zheng, Yin Hui, et al. A feature-hybrid malware variants detection using CNN based opcode embedding and BPNN based API embedding[J]. Computers & Security, 2019, 84: 376−392
[62] Lyda R, Hamrock J. Using entropy analysis to find encrypted and packed malware[J]. IEEE Security & Privacy, 2007, 5(2): 40−45
[63] Tien C W, Chen S W, Ban T, et al. Machine learning framework to analyze IoT malware using elf and opcode features[J]. Digital Threats: Research and Practice, 2020, 1(1): 1−19
[64] Nethercote N, Seward J. Valgrind: A framework for heavyweight dynamic binary instrumentation[J]. ACM Sigplan Notices, 2007, 42(6): 89−100 doi: 10.1145/1273442.1250746
[65] Shoshitaishvili Y, Wang Ruoyu, Salls C, et al. Sok: (State of) the art of war: Offensive techniques in binary analysis[C] //Proc of the 2016 IEEE Symp on Security and Privacy (S&P). Piscataway, NJ: IEEE, 2016: 138−157
[66] Raff E, Barker J, Sylvester J, et al. Malware detection by eating a whole exe[J]. arXiv preprint, arXiv: 1710.09435, 2017
[67] Yakura H, Shinozaki S, Nishimura R, et al. Neural malware analysis with attention mechanism[J]. Computers & Security, 2019, 87: 101592
[68] Wan T L, Ban T, Lee Y T, et al. IoT-malware detection based on byte sequences of executable files[C] //Proc of the 15th Asia Joint Conf on Information Security (AsiaJCIS). Piscataway, NJ: IEEE, 2020: 143−150
[69] Wan T L, Ban T, Cheng S M, et al. Efficient detection and classification of Internet-of-things malware based on byte sequences from executable files[J]. IEEE Open Journal of the Computer Society, 2020, 1: 262−275 doi: 10.1109/OJCS.2020.3033974
[70] Chaganti R, Ravi V, Pham T D. Deep learning based cross architecture Internet of things malware detection and classification[J]. Computers & Security, 2022, 120: 102779
[71] Wu C Y, Ban T, Cheng S M, et al. IoT malware classification based on reinterpreted function-call graphs[J]. Computers & Security, 2023, 125: 103060
[72] Zhao Yang, Kuerban A. MDABP: A novel approach to detect cross-architecture IoT malware based on PaaS[J]. Sensors, 2023, 23(6): 3060
[73] pancake. Radare2 [EB/OL]. [2023-05-29]. https://rada.re/r/
[74] Narayanan A, Chandramohan M, Venkatesan R, et al. Graph2vec: Learning distributed representations of graphs[J]. arXiv preprint, arXiv: 1707.05005, 2017
[75] Li Chuangfeng, Shen Guangming, Sun Wei. Cross-architecture Intenet-of-things malware detection based on graph neural network[C] //Proc of the 2021 Int Joint Conf on Neural Networks (IJCNN). Piscataway, NJ: IEEE, 2021: 1−7
[76] He Tianxiang, Han Chansu, Isawa R, et al. Scalable and fast algorithm for constructing phylogenetic trees with application to IoT malware clustering[J]. IEEE Access, 2023, 11: 8240−8253 doi: 10.1109/ACCESS.2023.3238711
[77] Redini N, Machiry A, Wang Ruoyu, et al. Karonte: Detecting insecure multi-binary interactions in embedded firmware[C] //Proc of the 2020 IEEE Symp on Security and Privacy (S&P). Piscataway, NJ: IEEE, 2020: 1544−1561
[78] 中国信息通信研究院. 物联网安全白皮书(2018)[R]. 北京: 中国信息通信研究院, 2018: 1−426 CAICT. IoT security white paper (2018) [R]. Beijing: China Academy of Information and Communications Technology, 2018: 1−426(in Chinese)
[79] Qiao Yanchen, Zhang Weizhe, Du Xiaojiang, et al. Malware classification based on multilayer perception and Word2Vec for IoT security[J]. ACM Transactions on Internet Technology, 2021, 22(1): 1−22
[80] El-Ghamry A, Gaber T, Mohammed K K, et al. Optimized and efficient image-based IoT malware detection method[J]. Electronics, 2023, 12(3): 708
[81] Yaokumah W, Appati J K, Kumah D. Machine learning methods for detecting Internet-of-things (IoT) malware[J]. International Journal of Cognitive Informatics and Natural Intelligence, 2021, 15(4): 1−18
[82] Lee H, Kim S, Baek D, et al. Robust IoT malware detection and classification using opcode category features on machine learning[J]. IEEE Access, 2023, 11: 18855−18867 doi: 10.1109/ACCESS.2023.3247344
[83] Mikolov T, Chen Kai, Corrado G, et al. Efficient estimation of word representations in vector space[J]. arXiv preprint, arXiv: 1301.3781, 2013
[84] Dhanya K, Vinod P, Yerima S Y, et al. Obfuscated malware detection in IoT Android applications using Markov images and CNN[J]. IEEE Systems Journal, 2023, 17(2): 2756−2766
[85] Phu T N, Hoang L, Toan N N, et al. C500-CFG: A novel algorithm to extract control flow-based features for IoT malware detection[C] //Proc of the 19th Int Symp on Communications and Information Technologies (ISCIT). Piscataway, NJ: IEEE, 2019: 568−573
[86] 云安全联盟大中华区. 物联网安全关键技术白皮书[R]. 香港: 云安全联盟大中华区, 2023 CSA GCR. IoT security key technologies white paper[R]. Hong Kong, CSA GCR, 2023(in Chinese)
[87] Yuan Baoguo, Wang Junfeng, Wu Peng, et al. IoT malware classification based on lightweight convolutional neural networks[J]. IEEE Internet of Things Journal, 2021, 9(5): 3770−3783
[88] Giaretta L, Lekssays A, Carminati B, et al. LiMNet: Early-stage detection of IoT botnets with lightweight memory networks[C] //Proc of the 26th European Symp on Research in Computer Security. Berlin: Springer, 2021: 605−625
[89] Ma Ningning, Zhang Xiangyu, Zheng Haitao, et al. ShuffleNet V2: Practical guidelines for efficient cnn architecture design[C] //Proc of the European Conf on Computer Vision (ECCV). Berlin: Springer, 2018: 116−131
[90] Javed F, Afzal M K, Sharif M, et al. Internet of things (IoT) operating systems support, networking technologies, applications, and challenges: A comparative review[J]. IEEE Communications Surveys & Tutorials, 2018, 20(3): 2062−2100
[91] Pham D P, Marion D, Mastio M, et al. Obfuscation revealed: Leveraging electromagnetic signals for obfuscated malware classification[C] //Proc of the Annual Computer Security Applications Conf. New York: ACM, 2021: 706−719
[92] Ding Fei, Li Hongda, Luo Feng, et al. DeepPower: Non-intrusive and deep learning-based detection of IoT malware using power side channels[C] //Proc of the 15th ACM Asia Conf on Computer and Communications Security. New York: ACM, 2020: 33−46
[93] Azmoodeh A, Dehghantanha A, Conti M, et al. Detecting crypto-ransomware in IoT networks based on energy consumption footprint[J]. Journal of Ambient Intelligence and Humanized Computing, 2018, 9: 1141−1152 doi: 10.1007/s12652-017-0558-5
[94] Maxfield C. Embedded markets study-Integrating IoT and advanced technology designs, application development & processing environments[R]. Cambridge, MA: AspenCore, 2017
[95] Samantray O P, Tripathy S N. IoT-malware classification model using byte sequences and supervised learning techniques[C] //Proc of Int Conf on the Next Generation of Internet of Things (ICNGIoT 2021). Berlin: Springer, 2021: 51−60
[96] Dib M, Torabi S, Bou-Harb E, et al. A multi-dimensional deep learning framework for IoT malware classification and family attribution[J]. IEEE Transactions on Network and Service Management, 2021, 18(2): 1165−1177 doi: 10.1109/TNSM.2021.3075315
[97] Dovom E M, Azmoodeh A, Dehghantanha A, et al. Fuzzy pattern tree for edge malware detection and categorization in IoT[J]. Journal of Systems Architecture, 2019, 97: 1−7 doi: 10.1016/j.sysarc.2019.01.017
[98] Alsubaei F S, Alshahrani H M, Tarmissi K, et al. Graph convolutional neural network based malware detection in IoT-cloud environment[J]. Intelligent Automation & Soft Computing, 2023, 36(3): 2897−2914
[99] Atitallah S B, Driss M, Almomani I. A novel detection and multi-classification approach for IoT-malware using random forest voting of fine-tuning convolutional neural networks[J]. Sensors, 2022, 22(11): 4302−4324 doi: 10.3390/s22114302
[100] Yumlembam R, Issac B, Jacob S M, et al. IoT-based Android malware detection using graph neural network with adversarial defense[J]. IEEE Internet of Things Journal, 2023, 10(10): 8432−8444 doi: 10.1109/JIOT.2022.3188583
[101] Darabian H, Dehghantanha A, Hashemi S, et al. An opcode-based technique for polymorphic Internet of things malware detection[J]. Concurrency and Computation: Practice and Experience, 2020, 32(6): 5173
[102] Naeem H, Alshammari B M, Ullah F. Explainable artificial intelligence-based IoT device malware detection mechanism using image visualization and fine-tuned CNN-based transfer learning model[J]. Computational Intelligence and Neuroscience, 2022, 7: 1−17
[103] Baek S, Jeon J, Jeong B, et al. Two-stage hybrid malware detection using deep learning[J]. Human-Centric Computing and Information Sciences, 2021, 11(27): 10−22967
[104] Alasmary H, Anwar A, Park J, et al. Graph-based comparison of IoT and Android malware[C] //Proc of the 7th Int Conf on CSoNet. Berlin: Springer, 2018: 259−272
[105] Alasmary H, Khormali A, Anwar A, et al. Analyzing and detecting emerging Internet of things malware: A graph-based approach[J]. IEEE Internet of Things Journal, 2019, 6(5): 8977−8988 doi: 10.1109/JIOT.2019.2925929
[106] He Kaiming, Zhang Xiangyu, Ren Shaoqing, et al. Deep residual learning for image recognition[C] //Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2016: 770−778
[107] Sandler M, Howard A, Zhu Menglong, et al. MobileNetV2: Inverted residuals and linear bottlenecks[C] //Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2018: 4510−4520
[108] Huang Gao, Liu Zhuang, Van Der Maaten L, et al. Densely connected convolutional networks[C] //Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2017: 4700−4708
[109] Senge R, Hüllermeier E. Top-down induction of fuzzy pattern trees[J]. IEEE Transactions on Fuzzy Systems, 2010, 19(2): 241−252
[110] Tan Mingxing, Le Quoc. EfficientNet: Rethinking model scaling for convolutional neural networks[C] //Proc of the Int Conf on Machine Learning. New York: PMLR, 2019: 6105−6114
[111] Jeon J, Jeong B, Baek S, et al. Hybrid malware detection based on Bi-LSTM and SPP-Net for smart IoT[J]. IEEE Transactions on Industrial Informatics, 2022, 18(7): 4830−4837 doi: 10.1109/TII.2021.3119778
[112] He Kaiming, Zhang Xiangyu, Ren Shaoqing, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(9): 1904−1916 doi: 10.1109/TPAMI.2015.2389824
[113] Cozzi E, Vervier P A, Dell’Amico M, et al. The tangled genealogy of IoT malware[C] //Proc of the Annual Computer Security Applications Conf. New York: ACM, 2020: 1−16
[114] Alzahrani H, Abulkhair M, Alkayal E. A multi-class neural network model for rapid detection of IoT botnet attacks[J]. International Journal of Advanced Computer Science and Applications, 2020, 11(7): 688−696
[115] Puri R. Bots & botnet: An overview[J]. SANS Institute, 2003, 3: 58
[116] Kolias C, Kambourakis G, Stavrou A, et al. DDoS in the IoT: Mirai and other botnets[J]. Computer, 2017, 50(7): 80−84 doi: 10.1109/MC.2017.201
[117] Bertino E, Islam N. BotNets and Internet of things security[J]. Computer, 2017, 50(2): 76−79 doi: 10.1109/MC.2017.62
[118] Hallman R, Bryan J, Palavicini G, et al. IoDDoS-the Internet of distributed denial of sevice attacks[C] //Proc of the 2nd Int Conf on Cnternet of Things, Big Data and Security. Setúbal, Portugal: Scitepress, 2017: 47−58
[119] Meidan Y, Bohadana M, Mathov Y, et al. N-BaIoT—network-based detection of IoT botnet attacks using deep autoencoders[J]. IEEE Pervasive Computing, 2018, 17(3): 12−22 doi: 10.1109/MPRV.2018.03367731
[120] Kumar A, Lim T J. EDIMA: Early detection of IoT malware network activity using machine learning techniques[C] //Proc of the 5th World Forum on Internet of Things (WF-IoT). Piscataway, NJ: IEEE, 2019: 289−294
[121] Ozawa S, Ban T, Hashimoto N, et al. A study of IoT malware activities using association rule learning for darknet sensor data[J]. International Journal of Information Security, 2020, 19: 83−92 doi: 10.1007/s10207-019-00439-w
[122] Alharbi A, Hamid M A, Lahza H. Predicting malicious software in IoT environment based on machine learning and data mining techniques[J]. International Journal of Advanced Computer Science and Applications, 2022, 13(8): 497−506
[123] Waqas M, Kumar K, Laghari A A, et al. Botnet attack detection in Internet of things devices over cloud environment via machine learning[J]. Concurrency and Computation:Practice and Experience, 2022, 34(4): e6662
[124] Uhříček D, Hynek K, Čejka T, et al. BOTA: Explainable IoT malware detection in large networks[J]. IEEE Internet of Things Journal, 2023, 10(10): 8416−8431 doi: 10.1109/JIOT.2022.3228816
[125] Agrawal R, Imieliński T, Swami A. Mining association rules between sets of items in large databases[C] //Proc of the 1993 ACM SIGMOD Int Conf on Management of Data. New York: ACM, 1993: 207−216
[126] Kusupati A, Singh M, Bhatia K, et al. FastGRNN: A fast, accurate, stable and tiny kilobyte sized gated recurrent neural network[J]. Advances in Neural Information Processing Systems, 2018, 31: 9031−9042
[127] Hu Weiwei, Tan Ying. Generating adversarial malware examples for black-box attacks based on GAN[J]. arXiv preprint, arXiv: 1702.05983, 2017
[128] Anderson H S, Kharkar A, Filar B, et al. Learning to evade static PE machine learning malware models via reinforcement learning[J]. arXiv preprint, arXiv: 1801.08917, 2018
[129] Suciu O, Coull S E, Johns J. Exploring adversarial examples in malware detection[C] //Proc of the 2019 IEEE Security and Privacy Workshops (S&PW). Piscataway, NJ: IEEE, 2019: 8−14
-
期刊类型引用(0)
其他类型引用(1)