Приветствую!
В поиске хорошего аудитора безопасности, необходимо провести максимально подробное изучение и анализ безопасности сервиса.
Black-box. Исходный код не предоставляется. Production-инсталляция, Bitcoin mainnet.
Краткое ТЗ ниже. Подробности после утверждения кандидата.
Внимательно изучите ТЗ, предоставьте смету и сроки выполнения.
## 1. Что за система
Custodial Exchange service. Три публичные точки:
## 2. Что проверить
### 2.1. Demo
### 2.2. Admin Panel
### 2.3. Custody App
Установить на изолированную виртуальную машину.
Локальное хранилище ключа. Где и как хранится материал ключа, права на файлы. Алгоритм шифрования и параметры KDF, повторное использование salt/IV, наличие проверки целостности. Оценка скорости offline-перебора пароля на стандартном GPU при текущих параметрах.
Утечки. Открытый ключ в журналах, отладочном выводе, crash-дампах, swap, hibernate-файле, временных файлах. Поиск ключевых паттернов в дампе процесса после ввода пароля.
IPC. Какие команды экспонированы между UI и нативной частью. Можно ли вызвать привилегированное действие в обход штатного UI-сценария. Возможность инъекции через локальный сокет.
Целостность интерфейса. Подмена визуальных элементов диалогов подтверждения, overlay-атаки, clickjacking-подобные векторы. Семантическую корректность отображаемых данных при штатной работе оценивать не требуется.
Механизм обновления. Pinning к серверу обновлений, проверка подписи апдейта, защита от downgrade и rollback, можно ли подменить локальный кэш обновлений.
Целостность установщика. Встроенные секреты, лишние или подозрительные бинарники в комплекте.
### 2.4. Сеть и TLS
### 2.5. Серверная инфраструктура и поиск активов
Поиск активов. Перечисление поддоменов (пассивно через CT-логи и активно через DNS-перебор). OSINT-источники (Shodan, Censys, ZoomEye, утечки в публичных репозиториях). Обратный DNS на найденных диапазонах. Связывание активов одного владельца через ASN, отпечатки сертификатов, JARM/JA3.
Сканирование портов. TCP/UDP по найденным IP, версии и баннеры сервисов, проверка по базам известных уязвимостей.
Открытые сервисы и неверные настройки. Доступные снаружи административные интерфейсы (Grafana, Prometheus, Kibana, mempool/explorer, очереди, Redis, PostgreSQL, etcd, Consul и подобные). Открытый Bitcoin RPC, ZMQ. Дефолтные учётные данные. Доступные без аутентификации
Облачные неверные настройки. Открытые S3 / GCS / Azure Blob. Публичные снапшоты, образы дисков. Анонимный IAM-перечёт. Утечка cloud metadata через найденный SSRF.
Почта и DNS. SPF, DKIM, DMARC, BIMI на доменах оператора. DNSSEC. Открытые рекурсивные резолверы, walkable-зоны. Подделка почты, если есть публичные адреса.
CDN и edge. Поиск origin-IP в обход CDN (исторические DNS-записи, SAN сертификатов, страницы ошибок с заголовками origin, неаккуратные DNS-записи вида
### 2.6. Реверс-инжиниринг
Custody App (бинарь). Распаковка установщика, статический анализ скомпилированного кода. Поиск встроенных секретов: ключи API, токены, тестовые учётки, скрытые отладочные флаги. Дополнительные адреса backend-а — dev/staging-хосты, телеметрия, аналитика. Сторонние библиотеки и их версии — известные уязвимости. Анти-debug и анти-tamper защиты, их обходимость. Цепочка подписи кода: валидность, наличие timestamp counter-signature.
Веб-сборки demo и admin. Анализ JS-бандлов: source-карты в продакшене, обфускация и её обходимость, скрытая поверхность API, проступающая через бандл. Захардкоженные адреса, фиче-флаги, отладочные и админские роуты в клиентском коде. Сторонние SDK в бандле (Sentry DSN, аналитика, чат-виджеты — каждый со своей поверхностью атаки). Утечка админской логики в публичные чанки.
Сетевые форматы. Реверс кастомных форматов обмена между custody-app и backend, если используется не plain JSON. Структура аутентификационных токенов и подписанных payload-ов.
## 3. Что вне scope
**Подробнее, после утверждения кандидатуры.
В поиске хорошего аудитора безопасности, необходимо провести максимально подробное изучение и анализ безопасности сервиса.
Black-box. Исходный код не предоставляется. Production-инсталляция, Bitcoin mainnet.
Краткое ТЗ ниже. Подробности после утверждения кандидата.
Внимательно изучите ТЗ, предоставьте смету и сроки выполнения.
## 1. Что за система
Custodial Exchange service. Три публичные точки:
- Demo — клиентский сайт, где создаётся заявка на микширование.
- Admin Panel — панель оператора. Учётные данные не выдаются.
- Custody App — десктоп-приложение оператора, держит часть холодного ключа.
## 2. Что проверить
### 2.1. Demo
- IDOR на чтении заявок: можно ли прочитать чужой заказ, перебрать или предсказать идентификатор.
- Серверная валидация полей формы — подмена параметров в обход ограничений UI (без оценки эффекта на бизнес-операции).
- XSS и HTML-инъекции во всех полях со свободным вводом.
- Инъекции: SQL, NoSQL, командные, header-инъекции, шаблонные.
- SSRF через любые поля с URL.
- Открытые редиректы.
- Безопасность сессионных кук: флаги
Secure/HttpOnly/SameSite, фиксация сессии, предсказуемые идентификаторы. - CSRF на изменяющих операциях.
- Утечки в ответах: трассировки, версии, внутренние пути.
- HTTP request smuggling, response splitting.
- Загрузка файлов и path traversal — если функциональность есть.
### 2.2. Admin Panel
- Обход логина без учётных данных: дефолтные пароли, слабые JWT, угон через сброс пароля, предсказуемые сессии.
- Доступ к admin API без аутентификации.
- Открытые служебные пути: отладочные роуты, превью-окружения,
/.env, health-эндпоинты. - Повышение привилегий: клиент → админ, viewer → operator.
- Слабости TOTP: предсказуемые backup-коды, отсутствие rate-limit на проверке кода, гонки на verify.
- Stored XSS на поверхностях, которые видит оператор после логина (через поля demo, user-agent, IP в админских логах).
- CSRF на действиях оператора.
- Раскрытие информации до логина: открытый Swagger,
/metrics, source-карты в продакшен-сборке, доступный.git. - RCE через любую инъекцию, десериализацию, загрузку файла или шаблонизатор.
### 2.3. Custody App
Установить на изолированную виртуальную машину.
Локальное хранилище ключа. Где и как хранится материал ключа, права на файлы. Алгоритм шифрования и параметры KDF, повторное использование salt/IV, наличие проверки целостности. Оценка скорости offline-перебора пароля на стандартном GPU при текущих параметрах.
Утечки. Открытый ключ в журналах, отладочном выводе, crash-дампах, swap, hibernate-файле, временных файлах. Поиск ключевых паттернов в дампе процесса после ввода пароля.
IPC. Какие команды экспонированы между UI и нативной частью. Можно ли вызвать привилегированное действие в обход штатного UI-сценария. Возможность инъекции через локальный сокет.
Целостность интерфейса. Подмена визуальных элементов диалогов подтверждения, overlay-атаки, clickjacking-подобные векторы. Семантическую корректность отображаемых данных при штатной работе оценивать не требуется.
Механизм обновления. Pinning к серверу обновлений, проверка подписи апдейта, защита от downgrade и rollback, можно ли подменить локальный кэш обновлений.
Целостность установщика. Встроенные секреты, лишние или подозрительные бинарники в комплекте.
### 2.4. Сеть и TLS
- TLS на front-facing доменах: версии (без 1.0/1.1), наборы шифров, HSTS с preload, smешанный контент, цепочка сертификатов, OCSP stapling.
- Канал custody-app ↔ backend: pinning по ключу или сертификату, поведение при mismatch (fail-closed или silent fallback), возможность подсунуть свой CA через системное хранилище, перехват и модификация трафика на транспортном уровне (без оценки семантики), перехват аутентификационного материала.
- Гигиена DNS: отсутствие CAA, слабые SPF/DMARC.
- Subdomain takeover на доменах demo и admin.
- Неправильный CORS на API.
### 2.5. Серверная инфраструктура и поиск активов
Поиск активов. Перечисление поддоменов (пассивно через CT-логи и активно через DNS-перебор). OSINT-источники (Shodan, Censys, ZoomEye, утечки в публичных репозиториях). Обратный DNS на найденных диапазонах. Связывание активов одного владельца через ASN, отпечатки сертификатов, JARM/JA3.
Сканирование портов. TCP/UDP по найденным IP, версии и баннеры сервисов, проверка по базам известных уязвимостей.
Открытые сервисы и неверные настройки. Доступные снаружи административные интерфейсы (Grafana, Prometheus, Kibana, mempool/explorer, очереди, Redis, PostgreSQL, etcd, Consul и подобные). Открытый Bitcoin RPC, ZMQ. Дефолтные учётные данные. Доступные без аутентификации
/metrics, /debug, /actuator, /swagger, /graphql. Публичные .git, .env, дампы БД, бэкапы.Облачные неверные настройки. Открытые S3 / GCS / Azure Blob. Публичные снапшоты, образы дисков. Анонимный IAM-перечёт. Утечка cloud metadata через найденный SSRF.
Почта и DNS. SPF, DKIM, DMARC, BIMI на доменах оператора. DNSSEC. Открытые рекурсивные резолверы, walkable-зоны. Подделка почты, если есть публичные адреса.
CDN и edge. Поиск origin-IP в обход CDN (исторические DNS-записи, SAN сертификатов, страницы ошибок с заголовками origin, неаккуратные DNS-записи вида
direct.<domain>). Обход WAF и rate-limit через нестандартные заголовки. Cache poisoning через манипуляцию Vary.### 2.6. Реверс-инжиниринг
Custody App (бинарь). Распаковка установщика, статический анализ скомпилированного кода. Поиск встроенных секретов: ключи API, токены, тестовые учётки, скрытые отладочные флаги. Дополнительные адреса backend-а — dev/staging-хосты, телеметрия, аналитика. Сторонние библиотеки и их версии — известные уязвимости. Анти-debug и анти-tamper защиты, их обходимость. Цепочка подписи кода: валидность, наличие timestamp counter-signature.
Веб-сборки demo и admin. Анализ JS-бандлов: source-карты в продакшене, обфускация и её обходимость, скрытая поверхность API, проступающая через бандл. Захардкоженные адреса, фиче-флаги, отладочные и админские роуты в клиентском коде. Сторонние SDK в бандле (Sentry DSN, аналитика, чат-виджеты — каждый со своей поверхностью атаки). Утечка админской логики в публичные чанки.
Сетевые форматы. Реверс кастомных форматов обмена между custody-app и backend, если используется не plain JSON. Структура аутентификационных токенов и подписанных payload-ов.
## 3. Что вне scope
**Подробнее, после утверждения кандидатуры.