1.痛点问题
原子上下文休眠是操作系统中一类非常危险并且难以发现的缺陷,可以导致偶发的系统死锁和崩溃。实践证明,现有的主流开源操作系统存在不少该类缺陷,会引起实际的安全问题。随着系统软件自主化和物联网技术的发展,越来越多的国产操作系统诞生并被广泛使用,而这些国产操作系统中也会存在原子上下文休眠的缺陷,严重影响系统可靠性和安全性。由于操作系统具有代码量大、逻辑复杂和并发程度高等特点,对其进行代码分析和缺陷检测是比较困难的。
2.解决方案
本技术提出了一种检测原子上下文休眠缺陷的方法,包含了两个创新点:
1)自适应流敏感分析算法,能够较为准确高效地找出在原子上下文中被调用的函数;
2)函数调用图的检查算法,能够较为准确地判断函数是否可以休眠。
本技术还综合采用了流敏感分析、过程间分析、基于约束求解的路径检查和别名分析等,能够有效降低误报和漏报,并提升分析效率。
本技术的工作流程是自动的,不需要开发者和测试者手动分析和修改被测操作系统的源代码。因此,本发明可以应用于原子上下文休眠缺陷的检测,提高操作系统的安全性和可靠性。
合作需求
寻求对系统软件缺陷检测有需求的科技企业和科研单位,开展成果落地转化,以及探索服务模式。
目前,国内各家大型科技公司纷纷加大力度研发自己的系统软件;在航空航天、电子信息、国防军工等关键领域上,国家科研单位也研发了自己的国产操作系统。这些操作系统在安全性和可靠性上有很高的要求,因此需要自动化工具对其进行准确高效的缺陷检测。原子上下文休眠作为操作系统常见的一类严重缺陷,对其进行检测是十分重要的。然而,主流商用静态分析工具均缺少对该类缺陷的检测功能。因此,本技术可提升静态分析工具对操作系统的缺陷检测效果,具有较好的实用意义和一定的盈利前景。
本项目的技术原型较为成熟,经过方案适配和二次开发后,可用于专门检测操作系统中的原子上下文休眠缺陷。该技术可通过技术授权的形式,服务于对系统软件缺陷检测有需求的科技企业和科研单位。
主流的商用静态分析框架均来自国外科技公司,其中著名的代表包括Coverity、PC-Lint和Klocwork等。这些公司的分析框架已经广泛应用于航空航天、汽车电子、智能制造等多个领域,用户包括美国宇航局、丰田汽车、英特尔、华为等。近些年来国内成立了若干从事静态分析的公司,包括源伞科技、鉴释科技和中科天齐等。一般来讲,商用静态分析框架可以自动扫描C、C++、Java和C#等常见语言编写的程序代码,包括数十个检查器,能够检测上百种常见的缺陷类型(包括空指针解引用、释放后使用和内存泄漏等)。这些分析框架主要面向应用程序,在操作系统分析能力方面支持具有一定的局限性。例如,这些分析框架缺少检测原子上下文休眠缺陷的检查器。
面向操作系统的开源静态分析框架包括Smatch、Coccinelle和DR.Checker等。这些分析框架主要用于扫描C语言实现的Linux内核,具有较强的操作系统代码分析能力,尤其可以检测操作系统相关的多种缺陷,包括原子上下文休眠缺陷。这些分析框架在Linux内核中已经发现了上千个真实的内核缺陷,并成为Linux内核的标准测试工具。然而这些分析框架缺少有效的过程间分析和流敏感分析等技术,会存在较多的误报和漏报情况。
本技术专注于操作系统代码分析,并具备自适应流敏感分析算法和函数调用图的检查算法等创新技术,带有准确的流敏感分析和过程间分析等,因此在原子上下文休眠缺陷的检测方面,误报和漏洞较少,且分析速度较快。
扫码关注,查看更多科技成果