2016-04-13 6 views
2

Я пытаюсь использовать бинарник Fortify sourceanalyser для сканирования Android-проекта. Проблема заключается в том, даже если я устанавливаю правильно классам, классы не найдены ...HP Fortify Android SCA build

Вот моя команда:

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 wit h Android (или включен в градле) это тоже может быть хорошо.

+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 

Это должно сказать вам, где в ваших указанных банках, по крайней мере, один из этих классов лежит. Если вы не найдете его в банке, вы не указали достаточный путь к классам.

+0

Любой способ использования sourceanalyser непосредственно из gradle? Поскольку зависимости управляются градиентом, поэтому банки не находят, и я не хочу включать все мои банки вручную только для sourceanalyser. Я пытаюсь включить баночки из gradle download под classpath, но это не помогло – jaumard

+0

Я не знаю ответа на этот вопрос. –

0

В настоящее время нет статей о укреплении знаний, охватывающих град. Я бы поставил вопрос о подключении плагина Maven к Gradle в подходящую точку. Таким образом, SCA должен найти зависимости.

Если приложение успешно компилируется, но SCA возвращает ошибку сканирования, файл jar может отсутствовать, но приложение может скомпилироваться, потому что банки включены из другого приложения, такого как Tomcat-сервер (или в ваш градиент case). Можно объединить все зависимые баночки с проектом или 2) включить SCA в свои скрипты сборки (maven или ant) ​​или пакет (Jenkins или gradle).

Если вы упаковываете банки в приложение, вы точно знаете, какие функции вы включаете, и вы лучше контролируете свою поверхность атаки. Если вы посмотрите на внешние сервисы, такие как Tomcat для зависимостей, у вас меньше гарантии функциональности, которая может быть вызвана, что делает решение менее надежным и безопасным.

+0

Это приложение для Android, так что зависимости управляются градиентом. И не очень хорошая практика включать банку непосредственно в проект. – jaumard