SORCA
Комплексный анализ происхождения и рисков программного обеспечения
Руководство администратора и пользователя
Версия 0.2.4-beta

1 Основные характеристики

1.1 Назначение программы

Программное обеспечение «СОРКА» разработано с целью автоматизации процесса композиционного анализа программного обеспечения, выявления заимствованных компонентов, уязвимостей, секретов и формирования отчётных материалов по результатам анализа.

Программное обеспечение «СОРКА» предназначено для:

Исходные данные
Компоненты и SBOM
Уязвимости и секреты
Отчёты и управление

1.2 Условия выполнения программы

ПО «СОРКА» предназначено для использования на технических средствах под управлением операционных систем семейства Linux и Windows, обеспечивающих запуск контейнеров Docker. Рекомендуемой средой эксплуатации является Linux x64, в том числе Astra Linux Special Edition.

Серверная часть поставляется и эксплуатируется в контейнере Docker. Для корректной работы требуется поддержка архитектуры x64.

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

Применение ПО рассчитано на персонал, имеющий опыт работы с анализом состава программного обеспечения, управлением проектами анализа, интерпретацией сведений об уязвимостях, SBOM и результатах проверки исходных текстов.

1.3 Среда функционирования

Минимальные характеристики технических средств, для функционирования программного обеспечения представлены в таблице 1.

Таблица 1 – Минимальные характеристики технических средств для развёртывания сервера

Параметр Значение
Процессор архитектура х64
Оперативная память 16 ГБ
Хранилище (SSD) 100 ГБ
Система контейнеризации Docker

Рекомендуемые характеристики технических средств, для функционирования программного обеспечения представлены в таблице 2.

Таблица 2 – Рекомендуемые характеристики технических средств для развёртывания сервера

Параметр Значение
Процессор архитектура х64, 3.7 ГГц и выше
Оперативная память 64 ГБ
Хранилище (SSD NVMe) 600 ГБ
Система контейнеризации Docker

Для работы пользователей с веб-интерфейсом «СОРКА» достаточно любого технического средства, имеющего сетевой доступ к серверу и установленный современный веб-браузер. Специальные требования к процессору, объёму оперативной памяти и хранилищу клиентского устройства не предъявляются.

2 Развёртывание

Развёртывание выполняется на сервере с установленной и настроенной контейнерной средой Docker. Перед установкой необходимо убедиться, что техническое средство соответствует минимальным требованиям, имеет доступ к образу в реестре контейнеров и располагает достаточным объёмом свободного дискового пространства для хранения базы данных, рабочих каталогов анализа, кэша и отчётных материалов.

Поставка включает контейнерный образ программного обеспечения, файл конфигурации окружения, файл описания сервисов Docker Compose, скрипт первичной инициализации и файл лицензии. В конфигурации задаются параметры запуска контейнера, порт веб-интерфейса, имена томов Docker, параметры подключения к встроенной базе данных, путь к лицензии и иные эксплуатационные настройки, в том числе логин и пароль первого пользователя в системе.

Для развёртывания необходимо выполнить перечисленные ниже действия.

  1. Установить Docker и Docker Compose на сервере развёртывания.

  2. Получить контейнерный образ SORCA из реестра контейнеров.

  3. Подготовить файл конфигурации окружения .env.

  4. Запустить сервис SORCA с использованием Docker Compose.

  5. Выполнить скрипт «init» для первичной инициализации ПО.

  6. Проверить состояние контейнера и доступность веб-интерфейса.

  7. Перейти в веб-интерфейс SORCA через браузер по адресу сервера и указанному порту.

  8. Выполнить первичную настройку: загрузить лицензию, проверить параметры анализа, состояние баз уязвимостей и учётные записи пользователей.

Данные должны храниться в постоянных Docker-томах. К таким данным относятся база данных, лицензия, рабочие файлы анализов, кэш анализатора, локальные базы уязвимостей и служебные материалы. При обновлении версии контейнер может быть заменён, однако постоянные тома должны сохраняться, так как в них содержатся пользовательские проекты, результаты анализов и настройки системы.

После запуска – веб-интерфейс доступен пользователям с клиентских устройств через современный браузер при наличии сетевого доступа к серверу.

Пример команд для развёртывания:
docker pull qwer.sorca.ru/sorca:0.2.4-beta
docker compose --env-file .env up -d
chmod +x ./init.sh
./init.sh (.\init.ps1 – для windows)
Пример команд для обновления установленного ПО:
docker pull qwer.sorca.ru/sorca:0.2.4-beta
docker stop sorca
docker rm sorca
# поменять версию ПО в .env
docker compose --env-file .env up -d

После успешного обновления и проверки, можно удалить docker образ с устаревшей версией ПО.

