[发明专利]安卓系统中不安全敏感输入验证识别方法有效
申请号: | 201811163790.X | 申请日: | 2018-10-02 |
公开(公告)号: | CN109299610B | 公开(公告)日: | 2021-03-30 |
发明(设计)人: | 杨珉;杨哲慜;张磊;何郁郁;张振宇;洪庚;张源 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;陆尤 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 系统 不安全 敏感 输入 验证 识别 方法 | ||
本发明属于程序安全分析漏洞挖掘技术领域,具体为一种安卓系统中不安全敏感输入验证识别方法。本发明方法包括:输入验证识别,首先提取程序代码中的中断分支,经过对代码结构特征进行分析,找出包含中断指令的独立程序分支,来判断当前程序执行是否包含校验输入的意图;敏感输入验证识别,采用自然语言处理对大量输入参数进行基于语义的聚类,再通过指定少量已知敏感参数,采用机器学习来推测其他的未知敏感参数;最后,漏洞识别,通过检查这些包含敏感参数的输入验证是否满足安全规则来判断其是否为不安全的输入验证。通过对这类输入验证进行识别,能够确定由其构成的系统级安全漏洞,对加强移动系统安全、防范系统级别攻击具有重要意义。
技术领域
本发明属于程序安全分析和漏洞挖掘技术领域,具体涉及自然语言处理、机器学习技术和静态信息流分析技术,尤其涉及识别安卓系统中不安全的输入验证识别方法。
背景技术
超过60%的移动设备正在使用安卓系统,其中运行着大量与我们日常生活相关的应用程序。为了实现各种功能,应用程序可以读取和操作安卓系统资源,例如GPS设备和屏幕显示,并执行敏感操作,例如发送和删除SMS消息。在安卓系统中,这些资源和敏感操作由100多个系统服务管理。显然,这些服务中的访问控制在整个系统的安全性中起着重要作用。
在本发明中,我们对系统服务中的一组特殊的关键安全校验进行了实证研究,我们将其定义为敏感的输入验证。与系统中包含的351个权限相比,安卓系统至少包含700多个不同的敏感输入验证。它们被大量用于各种目的,例如通过限制设备名来阻止普通应用访问敏感的系统级设备。
本发明与传统的输入验证研究不同。传统的输入验证研究侧重于一组狭窄且定义明确的敏感输入,例如,可能导致SQL注入攻击的Web输入,以及传递给Linux内核的可能引起内存泄露攻击的用户空间指针。而安卓系统由其独特性导致我们并不知道哪些输入应该被验证。因此,本发明更关注于在另一方面,即既不知道哪些输入应该被验证,又不知道这些输入需要在哪里被验证。具体而言,这是由以下安卓特性所决定的:(1)非结构化。与依赖于系统定义接口的安卓权限检查不同,例如Context.checkCallingOrSelfPermission()和Binder.getCallingUid(),系统服务中的敏感输入验证很难识别。实际上,一个系统服务中公开方法的任何输入都有可能导致敏感的输入验证(涉及参数检查的一个条件语句)。(2)定义不明确。与由安卓权限模型中已被详细文档说明的权限认证不同,没有任何公开可用的来源去定义应该如何在安卓系统服务中执行敏感的输入验证。因此,尚不清楚输入是否需要经过验证以及是否正确完成。(3)碎片化。敏感输入验证分散在大量Java类中。例如,在安卓7.0中,我们的评估显示它们广泛分散在173个不同的Java类中,而安卓权限保障集中在6个类中。此外,即使在相同的服务方法中,敏感的输入验证通常分散在各种执行路径中,从而以细粒度的方式限制系统操作。
因此,尽管安卓系统服务中敏感输入验证是十分重要的,但是因它的不充分设计和实现导致安全人员忽略了它们的安全性。首先,系统开发者混淆了其系统安全模型。安卓系统服务会错误的信任来自于普通应用的输入,甚至有时把输入验证放在了应用程序(Android SDK)进程中。其次,系统开发者在定制安卓系统时也会忽略输入验证的问题。但是,在这些背景下,安卓系统中尚未有方法来自动识别敏感的输入验证以及由其构成的安全漏洞。
发明内容
本发明的目的是提供一种全新的基于代码层结构及语义解析驱动的不安全敏感输入验证识别方法,适用于大规模自动化地从安卓系统的代码当中识别其所包含的不安全敏感输入验证。
本发明提供的不安全敏感输入验证识别方法,用于识别在验证输入时所依赖的不安全数据源,包括三个部分:基于代码结构分析的输入验证识别、基于自然语言处理和机器学习的敏感输入验证识别以及基于安全规则的漏洞识别。
(一)基于代码结构分析的输入验证识别,首先提取程序代码中的中断分支,例如抛出异常等。经过对代码结构特征进行分析,找出包含中断指令的独立程序分支,来判断当前程序执行是否包含校验输入的意图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811163790.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种ELF文件检测方法及装置
- 下一篇:一种热插拔设备的控制方法和装置