📜  如何使用 FlawFinder-python 工具查找 CC++ 代码中的漏洞?(1)

📅  最后修改于: 2023-12-03 15:38:00.547000             🧑  作者: Mango

如何使用 FlawFinder-python 工具查找 C/C++ 代码中的漏洞?

什么是 FlawFinder-python 工具?

FlawFinder-python 是一个基于 Python 实现的 C/C++ 代码静态分析工具,用于分析代码中的安全漏洞。它可以识别安全漏洞如缓冲区溢出、格式化字符串漏洞等,并标记出漏洞所在的文件和行数。

安装 FlawFinder-python 工具

FlawFinder-python 可以通过 pip 直接安装,只需要执行以下命令即可:

pip install flawed
使用 FlawFinder-python 工具

使用 FlawFinder-python 工具非常简单,只需要执行以下命令:

flawfinder [OPTIONS] [DIRECTORY/FILE]

其中,OPTIONS 为可选参数,可以指定一些选项,例如:

  • -D:指定宏定义;
  • -I:指定头文件目录;
  • -b:指定忽略的文件名模式;
  • -o:指定输出结果的文件名;
  • 等等。

DIRECTORY/FILE 为要分析的目录或文件,可以使用相对路径或绝对路径。

例如,要分析当前目录下的所有 C/C++ 源文件,可以执行以下命令:

flawfinder .

FlawFinder-python 会在当前目录下递归查找所有 C/C++ 源文件,并对它们进行分析。

分析结果

FlawFinder-python 分析结果会输出到终端或指定的输出文件中,默认情况下,如果没有指定输出文件名,结果会输出到标准输出中。

输出结果的格式为:

FILENAME:LINE_NUMBER: [LEVEL] WARNING_MESSAGE

其中,

  • FILENAME:表示文件名;
  • LINE_NUMBER:表示漏洞所在行数;
  • LEVEL:表示漏洞级别,分为:LOW(低)、MEDIUM(中)、HIGH(高)和 CRITICAL(严重);
  • WARNING_MESSAGE:表示漏洞详细信息。

例如,以下是 FlawFinder-python 分析结果的示例:

main.c:17: [MEDIUM] format string vulnerability: input/output mismatch (printf)
main.c:22: [HIGH] buffer overflow vulnerability: strcpy
main.c:38: [HIGH] buffer overflow vulnerability: gets
结语

FlawFinder-python 工具可以帮助开发人员快速发现 C/C++ 代码中的安全漏洞,早期发现漏洞,才能更好地避免安全风险。希望本文能够帮助到大家,提高代码安全性。