# AppScreener

**Образ с интеграцией**:

`registry.cybercodereview.ru/cybercodereview/security-images/appscreener:1.1.0`

**Кастомные импортеры для каждого типа анализа**:

Ниже представлены файлы-импортеры. Их нужно загрузить согласно [инструкции](/security-center/scanners/custom-importers.md)&#x20;

* [appscreener\_sast.json](https://gitlab.cybercodereview.ru/cybercodereview/importers/-/blob/main/appscreener_sast.json?ref_type=heads)
* [appscreener\_sca.json](https://gitlab.cybercodereview.ru/cybercodereview/importers/-/blob/main/appscreener_sca.json?ref_type=heads)
* [appscreener\_dast.json](https://gitlab.cybercodereview.ru/cybercodereview/importers/-/blob/main/appscreener_dast.json?ref_type=heads)

В данной интеграции управление сканированиями реализовано через API AppScreener.&#x20;

Для работы интеграции, **необходимо в Задании указать как минимум следующие переменные окружения**:&#x20;

* `APPSCREENER_HOST` - хост, на котором развернута инсталяция со сканером
* `APPSCREENER_API_KEY` - API ключ для доступа к API интерфейсу сканера (данную переменную рекомендуется задавать в docker-compose или helm-чартах аудитора, а не в Задании)

Остальные переменные окружения пробрасываются автоматически из ASOC:&#x20;

* `REPOSITORY` - URL репозитория для сканирования в git/https форматах (в случае с SAST или SCA сканированиями)
* `PRIVATE_SSH_KEY` - SSH-ключ для скачивания репозитория из VCS  (в случае с SAST или SCA сканированиями). Можно также указать кастомные учетные данные для скачивания репозиториев; об этом позже.&#x20;
* `DOMAIN` - домен для выполнения динамического анализа (DAST).&#x20;

В случае, если запуск интеграции производится вне ASOC, данные переменные необходимо будет указать самостоятельно.&#x20;

Для запуска сканирования через Задание в ASOC в самом простом случае достаточно будет указать команду:&#x20;

```
# Так как сканер нетипичный, нужен переход в корень
cd /
# SAST сканер, требуется переменная окружения REPOSITORY
python3 app.py --work_mode sast
# SCA сканер, требуется переменная окружения REPOSITORY
python3 app.py --work_mode sca
# DAST сканер, требуется переменная окружения DOMAIN 
python3 app.py --work_mode dast
```

Указание нужного типа сканирования инициирует соответствующий тип сканирования в AppScreener.

<mark style="color:orange;">--work\_mode</mark> - единственный обязательный параметр при запуске сканирования.&#x20;

Для вывода всех возможных параметров, можно воспользоваться командой help:&#x20;

```
python3 app.py -h
```

Все возможные опции для конфигурации сканирования:&#x20;

```
options:
  -h, --help            show this help message and exit
  --work_mode {sast,sca,dast}
                        Режимы работы: sast - анализ уязвимостей, sca - анализ библиотек, dast - динамический анализ
  --sast_preset SAST_PRESET
                        Выбор преднастроенного пресета для выполнения SAST-анализа
  --project_name PROJECT_NAME
                        Имя проекта в AppScreener
  --vcs_auth_type_sast {vcsAccount,vcsToken,vcsSshKey}
                        Тип авторизации в систему контроля версий для SAST (если необходимо выбрать преднастроенную в AppScreener авторизацию)
  --vcs_auth_type_sca {vcsAccountUuid,vcsTokenUuid,vcsSshUuid}
                        Тип авторизации в систему контроля версий для SAST (если необходимо выбрать преднастроенную в AppScreener авторизацию)
  --vcs_auth_uuid VCS_AUTH_UUID
                        Идентификатор выбранной учетной записи (если необходимо выбрать преднастроенную в AppScreener авторизацию)
  --scan_timeout_limit SCAN_TIMEOUT_LIMIT
                        Ограничение максимального времени выполнения сканирования в минутах (по дефолту 30 минут)
```

Пояснения:&#x20;

<mark style="color:orange;">--sast\_preset</mark> - необходим для указания кастомной конфигурации, которая была предаварительно создана в AppScreener.&#x20;

<mark style="color:orange;">--project\_name</mark> - имя проекта внутри AppScreener. Если его не задать, то в случае с sast/sca будет заведено имя проекта, соответствующее CI\_PROJECT\_PATH\_SLUG репозитория. В случае с dast - домен+путь без схемы и параметров.&#x20;

<mark style="color:orange;">--vcs\_auth\_type\_sast</mark> - если в AppScreener заведены настройки для клонирования проекта и сканирования, их можно указать с помощью этого ключа. \
type подразумевает выбор типа учетной записи. \
Данный параметр используется только для sast и должен задаваться совместно с <mark style="color:orange;">--vcs\_auth\_uuid</mark>.&#x20;

<mark style="color:orange;">--vcs\_auth\_type\_</mark>[<mark style="color:orange;">sca</mark> ](#user-content-fn-1)[^1]- то же самое, только для sca. Существует как отдельный параметр, поскольку значения типов в AppScreener для sast и sca отличаются.&#x20;

<mark style="color:orange;">--vcs\_auth\_uuid</mark> - внутренний UUID конкретной настройки учетной записи внутри AppScreener.

<mark style="color:orange;">--scan\_timeout\_limit</mark> - если необходимо лимитировать время ожидания сканирования, можно воспользоваться данным параметром. По умолчанию время ожидание - 30 минут.&#x20;

[^1]:


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cybercodereview.ru/security-center/scanners/integracii/appscreener.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
