Установка и запуск ZAP
Подготовка инфраструктуры
ZAP Scanner устанавливается как отдельный сервис. Возможна установка как вместе с AppSec.Hub, так и на отдельный сервер. Предварительно необходимо установить Docker и Docker-compose.
Пакет | Версия |
---|---|
Docker | 19.03.0 и выше |
Docker-compose | 1.27.0 и выше |
Установка Docker и Docker-compose
В зависимости от используемой операционной системы предлагается четыре способа установки Docker и Docker-compose.
- Ubuntu (root Docker)
- Ubuntu (rootless Docker)
- Astra Linux (root Docker).
- Astra Linux (rootless Docker).
Установка ZAP Scanner
Docker
Для установки ZAP Scanner с помощью Docker выполните следующие шаги:
-
Создайте папки.
sudo mkdir -p /opt/zap/ sudo mkdir -p /opt/zap/logs
-
Создайте конфигурационные файлы.
/opt/zap/.env /opt/zap/docker-compose.yml
Пример файла .env:
Важно!
Заданные в файле параметры необходимо заменить своими значениями, указания по заполнению приведены ниже.
IP_EXTERNAL=0.0.0.0 JWT_TOKEN=<нужно сгенерировать ключ подписи jwt-токена для сервиса gateway — см. ниже> hub_zap_scanner_version=2024.3.2
Пример файла docker-compose.ymlservices: zap: image: docker.swordfishsecurity.com/appsechub/hub-zap-scanner:${hub_zap_scanner_version} container_name: zap networks: - net-hub ports: - ${IP_EXTERNAL}:8080:8080/tcp environment: - JWT_TOKEN=${JWT_TOKEN} volumes: - ./logs:/var/tmp/log tmpfs: - /tmp - /LOG_PATH_IS_UNDEFINED:uid=2000,gid=2000 # pids_limit: 400 security_opt: - no-new-privileges restart: always # read_only: true cpu_shares: 1024 deploy: resources: limits: memory: 1500M pids: 400 networks: net-hub: driver: bridge ipam: driver: default config: - subnet: 172.20.0.0/24
Примечание
В версиях Docker-compose 2.26.0 и выше для ограничения по процессам вместо параметра
pids_limit
требуется использовать полеdeploy.resources.limits.pids
.В docker-compose.yml для версий Docker-compose 2.26.0 и выше поле, которое в версиях ниже 2.26.0 описывалось так:
должно быть определено следующим образом:
Выше приведен пример docker-compose.yml для версий Docker-compose выше 2.26.0.
-
Выполните настройку конфигурационного файла /opt/zap/.env. Укажите следующие параметры:
-
IP_EXTERNAL
— IP-адрес, на котором нужно слушать трафик (в общем случае 0.0.0.0); -
JWT_TOKEN
— ключ подписи jwt-токена.
-
-
Назначьте группу и владельца локальных папок.
sudo chown 2000:2000 -R /opt/zap/logs
export UID_2000=2000 export GID_2000=2000 sudo chown ${UID_2000}:${GID_2000} -R /opt/zap/logs sudo chown ${UID_2000}:${GID_2000} -R /opt/zap/.env sudo chown ${UID_2000}:${GID_2000} -R /opt/zap/docker-compose.yml
Установите разрешение на прослушивание привилегированных портов от непривилегированного пользователя.
sudo chown 2000:2000 -R /opt/zap/logs
export REMAP_UID=$(cat /etc/subuid | grep -i $USER | awk -F : '{print $2}') export REMAP_GID=$(cat /etc/subgid | grep -i $USER | awk -F : '{print $2}') export UID_2000=$((${REMAP_UID}+1999)) export GID_2000=$((${REMAP_UID}+1999)) sudo chown ${UID_2000}:${GID_2000} -R /opt/zap/logs sudo chown ${UID_2000}:${GID_2000} -R /opt/zap/.env sudo chown ${UID_2000}:${GID_2000} -R /opt/zap/docker-compose.yml
Установите разрешение на прослушивание привилегированных портов от непривилегированного пользователя.
Helm Chart
Для установки ZAP Scanner с использованием Helm Chart выполните следующую команду:
helm pull oci://docker.swordfishsecurity.com/appsechub/hub-helm/hub-zap-scanner --version 0.1.2
Запуск ZAP Scanner
cd /opt/zap
docker-compose up -d
Остановка ZAP Scanner
cd /opt/zap
docker-compose down
Генерация токена для подключения в AppSec.Hub
Для генерации токена доступа можно отправить POST запрос на /api/token. В теле запроса необходимо указать значение параметра JWT_TOKEN
, см. шаг 3 раздела «Установка Zap scanner» выше.
curl --request POST \
--url <zap-url>/api/token \
--header 'Content-Type: text/plain' \
--data '<jwt-secret>'
В ответ на запрос придет токен, который необходимо будет добавить в AppSec.Hub.