面向安卓系统内核的fuzzing工具的设计与实现

来源 :北京邮电大学 | 被引量 : 0次 | 上传用户:shyan
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
当今安卓系统已经成为移动端的主流系统,占据了绝大部份市场份额,却有着极大的安全风险。特别是安卓内核漏洞,一旦被利用,攻击者就有可能获得系统的所有权限,因此比用户态漏洞有着更严重的危害。随着人们对安全的逐渐重视,现有的内核漏洞检测工具能力越来越强。许多存在于代码浅层的漏洞已被发现,因此研究人员开始探索隐藏在代码更深处的内核漏洞,而传统的基于随机系统调用的内核模糊测试(fuzzing)方式已无法满足这种需求。针对内核的被动fuzzing技术具有系统调用顺序自然,更容易触发深层次漏洞的特点,是寻找新的攻击面,发现新漏洞的高效技术,但是这种方法在触发漏洞之后不会生成具体的测试用例;而面向内核的主动fuzzing技术利用事先变异好的参数,主动地执行对应的系统调用来进行测试,一旦发现漏洞就可以得到相应的测试用例,但是所有调用都依赖专家知识来配置,不容易触及到深层次代码。为了实现更高效的内核fuzzing,本文提出主被动结合的fuzzing方法。一方面,该方法利用被动fuzzing过程中所运行应用程序的系统调用日志来推理出系统调用模型,通过用主动fuzzing执行该系统调用模型来保留被动fuzzing的调用序列,使主动fuzzing也可以触及到更深层次的代码。另一方面,该方法用被动fuzzing崩溃后的系统调用序列引导主动fuzzing过程,使主动fuzzing尽可能覆盖更多序列中的调用,直至触发调用序列对应的漏洞,从而为被动fuzzing生成对应的测试用例。本文基于AFL和主被动结合的fuzzing方法实现了面向安卓内核的fuzzing工具X-AFL,它包含被动fuzzing,模型推理和主动fuzzing三个模块。本文对三个模块分别进行了实验评估,实验结果表明,被动fuzzing模块能够有效地触发较多内核错误;而且X-AFL使用推理模型比随机系统调用能获得更高的系统调用执行效率;结合了推理模型和序列引导技术的X-AFL是一个有效的安卓内核fuzzing工具。
其他文献
计算机辅助工艺设计(XSCAPP)系统,是根据某厂的生产实际而研制的,系统中有六个程序模块,八种数据文件.系统中的分类模块采用了模式识别法,零件的特征描述则用一个68维向量,以
通过对阜阳师范学院音乐学专业大一学生的问卷调查,结果显示,大一学生专业思想稳定,专业认同度较高,学习动机比较纯正,对毕业后的职业规划大多有所打算,职业目标切合实际,符
在语音信号序列的向量预测编码中,利用向量量化器把编码结构中产生的预测残差向量量化,可得到比传统标量量化更好的性能.向量的最优线性预测将转化为标量的最小二乘估计,通过