2016-04-13 19 views
2

AndroidプロジェクトをスキャンするためにFortify sourceanalyserバイナリを使用しようとしています。私の出力がある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はウィットのためのいくつかのチュートリアルを持っている場合は、プロジェクトの下にあるすべてのjarファイルは、私はそれぞれの完全なパスのために与えていても...

を発見していませんh Android(または、gradleに含まれています)でも素晴らしいかもしれません。

+0

アプリケーションがコンパイルされていても、このスキャンエラーが発生しましたか? – WaltHouser

+0

私のアプリケーションは、私は警告を見つけていないクラスを無視 – jaumard

+0

...私は思うが、解決策を見つけることができない私はこれを持っている理由です、プロジェクトをコンパイルするためのGradleを使用していないのGradleはなくsourceanalyserで正常にコンパイル。レポートはとにかく生成されています。この警告を無視することの問題を知っていますか? – 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ファイルは見つからないので、ソースアナライザのためにすべてのjarファイルを手動でインクルードする必要はありません。私はclasspathの下でgradleのダウンロードからjarファイルをインクルードしようとしましたが、それは役に立たなかった – jaumard

+0

私はこれに対する答えを知らない。 –

0

現在、gradleを扱うFortifyナレッジの記事はありません。適切な時点でMavenプラグインをGradleに入れてみます。そうすれば、SCAは依存関係を見つけるはずです。

アプリケーションが正常にコンパイルされたにもかかわらず、SCAがスキャンエラーを返した場合、jarファイルは欠落している可能性がありますが、jarファイルはTomcatサーバーのような別のアプリケーション(またはケースのgradle)に含まれているためコンパイルできます。 1)すべての依存jarをプロジェクトにバンドルするか、2)ビルドスクリプト(mavenまたはant)またはパッケージ(Jenkinsまたはgradle)にSCAを組み込むことができます。

アプリケーションでjarファイルをパッケージ化した場合、あなたは含めていると、あなたの攻撃面のよりよい制御を持っている機能を正確に知っています。 Tomcatのような外部サービスを依存関係に置くと、呼び出される可能性がある機能の保証が少なくなり、ソリューションのロバスト性と安全性が低下します。

+0

Androidアプリケーションなので、依存関係はgradleによって管理されます。そして、プロジェクトのすぐ下に瓶を入れるのは良い習慣ではありません。 – jaumard

関連する問題