
Новый мост между Burp Suite и Frida!
Brida — это расширение Burp Suite, которое, работая как мост между Burp Suite и Frida, позволяет использовать собственные методы приложений и манипулировать ими, одновременно вмешиваясь в трафик, которым обмениваются приложения и их серверные службы/серверы. Brida поддерживает все платформы, поддерживаемые Frida (Windows, macOS, Linux, iOS, Android и QNX).
Эта идея возникла из потребности, появившейся во время анализа некоторых мобильных приложений, использующих сильное симметричное шифрование со случайными ключами: без знания правильного секрета данные было невозможно модифицировать ни через Burp, ни с помощью пользовательского плагина. В более общем смысле логика приложений может основываться на криптографических токенах, использовать сложные алгоритмы типа «запрос-ответ» и так далее. Как можно подменять сообщения? Чаще всего единственный жизнеспособный подход — декомпилировать/дизассемблировать приложение, определить интересующие нас функции или методы И заново их реализовать. Этот подход, очевидно, требует много времени и не всегда действительно реализуем: например, генерация токенов и/или процедуры шифрования могут основываться на криптографическом материале, жёстко привязанном к устройству (состоянию) или хранящемся в защищённых областях и, следовательно, недоступном напрямую... Вот тут и пригодится Brida: вместо того чтобы пытаться извлечь ключи/сертификаты и переписывать интересующие нас процедуры, почему бы не позволить приложению сделать за нас всю «грязную» работу?
Краткий ответ — всем!
Развёрнутый ответ: Brida — это набор инструментов, некоторые из которых созданы для ускорения повседневных мобильных тестов и помощи новым пользователям Frida, в то время как другие направлены на решение очень сложных ситуаций, где Brida может действительно изменить ситуацию.
Инструменты, которые могут быть полезны для обработки и ускорения повседневных мобильных тестов, включают следующие:
Однако идея, которая привела к созданию Brida, заключалась в том, чтобы помочь пентестерам/реверсерам/хакерам анализировать веб-сервисы целевых мобильных приложений, где используются сложные механизмы защиты для обеспечения конфиденциальности и целостности HTTP-запросов и ответов. Шифрование, обфускация, процедуры подписи, выполняемые над запросами и ответами, могут сделать работу тестировщиков очень трудной и трудоёмкой, поскольку обычно необходимо реверснуть механизмы безопасности и реализовать плагин для Burp Suite или внешний инструмент, который сначала расшифровывает/деобфусцирует HTTP-сообщения, а затем, при необходимости, шифрует/обфусцирует/подписывает отредактированные сообщения. То же самое относится и к некоторым не связанным с безопасностью сценариям, например, когда для форматирования тела HTTP-запросов/ответов используется собственный бинарный протокол из соображений интероперабельности или производительности.
Brida старается максимально ускорить эти процедуры, ограничивая усилия по реверс-инжинирингу и полностью устраняя (в большинстве ситуаций) усилия по разработке, предлагая движок, который позволяет графически создавать пользовательские плагины, проверяющие и редактирующие HTTP-запросы и ответы с использованием тех же мобильных функций, которые использует само мобильное приложение, благодаря Frida. Взяв в качестве примера мобильное приложение, которое шифрует/расшифровывает все запросы и ответы с помощью собственного/неизвестного алгоритма шифрования, Brida позволяет графически создать простой пользовательский плагин, который расшифровывает зашифрованные HTTP-сообщения, используя непосредственно тот мобильный код, который применяется в мобильном приложении для этой задачи. Другой пример — пользовательский плагин, который прозрачно обновляет подписи подписанных HTTP-запросов при их отправке на сервер, используя ту же мобильную функциональность, что и само приложение.
Более подробно, Brida позволяет графически создавать плагины, которые:
И если движка пользовательских плагинов Brida недостаточно для наших сверхсложных ситуаций, можно также написать внешние расширения Burp Suite на Python/Java, которые поручают Brida выполнение функций целевого мобильного приложения над данными расширения. Инструмент Brida "Generate Stubs" генерирует код на Java или Python, который можно вставить во внешние расширения Python или Java для использования моста Brida.
Frida 17 привносит существенные обновления в сам инструмент и его JavaScript API. Потребовался серьёзный рефакторинг JS кода, который нарушил совместимость с предыдущими версиями frida. Следовательно, последние версии Brida требуют версии frida не ниже 17. Если вам нужно использовать более старую версию Frida, вы можете загрузить версию 0.6pre из релизов GitHub.
Требования:
pip install frida frida-tools pyro4)Установка из GitHub:
Установка из Burp Suite BApp Store:
Обновления в BApp Store требуют времени. Проверяйте GitHub на наличие последней версии.
Требования:
pip install frida frida-tools pyro4)Установка из GitHub:
Ошибки пути на MacOS довольно распространены; обратитесь к этой ссылке, если у вас возникли проблемы с системным PATH.
Вы можете собрать Brida с помощью Gradle или Maven. Brida использует модифицированную версию RSyntaxTextArea, которую можно найти в этом форке.
Сборка с Gradle проще. Задача "jar" сделает всю работу, используя скомпилированную версию модифицированной RSyntaxTextArea (папка "libs").
Чтобы иметь возможность собрать Brida с помощью Maven, необходимо установить модифицированную версию RSyntaxTextArea локально с помощью Maven, используя следующие параметры:
Заметки по установке и использованию можно найти на странице Wiki.
Слайды нашей конференции, представленные на HackInBo 2017 Winter Edition, описывающие первую версию, можно найти по адресу:
Слайды и видео нашей конференции, представленные на Hack In The Box 2018 Amsterdam, описывающие новые возможности версии 0.2, можно найти по адресу:
Видео нашей конференции, представленной на Hack In Paris 2020 2021 (перенесено из-за глобальной ситуации с COVID-19), описывающее новые возможности версии 0.4 0.5, можно найти по адресу:
Два разных демонстрационных приложения можно найти в папке Demo — одно для Android, другое для iOS.
Папка demo также содержит плагины Brida, которые можно использовать для обхода механизмов шифрования, используемых приложениями!
Brida использует много кода Frida для динамического перехвата и инспекции двоичных файлов, основанного на работе:
Кроме того, Brida интегрирует множество перехватов Frida, разработанных разными авторами, для проверки/обхода многих функций безопасности. Список проектов (надеюсь, достаточно полный), из которых я брал код Frida для раздела "Хуки и функции" Brida (в произвольном порядке):

Copyright (c) 2025 Brida
Настоящим предоставляется бесплатное разрешение любому лицу, получившему копию данного программного обеспечения и сопутствующей документации (далее — «Программное обеспечение»), на использование Программного обеспечения без ограничений, включая, без ограничений, права на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также на предоставление Программного обеспечения лицам, которым оно предоставляется, при соблюдении следующих условий:
Указанное выше уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или значимые части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ОПРЕДЕЛЁННОМУ НАЗНАЧЕНИЮ И НЕНАРУШЕНИЯ ПРАВ. НИ В КОЕМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, УБЫТКАМ ИЛИ ИНЫМ ТРЕБОВАНИЯМ, БУДЬ ТО В РАМКАХ ДОГОВОРА, ДЕЛИКТА ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКШИМ ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ЕГО ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.