ВНИМАНИЕ! Не удаляйте .env файл, полученный для развёртывания ПО.

3 Веб-интерфейс

3.1 Вкладка «Главная»

Данная вкладка содержит общую информацию по приложению и проведенным анализом доступных проектов (рисунок 1):

Рисунок 1 – Вкладка «Главная»

3.2 Вкладка «Проекты»

3.2.1 Создание и настройка проекта

По нажатии кнопки «Создать проект» открывается модальное окно, позволяющее произвести предварительную настройку проекта.

Окно содержит следующие настройки:

Рисунок 2 – Модальное окно создания проекта

Рисунок 3 – Модальное окно создания проекта

Рисунок 4 – Модальное окно создания проекта

Рисунок 5 – Модальное окно создания проекта

Рисунок 6 – Модальное окно создания проекта

После настройки и сохранения проект появится в общем списке проектов во вкладке «Проекты» (рисунок 7).

Рисунок 7 – Список проектов

3.2.2 Настройка и запуск анализа

По нажатии кнопки «Новый анализ» открывается модальное окно (рисунок 8), позволяющее произвести предварительную настройку анализа перед запуском:

Рисунок 8 – Новый анализ

3.2.3 Запуск анализа

После запуска анализа откроется страница со статусом (рисунок 9). Страница со статусом анализа содержит следующую информацию:

Рисунок 9 – Статус анализа

3.2.4 Работа с проектом

3.2.4.1 Общие сведения о проекте

По завершении анализа в созданном ранее проекте (рисунок 7) появится карточка с результатами анализа (рисунок 10).

Рисунок 10 – Карточка с результатами анализа

Карточка анализа содержит следующие кнопки:

На главной странице проекта также расположены следующие данные:

3.2.4.2 Общие сведения об анализе

При переходе по карточке откроется страница с подробной информацией об анализе
(рисунок 11):

Основную часть страницы занимает рабочее пространство с выявленным уязвимостями, перечнем заимствованных компонентов, выявленным секретами и выявленными лицензиями заимствованных компонентов.

Рисунок 11 – Информация о проекте после анализа

3.2.4.3 Работа с уязвимостями

При переходе на вкладку с уязвимостями открывается список выявленных уязвимостей. Для работы с уязвимостями доступно 2 режима:

Рисунок 12 – Режим разметки уязвимостей

Рисунок 13 – Режим модерации разметки

В каждом режиме также доступна кнопка «Больше» () (рисунок 14), являющаяся кнопкой раскрытия списка, который содержит следующую информацию:

Рисунок 14 – Подробная информация об уязвимости

Для удобного анализа уязвимостей представлена фильтрация по:

3.2.4.4 Работа с компонентами

При переходе на вкладку с компонентами (рисунок 15) открывается список выявленных заимствованных компонентов. Вкладка содержит следующую информацию:

Рисунок 15 – Информация о выявленных заимствованных компонентах

Для анализа транзитивности выявленных компонентов представлена кнопка «Дерево зависимостей» (), которая ведет к графику зависимостей анализа (рисунок 16).

Рисунок 16 – График зависимостей

Для удобного анализа компонентов представлена фильтрация по:

3.2.4.5 Работа с секретами

При переходе на вкладку с секретами (рисунок 17) открывается список выявленных секретов. Вкладка содержит следующую информацию:

Рисунок 17 – Информация о выявленных секретах

3.2.4.6 Дополнительные действия с анализом

Кнопка «Параметры» () позволяет:

3.2.4.7 Экспорт анализа

Кнопка «Настройка экспорта» () позволяет провести предварительную гибкую настройку отчетов анализа перед выгрузкой (рисунки 18-19).

Рисунок 18 – Настройка экспорта

Рисунок 19 – Настройка экспорта

После настройки экспорта можно формировать отчеты:

3.3 Вкладка «Параметры»

Данная вкладка является панелью администратора с функцией управления всем приложением в целом.

Вкладка содержит в себе следующие вкладки:

Рисунок 20 – Вкладка «Обзор»

Рисунок 21 – Вкладка «Пользователи»

Рисунок 22 – Вкладка «Параметры анализа»

Рисунок 23 – Вкладка «APT репозитории»

Рисунок 24 – Вкладка «RPM репозитории»

Рисунок 25 – Вкладка «Нагрузка»

Рисунок 26 – Вкладка «Лицензия»

Рисунок 27 – Вкладка «Репозитории компонентов»

Рисунок 28 – Вкладка «Группы»

Рисунок 29 – Вкладка «Журнал»

3.4 Вкладка «Профиль»

Вкладка содержит основную информацию о профиле пользователя (рисунок 30), а также позволяет:

Рисунок 30 – Основная информация о профиле пользователя

Рисунок 31 – Редактирование профиля

