我正在开发Android应用程序以检测恶意应用程序。我们计划根据请求的权限检测恶意应用程序.....仅仅权限将帮助我们检测恶意应用程序或我们是否需要考虑使用的特性动态代码,静态http网址的使用....任何帮助赞赏。 ...
答案 0 :(得分:0)
我将突破这个问题是几个小部分:
检测恶意应用
这可能是你想要做的事情中最难的部分。大多数反病毒,反恶意软件等通常会在生成指令的二进制文件的源代码中搜索“足迹”。如果您发现的数字超过了足迹的阈值,您可以猜测该文件是恶意软件。
我们计划根据请求的权限检测恶意应用
我将明确地说:不......
就我看来,大多数“怪异”的请求通常是由于程序员没有完全理解许可授予的内容,甚至是为什么/需要什么。
这是一个地方性的问题,谷歌本身改变了权限的工作方式(如果我没有记错,从K到L,或从L到M或那些更新中的某些内容)
然后,一个想要网络访问的警报应用程序想要读取系统中的所有文件,想要在任何地方读/写任何东西,想要使用你的gps等等,然后看起来像恶意软件本身(和通常没有READING用户会使用它。)
我们是否需要考虑使用动态代码等特性
是。虽然Java本身无法“即时”解释其代码,但DEX允许我们这样做。最常见的劫持通常是不做任何事情的应用程序,但随后会创建一个入口点来呈现javascript内容,并执行一些意外的代码。
使用静态http url
这本身并没有那么大的风险,因为大多数浏览器都会请求一些安全凭证,并且至少警告用户他在不受信任的网络上。通常到达的第二个问题是“在运行中”URL,然后要求空请求改变其请求。
如果某个应用程序正在请求绕过系统的任何基于Web的内容(不是安全问题,有时程序员只是“比完成客户端请求所需的工作量更少”,然后查看静态地址,甚至是IP通常没有重大的安全价值。