首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >夫人-c怎么得到CWE?

夫人-c怎么得到CWE?
EN

Stack Overflow用户
提问于 2022-10-19 12:33:01
回答 2查看 27关注 0票数 0

我用Frama做我的研究。如何从Frama-C的结果中获得CWE?

代码语言:javascript
复制
[kernel:typing:implicit-function-declaration] 1v3/juliet_suite-c-cplus/CWE401_Memory_Leak__int64_t_calloc_08.c:121: Warning: 

非常感谢

EN

回答 2

Stack Overflow用户

发布于 2022-10-19 16:34:22

Frama中没有直接提到CWE ID的消息(实际上,在许多情况下,很难从密切相关的ID中进行选择,例如。CWE 125 (越界读取),126 (缓冲区过读)和127 (缓冲区预读).对于许多CWE来说,Frama-C用户手册的第14.4节指出它们是否由Frama处理(有时通过用户需要提供的附加注释)。

票数 0
EN

Stack Overflow用户

发布于 2022-10-20 07:11:31

为了补充Virgile的回答:Frama的警报与ISO C标准语义密切相关。Frama框架是基于形式化方法的。CWEs虽然有用,但却更加非正式,在数学上不可能定义一个精确的、一对一的语义警报和CWEs映射。在最好的情况下,每一次警报都会附带一长串与之相对应的潜在CWEs,这将不是很有用。

下面是来自NIST的一些相关词汇,它提出了一个不同的Bugs来帮助解决这些问题:

然而,对于非常正式、严格的工作,CWE定义往往不准确、不精确或含糊不清,而且一个CWE中的各种定义可能是不一致的。..。另一个例子是缓冲区溢出。CWE-121写在堆栈上的缓冲区之外,CWE-122写在堆中的缓冲区之外,CWE-127在缓冲区开始之前读取,CWE-126在缓冲区结束后读取。但是没有CWEs专门用于堆栈上的缓冲区和堆中的缓冲区之外的读取。

ISO C标准甚至没有区分堆和堆栈(标准中完全没有这些词);在C语义级别上不可能简单地区分CWE-121和CWE-122 (实际上,实现映射函数--堆栈的局部变量和堆的全局变量/动态内存分配,因此所有工具都假定这一点;但这已经超出了C语义模型的范围,而且很容易引入几种可能进一步复杂化的异常)。

对于一些特定的CWEs,将来Frama-C可能会发出一些针对它们的警告;但在这种情况下,CWE将立即出现在警告本身中,就像一些CERT-C规则中的情况一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74125400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档