针对Android恶意软件经常被混淆以逃避检测的问题,提出基于敏感函数调用图(sensitive function call graphs,SFCG)表征学习的敏感函数调用图检测(sensitive function call graphs detector,SFCG_Detector)方法,用于检测Android恶意软件...针对Android恶意软件经常被混淆以逃避检测的问题,提出基于敏感函数调用图(sensitive function call graphs,SFCG)表征学习的敏感函数调用图检测(sensitive function call graphs detector,SFCG_Detector)方法,用于检测Android恶意软件。首先,通过静态分析提取函数调用图,并设计图修剪策略,保留与敏感应用程序接口(application programming interface,API)相关的关键节点,降低图的复杂性并保留行为语义。在节点表征方面,基于变换器的双向编码器表示(bidirectional encoder representation from transformers,BERT)模型与Katz中心性,提取节点的语义特征和结构重要性。随后,利用图采样与聚合(graph sample and aggregation,GraphSAGE)神经网络对敏感函数调用图进行层次化学习,生成图级嵌入以支持分类任务。使用经典的加拿大网络安全研究所恶意软件数据集2020版(Canadian institute for cybersecurity malware dataset 2020,CICMalDroid 2020)进行实验,结果表明,SFCG_Detector在恶意软件检测上的F1分数达到98.75%,召回率达到98.89%。相比其他方法,SFCG_Detector能有效地识别出Android恶意软件,性能上有明显提升。展开更多
为了分析操作系统内核等大型软件的模块间函数调用关系,针对传统的函数调用关系生成工具不适用于模块间调用关系分析以及其依赖编译器具体特定版本等不足,提出一种基于寄存器传送语言(Register Transfer Language,RTL)的函数调用图生成...为了分析操作系统内核等大型软件的模块间函数调用关系,针对传统的函数调用关系生成工具不适用于模块间调用关系分析以及其依赖编译器具体特定版本等不足,提出一种基于寄存器传送语言(Register Transfer Language,RTL)的函数调用图生成方法,并根据该方法实现了一个生成模块间函数调用图的工具CG-RTL(call graph based on RTL,简称为CG-RTL).CGRTL首先从编译过程所生成的中间结果中提取出函数定义和调用关系信息,然后利用开源图形可视化工具Graphviz将其绘制出来,并最终将该功能集成到在线源代码浏览工具LXR中去.实验结果表明:通过该方法获得的函数调用关系与目标代码较为一致,而且可以分析用户指定模块间的函数调用关系,而且该方法同时可以生成相对应的函数调用关系列表,更加细致的描述函数调用关系.展开更多
针对目前大多数的函数调用关系分析工具无法分析函数指针、系统启动过程以及可加载模块的函数调用关系的现象,在CG-RTL的基础上提出了基于内核跟踪的动态函数调用图生成方法,并开发了动态函数调用图生成工具DCG-RTL(dynamic call graph ...针对目前大多数的函数调用关系分析工具无法分析函数指针、系统启动过程以及可加载模块的函数调用关系的现象,在CG-RTL的基础上提出了基于内核跟踪的动态函数调用图生成方法,并开发了动态函数调用图生成工具DCG-RTL(dynamic call graph based on RTL)。DCG-RTL在S2E模拟器中运行待跟踪内核,通过指令捕获插件和函数解析插件记录运行时的函数调用和返回信息,分析跟踪信息得到动态和静态函数调用关系,利用CG-RTL工具在浏览器中展示。实验结果表明,DCG-RTL能全面和准确地跟踪包括函数指针引用和可加载内核模块在内的函数调用关系。展开更多
摘要针对Android恶意软件经常被混淆以逃避检测的问题,提出基于敏感函数调用图(sensitive function call graphs,SFCG)表征学习的敏感函数调用图检测(sensitive function call graphs detector,SFCG_Detector)方法,用于检测Android恶意软件。首先,通过静态分析提取函数调用图,并设计图修剪策略,保留与敏感应用程序接口(application programming interface,API)相关的关键节点,降低图的复杂性并保留行为语义。在节点表征方面,基于变换器的双向编码器表示(bidirectional encoder representation from transformers,BERT)模型与Katz中心性,提取节点的语义特征和结构重要性。随后,利用图采样与聚合(graph sample and aggregation,GraphSAGE)神经网络对敏感函数调用图进行层次化学习,生成图级嵌入以支持分类任务。使用经典的加拿大网络安全研究所恶意软件数据集2020版(Canadian institute for cybersecurity malware dataset 2020,CICMalDroid 2020)进行实验,结果表明,SFCG_Detector在恶意软件检测上的F1分数达到98.75%,召回率达到98.89%。相比其他方法,SFCG_Detector能有效地识别出Android恶意软件,性能上有明显提升。
摘要为了分析操作系统内核等大型软件的模块间函数调用关系,针对传统的函数调用关系生成工具不适用于模块间调用关系分析以及其依赖编译器具体特定版本等不足,提出一种基于寄存器传送语言(Register Transfer Language,RTL)的函数调用图生成方法,并根据该方法实现了一个生成模块间函数调用图的工具CG-RTL(call graph based on RTL,简称为CG-RTL).CGRTL首先从编译过程所生成的中间结果中提取出函数定义和调用关系信息,然后利用开源图形可视化工具Graphviz将其绘制出来,并最终将该功能集成到在线源代码浏览工具LXR中去.实验结果表明:通过该方法获得的函数调用关系与目标代码较为一致,而且可以分析用户指定模块间的函数调用关系,而且该方法同时可以生成相对应的函数调用关系列表,更加细致的描述函数调用关系.
摘要针对目前大多数的函数调用关系分析工具无法分析函数指针、系统启动过程以及可加载模块的函数调用关系的现象,在CG-RTL的基础上提出了基于内核跟踪的动态函数调用图生成方法,并开发了动态函数调用图生成工具DCG-RTL(dynamic call graph based on RTL)。DCG-RTL在S2E模拟器中运行待跟踪内核,通过指令捕获插件和函数解析插件记录运行时的函数调用和返回信息,分析跟踪信息得到动态和静态函数调用关系,利用CG-RTL工具在浏览器中展示。实验结果表明,DCG-RTL能全面和准确地跟踪包括函数指针引用和可加载内核模块在内的函数调用关系。