“基于 API 调用图嵌入与深度学习的 Android 恶意软件检测”阅读

这一周开完会后,老师给我找了两篇论文参考,爽歪歪,终于能找到合适的论文了,就是不知道自己能不能看懂,呜呜┭┮﹏┭┮。
第一篇是:基于 API 调用图嵌入与深度学习的 Android 恶意软件检测。老师给的链接:https://cuiyn.github.io/2020/08/31/Deep-learning-for-effective-Android-malware-detection-using-API-call-graph-embeddings/#%E6%96%B9%E6%B3%95%E6%A6%82%E8%BF%B0
呜呜,老师直接给的论文总结,太贴心了。

一.论文总结

论文给出的总结是:提出一种新颖的伪动态分析方法,首先通过静态分析,生成 API 调用图,再使用 API 调用图表示恶意软件在运行期间所有可执行、可跟踪的路径,进行特征提取并使用深度神经网络进行分类。

1.伪动态分析方法是什么

动态分析就是在程序动态执行过程中根据动态的调试信息来得出程序的行为和特性,那么伪动态分析是什么呢?
伪动态分析方法是通过API调用序列分析所有执行路径的分析方法。

2.API调用图是什么

API调用序列是一系列按照时间顺序排列的API调用,它反映了程序在运行过程中对操作系统功能的调用情况

a.API调用图的生成方法

一种方法是使用静态分析工具来分析代码,并推断出可能的API调用序列。这种方法通常需要对编程语言和操作系统有深入的了解,并且可能会产生误报或漏报的情况。

另一种方法是使用动态分析工具来监测程序的运行过程,并记录下所有的API调用序列。这种方法可以提供更准确的结果,但需要对目标程序进行实际运行,并且可能会受到安全软件的限制。

b.文中API序列的调用方法(FlowDroid)

使用 FlowDroid 框架作为调用图建立工具,FlowDroid能够很好地进行Java文件的静态污点分析任务。

(APP的伪代码:)
在这里插入图片描述
(对应的调用图:)
在这里插入图片描述

二. 所提出的方法

1.api调用生成图

在 Android 平台中,Java 类的每个方法都可以表示为一个 CFG。总的来说,整个应用程序可以通过其方法的 CFG 的组合来呈现。
G=(E,N),其中 N 是一组有限的节点,表示 Android 记录的 API 调用,E 表示一组有限的边,用于在连续指令之间创建链接。

2. 定义图嵌入方法

a. 什么是图嵌入方法

图嵌入是将图数据映射为低维向量的过程。 嵌入 (Embedding)的思想是:把图中的节点或者边嵌入到一个低维的向量空间中,且节点或边在该低维空间的关系能比较完整地保留原图的结构信息。

b.如何对图进行图嵌入操作

图嵌入操作可以分解为三个粒度级别:节点级别、边级别和图级别。

在节点级别,每个顶点(或称节点)用其自身的向量表示进行编码,这种嵌入一般用于在顶点层次上执行可视化或预测,比如在2D平面上显示顶点,或者基于顶点相似性预测新的连接。这种方法中,常见的算法包括DeepWalk、Node2Vec等。

在边级别,边的嵌入方法是将每条边映射到一个低维空

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值