Анализ защищённости desktop-приложений

Проверим, как ваше приложение ведёт себя на машине, где атакующий контролирует файлы, память, трафик и обновления

  • Уверенность в подрядчике

    У нас есть необходимые лицензии и сертификаты

  • Качество и вовлечённость

    Нам доверяют, в том числе, системообразующие компании страны и федеральные органы власти

Клиент нельзя считать доверенной зоной

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

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

Особенно опасны ошибки, позволяющие обычному пользователю повысить привилегии, извлечь секреты или подменить обновление.

Анализ сочетает динамическое тестирование, изучение бинарных файлов и конфигураций, проверку сетевого протокола и — при наличии исходного кода — code review.

Единая поверхность атаки

Проверяется не только код приложения, но и всё, что его окружает на машине пользователя

Desktop-приложение
Установщик
Службы
Драйверы
Сторонние библиотеки
Локальное хранение
Автообновление
Взаимодействие с сервером

Что входит в работу

Оценка безопасности клиентского ПО для Windows, Linux или macOS: прав пользователя, системных интеграций, обновлений и серверных API. Типовой объём работ включает:

Исполняемые файлы и библиотеки

Бинарные файлы, DLL, службы и драйверы приложения

Установщик и обновление

Установка, удаление и механизм автообновления

Локальные данные

Файлы, реестр, базы данных, логи и кэш

Секреты и конфигурация

Учётные данные, токены, ключи и настройки

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

IPC, именованные каналы, сокеты, COM/RPC и URI-схемы

Права доступа

Права на файлы и каталоги, системные службы и задачи планировщика

Сеть и серверные API

Сетевой протокол, TLS и взаимодействие с бэкендом

Защита продукта

Защита от подмены, реверса и небезопасной загрузки библиотек

Чем эта услуга отличается от смежных работ

Три работы, с которыми анализ защищённости desktop-приложения чаще всего путают

Не проверка веб-приложения

Здесь критичны локальные привилегии, файловая система, IPC, установщик и доверие к операционной системе.

Не антивирусный анализ

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

Не только code review

Динамический анализ показывает поведение собранного продукта и ошибки упаковки; код помогает найти первопричину.

Когда услуга особенно актуальна

Моменты, когда поверхность атаки меняется сильнее всего

Перед выпуском корпоративного клиента или агента

После автообновления ОС, драйверов и служб

При работе с привилегиями администратора или чувствительными данными

Перед поставкой продукта заказчику

После перехода на новый фреймворк, упаковщик или механизм подписи

Какие задачи решает для бизнеса

Анализ защищённости закрывает пять практических вопросов о вашем клиентском ПО

Оставить запрос
1

Безопасное локальное хранение

Секреты и чувствительные данные не должны оставаться в доступном виде в файлах, логах и памяти

2

Контроль привилегий

Обычный пользователь не должен управлять привилегированной службой или подменять исполняемые компоненты

3

Доверенное обновление

Проверяются подпись, источник, целостность и защита от отката на уязвимую версию

4

Защищённое взаимодействие

IPC и сетевые API должны аутентифицировать стороны и проверять полномочия

5

Устойчивость поставки

Анализируются зависимости, подпись кода и настройки сборки

Что проверяется в ходе анализа

Конкретные классы проблем, которые мы ищем в каждом компоненте

Права установки и системные изменения

DLL hijacking, sideloading и небезопасные пути поиска

Службы, задачи, драйверы и повышение привилегий

Локальные секреты, логи и временные файлы

IPC и проверка источника сообщений

Сертификаты, TLS и pinning по необходимости

Автообновление, подпись и защита от downgrade

Сторонние компоненты и небезопасные функции памяти

Как проходит проект

Шесть этапов — от согласования модели угроз до разбора находок с вашими разработчиками

Этап 1

Модель угроз и подготовка среды

Согласуем ОС, роли, версии, тестовые учётные записи и серверный контур

Этап 2

Инвентаризация компонентов

Изучаем установщик, бинарные файлы, службы, зависимости и системные изменения

Этап 3

Статический анализ

Проверяем метаданные, защитные флаги, строки, секреты и критичные участки

Этап 4

Динамический анализ

Наблюдаем файлы, память, процессы, IPC и сетевое взаимодействие

Этап 5

Контролируемая эксплуатация

Безопасно подтверждаем повышение привилегий, подмену компонентов и доступ к данным

Этап 6

Отчёт и консультация разработчиков

Передаём воспроизведение, первопричину и варианты исправления

Что получает заказчик в отчёте

Документ, с которым можно идти к разработке, а не только к руководству

Карта поверхности атаки

Компоненты, привилегии, данные и внешние взаимодействия

Технические находки

Доказательства, условия эксплуатации и критичность каждой проблемы

Рекомендации для разработки и сборки

Код, права, подпись, обновление и hardening

Чек-лист повторной проверки

Контрольные сценарии для QA и релизного процесса

Почему работу важно повторять

Desktop-клиент следует проверять при изменении установщика, механизма обновления, привилегированных компонентов и сетевого протокола, а также перед крупными релизами.

Изменение установщика
Смена механизма обновления
Правки привилегированных компонентов
Изменение сетевого протокола
Крупные релизы

Надёжный desktop-клиент не доверяет рабочей станции безусловно

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

Получить демо-отчёт и предложение