# Архитектура

ASOC состоит из двух основных сущностей - Security Center, который содержит весь основной функционал, а также Auditor - сервис выполнения задач на сканирование.

Вся основная работа с инструментом происходит через Security Center - пользователи могут управлять как уязвимостями, так и сканированиями, через UI, а также через API.

Реализовано 2 механизма авторизации - локальная, а также с помощью провайдеров, поддерживающих протокол OIDC.

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

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

Security Center взаимодействует с системой контроля версий (VCS) в двустороннем порядке:

1. Взаимодействие VCS с Security Center при импорте репозиториев и активации вебхуков во время обновлений репозитория.
2. Взаимодействие Security Center с VCS при работе Quality Gate.

Auditor, будучи сервисом исполнения задач, коммуницирует только с докер-реджистри для скачивания образов со сканерами, а также с VCS для скачивания исходного кода анализируемого проекта.

<figure><img src="/files/kVSLHriyAuogQRfDd3rj" alt=""><figcaption></figcaption></figure>

### Компоненты ASOC

Сущность Security Center состоит из следующих компонентов:

1. Front - Nginx с набором статики и JS скриптов.
2. Back - API на Django.
3. Importer - Celery-задача для обработки результатов из загружаемого отчета.
4. Jira\_helper - Celery-задача для реализации двусторонней интеграции с Jira.
5. PostgreSQL - Основная БД, хранящая все сущности (Продукты, Уязвимости) для ASOC.
6. Redis/RabbitMQ - брокер сообщений для реализации асинхронных операций внутри ASOC.
7. DB Helper - сервис для выполнения автоматизации внутри ASOC (дедупликация, автовалидация).

Сущность Auditor состоит из следующих компонентов:

1. Front - Nginx с набором статики и JS скриптов.
2. Back - API на Django.
3. Scanner Worker - сервис, контролирующий запуск докер-контейнеров со сканерами.
4. PostgreSQL - БД для хранения истории сканирований.
5. RabbitMQ - брокер сообщений для реализации асинхронных операций внутри Auditor.
6. Redis - кеширование логов в момент проведения сканирования.

<figure><img src="/files/1dHj9JbmBsse8HTZ9XzM" alt=""><figcaption><p>Схема взаимодействия компонентов ASOC</p></figcaption></figure>


---

# 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/arkhitektura.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.
