2

Fortify sourceanalyser バイナリを使用して Android プロジェクトをスキャンしようとしています。問題は、クラスパスを正しく設定しても、クラスが見つからないことです...

これが私のコマンドです:

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 が見つかったのは、それを削除すると見つからないクラスが増えたためですが、それぞれにフルパスを指定しても、プロジェクトの下のすべての jar が見つからないためです...

Fortify with Android (または gradle に含まれている) のチュートリアルがあれば、それもいいかもしれません。

4

2 に答える 2

0

フォーマットが利用可能であるため、コメントを回答の形で作成しています。だから、これを試してください:

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

これにより、指定した jar のどこに、これらのクラスの少なくとも 1 つがあるかがわかります。jar で見つからない場合は、十分なクラスパスが指定されていません。

于 2016-04-15T09:02:57.627 に答える
0

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

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

jar をアプリケーションと一緒にパッケージ化すると、含まれている機能が正確にわかり、攻撃対象領域をより適切に制御できます。依存関係について Tomcat などの外部サービスに目を向けると、呼び出すことができる機能の保証が少なくなり、ソリューションの堅牢性と安全性が低下します。

于 2016-04-19T19:17:40.697 に答える