# Руководство пользователя

## Вход в систему <a href="#login" id="login"></a>

Для доступа вам понадобятся IP-адрес или имя машины, на которой запущен контейнер с приложением, а также порт подключения (по умолчанию - `4200`).

Откройте приложение в браузере, указав адрес в формате: `http://<IP-адрес или имя машины>:4200`.

Авторизуйтесь в появившемся окне входа в систему, чтобы продолжить работу:

<figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2F6zditMfy8JWHepGEkmeq%2Flogin.png?alt=media&#x26;token=a9abc1a7-cc45-46c5-82ba-86d602cb3ffb" alt=""><figcaption></figcaption></figure>

При первом входе используйте следующие учетные данные:

* Имя пользователя: `admin`
* Пароль: `osscore123@`

После входа в систему вы можете сменить пароль, выбрав соответствующий пункт в выпадающем меню пользователя:

<figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FsplNGTWQjr5m9lBlm0py%2Fuser-menu.png?alt=media&#x26;token=70dfe983-cb19-4bc0-80bc-b0781ae3c201" alt=""><figcaption></figcaption></figure>

## Стандартные тесты <a href="#interface" id="interface"></a>

На странице "Стандартные тесты" можно выполнить следующие проверки:

* **rest\_api** - проверка http-ответа адресов с отображением результата запроса. На данный момент поддерживаются методы запросов GET, POST, PUT, DELETE
* **html** - проверка элементов html-страниц по адресу с отображением скриншота страницы
* **bash** - выполнение команд в терминале удалённого сервера и проверка ожидаемых ответов. На данный момент поддерживается выполнение команд на серверах операционной системы CentOS 7

### Интерфейс приложения

В верхней части интерфейса доступны кнопки для выполнения следующих операций:

<table data-header-hidden><thead><tr><th width="83" align="center"></th><th></th></tr></thead><tbody><tr><td align="center"><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FOYluHkd24L1tOa3aPmLm%2Fadd-test.png?alt=media&#x26;token=bf4a7966-55a7-4264-ad28-436f01b12df8" alt=""></td><td>Добавить файл</td></tr><tr><td align="center"><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FoEN5VnmL3Qi1BG3OfIsa%2Fdelete-test.png?alt=media&#x26;token=8d01275f-c202-45db-b1d0-5ede738ddfaa" alt=""></td><td>Удалить отмеченные тесты</td></tr><tr><td align="center"><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FJUEeQssHmPm6aSMVcwih%2Frun-tests.png?alt=media&#x26;token=de6efeca-826f-4e73-9102-f9d995d7cdc4" alt=""></td><td>Запустить отмеченные тесты</td></tr></tbody></table>

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

* `IP сервера`: IP адрес тестируемого сервера;
* `Модуль`: тип выполняемого теста;
* `Имя файла`: имя загруженного yml файла;
* `Псевдоним`: алиас теста;
* `Дата создания`: дата добавления теста.

<figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FPZft0TQBZjbsr8IB681Q%2Fmain.png?alt=media&#x26;token=b225b6f1-1f3c-453c-8427-863ee39f4204" alt=""><figcaption></figcaption></figure>

Для сортировки данных по возрастанию/убыванию используйте кнопку рядом с именем столбца: ![](https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FA3qkzDG7qvruPaWmkDse%2Fsort.png?alt=media\&token=d831aba9-5bec-4033-9e61-68d2ef0f663f)

Чтобы задать фильтр по данным, в выпадающем списке под именем столбца выберите логику фильтра и значение, затем нажмите `Filter`. Для сброса фильтра нажмите `Reset`.

<figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FuWB2OU9NiRLw7qFX9Cee%2Ffilter.png?alt=media&#x26;token=c4c14b43-b99f-41e6-bfdc-96232cb3129e" alt=""><figcaption></figcaption></figure>

В нижней части интерфейса доступны элементы управления отображением информации:

* переключение между страницами при большом количестве загруженных тестов;
* настройка количества элементов на странице.

<figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FUSK1CoEQKpLrqxvJOZmt%2Ffooter.png?alt=media&#x26;token=e76c8dde-b89e-4ff7-9e8e-e6628525da18" alt=""><figcaption></figcaption></figure>

### Работа с тестами <a href="#tests" id="tests"></a>

#### Добавление <a href="#add" id="add"></a>

