改进的基于集成的机器学习技术在安卓恶意软件检测中的应用
立即解锁
发布时间: 2025-08-21 00:27:55 阅读量: 2 订阅数: 12 


智能技术与应用:INTAP 2019精选论文
### 改进的基于集成的机器学习技术在安卓恶意软件检测中的应用
#### 1. 提出的方法
传统的静态和动态方法在检测恶意软件时存在一定问题,而本文提出的技术将静态和动态技术相结合,通过机器学习模型能够检测各种类型的恶意软件。
静态分析会扫描应用程序的所有代码,在不执行的情况下识别恶意行为。具体操作是使用 Android Asset Packaging Tool 和 Baksmali 工具提取静态特征,如请求的硬件元素、应用元素(服务、接收器、内容提供者)、意图过滤器、可疑 API 调用和受限 API 调用。
动态分析则是将应用程序安装在真实的 Android 设备上,分析其运行时行为,并监控动态加载和解密的代码。动态特征通过分析系统调用来实时了解应用程序的行为,恶意应用程序比合法应用程序更频繁地发起特定的系统调用,如 open、ioctl、brk、read、write、close、sendto、sendmsg、recvfrom、recvmsg 等,这些频繁出现的系统调用代表了恶意软件的行为。
该方法的主要组成部分如下:
- **数据收集**
- **App 存档 .APK**:APK 文件是 Android 操作系统用于下载手机应用的存档文件,包含程序代码、资源、常量字符串和清单文件。通过将下载的 APK 文件中的常量字符串与恶意软件应用的常量字符串进行关联,并结合 manifest.xml 文件,可以在将应用安装到 Android 手机之前检测出恶意软件模式。
- **解压**:下载 APK 文件后,使用 Android Asset Packaging Tool 对其进行解压,该工具会解包 manifest.xml 文件并输出 classes.dex 文件。manifest 文件会提取应用程序请求的所有权限、应用组件、过滤的意图和使用的硬件功能。接着使用 Baksmali 工具对 classes.dex 应用代码进行反汇编,生成 smali 文件,这些文件以 smali 语言保存 Android 应用的 Java 代码,有助于提取可疑 API 调用和受限 API 调用。
- **特征提取**
为了构建一个强大的 Android 恶意软件检测模型,需要一些具有代表性的特征进行分析,包括用户权限、提供者和接收器信息、进程名称、意图过滤器和通过逆向工程提取的二进制文件。将 APK 文件转换为 Java 代码格式,进行修改后再转换回 APK 文件。在逆向工程过程中,从 Android manifest.xml 文件和常量字符串中提取的特征包括二进制文件和权限、提供者、接收器、意图过滤器和进程。攻击者可能会通过逆向工程修改应用程序的常量字符串,例如修改 [const - string v1, ‘Device Not Rooted’] 并上传到 Google Play 商店。每个 Android 应用都有 manifest.xml 文件,其中包含请求的权限,用户在安装应用之前必须接受这些权限。在常量字符串中,还会提取一些关键字(清单特征),如 “Read SMS” 表示接收并读取发送的消息,“Read Phone State” 表示读取用户的电话号码,这些关键字也会出现在恶意应用程序中。通过将从清单中提取的所有特征与提出的关键字进行比较,检测恶意和合法文件,然后根据阈值计算应用程序的恶意性得分,并应用机器学习算法。通过增强清单特征的关键字,可以比以前
0
0
复制全文
相关推荐








