В процессе мониторинга собственной корпоративной Wi-Fi сети с помощью SIEM-системы KUMA, эксперты «Лаборатории Касперского» обнаружили подозрительную активность нескольких iOS-устройств. Поскольку из-за закрытости операционной системы невозможно провести её полноценное исследование на предмет заражения на самом устройстве, был проведён анализ их резервных копий с помощью Mobile Verification Toolkit’s mvt-ios. В результате, были обнаружены следы компрометации устройств ранее неизвестной вредоносной программой.
Мы назвали эту вредоносную кампанию «Операция Триангуляция» (Operation Triangulation). Всю имеющуюся о ней информацию мы будем постепенно собирать на тематической странице. Также мы призываем всех присоединиться к исследованию и выделили для контактов специальный адрес: triangulation[at]kaspersky.com.
Что известно на данный момент
Резервная копия iTunes содержит часть файловой системы устройства, включая данные пользователя и служебные базы данных. Используя временные метки файлов, папок, и некоторых записей баз данных, можно восстановить примерную последовательность событий, происходящих на устройстве. Утилита mvt-ios сохраняет эту последовательность в файл «timeline.csv», напоминающий по формату super-timeline, который часто используют для исследования файловых систем обычных компьютеров.
Анализ последовательностей событий заражённых устройств позволил нам выделить события, специфичные для момента компрометации. Дальнейшее исследование позволило восстановить следующую картину заражения:
- Заражаемое iOS-устройство получает сообщение iMessage со специальным вложением, содержащим эксплойт
- Без какого-либо взаимодействия с пользователем, эксплойт из сообщения вызывает выполнение вредоносного кода
- Указанный код соединяется с сервером управления и приводит к последовательной загрузке нескольких «ступеней» вредоносной программы, включая дополнительные эксплойты для повышения привилегий
- После успешной отработки всех вредоносных компонентов, загружается конечная вредоносная нагрузка – полноценная APT-платформа
- Сообщение и вложение с эксплойтом удаляются в процессе заражения
Вредоносная платформа работает исключительно в оперативной памяти и не устанавливается в системе из-за ограничений операционной системы. Однако последовательности событий нескольких устройств указывают на то, что после перезагрузки устройства могут быть заражены снова. Наиболее старые временные метки заражений указывают на 2019 год. На момент написания блогпоста (июнь 2023) атака продолжается, наиболее старшая версия iOS на обнаруженных заражённых устройствах – 15.7.
Анализ вредоносной платформы продолжается. Уже известно, что она выполняется с привилегиями суперпользователя, реализует набор команд для сбора информации о пользователе и системе, а также позволяет исполнять произвольный код в виде плагинов, переданных с сервера управления.
Метод обнаружения
Несмотря на то, что вредоносная платформа содержит код, разработанный специально для сокрытия возможных следов заражения, в системе остаётся достаточно информации, позволяющей однозначно идентифицировать скомпрометированные устройства. Более того, если при настройке нового устройства пользовательские данные были перенесены путём миграции с предыдущего телефона, резервная копия нового устройства сохранит следы компрометации обоих устройств, с точными временными метками всех событий.
Подготовка к исследованию
Для исследования потенциально заражённых устройств необходимо создать их резервные копии с помощью iTunes или утилиты с открытым исходным кодом idevicebackup2 (часть библиотеки libimobiledevice). Указанную утилиту можно собрать из исходных кодов на MacOS/Linux, или установить из готовых пакетов в большинстве популярных Linux-дистрибутивов.
Для того, чтобы создать резервную копию с помощью idevicebackup2, необходимо выполнить следующую команду:
idevicebackup2 backup --full $backup_directory
В процессе создания копии на устройстве понадобится несколько раз ввести pin-код, а само копирование может занять несколько часов — в зависимости от количества пользовательских данных.
Установка MVT
После получения резервной копии необходимо установить Mobile Verification Toolkit. Для этого необходимо установить Python 3, и выполнить следующую команду:
pip install mvt
Более подробная инструкция по установке доступна в официальной документации к утилите.
Если необходимо: расшифровка резервной копии
В случае, если владелец ранее задал пароль в iTunes/idevicebackup2, резервная копия устройства будет зашифрована. Для дальнейшей работы с ней, нужно выполнить следующую команду для расшифровки данных:
mvt-ios decrypt-backup -d $decrypted_backup_directory $backup_directory
Обработка резервной копии с помощью MVT
mvt-ios check-backup -o $mvt_output_directory $decrypted_backup_directory
После выполнения данной команды MVT, в папке, указанной в качестве «mvt_output_directory» появится несколько файлов формата JSON и CSV. Описанная в данном блоге методология подразумевает анализ содержимого файла timeline.csv.
Поиск индикаторов компрометации в timeline.csv
- Единственным однозначным индикатором компрометации, который мы обнаружили, является наличие в timeline.csv строчек с упоминанием сетевой активности процесса «BackupAgent». Это устаревшее приложение, не используемое при работе современных версий ОС. Однако не следует путать его с приложением «BackupAgent2», которое не указывает на компрометацию и регулярно используется в легитимных целях. Чаще всего, упоминание BackupAgent предваряется строками с упоминанием процесса «IMTransferAgent», который отвечает за скачивание вложений (в данном случае, с эксплойтом), а также информацией об изменениях в директории «Library/SMS/Attachments». Само вредоносное вложение удаляется после срабатывания эксплойта, оставляя после себя только временные метки изменения директорий, где оно было расположено.:
2022-09-13 10:04:11.890351Z Datausage IMTransferAgent/com.apple.datausage.messages (Bundle ID: com.apple.datausage.messages, ID: 127) WIFI IN: 0.0, WIFI OUT: 0.0 - WWAN IN: 76281896.0, WWAN OUT: 100956502.0
2022-09-13 10:04:54.000000Z Manifest Library/SMS/Attachments/65/05 - MediaDomain
2022-09-13 10:05:14.744570Z Datausage BackupAgent (Bundle ID: , ID: 710) WIFI IN: 0.0, WIFI OUT: 0.0 - WWAN IN: 734459.0, WWAN OUT: 287912.0 - Также, существуют менее надёжные индикаторы компрометации. В случае, если несколько таких индикаторов обнаружены во временной последовательности в пределах нескольких минут, они указывают на успешную компрометацию:
- Изменение одного или нескольких файлов: com.apple.ImageIO.plist, com.apple.locationd.StatusBarIconManager.plist, com.apple.imservice.ids.FaceTime.plist
- Информация о сетевой активности процессов com.apple.WebKit.WebContent, powerd/com.apple.datausage.diagnostics, lockdownd/com.apple.datausage.security
Например:
2021-10-30 16:35:24.923368Z Datausage IMTransferAgent/com.apple.MobileSMS (Bundle ID: com.apple.MobileSMS, ID: 945) WIFI IN: 0.0, WIFI OUT: 0.0 - WWAN IN: 31933.0, WWAN OUT: 104150.0
2021-10-30 16:35:24.928030Z Datausage IMTransferAgent/com.apple.MobileSMS (Bundle ID: com.apple.MobileSMS, ID: 945)
2021-10-30 16:35:24.935920Z Datausage IMTransferAgent/com.apple.datausage.messages (Bundle ID: com.apple.datausage.messages, ID: 946) WIFI IN: 0.0, WIFI OUT: 0.0 - WWAN IN: 47743.0, WWAN OUT: 6502.0
2021-10-30 16:35:24.937976Z Datausage IMTransferAgent/com.apple.datausage.messages (Bundle ID: com.apple.datausage.messages, ID: 946)
2021-10-30 16:36:51.000000Z Manifest Library/Preferences/com.apple.locationd.StatusBarIconManager.plist - HomeDomain
2021-10-30 16:36:51.000000Z Manifest Library/Preferences/com.apple.ImageIO.plist - RootDomainДругой пример: изменение директорий, содержащих SMS вложения (при этом вложение не упоминается), а затем сетевая активность com.apple.WebKit.WebContent и изменение файла com.apple.locationd.StatusBarIconManager.plist. Все события произошли в интервале 1-3 минут, что указывает на успешную отработку эксплойта из сообщения iMessage и обращение к серверу управления из атакованного процесса.
2022-09-11 19:52:56.000000Z Manifest Library/SMS/Attachments/98 - MediaDomain
2022-09-11 19:52:56.000000Z Manifest Library/SMS/Attachments/98/08 - MediaDomain
2022-09-11 19:53:10.000000Z Manifest Library/SMS/Attachments/98/08 - MediaDomain
2022-09-11 19:54:51.698609Z OSAnalyticsADDaily com.apple.WebKit.WebContent WIFI IN: 77234150.0, WIFI OUT: 747603971.0 - WWAN IN: 55385088.0, WWAN OUT: 425312575.0
2022-09-11 19:54:51.702269Z Datausage com.apple.WebKit.WebContent (Bundle ID: , ID: 1125)
2022-09-11 19:54:53.000000Z Manifest Library/Preferences/com.apple.locationd.StatusBarIconManager.plist - HomeDomain
2022-06-26 18:21:36.000000Z Manifest Library/SMS/Attachments/ad/13 - MediaDomain
2022-06-26 18:21:36.000000Z Manifest Library/SMS/Attachments/ad - MediaDomain
2022-06-26 18:21:50.000000Z Manifest Library/SMS/Attachments/ad/13 - MediaDomain
2022-06-26 18:22:03.412817Z OSAnalyticsADDaily com.apple.WebKit.WebContent WIFI IN: 19488889.0, WIFI OUT: 406382282.0 - WWAN IN: 66954930.0, WWAN OUT: 1521212526.0
2022-06-26 18:22:16.000000Z Manifest Library/Preferences/com.apple.ImageIO.plist - RootDomain
2022-06-26 18:22:16.000000Z Manifest Library/Preferences/com.apple.locationd.StatusBarIconManager.plist - HomeDomain
2022-03-21 21:37:55.000000Z Manifest Library/SMS/Attachments/fc - MediaDomain
2022-03-21 21:37:55.000000Z Manifest Library/SMS/Attachments/fc/12 - MediaDomain
2022-03-21 21:38:08.000000Z Manifest Library/SMS/Attachments/fc/12 - MediaDomain
2022-03-21 21:38:23.901243Z OSAnalyticsADDaily com.apple.WebKit.WebContent WIFI IN: 551604.0, WIFI OUT: 6054253.0 - WWAN IN: 0.0, WWAN OUT: 0.0
2022-03-21 21:38:24.000000Z Manifest Library/Preferences/com.apple.locationd.StatusBarIconManager.plist - HomeDomain - Косвенным индикатором компрометации является также невозможность установки обновлений на устройство. Некоторые компоненты вредоносной платформы специальным образом изменяют файл настроек com.apple.softwareupdateservicesd.plist, что приводит к ошибке обновления «Software Update Failed. An error ocurred downloading iOS».
Обнаружение в сетевом трафике
На сетевом уровне атаку на устройство можно отследить по последовательности обращений к нескольким HTTPS серверам. Последовательность можно восстановить из журналов netflow, совмещённых с данными запросов DNS/TLS, или из записи сетевого трафика:
- Обращение к легитимным серверам, отвечающим за сервис iMessage service, обычно это доменные имена *.ess.apple.com
- Загрузка вложения iMessage attachment — соединение и входящий трафик с поддоменов .icloud-content.com, content.icloud.com
- Множественные соединения с серверами управления вредоносной платформы. Как правило, при каждой попытке заражения используется пара доменов (известные имена приведены в конце блога). Обычно данное взаимодействие характеризуется значительными объёмами исходящего трафика от устройства.
Вложение iMessage, содержащее эксплойт, зашифровано и загружается по протоколу HTTPS, единственной косвенной характеристикой является его размер — около 242 Кб.
Сервера управления
В результате анализа компрометированных устройств нам удалось определить домены, использованные для заражения и последующего управления вредоносными компонентами. Данный список можно использовать для ретроспективного поиска информации о заражениях в журналах DNS, или для определения устройств с активным заражением:
addatamarket[.]net
backuprabbit[.]com
businessvideonews[.]com
cloudsponcer[.]com
datamarketplace[.]net
mobilegamerstats[.]com
snoweeanalytics[.]com
tagclick-cdn[.]com
topographyupdates[.]com
unlimitedteacup[.]com
virtuallaughing[.]com
web-trackers[.]com
growthtransport[.]com
anstv[.]net
ans7tv[.]net
Операция Триангуляция: ранее неизвестная целевая атака на iOS-устройства
Алексей
Если сервера управления заблокировать через экранное время поможет зашиться?
Securelist
Добрый день, Алексей!
Не поможет: серверы могут поменяться.
Илья
Если отключить работу/использование сервиса iMessage в настройках Сообщений iOS, и перегрузить устройство по hard reset это поможет избавится от работы вредоносной программы и повторного её запуска?
Securelist
Добрый день, Илья!
Да, отключение iMessage и сброс до заводских настроек помогут избавиться от вредоносной программы. Также стоит обновить систему после сброса.
Юрий
Так получается, что достаточно перезагрузить устройство и накатить обновления/либо отключить imessage. Как из статьи следует в 16 версиях ещё не нашли. Значит потенциально подвержены 6, 7, SE версии IPhone, и ещё должен быть включен imessage.
Денис
Не факт, злоумышленник может отследить, что устройство пропало из трекинга и повторно заразить устройство, как я понимаю на данный момент уязвимость является 0-day
Securelist
Добрый день, Юрий!
Если устройство уже заражено, перезагрузки недостаточно. Нужен сброс до заводских настроек, и лучше затем и обновиться, и отключить iMessage. В силу сложности атаки и закрытости iOS мы не можем однозначно утверждать, что версии выше 15.7 не подвержены заражению.
Никита
Есть публичный тикер данной уязвимости (CWE)? Закрыта ли на данный момент эта уязвимость? Если да, то в какой версии iOS?
Securelist
Никита, добрый день!
Вероятнее всего, одна из использованных уязвимостей — CVE-2022-46690. Ее закрыли в iOS 16.2. Однако в силу сложности атаки и трудности анализа iOS, скорее всего, дальнейшее исследование раскроет новые подробности атаки, в том числе, возможно, новые уязвимости, которые эксплуатируют злоумышленники.
Денис
Добрый день,
А почему в новостях указано, что данная уязвимость связана с самой компанией Apple? Из-за того, что эксплойт с уязвимостью нельзя отправить с устройства без специальных средств?
Securelist
Добрый день, Денис!
К сожалению, мы не можем сказать, что имели в виду журналисты, писавшие новости.
Валерий
Бекапы запаролены, пароль забыт. Если сделать сброс настроек (без удаления контента устройства https://support.apple.com/ru-ru/HT213037) и сделать новый бекап, покажет ли утилита компроментацию?
Securelist
Добрый день, Валерий!
После сброса настроек индикаторы компрометации могут быть удалены.