【InForSec2023 年会论坛回顾】李卷孺:发掘自定义内存管理函数的使用安全问题
2023-5-6 18:15:9 Author: 网安国际(查看原文) 阅读量:12 收藏

2023年4月8日~9日,由InForSec、南方科技大学斯发基斯可信自主系统研究院、清华大学网络科学与网络空间研究院、复旦大学软件学院系统软件与安全实验室、国科学院计算技术研究所处理器芯片全国重点实验室、中国科学院软件研究所可信计算与信息保障实验室、中国科学院大学国家计算机网络入侵防范中心、浙江大学NESA Lab、山东大学网络空间安全学院、百度安全、奇安信集团、蚂蚁集团、阿里安全等单位联合主办的“InForSec 2023年网络空间安全国际学术研究成果分享及青年学者论坛”在南方科技大学成功召开。来自清华大学、复旦大学、浙江大学、北京邮电大学、中国科学院大学等66所高校及科研院所的230余人现场出席会议,900余人通过视频会议系统及直播系统参与了本次论坛。

我们将对会议精彩报告进行内容回顾,本文分享的是来自G.O.S.S.I.P的李卷孺老师的报告——《发掘自定义内存管理函数的使用安全问题》。

李卷孺老师首先介绍了传统静态分析技术存在的局限性。李老师将其与国际象棋类比,指出传统程序分析的搜索-推理算法效率很低,随着分析的深入,需要考虑的不同状态会存在指数爆炸情况。

随后,李老师介绍了目前针对内存破坏缺陷(例如Use-after-free和Double-free问题)的代码检测,通常从少数标准的内存分配和释放函数开始进行数据流分析和缺陷检测,一般不会考虑程序中的自定义内存管理函数(custom memory management function)。

然而,李老师指出在现实代码中,内存分配流程是非常复杂的,这种方法在应对大规模代码(如Linux内核超过2700万行代码的情况)时所需的开销巨大(需要不切实际的内存容量和上万小时的分析时长),无法很好的解决缺陷检测的问题。

为了简化该分析场景,李老师提出了一种基于自然语言处理、结合静态程序分析的(自定义)内存管理函数识别和表征方法,实现了广义的内存管理函数识别,并且能够精确刻画这些内存管理函数所负责的相关内存对象的结构,极大的简化了数据流分析过程。

随后,李老师介绍了他们的工具Goshawk在现实中的实验效果,能够有效地对自定义内存管理函数和相关内存对象进行建模,发现了大量由复杂的自定义内存管理函数造成的内存破坏缺陷。具体而言,它准确发现了超过1万个自定义内存管理函数,发现了92个新bug,且误报率极低。

最后,李老师分享了自己对程序分析的看法,并总结了在这篇工作中的心得体会。程序分析往往无法既准确又全面,在不同的分析场景下,应该选择不同的指标,例如漏洞检测场景下要尽可能减少误报,在安全防护场景下,要尽可能减少漏报。

演讲者简介

李卷孺博士毕业于上海交通大学,作为 G.O.S.S.I.P 安全研究联合团队(中国、美国、澳大利亚)主要负责人、上海期智研究院客座研究员,他的乐趣是与世界各地热爱安全研究的同行(特别是年轻学子)一起合作,开展软件安全分析、移动智能终端安全分析与防护、IoT与工业互联网安全、现实世界密码代码实现安全等方面的研究。李卷孺博士在主流安全学术会议(IEEE S&P,CCS、NDSS、AsiaCCS、RAID、ACSAC、ESORICS、DSN、WiSec等)上发表了大量关于软件安全的研究成果(详细信息可访问其个人主页 https://lijuanru.com)。


文章来源: http://mp.weixin.qq.com/s?__biz=MzA4ODYzMjU0NQ==&mid=2652313027&idx=1&sn=e5cbd9bdde1cd6cd3f35e44e3353d063&chksm=8bc4884dbcb3015b06958cb4274dcdef8be57fe582a180af848f15dc15bf8085f08c86bc5046#rd
如有侵权请联系:admin#unsafe.sh