1.flawfinder(pycharm中可以安装)
SARD中开源数据集:2014-06-08-a-taxonomy-of-buffer-overflows
安装:pip install flawfinder
检查是否安装成功: flawfinder -h
检测漏洞数据集:
flawfinder F:\diwurenge\2014-06-08-a-taxonomy-of-buffer-overflows
使用:将结果保存为txt格式
flawfinder F:\diwurenge\2014-06-08-a-taxonomy-of-buffer-overflows > results.txt
结果:
CWE-120: Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')
不检查输入大小的缓冲区复制(“经典缓冲区溢出”)
childOf:CWE-119
CWE-807: Reliance on Untrusted Inputs in a Security Decision
在安全决策中依赖不受信任的输入
Input 可以由不受信任的参与者以绕过保护机制的方式修改
CWE-20: Improper Input Validation
不正确的输入验证
接收输入或数据,但它不会验证或错误地验证输入是否具有安全正确地处理数据所需的属性
CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer
在内存缓冲区范围内对操作进行不当限制
对内存缓冲区执行操作,但它从缓冲区预期边界之外的内存位置读取或写入。这可能会导致对可能链接到其他变量、数据结构或内部程序数据的意外内存位置进行读取或写入操作。
parentOf:CWE-120、CWE-788
CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
使用同步不正确的共享资源进行并发执行(“争用条件”)
该产品包含一个可以与其他代码并发运行的 code sequence,并且 code sequence 需要对共享资源的临时独占访问,但存在一个 timing window,在该窗口中,共享资源可以被另一个并发运行的 code sequence 修改。
CWE-126: Buffer Over-read
缓冲区过读
该产品使用缓冲区访问机制(例如,引用目标缓冲区之后的内存位置的索引或指针)从缓冲区中读取。
2.cppcheck:有具体位置
数据集语言C语言—2014-06-08-a-taxonomy-of-buffer-overflows
结果:
CWE-788: Access of Memory Location After End of Buffer
缓冲区结束后访问内存位置
childOf:CWE-119
CWE-563: Assignment to Variable without Use
分配给变量而不使用
变量的值被赋值但从未使用,使其成为死存储。
3.clang分析仪:(数据集语言C++)
powershell打开输入命令:
Get-ChildItem-Recurse-Path"F:\diwurenge\2007-12-05-cplusplus-test-suite-for-source-code-analyzer-false-positive" -Filter *.cpp | ForEach-Object { clang --analyze $_.FullName }
递归查找指定文件夹中的所有 .cpp 文件。
对每一个找到的 .cpp 文件运行 clang --analyze
命令进行静态分析。