Для добавления теста нажмите кнопку ![](https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FOYluHkd24L1tOa3aPmLm%2Fadd-test.png?alt=media\&token=bf4a7966-55a7-4264-ad28-436f01b12df8), выберите в открывшемся диалоге файл для загрузки.

Для загрузки и просмотра содержимого файла добавленного теста, найдите строку с ним в перечне тестов и нажмите ![](https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FH257jzIZrMoQsVQexGJi%2Fdownload.png?alt=media\&token=5d04b61d-359e-4e65-8557-0844a81465ed).

#### Удаление <a href="#remove" id="remove"></a>

Для удаления поставьте отметку ![](https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2Fg5ZyHpGKiBxdpGNGOJtU%2Fcheckbox.png?alt=media\&token=7ddfe418-9e88-484b-b5e3-0d1266df24db) в строках с нужными тестами, затем нажмите ![](https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FoEN5VnmL3Qi1BG3OfIsa%2Fdelete-test.png?alt=media\&token=8d01275f-c202-45db-b1d0-5ede738ddfaa).

#### Запуск <a href="#run" id="run"></a>

Для запуска теста найдите строку с нужным тестом в перечне и нажмите ![](https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2F9IPaUcwJEBPcpORPaEKd%2Ftest-run.png?alt=media\&token=b24df9ee-5a66-4f38-a20c-978e3bc824eb).

Для запуска нескольких тестов поставьте отметку ![](https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2Fg5ZyHpGKiBxdpGNGOJtU%2Fcheckbox.png?alt=media\&token=7ddfe418-9e88-484b-b5e3-0d1266df24db) в строках с нужными тестами, затем нажмите ![](https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FJUEeQssHmPm6aSMVcwih%2Frun-tests.png?alt=media\&token=de6efeca-826f-4e73-9102-f9d995d7cdc4).

#### Результаты <a href="#results" id="results"></a>

После запуска теста откроется окно, отображающее ход тестирования и его результаты: перечень выполненных проверок, с адресом запроса и ответом от тестируемого сервиса (статусом выполнения).

<figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FVHpGAo1FwwHz1XlJPhlO%2Ftest-api.png?alt=media&#x26;token=21d26eed-9148-41ac-9283-9b871f0180ce" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FGnv5m15eVmkaJcRFKQ53%2Ftest-html.png?alt=media&#x26;token=83ddea1a-7f5c-48ae-befa-6c353e777d4a" alt=""><figcaption></figcaption></figure>

Чтобы посмотреть подробное содержимое ответа, разверните нужную строку запроса, нажав на нее.

<figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FPwkb3w90Bo6QNU1EcRUh%2Ftest-api-success.png?alt=media&#x26;token=e870787c-e926-4806-bf82-ff8979a3d9fa" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2Fnc13fkSUt9nAIrPRkWce%2Ftest-html-fail.png?alt=media&#x26;token=8215c4b2-c976-4552-8654-4a29353ff349" alt=""><figcaption></figcaption></figure>