Рисунок 32 – Работа с репозиториями

Рисунок 33 – Работа с API

4 Консольный агент

Перед началом работы с консольным агентом требуется произвести конфигурацию файла sorca.conf. Пример содержимого конфигурационного файла представлен в таблице 3.

Таблица 3 – Средства контроля и тестирования

Ключ Описание Пример значения
server_url= Адрес сервера приложения, к которому будет обращаться агент http://localhost:18080
api_key= API ключ (рисунок 33) для обращения к серверу приложения

sorca_eIuWxYU2ghpfHbsDEkHiEE

jwpnkgndTZEYE87462V6Xkqp5gIJ

project_id= ID проекта 55bad7f6-d236-432a-b7d6-08d57a594da2
project_name= Название проекта console-demo
default_mode=

watch – запускает анализ и ждёт завершения, периодически опрашивая статус раз в poll_interval_sec=, также выводит текущий статус в консоль

=sumbit – запускает и не ждёт ничего, возвращает task_id

watch/submit
poll_interval_sec= Интервал опроса сервера в процессе ожидания результатов анализа 2
components_scan= Формирует список заимствованных компонентов проекта true/false
vuln_scan= Проверяет заимствованные компоненты проекта на предмет наличия в них известных уязвимостей true/false
deps_pull= Ищет зависимости проекта через системы сборки и менеджеры пакетов true/false
jar_unpack= Извлекает содержимое Java-архивов (.jar/, .war/, .ear) внутри архива проекта true/false
pkg_unpack= Извлекает содержимое пакетов (.rpm/, .apk/, .nupkg/, .whl/, .deb) внутри архива проекта true/false
container_scan= Анализирует установленные пакеты в контейнерах без учета транзитивности true/false
sbom_archive= Анализ архива с несколькими SBOM JSON (каждый файл анализируется отдельно) true/false
repo_lookup= Поиск ссылок на репозитории и архивы с исходными кодами заимствованных компонентов проекта true/false
secret_scan= Ищет ключи, токены и пароли в файлах проекта true/false

ВНИМАНИЕ! project_id и project_name одновременно не задаются.

Параметры конфигурации:

Короткие опции (флаги) представлены в таблице 4. Команды для использования консольного агента представлены в таблице 5.

Таблица 4 – Опции

Опция Описание
-c, --conf, --config <path> Путь к sorca.conf
-u, --url, --server <url> Адрес сервера SORCA
-k, --key, --api-key <key> API-ключ пользователя
-p, --project <name> Имя проекта
-i, --pid, --project-id <uuid> Идентификатор проекта
-a, --aid, --analysis-id <uuid> Использовать конкретный анализ
-t, --type <kind> Тип отчёта: vulns|secrets
-o, --out, --output <path> Путь для сохранения файла отчёта
-s, --severity <level> Фильтр уровня: critical|high|medium|low|unknown
-n, --limit <count> Ограничить число строк вывода
-w, --watch Следить за прогрессом после запуска
-q, --submit-only Только отправить анализ и вернуть task_id
-D, --param <key>=<bool> Переопределить параметр анализа

Таблица 5 – Команды

Команда Описание Доступные опции
sorca <архив> Запустить анализ по умолчанию и следить за прогрессом
sorca run <архив> [опции] То же, что и запуск по умолчанию Принимают архив как позиционный аргумент и опции -c/-u/-k/-p/-i/-w/-q/-D
sorca submit <архив> [опции] Только отправить анализ и вернуть task_id
sorca status <task_id> [опции] Получить текущий статус задачи Принимают task_id как позиционный аргумент и опции -c/-u/-k
sorca watch <task_id> [опции] Следить за статусом существующей задачи
sorca projects [опции] Показать доступные проекты Показывает корневые проекты, доступны опции -c/-u/-k
sorca subprojects [опции] Показать подпроекты проекта Требует -p <имя> или -i <uuid>, доступны опции -c/-u/-k
sorca summary [опции] Показать сводку последнего анализа проекта Показывает сводку по -a <analysis_id> либо по последнему анализу проекта из -p/-i
sorca vulns [опции] Показать уязвимости последнего анализа проекта

Показывает уязвимости по -a <analysis_id> либо по последнему анализу проекта из -p/-i.

Дополнительно поддерживает -s <severity> и -n <limit>

sorca report [опции] Скачать HTML-отчёт

Скачивает HTML-отчёт по -a <analysis_id> либо по последнему анализу проекта из -p/-i.

Требует -t vulns|secrets.

-o может указывать директорию или полный путь к файлу.

Если задана директория, имя файла выбирается автоматически

sorca init [опции] Создать или обновить sorca.conf Создаёт или обновляет sorca.conf, доступна опция -c <path>
sorca -h | --help Показать справку