Установка Track.Plugin в Jfrog Artifactory¶
Прежде чем приступить к использованию системы, ее необходимо интегрировать с менеджером репозиториев Nexus Repository Manager/JFrog Artifactory, используя входящий в комплект поставки Track.Plugin.
Для установки плагина и настройки подключения менеджера репозиториев JFrog Artifactory необходимо выполнить следующие шаги:
-
Полученный плагин в виде zip-архива необходимо распаковать в директорию $JFROG_HOME/artifactory/var/etc/artifactory/plugins, где $JFROG_HOME — это корневая папка инсталляции JFrog Artifactory. Подробная инструкция по установке плагинов приведена в документации JFrog Artifactory.
-
Отредактируйте конфигурационный файл плагина appsec-track-plugin.properties для настройки его работы в JFrog Artifactory.
Настройки конфигурационного файла плагина задаются администратором. Они позволяют указывать настройки соединения с сервером, использования прокси, а также определять, к каким репозиториям применяется или не применяется проверка со стороны системы.
Параметр Описание API configuration firewall.enabled
Включение/выключение плагина.
Возможные значения:true
— плагин включен,false
— плагин выключенfirewall.reload-config-interval
Интервал обновления настроек плагина (в секундах) firewall.api.url
URL сервера, включая фрагмент /api/
firewall.api.token
Токен авторизации плагина в AppSec.Track
Примечание: Не используется в версии 0.1firewall.api.sslCertificatePath
Путь к SSL-сертификату в PEM-формате firewall.http.proxyHost
Если используется подключение через прокси, необходимо указать имя или IP-адрес хоста firewall.http.proxyPort
Если используется подключение через прокси, необходимо указать порт на хосте firewall.http.proxy.username
Если используется подключение через прокси, необходимо указать логин пользователя firewall.http.proxy.password
Если используется подключение через прокси, необходимо указать пароль пользователя firewall.api.trustAllCertificates
Включение/выключение доверия всем сертификатам.
Возможные значения:true
— доверять всем сертификатам,false
— проверка сертификатов включенаfirewall.api.timeout
Время ожидания ответа от системы на запрос, по умолчанию — 60 секунд (задается в миллисекундах) Scanner configuration firewall.scanner.block-on-api-failure
Включение/выключение разрешения загрузки в случае ошибок API. Если этот параметр имеет значение true
, то при наличии ошибок в ответе на запрос загрузка пакета будет запрещенаfirewall.scanner.use-result-cache
Включение/выключение разрешения использования кэша результатов оценки/проверки компонента.
Возможные значения:true
— кэш включен,false
— использование кэша отключеноfirewall.global.mode
Режим блокировки загрузок из всех поддерживаемых репозиториев по умолчанию. Может принимать одно из значений: audit
,quarantine
илиdisabled
. Данный параметр может быть переопределен другими параметрами фильтрацииfirewall.filter.mode
Режим блокировки репозиториев по регулярным выражениям (regEx). Может принимать одно из значений: audit
,quarantine
илиdisabled
firewall.filter.regex
Регулярное выражение (regEx) для блокировки репозиториев firewall.repo.<repo-name>.mode
Режим блокировки репозиториев по имени. Может принимать одно из значений: audit
,quarantine
илиdisabled
Ниже приведен неполный пример настроек конфигурационного файла плагина.
Фрагмент конфигурационного файлаfirewall.enabled = <True|False> firewall.api.url = http://<AppSec.Track_IP_address>:8000/api/ ## Required ## Mode for all repos firewall.global.mode = <audit|quarantine|disabled> ## Filter section, optional ## Allow to activate (audit|quarantine) or deactivate (disabled) **firewall for** repos by regex. ## Replace value set by **firewall.global**.mode. firewall.filter.mode = <audit|quarantine|disabled> firewall.filter.regex = regex ## Custom section, optional ## Allow to activate (audit|quarantine) or deactivate (disabled) **firewall for** specific repos by name ## Replace value set by **firewall.global**.mode and **firewall.filter**.mode ## Exmaple: ## firewall.repo.maven-central = audit ## firewall.repo.pypi = quarantine firewall.repo.<repo-name>.mode = <audit|quarantine|disabled>
С помощью настроек конфигурационного файла можно гибко регулировать работу плагина.
Так, глобальный режим, при котором система отключена и не будет проверять никаких пакетов, задается с помощью присвоения значения
disabled
параметруfirewall.global.mode
:firewall.global.mode = disabled
Проверка пакетов из всех репозиториев без блокировки задается с помощью присвоения этому же параметру значения
audit
:firewall.global.mode = audit
Проверка всех пакетов из всех репозиториев с блокировкой по результатам проверки нарушения установленных политик безопасности задается с помощью присвоения этому же параметру значения
quarantine
:firewall.global.mode = quarantine
Заданный таким образом глобальный режим работы может быть переопределен для пакетов из отдельных репозиториев с помощью других параметров фильтрации, таких как
firewall.filter.regex
иfirewall.filter.mode
:firewall.filter.mode = audit firewall.filter.regex = npm-.*
или для пакетов из конкретного репозитория с помощью параметра
firewall.repo.<repo-name>.mode
:firewall.repo.java-apps.mode = audit
-
После установки и редактирования конфигурационного файла плагина необходимо перезапустить JFrog Artifactory.
Чтобы убедиться в успешном старте плагина, проверьте содержимое файла $JFROG_HOME/artifactory/var/log/artifactory-service.log после перезапуска JFrog Artifactory. В нем должен присутствовать следующий фрагмент:
==============Plugins Status================ # appsec-track-plugin.groovy --> Loaded ============================================
Примечание
Лог плагина записывается в файл $JFROG_HOME/artifactory/var/log/artifactory-service.log. Включение в логе уровня DEBUG производится через редактирование файла $JFROG_HOME/artifactory/var/etc/artifactory/logback.xml:
<logger name="com.swordfishsecurity.sca.plugins.artifactory" level="debug"/> <logger name="com.swordfishsecurity.sca.sdk" level="debug"/>
-
Дальнейшие обновления плагина происходят автоматически по принципу «Live Reload» и регулируются параметром интервала обновления
artifactory.plugin.scripts.refreshIntervalSecs
в файле $JFROG_HOME/artifactory/var/etc/artifactory/artifactory.system.properties, например:artifactory.plugin.scripts.refreshIntervalSecs=10
При таком подходе иногда могут происходить ошибки в случае, когда интервал обновления приходится на время копирования файла, и тогда обновление приходится перезапускать заново.
-
Для проверки работоспособности установленного плагина запросите какой-либо компонент (например:
http://адрес_артифактори:8085/ui/native/maven-central/dom4j/dom4j/2.1.1/dom4j-2.1.1.jar
) и убедитесь, что он отображается в логе запросов AppSec.Track. Для этого выберите пункт меню Репозитории, выберите ваш менеджер репозиториев и перейдите на вкладку История запросов.