我院研究生在计算机编程领域取得重要研究成果
发表时间:2022-06-06作者:浏览: 861

近日,依托于我院陆军院士工作室的一项研究工作在计算机编程领域取得了重要进展。此项工作自2020年起由我院2019级研究生吕云龙(导师:孙启彬研究员)在我院孙启彬老师的指导下开展,研究期间与来自上海交通大学、明尼苏达大学的老师们展开了深度合作。该项工作对广泛存在于计算机源代码中的定制化内存管理机制进行了研究,并对其造成的内存破坏缺陷进行了有效的检测。此项研究在Linux/FreeBSD内核等实际项目中发现了数量可观的内存破坏缺陷,且协助相应的社区对检测出的内存破坏缺陷进行了修复,该项研究对于计算机编程领域的内存管理相关研究具有重要的指导性意义。

当前,存在于计算机程序中的内存破坏缺陷会严重危害信息系统的安全。此项研究发现目前的自动化检测内存破坏缺陷工具和方法在实际场景中并不是非常的有效。这些工具和方法仅能够识别出代码中对于标准内存管理函数接口(例如malloc free)的使用,并且假设一种朴素的成对使用模型进行内存破坏缺陷检测。但本研究观察到在实际的代码项目中通常会定制化项目自身的内存管理函数,其所呈现出的高度定制化的内存管理机制存在两个问题:(1)定制化的内存分配函数通常进行多对象且结构嵌入的分配,因此需要结构可知的内存释放函数来负责释放;(2)定制化的内存分配函数和内存释放函数不服从成对使用的模型。

 图1 使用内存操作摘要表征来抽象内存管理函数

为了适应实际应用场景中所采用的定制化内存管理机制,该项研究首次提出了以内存对象为中心且结构体可知的内存操作摘要(MOS)表征的概念,使用自然语言处理和数据流分析等技术来对内存管理函数进行抽象,从而有效地检测定制化内存管理机制造成的内存破坏缺陷。此项研究在Linux/FreeBSD内核等知名开源软件上进行了应用,并在这些被测项目上发现了数量客观的内存破坏缺陷,所有发现的缺陷均已提交给对应社区进行了修复,对保障计算机代码中内存管理安全具有重要的现实意义。

 图2 在知名开源项目上的内存破坏缺陷检测结果

此项研究成果目前已发表在安全领域的国际著名会议IEEE S&P 2022,论文题目为“Goshawk: Hunting Memory Corruptions via Structure-Aware and Object-Centric Memory Operation Synopsis”。该研究工作依托于我院陆军院士工作室,中国科学技术大学为论文的第一单位。

IEEE S&PIEEE Symposium on Security and Privacy)是计算机安全领域的四大安全会议之一,是计算机安全领域历史最悠久的国际顶级学术会议之一。该会以评审严格而著称。IEEE S&P2022年度仅接收了147 篇文章(接收率13%)。