**Примечание:** процесс создания yml файлов с тестами описан в [руководстве администратора](https://kb.basesource.ru/docs/oss-core-security-tester/admin-guide).

### Проверка приложения <a href="#verify" id="verify"></a>

Для проверки работы приложения используйте этот пример yml файла с тестами:

{% file src="<https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FbAq0ppdc2Dohu6SP6VfJ%2F%D1%8F%D0%BD%D0%B4%D0%B5%D0%BA%D1%81-%D1%80%D0%B0%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F-api-test.yml?alt=media&token=209e083d-9f59-49f1-a56a-3911b038fcfe>" %}

## Проверка уязвимостей

На странице "Проверка уязвимостей" в конкретном приложении можно выполнить поиск уязвимостей библиотек с открытым исходным кодом. Загрузить проект для проверки можно двумя способами:

* вручную, выбрав папку с проектом у себя на компьютере
* через [gitlab](https://about.gitlab.com/) с использованием функции [webhooks](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html)

### Загрузка проекта в ручную

Операция загрузки проекта вручную очевидна - нужно нажать на иконку папки <img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FwnZdTlbHYMh79UUHh2Qz%2Fimage.png?alt=media&#x26;token=9d8357e2-68cf-4726-b6db-ed5e2252638a" alt="" data-size="line">, выбрать папку с проектом у себя на компьютере и дождаться завершения загрузки

### Загрузка проекта через Gitlab при помощи Webhooks

#### Добавление токена развёртывания (deploy token) к проекту

В репозитории проекта Gitlab зайти на страницу настроек репозитория

![](https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FqiMdbjt3OtlMKlVcz9Ms%2Fimage.png?alt=media\&token=68d231c0-969b-4158-b7f2-eddda3f6ae3c)

Развернуть пункт Deploy tokens

<figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FxvIVjUETeLCf48gbRxAe%2Fimage.png?alt=media&#x26;token=75c04c57-6863-46b3-a58e-bb418a65e1c7" alt=""><figcaption></figcaption></figure>

Указать описательное (любое) имя, выбрать пункт "*read\_repository"* и нажать "*Create deploy token"*

<figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FX76Siygo9OV2QBK2T8OV%2Fimage.png?alt=media&#x26;token=fef5af9f-078d-4ee1-9bb8-dcd3469aaf61" alt=""><figcaption></figcaption></figure>

После создания выше появится форма с именем пользователя токена и самим токеном. Токен больше никде не будет показываться и его нельзя будет восстановить, поэтому скопируйте его куда-нибудь. Эти данные понадобятся для добавления в приложение **otester**

<figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2F7PNI61l4o6ctj0R24UZO%2Fimage.png?alt=media&#x26;token=4d8a2a30-7979-4350-939f-2424a7740304" alt=""><figcaption></figcaption></figure>

#### Добавление токена развёртывания в otester

Для того, чтобы добавить токен развёртывания, перейдите на страницу *"Токены приложений VU"*

![](https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FULEQR3L6GZNMZye9BLyq%2Fimage.png?alt=media\&token=d64ca229-5cf2-4abe-9fe5-2d15ce719a3e)

Разверните форму нажатием на кнопку "Добавить токен" и укажите данные:

* Тип токена - в данном случае *"Deploy token"*
* Имя проекта - имя проекта Gitlab, так как указано в Gitlab

  <figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FcApx1cs3K3fRZOggPg3b%2Fimage.png?alt=media&#x26;token=e9a42d5d-6bfb-4c69-a969-026d4a51412c" alt=""><figcaption></figcaption></figure>
* Имя пользователя токена - то имя пользователя, которое появлялось при создании токена [#dobavlenie-tokena-razvyortyvaniya-deploy-token-k-proektu](#dobavlenie-tokena-razvyortyvaniya-deploy-token-k-proektu "mention")
* Токен - это токен, который появлялся при создании токена [#dobavlenie-tokena-razvyortyvaniya-deploy-token-k-proektu](#dobavlenie-tokena-razvyortyvaniya-deploy-token-k-proektu "mention")

Нажмите кнопку *"Сохранить"*

Всё, токен добавлен. Теперь при обращении к **otester** через веб-крючок будет использоваться этот токен

#### Добавление адреса к веб-крючкам (webhooks) репозитория

В репозитории проекта Gitlab зайти на страницу подключения Webhooks

![](https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2Fg0VyeibfX33jEghbHKhZ%2Fimage.png?alt=media\&token=cbade042-79eb-45a2-881f-5210dd828ee6)

В поле URL ввести адрес, в виде&#x20;

`http://[ip-адрес, на котором развёрнут otester]:5000/api/webhooks/vu/`

<figure><img src="https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2F4f9euojOVPzyew2EJX6c%2Fimage.png?alt=media&#x26;token=603951b1-9628-4488-9dd3-e265a5274883" alt=""><figcaption></figcaption></figure>

Ниже выбрать событие, при наступлении которого будет выполняться запрос на указанный выше адрес, например можно указать событие **push**. В нашем случае при запросе будет выполняться выгрузка проекта в **otester**.

![](https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FhFZCJuIbtPLSXSzXQ8Oc%2Fimage.png?alt=media\&token=cf8de50c-0a35-4708-bbe4-c9e036405504)

Отключить проверку SSL и нажать кнопку **Add webhook**

![](https://1942690998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FriQhqdZFtdRrDV8MspyM%2Fuploads%2FpcsuBh5A3VADsHyWqmkg%2Fimage.png?alt=media\&token=db482137-c1e2-4c29-befb-95b3d52a810f)

Всё, теперь при выполнении команды `git push` будет выполняться отправка проекта в **otester** и его проверка. Проект появится на странице "Проверка уязвимостей"
