我正在尝试开发一个能够使用支持向量机 (SVM) 为 Android 平台检测恶意应用程序的应用程序。我可以从“logcat”和“strace”工具获得许多系统信息,但我现在不知道如何设法检测真正的恶意应用程序。有谁知道如何使用这些工具来稳定/记录设备的正常行为使用,我的意思是,从设备获取信息并设置行为模式。
此致
您将始终难以确定恶意应用程序行为:Kymie MC Tan、Roy A. Maxion,“为什么 6?”定义 Stide 的操作限制,一种基于异常的入侵检测器,sp,pp.188,2002 IEEE Symposium on安全和隐私,2002
但如果你真的想尝试,或许起点在这里:“Intrusion Detection Using Sequences of System Calls”。S. Hofmeyr、S. Forrest 和 A. Somayaji 计算机安全杂志卷。6,第 151-180 页(1998 年)
对于 Windows API,人们通常会查看序列以确定他们的操作集。你也可以找到针对 Android 平台的论文/研究。
我想知道,如果这可能...
您想如何评价应用程序的行为是否正常?您是否计划了一个“学习阶段”,记录某个应用程序所做的所有事情(如果这可能首先没有 root 访问权限!),然后保存为该应用程序“正常行为”的“配置文件”?
假设您记录应用程序的任何行为,例如在主屏幕上组织图标的工具。现在说这个应用程序还提供直接呼叫您最喜欢的联系人之一的功能,它需要访问您的联系人和拨打电话的权限。如果几乎不使用此功能,您可能不会在此应用的“学习”期间将其记录下来,并在该应用尝试拨打电话时将其评为恶意应用。
如果应用程序在“学习阶段”显示恶意行为,而您因为尚未确定“正常行为”而无法检测到它怎么办?
听起来“正常行为”必须保存在某个地方才能在安装应用程序之前对其进行评分,并且它开始表现得很奇怪或执行不需要的操作。但话又说回来:一个用户想要的东西可能对另一个用户来说是完全正常的......
我对人们提出的任何奇特的解决方案感兴趣,但我想这将是一个艰难的解决方案......
如果您首先在 Android 中使用一组恶意调用而不是分析正常调用会怎样。
另外,请注意,如果您使用的是无监督分类,它不知道它分类了什么样的数据