[发明专利]一种分析Linux内核动态执行的方法无效

专利信息
申请号: 201110151167.4 申请日: 2011-06-02
公开(公告)号: CN102810078A 公开(公告)日: 2012-12-05
发明(设计)人: 周庆国;边立军;金国军;盛勇;孙彦猛;杨红刚 申请(专利权)人: 兰州大学
主分类号: G06F11/36 分类号: G06F11/36;G06F21/00
代理公司: 兰州振华专利代理有限责任公司 62102 代理人: 张晋
地址: 730000 *** 国省代码: 甘肃;62
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 分析 linux 内核 动态 执行 方法
【说明书】:

技术领域

发明涉及计算机操作系统工作中对系统安全性进行分析的方法。确切讲本发明是一种遵循POSIX标准,对Linux操作系统的内核在动态执行过程中所涉及的函数、语句的一种追踪、分析方法。

背景技术

作为开源软件的代表,Linux的应用越来越广泛,但是对Linux的安全分析、安全级别的验证还有很大的欠缺。与Windows操作系统因商业而带来的费用、代码不公开而可能存在“后门”、病毒越来越多等一系列不利因素相比,Linux操作系统则具有免费,代码开放等优点,从而逐渐为更多的企业、个人接受。伴随着更加广泛的应用,Linux可能会在安全相关的领域有更多的应用,从而分析Linux的安全级别是否达到应用的需求也越来越有必要。但是由于应用环境的不同、Linux本身非常庞大,对Linux的安全级别的分析还存在很大的问题。现今,还没有分析表明,Linux系统的应用达到IEC61508中所定义的SIL4的级别。而在操作系统工作前,对其安全性进行分析是十分必要的。但现阶段尚缺少这方面的技术。

现有的开源软件strace可以追踪可执行文件用到的系统调用,但它只能追踪确定的可执行文件,而且对多个可执行文件的追踪结果不能很好的区分,另外在其结果中还有除了系统调用以外的很多附加信息;现有的开源软件KFT可以追踪到设定的入口函数和出口函数之间的内核信息,并且KFT的kd功能将结果转换成调用树的形式,但是KFT每次只能按照这一次的设定来追踪,生成的多个调用树不能自己做比较;在编译内核后的内核目录下会生成tags文件,该文件中含有内核函数名,定义、声明该内核函数的内核文件,以及一些其他的信息;现有的开源程序gcov能追踪到内核文件的执行时的覆盖情况。

发明内容

本发明提供了一种对Linux操作系统的内核在动态执行过程中所涉及的函数、语句分析的方法。

本发明的分析Linux内核动态执行的方法是:

将开源程序strace通过程序进行扩展,经扩展后的strace在原来的基础上自动的对拟分析项目中的每一个可执行文件进行追踪,同时过滤出相应的被追踪的可执行文件在执行过程中的系统调用,将过滤出的系统调用给予一个新命名单独保存在与该可执行文件相对应的另外建立的新文件中;将开源程序的KFT功能通过程序进行扩展,扩展后的KFT在原来的基础上可自动追踪每个系统调用所调用的内核函数,并自动对同一个文件中每个系统调用追踪100次,创建数据库,并在数据库的表1中保存KFT追踪结果,对结果的调用树去重,建立追踪结果和调用树的对应关系,在前述数据库的表2中保存,在KFT对所有系统调用追踪结束后,将当前配置下的函数映射地址保存在前述数据库的表3,将autoKFT执行时的系统环境信息保存在数据库的前述数据库的表4中;在编译过Linux源代码的目录下会生成tags文件,从数据库表1中取出前述步骤中KFT追踪到的内核函数,在tags中过滤这些内核函数以及内核函数定义、声明的内核文件,并在前述数据库的表5中保存这些内核函数名和对应的内核文件名;将开源程序gcov通过程序进行扩展,使扩展后的gcov在原来的基础上能得到内核c文件中函数的起始行的数、结束行的数以及执行覆盖率,以及内核C文件中语句块的起始、结束的行数和执行的次数,调用这些功能自动处理每一个内核文件的gcov结果,得到执行过程中用到的每一个内核文件中函数覆盖率,保存到前述数据库的表6中,得到调用过的每个内核文件中语句块的起始、终止行数、执行次数,将结果存在前述数据库的表7中,对这些内核文件预编译成汇编文件,将结果保存在前述数据库的表8中,将autogcov执行时的系统环境信息保存到前述数据库的表4中;最终在网页上显示:从数据库中的每个系统调用的名称,对每个系统调用的每次追踪读取执行时间,统计出最大、最小执行时间,计算出平均执行时间和时间方差,在网页上显示,每个系统调用链接显示追踪的结果,对每个系统调用显示调用树的个数,并链接显示调用树;调用树中的每个内核函数链接到定义该内核函数的文件,显示内容包括该文件中函数的覆盖率,以及每个语句的执行次数。

上述内容中扩展的autostrace、autoKFT、autotags和autogcov可以使用脚本实现,例如使用:shell或perl或python实现,也可以用如C语言实现,用这些程序语言编写相应的源程序,即代码,以实现相关的要求。

本发明的一个实施例是采用shell脚本分别对strace、KFT、tags(去掉)和gcov进行扩展,其中:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于兰州大学,未经兰州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201110151167.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top