
Профилирование безопасности для blackbox iOS
Blackbox tool to help understand what an iOS application is doing at runtime and assist in the identification of potential security issues.
See http://isecpartners.github.io/Introspy-iOS/ for a quick introduction.
Это репозиторий трассера Introspy-iOS.
Трассер можно установить на джейлбрейк-устройство для перехвата и журналирования критичных с точки зрения безопасности iOS API, вызываемых приложениями, работающими на устройстве. Инструмент записывает детали соответствующих вызовов API, включая аргументы и возвращаемые значения, и сохраняет их в базе данных. Кроме того, вызовы также отправляются в Console для анализа в реальном времени.
Затем базу данных можно передать в Introspy-Analyzer — Python-скрипт для генерации HTML-отчётов, содержащих список зарегистрированных вызовов функций, а также список потенциальных уязвимостей, затрагивающих приложение. Introspy-Analyzer размещён в отдельном репозитории: https://github.com/iSECPartners/Introspy-Analyzer
Пользователям следует сначала загрузить последний предварительно скомпилированный Debian-пакет, доступный в разделе релизов на странице проекта: https://github.com/integrity-sa/Introspy-iOS/releases или для более старых релизов: https://github.com/iSECPartners/Introspy-iOS/releases
Трассер работает только на джейлбрейк-устройстве. С помощью Cydia убедитесь, что установлены следующие пакеты:
Загрузите и скопируйте Debian-пакет на устройство; установите его:
scp <package.deb> root@<device_ip>:~
ssh root@<device_ip>
dpkg -i <package.deb>
Сделайте respring устройства:
killall -HUP SpringBoard
В настройках устройства должны появиться два новых меню. Меню Apps позволяет выбрать, какие приложения будут профилироваться, а меню Settings определяет, какие группы API будут перехватываться.
Наконец, завершите и перезапустите приложение, которое хотите отслеживать.
dpkg -r com.isecpartners.introspy
Трассер сохраняет данные о вызовах API, совершаемых приложениями, в базе данных, хранящейся на устройстве (по одной в папке каждого приложения). Эту базу данных можно передать Python-скрипту под названием Introspy-Analyzer для создания HTML-отчётов, которые значительно упрощают анализ данных, собранных трассером. Скрипт также анализирует и помечает опасные вызовы API, чтобы облегчить процесс выявления уязвимостей в iOS-приложениях.
Introspy-Analyzer размещён в отдельном репозитории: https://github.com/iSECPartners/Introspy-Analyzer
Большинству пользователей достаточно просто загрузить и установить предварительно скомпилированный Debian-пакет. Однако если вы хотите изменить функциональность библиотеки, вам придётся собрать Debian-пакет самостоятельно.
Для сборки требуется набор Theos, доступный по адресу https://github.com/theos/theos. Общие инструкции по установке Theos см. на https://github.com/theos/theos/wiki/Installation.
Необходимо также задать переменную $THEOS в вашем окружении и экспортировать её, чтобы make видел её значение при запуске
export THEOS=/absolute/path/to/theos
export PATH=$THEOS/bin:$PATH
Затем пакет можно собрать с помощью:
make package
После успешного создания Debian-пакета вы можете использовать Theos для автоматической установки пакета и перезапуска SpringBoard (respring), указав IP-адрес устройства в переменной окружения THEOS_DEVICE_IP:
export THEOS_DEVICE_IP=192.168.1.127
make install
См. ./LICENSE.