Архитектурная схема
Внешняя сетевая схема
Описание сетевых взаимодействий
№ | Источник | Приемник | Порт назначения | Протокол | Описание |
---|---|---|---|---|---|
1 | WAN | Stingray | 80 / 443 | HTTP / WS | Доступ пользователей к Web интерфейсу Stingray. Взаимодействие пользователей с интерфейсом AppSec.Sting, основная работа с Web-приложением |
2 | CI/CD | Stingray | 80 / 443 | HTTP | Запуск сканирования мобильных приложений из инструментов CI/CD. Интеграция с процессом разработки через API системы. Отправка приложения на анализ и получение отчета в различных форматах обратно в систему CI/CD |
3 | Stingray | iPhone | 22 | SSH | Связь с iOS-устройством по SSH. Выполняемые операции: - Передача собранного мобильного приложения на устройство - Отправка команды на установку мобильного приложения, получение ответа об успешности установки - Загрузка файлов приложения из внутренней директории на сервер AppSec.Sting для дальнейшего анализа - Отправка различных команд для запуска необходимых процессов на устройстве (получение информации об устройстве, получение записей системного журнала, получение списка установленных приложений/пакетов) - Получение информации о "здоровье устройства" (заряд батареи, список установленных пакетов, запущенные сервисы и т.д.) - Команды на исправление "здоровья устройства" (загрузка и установка необходимых пакетов, перезапуск сервисов, изменение конфигурации сервисов) - Запрос на удаление приложения, получение ответа об успешности удаления |
4 | Stingray | iPhone | 5900 | VNC | Трансляция экрана устройства iOS. На устройстве iOS запущен VNC-сервис для удаленного управления экраном устройства. Со стороны сервера AppSec.Sting устанавливается соединение через сервис WebSockify для преобразования VNC в WebSocket для дальнейшей передачи управления экраном приложения пользователю |
5 | Stingray | iPhone | 27042 | TCP | Взаимодействие с фреймворком динамической инструментации приложений. На устройстве iPhone запущен сервис, который на определенном порту принимает соединение от клиента. Клиент загружает на сервер скрипты, которые помогают инструментировать мобильное приложение и получать внутреннюю информацию, на базе которой проводится поиск уязвимостей и недостатков конфигурации исследуемого приложения |
6 | iPhone | Wi-Fi / Ethernet | - | - | Подключение устройства к беспроводной сети через WiFi или к проводной сети через Ethernet. Необходимо для осуществления дальнейшей связи между устройством и сервером AppSec.Sting |
7 | Stingray | Mobile Application Backend | Зависит от приложения | HTTP / WS | Доступ к серверной части исследуемого мобильного приложения. Необходим для корректной работы мобильного приложения. Порты и протоколы связи определяются самим исследуемым приложением и могут меняться в зависимости от сборки/версии и т.д. Применимо для Android-агентов сканирования, так как их трафик проходит через сервер AppSec.Sting |
8 | Stingray | iPhone | 6000 | TCP | Взаимодействие iOS Engine с сервисом воспроизведения и записи пользовательских действий на iPhone. На стороне устройства запущен сервис, который принимает команды по протоколу WebSocket и осуществляет функции записи действий пользователя или воспроизведения записанных ранее действий пользователя |
9 | iPhone | Mobile Application Backend | Зависит от приложения | HTTP / WS | Доступ к серверной части исследуемого мобильного приложения. Необходим для корректной работы мобильного приложения. Порты и протоколы связи определяются самим исследуемым приложением и могут меняться в зависимости от сборки/версии и т.д. Применимо для iOS-устройств, так как их трафик может проходить напрямую от устройства до серверной части мобильного приложения |
10 | Mobile Application Backend | K8S Microservices | 80/443 | HTTP | Доступ к сервисам тестирования. Необходим для отправки мобильных приложений в сервисы тестирования |
Внутренняя сетевая схема
Описание сетевых взаимодействий
№ | Контейнер источника | Контейнер назначения | Порт назначения | Протокол | Описание |
---|---|---|---|---|---|
1 | Nginx | Knowledgebase | 8080 | HTTP | Документация |
2 | Nginx | UI | 8080 | HTTP | Веб-интерфейс Stingray |
3 | Nginx | Backend | 8000 | HTTP | Бекенд/Админка |
4 | Nginx | Android Engine | 6080 | TCP / WebSocket | Показ экрана Android Engine в UI |
5 | Nginx | iOS Engine | 6080 | TCP / WebSocket | Показ экрана iOS Engine в UI |
6 | Celerybeat | Redis | 6379 | TCP | Хранилище кеша |
7 | Backend | RabbitMQ | 5672 | TCP | Взаимодействие Backend с брокером очередей RabbitMQ |
8 | Backend | PostgreSQL | 5432 | TCP | Взаимодействие backend с базой данных |
9 | Backend | Redis | 6379 | TCP | Хранилище кеша |
10 | Maintenance | RabbitMQ | 5672 | TCP | Подключение и просмотр задач на исполнение в очереди |
11 | Celerybeat | RabbitMQ | 5672 | TCP | Подключение и просмотр задач на исполнение в очереди |
12 | Maintenance | PostgreSQL | 5432 | TCP | Подключение и просмотр состояния Engine в базе данных |
13 | Celerybeat | PostgreSQL | 5432 | TCP | Взаимодействие Celerybeat c базой данных |
14 | Maintenance | Android Engine | Docker.sock | - | Управление Android Engine, сохранение состояния Android Engine |
15 | Celerybeat | iOS Engine | Docker.sock | - | Менеджер задач для iOS Engine |
16 | Celerybeat | Android Engine | Docker.sock | - | Менеджер задач для Android Engine |
17 | Maintenance | iOS Engine | Docker.sock | - | Управление iOS Engine, сохранение состояния iOS Engine |
18 | Android Engine | Neo4j | 7687 | TCP | Взаимодействие Android Engine с графовой базой данных Neo4j |
19 | iOS Engine | iPhone | 22 | SSH | Взаимодействие iOS Engine с физическим устройством по SSH |
20 | iOS Engine | Redis | 6379 | TCP | Хранилище кеша |
21 | iOS Engine | RabbitMQ | 5672 | TCP | Взаимодействие iOS Engine с брокером очередей RabbitMQ |
22 | iOS Engine | PostgreSQL | 5432 | TCP | Сохранение результатов в базу данных |
23 | Android Engine | PostgreSQL | 5432 | TCP | Сохранение результатов в базу данных |
24 | Android Engine | RabbitMQ | 5672 | TCP | Взаимодействие Android Engine с брокером очередей RabbitMQ |
25 | Android Engine | Redis | 6379 | TCP | Хранилище кеша |
26 | iOS Engine | iPhone | 5900 | VNC | Преобразование VNC в WebSocket |
27 | iOS Engine | iPhone | 27042 | TCP | Взаимодействие iOS Engine с Frida Server на iPhone |
28 | iPhone | Wi-Fi / Ethernet | - | - | Подключение устройства в сеть Stingray |
29 | iOS Engine | iPhone | 6000 | TCP | Взаимодействие iOS Engine с сервисом воспроизведения и записи пользовательских действий на iPhone |
30 | Backend | nginx | 80/443 | HTTP | Взаимодействие с сервисами тестирования |
31 | nginx | Oauth2 | 4180 | TCP | Взаимодействие с oauth2 proxy для проверки сессии |
32 | Oauth2 | Keycloak | 8080 | TCP | Взаимодействие с keycloak для получения токена |
33 | Nginx | Microservices | 8000 | TCP | Проксирование запросов в микросервисы |
34 | Nginx | Deeptrack | 8080 | TCP | Проксирование запросов в DeepTrack |
35 | Apricot | Infrastructure services | 5432/PSQL, 9000/S3, 9092/Kafka, 6379/Redis | TCP | Взаимодействие с сервисами инфраструктуры |
36 | Umbrella | Infrastructure services | 5432/PSQL, 9000/S3, 9092/Kafka, 6379/Redis | TCP | Взаимодействие с сервисами инфраструктуры |
37 | Marivanna | Infrastructure services | 9000/S3, 9092/Kafka, 6379/Redis | TCP | Взаимодействие с сервисами инфраструктуры |
38 | Dittany | Infrastructure services | 5432/PSQL, 9000/S3, 9092/Kafka, 6379/Redis | TCP | Взаимодействие с сервисами инфраструктуры |
39 | Camellia | Infrastructure services | 5432/PSQL, 9000/S3, 9092/Kafka, 6379/Redis, 8080/DTrack | TCP | Взаимодействие с сервисами инфраструктуры |
40 | Calypso | Infrastructure services | 5432/PSQL, 9000/S3, 9092/Kafka, 6379/Redis | TCP | Взаимодействие с сервисами инфраструктуры |