Прошивка для Raspberry Pi: функциональный файрволл с открытым исходным кодом

19 июня, 2023, Elcomsoft R&D
Рубрика: «Полезные советы»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Процесс низкоуровневого извлечения данных из iPhone и iPad требует установки на устройство специальной программы — агента-экстрактора. Агент чрезвычайно прост в использовании, но после последних изменений на стороне Apple его установка стала вызывать проблемы даже у опытных пользователей. В этой статье мы описываем вариант решения — прошивку для Raspberry Pi 4, превращающую устройство в функциональный файрволл, который позволяет верифицировать цифровую подпись агента, блокируя попытки доступа подключённого iPhone к интернету.

Коротко о главном

Низкоуровневое извлечение из мобильных устройств Apple при помощи агента-экстрактора требует установки специального приложения, которое должно быть подписано цифровой подписью. В ряде случаев система потребует верифицировать подпись, подключившись к серверу Apple. Установка соединения с сервером несёт риск искажения цифровых улик в в процессе нежелательной синхронизации с облаком, а в худшем случае грозит потенциальной удалённой блокировкой устройства или уничтожением данных. Использование Raspberry Pi с нашей прошивкой позволит безопасно установить агент-экстрактор, верифицировав цифровую подпись, заблокировав исследуемому устройству доступ в интернет.

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

Закат checkm8

Вариант низкоуровневого извлечения через эксплойт загрузчика checkm8 по-прежнему единственный, гарантирующий криминалистическую чистоту анализа. В то же время парк уязвимых устройств неуклонно сокращается, а для последнего поколения iPhone, для которого доступен эксплойт, для применения эксплойта часто приходится сбрасывать код блокировки экрана, что серьёзно нарушает чистоту исследования. Криминалистическая ценность checkm8 на iPhone 8, 8 Plus и iPhone X под управлением iOS 16 практически сведена к нулю, а iOS 17 ещё сократит список поддерживаемых устройств. В целом, checkm8 — отличный способ доступа к данным, постепенно уходящий в прошлое.

В этой связи всё актуальнее становится извлечение посредством агента-экстрактора, который представляет собой приложение для iOS, посредством которого осуществляется низкоуровневый доступ к файловой системе и ключам шифрования, необходимым для расшифровки связки ключей. Доступ к файловой системе и связке ключей на iPhone невозможен без эскалации привилегий. И если ранее для эскалации привилегий использовались джейлбрейки сторонней разработки (способ ненадёжный и рискованный), то теперь в состав iOS Forensic Toolkit входит тот самый агент-экстрактор нашей собственной разработки.

В отличие от эксплойта checkm8, использующего аппаратную уязвимость в загрузчике ряда моделей устройств, агент-экстрактор использует программные уязвимости в операционной системе iOS, позволяющие организовать прямой доступ к системе. По объёму и детализации полученных данных этот способ не отличается от других низкоуровневых методов анализа — таких, как checkm8, — не требуя при этом удаления кода блокировки экрана в тех случаях, когда это необходимо для работы checkm8.

Агентом-экстрактором поддерживаются все модели iPhone и iPad, включая самые современные, хотя поддержка новых версий iOS появляется с серьёзным отставанием по мере того, как для новых сборок системы обнаруживаются уязвимости.

Сложности с установкой

Для пользователя самая большая сложность в работе с агентом — это его установка. Каждое приложение, установленное на iPhone или iPad, должно быть подписано цифровой подписью, выдать которую может только Apple. При попытке запуска приложения, которое не было установлено через официальный магазин App Store, система затребует подтверждения цифровой подписи, для чего устройству понадобится соединиться с сервером Apple. Если устройство является частью доказательной базы, то любой выход в интернет связан с риском искажения данных в результате нежелательной синхронизации, а в худшем случае — и дистанционной блокировки устройства или удалённого уничтожения данных.

