🧰Архитектура
ASOC состоит из двух основных сущностей - Security Center, который содержит весь основной функционал, а также Auditor - сервис выполнения задач на сканирование.
Вся основная работа с инструментом происходит через Security Center - пользователи могут управлять как уязвимостями, так и сканированиями, через UI, а также через API.
Реализовано 2 механизма авторизации - локальная, а также с помощью провайдеров, поддерживающих протокол OIDC.
Результаты сканирования, полученные в ходе проведения сканирований в пайплайнах разработки, могут быть отправлены в ASOC с помощью API, либо в виде отчетов сканеров, либо в виде найденных уязвимостей.
В Security Center реализована двусторонняя интеграция с Jira, а также и реализована поддержка вебхуков/уведомлений, срабатывающих в случае появления уязвимостей, удовлетворяющих условиям настроенных фильтров.
Security Center взаимодействует с системой контроля версий (VCS) в двустороннем порядке:
Взаимодействие VCS с Security Center при импорте репозиториев и активации вебхуков во время обновлений репозитория.
Взаимодействие Security Center с VCS при работе Quality Gate.
Auditor, будучи сервисом исполнения задач, коммуницирует только с докер-реджистри для скачивания образов со сканерами, а также с VCS для скачивания исходного кода анализируемого проекта.

Компоненты ASOC
Сущность Security Center состоит из следующих компонентов:
Front - Nginx с набором статики и JS скриптов.
Back - API на Django.
Importer - Celery-задача для обработки результатов из загружаемого отчета.
Jira_helper - Celery-задача для реализации двусторонней интеграции с Jira.
PostgreSQL - Основная БД, хранящая все сущности (Продукты, Уязвимости) для ASOC.
Redis/RabbitMQ - брокер сообщений для реализации асинхронных операций внутри ASOC.
DB Helper - сервис для выполнения автоматизации внутри ASOC (дедупликация, автовалидация).
Сущность Auditor состоит из следующих компонентов:
Front - Nginx с набором статики и JS скриптов.
Back - API на Django.
Scanner Worker - сервис, контролирующий запуск докер-контейнеров со сканерами.
PostgreSQL - БД для хранения истории сканирований.
RabbitMQ - брокер сообщений для реализации асинхронных операций внутри Auditor.
Redis - кеширование логов в момент проведения сканирования.

Last updated