2016-03-03 140 views

回答

4

1.第1步(清潔緩存)

  • 你需要在開始之前就計劃掃描結構:

scanid = 9999 (可以是任何你喜歡)

ProjectRoot = /本地/凸出/ 9999/

WorkingDirectory = /本地/凸出/ 9999 /工作

  • (這個目錄是巨大的,你需要「室射頻./working & &的mkdir ./working」每次掃描,或此目錄下面的字節碼樁前,消耗你的硬盤快)

日誌= /local/proj/9999/working/sca.log

源= '/本地/凸出/ 9999 /源極/ SRC /**.*'

類路徑='本地/凸出/ 9999 /源/ WEB-INF/lib中/ *罐。 /local/proj/9999/source/jars/**.*; /local/proj/9999/source/classes/**.*」

./sourceanalyzer -b 9999 -Dcom.fortify.sca.ProjectRoot=/local/proj/9999/ -Dcom.fortify.WorkingDirectory=/local/proj/9999/working -logfile /local/proj/working/9999/working/sca.log -clean 
  • 指定ProjectRoot,如果不覆蓋此係統默認值,這將你的/ home/user中劃歸很重要.fortify
  • sca.log的位置非常重要,如果fortify沒有找到這個文件,就無法找到要掃描的字節碼。
  • 如果您是唯一的用戶:FORTIFY_HOME/Core/config/fortify_sca.properties),您可以一次更改ProjectRoot和Working Directory。
  • 在這種情況下,命令行。將./sourceanalyzer -b 9999 -clean

2。步驟#2(翻譯源代碼以字節碼)

nohup ./sourceanalyzer -b 9999 -verbose -64 -Xmx8000M -Xss24M -XX:MaxPermSize=128M -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:+UseParallelGC -Dcom.fortify.sca.ProjectRoot=/local/proj/9999/ -Dcom.fortify.WorkingDirectory=/local/proj/9999/working -logfile /local/proj/9999/sca.log -source 1.5 -classpath '/local/proj/9999/source/WEB-INF/lib/*.jar:/local/proj/9999/source/jars/**/*.jar:/local/proj/9999/source/classes/**/*.class' -extdirs '/local/proj/9999/source/wars/*.war' '/local/proj/9999/source/src/**/*' & 
  • 總是unix後臺作業(&)萬一你的會話到服務器超時,它會繼續工作。

  • cp:將所有已知的類路徑放在此處以強化以解析functiodn調用。如果沒有找到函數,fortify將跳過源代碼翻譯,所以這部分將不會在以後被掃描。掃描質量很差,但FPR看起來不錯(低報告問題)。擁有所有依賴關係罐是非常重要的。

  • -extdir:把你不想掃描的所有目錄/文件放在這裏。

  • 最後一節,「'之間的文件是你的來源。

  • -64將使用64位Java,如果未指定,則將使用32位,並且最大堆應爲< 1.3 GB(-Xmx1200M是安全的)。

  • -XX:與啓動應用程序服務器中的含義相同。只使用這些來控制類堆和垃圾收集。這是爲了調整性能。

  • -source是java版(1.5至1.8)

3。步驟#3(與rulepack,自定義規則,過濾器掃描,等)

nohup ./sourceanalyzer -b 9999 -64 -Xmx8000M -Dcom.fortify.sca.ProjectRoot=/local/proj/9999 -Dcom.fortify.WorkingDirectory=/local/proj/9999/working -logfile /local/ssap/proj/9999/working/sca.log **-scan** -filter '/local/other/filter.txt' -rules '/local/other/custom/*.xml -f '/local/proj/9999.fpr' & 
  • -filter:文件名必須是filter.txt,此文件中的任何ruleguid都不會被報告。

  • 規則:這是您編寫的自定義規則。 HP規則包位於FORTIFY_HOME/Core/config/rules目錄中

  • -scan:關鍵字告訴fortify引擎掃描現有scanid。您可以跳過第2步,只有做,如果需要的步驟#如果你不會更改代碼,只是想用不同的過濾器/自定義規則

4.第四步生成從FPR文件PDF打3( )

./ReportGenerator -format pdf -f '/local/proj/9999.pdf' -source '/local/proj/9999.fpr' 
+0

感謝您的回答,並且非常感謝您的耐心解釋。我會盡快檢查並更新。 –

+0

非常感謝,這對我們來說工作得很好。 –