Возможный вариант решения проблемы, о котором мы многократно писали в прошлом — использование учётной записи, зарегистрированной в программе Apple для разработчиков. Ранее этот вариант решал все проблемы: устройство регистрируется в учётной записи, а верификация цифровой подписи не требует выхода устройства в интернет. Последовали изменения со стороны Apple, в результате первого из которых только первые 10 устройств добавляются в программу для разработчиков сразу, а для добавления последующих потребуется ждать до 3 дней (то есть, агент невозможно будет использовать сразу).

После второго обновления даже установленные посредством учётной записи для разработчиков приложения требуют верификации цифровой подписи в режиме онлайн, если учётная запись была создана после 6.6.2021 (отсюда). Та же проблема возникает и при использовании для подписания агента-экстрактора обычных учётных записей, которые не являются участниками программы Apple для разработчиков. Кстати, в статье Apple ошибка: для проверки цифровой подписи через учётную запись для разработчиков соединение происходит не с сервером ppq.apple.com (который всегда был для обычных учётных записей), а humb.apple.com (который, ко всему прочему, обладает динамическим IP, который меняется каждые 5 минут).

Не будем подробно останавливаться на том, почему такое подключение в процессе расследования недопустимо. Упомянем лишь очевидные вещи — автоматическую синхронизацию данных на устройстве, что искажает данные и может привести к бесполезности извлечённых из устройства цифровых доказательств, и ненулевой риск дистанционной блокировки и/или стирания устройства через приложение Find My (Локатор).

Таким образом, основные преимущества регистрации учётной записи в программе Apple для разработчиком практически утрачены. Вновь появился смысл использовать для подписи агента обычные учётные записи несмотря на ограничение на 3 устройства в неделю (в любой момент можно создать новый Apple ID). Да, для проверки цифровой подписи агента устройству потребуется выход в сеть. Для того, чтобы обезопасить соединение, мы и разработали решение, которое минимизирует риски, ограничив подключение на устройстве только тем сервером, соединение с которым необходимо для проверки сертификата.

Преимущества учётных записей разработчика

Перечислив ограничения учётных записей разработчика, нельзя не упомянуть и об их достоинствах. Так, у пользователей Windows по-прежнему нет другого варианта установки агента-экстрактора: наш продукт позволяет использовать для установки обычные Apple ID только с компьютеров с macOS. Кроме того, для старых учётных записей, созданных до 6.6.2021, дополнительных проверок не будет; такие учётные записи имеет смысл использовать.

В своё время мы разработали решение на базе Mac, которое позволяло в большой степени защитить соединение. Однако это решение не слишком простое а использовании и оставляющее широкое пространство для ошибок. С целью упростить и обезопасить процесс мы разработали прошивку, которая превращает микрокомпьютер Raspberry Pi 4 в функциональный файрволл.  Его использование максимально просто: одним проводом Pi подключается к роутеру, другим — к телефону, после чего на iPhone возникает защищённое соединение.

Прошивку можно найти в нашем репозитории на github (проект eiftpi). Рекомендуем также ознакомиться с другими опубликованными нами проектами с открытым исходным кодом в репозитарии Elcomsoft github, где на сегодняшний день содержится уже 16 проектов (и это число постоянно растёт).

Наконец, отметим, что наше решение будет работать и для любых других приложений, устанавливаемых на iPhone в обход официального магазина приложений и подписанных хоть обычной учётной записью, хоть учётной записью разработчика. Сюда входят в том числе и альтернативные агенты от других производителей.

Альтернативные способы обезопасить подключение

Если под рукой нет Raspberry Pi, вы можете попробовать обезопасить подключение другим способом. Первый из них мы подробно описали в статье Безопасный способ установки агента-экстрактора: блокировка сетевых соединений, в которой в качестве файрволла выступает компьютер Mac; настройка производится посредством опубликованного нами скрипта.

