banner
毅种循环

毅种循环

请将那贻笑罪过以逐字吟咏 如对冰川投以游丝般倾诉

Fortify SCA (Windows + VS Code 插件) 扫描 Python 代码

最近接到一个活,要对 python 代码进行代码扫描,之前只用过 fortify 扫描 Java 类的代码,搜索了一下支持 python 类代码扫描,和常规的方式不一样 记录一下过程。

一、前期准备#

  1. Fortify Static Code Analyzer (SCA):Windows 232.2 版本。
  2. 安装 VS Code
  3. 安装 Fortify VSC 插件
    • 打开 VS Code。
    • 进入 Extensions 视图 (快捷键 Ctrl+Shift+X)。
    • 搜索 "Fortify",找到并安装 "Fortify VSC" 插件。

image

二、Fortify VSC 插件配置#

在 VS Code 中,打开 Fortify 插件界面(通常在左侧活动栏找到 Fortify 图标)。打开显示如下。

第一个不用管,直接切换到 Static Code Analyzer executable path 视图。

image

2.1 配置 SCA 可执行文件路径#

image

  • 字段:Static Code Analyzer executable path
  • 说明: 指定 sourceanalyzer.exe 的路径。
  • 设置:
    • 推荐: 如果已将 Fortify SCA 的 bin 目录添加到系统环境变量 Path 中,则此处直接输入 sourceanalyzer 即可。

image

- **备用:** 如果上述方法不行,点击右侧的 `Browse...` 按钮,导航到Fortify SCA 安装目录,找到 `bin` 文件夹,然后选择 `sourceanalyzer.exe`。
    * **示例路径:** `C:\Program Files\Fortify\Fortify_SCA_and_Apps_<版本号>\bin\sourceanalyzer.exe`

配置基本上就配置好了,剩下的用 vscode 打开需要扫描的目录,再点击一下 Fortify 插件的按钮即可自动填充。

2.2 配置构建 ID#

  • 字段:Build ID
  • 说明: 为本次扫描任务设置一个唯一的标识符。

2.3 配置扫描结果输出路径 (FPR)#

  • 字段:Scan results location (FPR)
  • 说明: 指定扫描结果文件(.fpr 文件)的保存路径和文件名。Fortify Audit Workbench 将使用此文件。默认在代码库的根目录文件夹下保存此文件

2.4 配置日志路径#

  • 字段:Log location
  • 说明: SCA 扫描的日志文件路径。
  • 设置: 通常保持默认即可。可以点击右侧的 Open 按钮查看日志。

2.5 配置选项 (Python 特有)#

  • 字段:Add translation options
  • 说明: 针对 Python 代码,需要在此处指定 Python 版本和依赖库路径。
  • 设置:
    1. 勾选 Add translation options 复选框。
    2. 在勾选后出现的文本框中,输入以下参数。请根据 Python 环境调整路径。
      • 首先,通过在命令行运行 python3 -c "import sys; print(sys.path)" 获取的 Python 模块搜索路径。我这里如下:
['', 'D:\\Scoop\\apps\\python311\\current\\python311.zip', 'D:\\Scoop\\apps\\python311\\current\\DLLs', 'D:\\Scoop\\apps\\python311\\current\\Lib', 'D:\\Scoop\\apps\\python311\\current', 'D:\\Scoop\\apps\\python311\\current\\Lib\\site-packages', 'D:\\Scoop\\apps\\python311\\current\\Lib\\site-packages\\win32', 'D:\\Scoop\\apps\\python311\\current\\Lib\\site-packages\\win32\\lib', 'D:\\Scoop\\apps\\python311\\current\\Lib\\site-packages\\Pythonwin']
    * 因此,应该在 Fortify 插件中输入:
-python-version 3 -python-path "D:\Scoop\apps\python311\current\DLLs;D:\Scoop\apps\python311\current\Lib;D:\Scoop\apps\python311\current\Lib\site-packages"
        + `-python-version 3`:指定Python 版本为 3。
        + `-python-path "..."`:列出 Python 查找标准库和第三方库的路径,用分号 `;` 分隔。这些路径来自您 `sys.path` 的输出。

2.6 其他选项 (可选)#

  • Add scan options:用于添加 SCA 扫描阶段的额外参数,一般保持默认即可。
  • Update security content:使用最新的漏洞检测规则。

三、执行扫描#

  1. 完成上述所有配置后,点击 Fortify VSC 插件界面底部的 Scan** 按钮 **。
  2. 扫描过程将在后台运行。可以在 VS Code 的 OUTPUT 面板或终端中查看扫描进度和详细日志。

五、查看扫描结果#

  1. 扫描完成后,会在 Scan results location (FPR) 中指定的路径生成一个 .fpr 文件(例如:python_results.fpr)。
  2. 打开 Fortify Audit Workbench 客户端应用程序。
  3. 点击 "File" -> "Open Project",然后选择生成的 .fpr 文件。
  4. 在 Audit Workbench 中,可以详细查看扫描到的安全漏洞、漏洞类型、严重程度、受影响的代码行、数据流分析以及修复建议。

image

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。