DeteAct

Пентест клиентских приложений

Анализ защищённости десктопных приложений, Electron, браузерных расширений и других программ, которые работают на рабочей станции пользователя и общаются с вашими серверами. Проверяем и клиент, и API, с которыми он работает.

Паспорт услуги
Объект
Приложения для Windows, macOS и Linux, Electron, браузерные расширения, ActiveX, их серверные API
Модель
Серый ящик с тестовыми учётными записями; белый ящик при наличии кода
Сроки
2–3 недели на приложение, отчёт до недели
Результат
Отчёт с находками по клиенту и API, CVSS, PoC и рекомендациями; перепроверка

Почему клиент нужно проверять отдельно

Код клиентского приложения выполняется на машине, которую контролирует пользователь, а значит и злоумышленник. Его можно декомпилировать, подменить проверки, извлечь встроенные ключи и посмотреть, что приложение хранит на диске. Поэтому проверки серверных API дополняются анализом того, что приложение оставляет на рабочей станции и как оно обрабатывает внешние данные.

Для приложений на Electron и браузерных расширений риски особые: ошибка конфигурации или XSS в интерфейсе могут превратиться в выполнение кода в операционной системе или доступ к данным всех сайтов пользователя.

Классы уязвимостей

Проверки на стороне клиента дополняют методику веб-пентеста для серверных API.
КлассЧто проверяемК чему приводит
Хранение данныхНебезопасное логирование, запись секретов в общедоступные директории, доступ к сохранённым паролям и идентификаторам сессийТокены и пароли в открытом виде на диске, доступные другим пользователям и программам
Передача данныхПередача в открытом виде, отсутствие проверки сертификатов и SSL pinning, запросы по HTTP, WebSocket, gRPC и другим протоколамПерехват и подмена трафика в недоверенной сети
ПриватностьСекретные данные в общем буфере обмена, кеширование, передача данных на сторонние сервисыУтечка данных через окружение рабочей станции
Криптография и секретыСлабые алгоритмы, ключи шифрования, пароли и API-ключи в коде приложенияИзвлечение ключей из дистрибутива, доступ к серверным API от имени приложения
Обработка внешних данныхSQL-инъекции в локальные базы, чтение произвольных файлов, обработка URL-схем и файловВыполнение кода на рабочей станции при открытии подготовленного файла или ссылки
Реверс-инжинирингСлабая защита от анализа и модификации, пароли и ключи в явном виде, обход лицензионных проверокПодмена логики клиента, обход проверок на стороне клиента
ElectronОшибки конфигурации: nodeIntegration, contextIsolation, обработчики навигации; XSS, приводящий к исполнению кодаУдалённое выполнение кода на рабочей станции через содержимое веб-страницы
Браузерные расширения и ActiveXUXSS, UI redressing, небезопасные обработчики сообщений, локальное исполнение кодаДоступ к данным всех сайтов пользователя, выполнение кода в системе
Логика и серверная частьЛогические уязвимости, ошибки авторизации в API, с которыми работает клиентДоступ к чужим данным и функциям через серверные методы

Этапы тестирования

Критические находки сообщаем в день обнаружения.
  1. 01

    Сбор информации об объекте

    Изучаем документацию и структуру приложения, декомпозируем его и выделяем потенциально уязвимые интерфейсы. Анализируем сетевое взаимодействие с серверной частью: запросы по HTTP, WebSocket, gRPC и другим протоколам, обращения к файловой системе и реестру, работу с буфером обмена и внешними источниками данных.

  2. 02

    Инструментальное сканирование и фаззинг

    Определяем уязвимые и устаревшие версии сторонних библиотек в сборке. Сканируем и фаззим приложение средствами класса DAST, а при наличии исходного кода — SAST. Результаты верифицируем вручную, отсеиваем ложные срабатывания и уточняем уровни риска.

  3. 03

    Ручной и полуавтоматический поиск уязвимостей

    Проверяем хранение и передачу данных, соблюдение приватности, криптографию и управление секретами. Ищем специфичные уязвимости: обработку внешних данных, защиту от реверс-инжиниринга, ошибки конфигурации Electron, уязвимости браузерных расширений и ActiveX, логические ошибки. Декомпилируем и инструментируем приложение в рантайме.

  4. 04

    Эксплуатация обнаруженных уязвимостей

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

  5. 05

    Отчёт и перепроверка

    Описание целей, модели нарушителя и угроз; каждая уязвимость с уровнем риска, процессом эксплуатации и рекомендацией; статус исправления по результатам перепроверки; резюме с оценкой защищённости и приоритизированный перечень рекомендаций. Одна контрольная перепроверка исправленных уязвимостей выполняется в течение 10 рабочих дней после запроса заказчика; гарантийный срок — 12 месяцев после завершения основных этапов работ.

Вопросы о пентесте клиентских приложений

Какие приложения относятся к клиентским?
Десктопные приложения для Windows, macOS и Linux, включая толстые клиенты корпоративных систем, приложения на Electron и других веб-обёртках, браузерные расширения, компоненты ActiveX и плагины. Общее у них одно: код выполняется на рабочей станции пользователя, где злоумышленник может его изучить и изменить.
Чем пентест клиентского приложения отличается от веб-пентеста?
К проверкам серверных API добавляются риски на стороне клиента: секреты и данные на диске, защита канала, обработка файлов и ссылок, исполнение кода на рабочей станции, устойчивость к реверс-инжинирингу. Для Electron-приложений отдельно проверяется конфигурация, при которой XSS превращается в удалённое выполнение кода.
Что нужно предоставить для начала работ?
Дистрибутивы или сборки приложения для нужных платформ, тестовые учётные записи для каждой роли, адреса тестовых серверов и, если есть, описание протокола и API. Исходный код не обязателен, но повышает покрытие и ускоряет работу.
Проверяется ли серверная часть?
Да. Клиентское приложение почти всегда ценно для атакующего как способ добраться до серверных API, поэтому в проект входит проверка бэкенда: аутентификация, авторизация между пользователями, бизнес-логика, инъекции. Глубина проверки API согласуется на скоупинге.
Сколько длится проект?
Одно приложение на одной платформе вместе с его серверным API обычно занимает две-три недели активной фазы; несколько платформ или расширений с общим бэкендом — три-четыре недели. Отчёт передаём в течение недели после завершения активной фазы.
Проводится ли повторная проверка после исправлений?
Да. Одна контрольная перепроверка исправленных уязвимостей выполняется в течение 10 рабочих дней после запроса заказчика; гарантийный срок — 12 месяцев после завершения основных этапов работ. По её итогам выдаём обновлённый отчёт со статусами.

Заказать пентест клиентского приложения

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

Почта
info@deteact.ru
Телефон
+7 499 444-12-46
Офис
Москва, Пресненская набережная, 10с2 (IQ-квартал, Москва-Сити)
Лицензия
ФСТЭК России №Л024-00107-00/00581935
Заявка уходит напрямую команде, без колл-центра. Ответим с рабочей почты.