2016-04-13 128 views
2

我正在嘗試使用Fortify sourceanalyser二進制來掃描Android項目。問題是,即使我正確設置classpath中的類都沒有找到......HP Fortify Android SCA構建

這裏是我的命令:

sourceanalyzer -b MS.ANDROID -clean; 
sourceanalyzer -b MS.ANDROID -exclude androidTest -exclude gradle -exclude maven-config -exclude test -cp "/home/devuser/android-sdk-linux/platforms/android-21/android.jar:/var/lib/jenkins/workspace/myproject/**/*.jar" -source 1.7 src 

我的輸出是:

[warning]: The following references to java classes could not be resolved. Please make sure to supply all the required jar files that contain these classes to SCA. 
    AddressException 
    BasicClientCookieHC4 
    CancellationTokenSource 
    ConnectionConfig.Builder 
    ContentType 
    Continuation 
    Crashlytics 
    FileBody 
    HttpClientBuilder 
    Immutable 
    InternetAddress 
    MultipartEntityBuilder 
    PoolingHttpClientConnectionManager 
    Registry 
    RequestConfig.Builder 
    SSLConnectionSocketFactory 
    StringBody 
    SuppressFBWarnings 
    Task 
    Task.TaskCompletionSource 

的是的android.jar發現,因爲如果我刪除它,我有更多沒有找到類,但所有項目下的罐子沒有被發現,即使我給每個完整的路徑...

如果有人有一些教程Fortify機智h Android(或包含在gradle中)它可能也很好。

+0

即使您的應用程序已編譯,您是否得到此掃描錯誤? – WaltHouser

+0

我的應用程序使用gradle成功編譯,但sourceanalyser不使用gradle編譯項目,這就是爲什麼我有這個我認爲但找不到解決方案... – jaumard

+0

我忽略了未找到警告類。無論如何,報告都會生成。你知道忽略這個警告的任何問題嗎? – garnet

回答

0

由於格式可用,我正在以答案的形式發表我的評論。 所以,試試這個:

cd /var/lib/jenkins/workspace/myproject/ 
find . | grep Task.class 
find . -name .jar | while read jar; do grep -r 'Task' "$jar" ; done 

這應該告訴你在哪裏,在你指定的罐子,這些類的至少一個謊言。如果你沒有在jar中找到它,你沒有指定足夠的類路徑。

+0

直接從gradle使用sourceanalyser的任何方法?因爲依賴關係是由gradle管理的,所以jar找不到,我不想只爲sourceanalyser包含所有我的jar文件。我嘗試在類路徑下包含來自gradle下載的jar,但它沒有幫助 – jaumard

+0

我不知道這個答案。 –

0

目前沒有關於gradle的Fortify Knowledge文章。我會嘗試將Maven插件放到Gradle的適當位置。這樣SCA應該找到依賴關係。

如果應用程序編譯成功,但SCA返回一個掃描錯誤,那麼jar文件可能會丟失,但應用程序可能會編譯,因爲這些jar包含在另一個應用程序中,如Tomcat服務器(或您的案例gradle)。人們可以1)將所有依賴的jar與項目捆綁在一起,或者2)將SCA併入您的構建腳本(maven或ant)或包(Jenkins或gradle)中。

如果您將jar包與應用程序打包在一起,那麼您確切知道自己包含哪些功能,並且可以更好地控制攻擊面。如果您尋找像Tomcat這樣的外部服務來獲得依賴關係,那麼您可能無法確定可以調用的功能,從而使該解決方案的健壯性和安全性降低。

+0

這是一個Android應用程序,所以依賴由Gradle管理。將jar直接包含在項目中並不是一個好習慣。 – jaumard