SAT驱动的C程序缓冲区溢出漏洞检测方法
163 浏览量
更新于2024-08-26
收藏 393KB PDF 举报
"该文介绍了一种基于SAT(布尔可满足性问题)的C程序缓冲区溢出漏洞检测技术,通过源代码变换和断言来检测潜在的安全问题。该方法在1164个公开基准程序上进行了测试,取得了较高的准确性和较低的漏报率。"
在计算机编程中,尤其是C语言编程,缓冲区溢出是一种常见的安全漏洞,可能导致数据丢失、系统崩溃甚至恶意代码执行。缓冲区溢出通常发生在程序员没有正确地管理内存分配和使用时,当向固定大小的缓冲区写入超过其容量的数据时发生。这种错误可以被攻击者利用,执行未授权的指令或获取敏感信息。
本文提出了一种新的检测C语言缓冲区溢出的方法,它基于SAT求解器。SAT(布尔可满足性问题)是逻辑满足问题的一个分支,常用于解决复杂的问题,如软件验证和电路设计。在该方法中,首先通过源代码变换在程序中添加特定的语句,这些语句用于描述缓冲区的属性。接着,使用断言来表达缓冲区溢出的条件,即如果某条件满足,则可能发生溢出。这些断言随后通过SAT工具进行检查,以确定是否存在导致溢出的路径。
该方法的一个关键优点是它可以处理源代码级别的问题,而不需要编译后的二进制代码,这使得分析过程更直接且可能更有效。此外,通过实际应用,该技术成功设计并实现了一个原型工具,该工具能自动检测输入的源代码中可能存在的缓冲区溢出漏洞。在1164个公开的基准程序上进行的实验表明,该工具能够准确地识别出漏洞,没有产生误报,但存在约2.08%的漏报率,这意味着虽然总体表现优秀,但仍有少数漏洞可能被遗漏。
关键词涉及的模型检验是软件验证的一种技术,它通过建立程序执行的数学模型来检查是否满足特定的属性。在本例中,模型检验被用来检查缓冲区溢出的断言是否可满足,即是否存在满足溢出条件的执行路径。布尔可满足性问题(SAT)作为模型检验的一部分,是寻找模型中满足所有约束的解的关键步骤。
这项研究提供了一种基于SAT的高效和准确的C程序缓冲区溢出检测方法,有助于提高软件安全性,减少因缓冲区溢出导致的潜在风险。未来的研究可能关注于优化工具以降低漏报率,或者将这种方法扩展到其他编程语言和更复杂的漏洞类型。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-01-12 上传
2023-02-14 上传
2023-01-28 上传
2023-07-27 上传
2023-05-22 上传
2024-06-27 上传
weixin_38627826
- 粉丝: 5
- 资源: 939
最新资源
- 安卓Android源码——安卓Android使用SurfaceView实现墨迹天气的风车效果.zip
- student,java项目源码分享网,soapjava客户端
- nodejs-basics:Node.js基础的项目文件
- 易语言API调用对话框应用模块源码
- weather-node-cli
- 漂亮的金色农业农场响应式企业网站模板6074.zip
- 芦荟植物图片数据集,所有图像具有1280 X 720的尺寸
- Covid19-Dashboard
- polka:时间序列数据库
- test,MATLAB 量化交易 源码 下载,matlab
- npmex:一种从各种来源搜索软件包的地方
- 前端工程师HTML5 WEB简历网页模板下载6081.zip
- C#实现excel文件的读取、写入的源码程序
- 嵌入式按键驱动源代码和Makefile文件
- 在终端中显示图像-Node.js开发
- funcstats:(正确编写的)C 和 Go 代码的简单函数统计