Установка 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Адрес, на котором запущен фронт/балансер AppSec.Track, включая фрагмент /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илиdisabledfirewall.filter.regexРегулярное выражение (regEx) для блокировки репозиториев firewall.repo.<repo-name>.modeРежим блокировки репозиториев по имени. Может принимать одно из значений: audit,quarantineилиdisabledНиже приведен неполный пример настроек конфигурационного файла плагина.
Фрагмент конфигурационного файлаfirewall.enabled = <True|False> firewall.api.url = http://<AppSec.Track_IP_URL>/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="global.appsec.sca.plugins.artifactory" level="debug"/> <logger name="global.appsec.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. Для этого выберите пункт меню Репозитории, выберите ваш менеджер репозиториев и перейдите на вкладку История запросов.