Другая альтернатива — настройка «белого списка» непосредственно на роутере, через который устройство выходит в интернет. Однако если все адреса ppq.apple.com известны (их всего несколько), то адресов у humb.apple.com заметно больше, при этом очень небольшое количество роутеров со стандартной прошивкой позволяет в принципе создавать «белые списки» подключений, особенно по доменному имени, а не по IP.  Один из вариантов — прошивка с открытым исходным кодом OpenWRT, настройка которой, однако, требует ещё более высокой квалификации.

Наконец, в этом разделе нужно упомянуть давно анонсированную в iOS 17 возможность штатной установки приложений из сторонних источников — которую, в прочем, пока не реализовали в первой бета-версии новой ОС.

Дополнительное оборудование

Для настройки файрволла и подключения к нему iPhone вам потребуется дополнительное оборудование:

  1. Raspberry Pi 4 или более новая модель (например, Raspberry Pi 4 Model B)
  2. Карта microSD
  3. Адаптер Lightning to Ethernet
  4. Адаптер USB to Ethernet

Инструкции по установке прошивки на Raspberry Pi

Скачайте образ прошивки из GitHub — Elcomsoft/eiftpi и запишите его на SD-карту с помощью программы, например, balenaEtcher. Вы можете скачать balenaEtcher по следующей ссылке: https://etcher.balena.io/.

  • Вставьте SD-карту в компьютер.
  • Запустите balenaEtcher и выберите скачанный образ прошивки.
  • Выберите SD-карту как целевой носитель.
  • Нажмите кнопку «Записать», чтобы записать образ прошивки на SD-карту.
  • По завершении процесса извлеките SD-карту из компьютера.

На Raspberry Pi вам понадобятся два сетевых интерфейса. Один интерфейс должен быть подключён к интернету, а другой будет использоваться для подключения iPhone. Для подключения iPhone вам понадобится адаптер Lightning to Ethernet. Доступно два варианта подключения:

  1. Вы можете подключить Raspberry Pi к интернету через Wi-Fi, а iPhone подключить через порт Ethernet.
  2. Либо используйте встроенный Ethernet-порт на Raspberry Pi для подключения к интернет, организовав второй интерфейс с помощью адаптера USB-A to Ethernet.

Важно: телефон необходимо подключать к встроенному в плату Ethernet, а сам Pi к интернету — либо по Wi-Fi, либо через USB-адаптер.

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

  • Для более простой и надёжной установки используйте два проводных подключения. Для этого вам потребуется адаптер USB to Ethernet.

Если вы предпочитаете подключить Raspberry Pi через Wi-Fi, выполните следующие шаги:

  • Подключите Raspberry Pi к компьютеру Mac с помощью Ethernet. (Если у вашего MacBook нет Ethernet-порта, вам понадобится дополнительный адаптер USB-C to Ethernet или USB-A to Ethernet.)
  • Откройте терминал на компьютере Mac и введите следующую команду:
    ssh eift@192.168.41.1
    • Пароль — «Elcomsoft» (без кавычек).
    • После входа выполните следующую команду для настройки Wi-Fi:
      sudo nmtui
    • В интерфейсе nmtui вы сможете легко подключиться к Wi-Fi сети.

На этом всё! Вы успешно установили прошивку на Raspberry Pi. Подключите Pi к сети (через Ethernet или Wi-Fi), после чего подключите iPhone к Pi с помощью кабеля. Рекомендуем для начала подключить таким образом тестовый iPhone, чтобы убедиться, что доступ к интернету ограничен: на iPhone должны быть доступны только адреса ppq.apple.com и humb.apple.com.


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

REFERENCES:

Elcomsoft iOS Forensic Toolkit

Elcomsoft iOS Forensic Toolkit – специализированный инструмент для проведения криминалистического анализа устройств, работающих под управлением Apple iOS. Для анализа доступна вся пользовательская и системная информация, а также зашифрованные данные из системного хранилища (связка ключей).

Официальная страница Elcomsoft iOS Forensic Toolkit »

НАШИ НОВОСТИ