强化扫描python项目

时间:2018-04-18 16:26:04

标签: python fortify

热门为python文件生成Fortify文件。

类似的问题是Fortify, how to start analysis through command,但它列出了java的步骤。

要为python项目生成报告,必须使用--python-path。 我尝试了以下步骤,但没有奏效。

第1步:清理,构建

sourceanalyzer -64 -Xms1024M -Xmx10000M -b -verbose -Dcom.fortify.sca.ProjectRoot=/local/proj/9999/ -Dcom.fortify.WorkingDirectory=/local/proj/9999/working -logfile  /local/proj/working/9999/working/sca.log  -clean

步骤2:扫描:此步骤应生成fpr文件

sourceanalyzer -b 9999 -verbose -Xms1024M -Xmx10000M -Dcom.fortify.sca.ProjectRoot=/local/proj/9999/ -Dcom.fortify.WorkingDirectory=/local/proj/9999/working  -logfile /local/proj/9999/sca.log -python-path /path/to/python -f projec_999.fpr /local/proj/**/*.py

这没有生成任何fpr文件。 第二步发出警告:

[warning]: The -f option has no effect without the -scan option
[warning]: You may need to add some arguments to the -python-path argument to SCA.

我不确定我是否使用了正确的命令。

  1. 如何确保在目录和子目录中扫描所有python文件?
  2. 是否有添加多个python路径的选项?

2 个答案:

答案 0 :(得分:1)

您执行的第一步只执行Clean,而不是构建步骤。

要执行Python的转换步骤,您需要指定任何Python引用(-python-path)的目录以及要转换的文件。

我也不确定你在使用ProjectRoot和WorkingDirectory做什么,你知道这些用于存储sourceanalyzer的临时数据/中间文件而不是源代码的位置,对吗?

这样的东西
sourceanalyzer -b <buildId> -python-path <directories> <files to scan>'
  • <buildId>可用于对不同的项目进行分组,当您执行ProjectRootWorkingDirectory时,您自己也会这样做(我不确定您是否需要它们,可以'记住,我不再有权测试它了)
  • <directories> - 您可以在此处列出通常位于PythonPath环境变量中的目录(您可以在此处实际调用它并节省大量麻烦)。这是一个用于Windows的逗号分隔列表和一个用于Linux的冒号分隔列表
  • <files to scan>您可以在此处指定要翻译/扫描的文件。您可以指定单个文件或使用通配符(***/* [递归])

示例命令如下所示:

sourceanalyzer -b MyApp -python-path %PYTHONPATH% ./MyApp/**/*

您可以使用其他选项,它们看起来像这样:

sourceanalyzer -b MyApp -Xms1024M -Xmx10G -logfile  /local/proj/working/9999/working/sca.log -python-path %PYTHONPATH% ./MyApp/**/*

在此步骤中,您将检查我们从您的程序中翻译了哪些文件:

sourceanalyzer -b MyApp -show-files

然后你会执行扫描命令

sourceanalyzer -b MyApp -logfile  /local/proj/working/9999/working/sca.log -scan -f project.fpr

答案 1 :(得分:0)

您可以多次申请-python-path。这解决了使用哪个分隔符的问题。所需目录的列表可以通过python获取:

import sys
print(sys.path)