Атака «Триангуляция» начиналась с отправки на телефон вредоносного сообщения через сервис iMessage. Сообщение содержало вложенный файл в формате PDF. Как теперь известно, в этом файле был спрятан эксплойт, который задействовал уязвимость в обработчике шрифтов TrueType в iOS. Крайне интересно, что уязвимость была найдена в недокументированной инструкции Adjust: информации о ней практически нет, лишь в древних версиях Windows есть ссылка на эту инструкцию с указанием, что она применяется только в компьютерах Apple. Ошибка в коде (который патчем от Apple был просто удален и, скорее всего, не менялся с 90-х годов прошлого века) приводила к выполнению произвольного кода. Важно, что владельцу телефона даже не надо было каким-то образом взаимодействовать с присылаемым сообщением или аттачем.
В процессе развития атаки также обходилась система Pointer Authentication Code, которая в более современных устройствах Apple отвечает за требование подписи указателей в коде. В результате эксплуатации уязвимости в ядре iOS, известном как XNU, организаторы атаки получили доступ на чтение и запись ко всей оперативной памяти устройства. Еще одна уязвимость позволила обойти механизм защиты
Эксплойт для Safari задействовал уязвимость, позволяющую выполнить шелл-код. Этот код еще раз задействовал уязвимости для обхода систем защиты Pointer Authentication Code и Page Protection Layer. В результате вредоносный код снова получал привилегии суперпользователя и дальше уже запускал шпионское ПО. Именно уязвимость
Из шести используемых в атаке адресов MMIO два представляют наибольшую опасность: они позволяют непосредственно обращаться к оперативной памяти и записывать туда произвольные данные. Таким образом можно перезаписывать код пользовательских программ, ядра ОС, а также обходить различные механизмы защиты, включая Page Protection Layer. Для того чтобы команда на запись в память была выполнена, в регистры MMIO нужно записать сами данные в особом формате, а также их хеш, рассчитанный по уникальному алгоритму. Метод расчета хеш-функции был без особого труда восстановлен экспертами «Лаборатории Касперского» путем анализа вредоносного кода. То есть он работает как средство защиты только до тех пор, пока никто не знает о существовании такой функциональности. Примечательно, что эти же регистры присутствуют в SoC Apple M1 и M2, но ссылок на них в коде настольной операционной системы Mac OS также нет.
Ответа на логичный вопрос, откуда такая опасная аппаратная фича взялась в SoC Apple, нет. Можно предположить, что эта функция использовалась при отладке, и потом ее забыли выключить. Как о ней узнали злоумышленники? Тут тоже можно строить разные теории. Например, что информация о «секретных» регистрах MMIO была в какой-то момент случайно опубликована либо в исходных кодах ядра, либо в какой-то документации для разработчиков. Apple закрыла данную уязвимость, запретив отображение конкретных аппаратных регистров в память.
Операция «Триангуляция» представляет пример крайне сложной атаки, в которой использовалось сразу несколько уязвимостей «нулевого дня». То, что атаку удалось не только обнаружить, но также получилось подробно проанализировать всю цепочку событий, начиная с первоначального заражения, — это большое достижение специалистов «Лаборатории Касперского». Организаторы атаки предприняли немало усилий для того, чтобы сохранить информацию о своих инструментах взлома в тайне. Исследователи предполагают, что вся сложная конструкция с «двойным» получением прав суперпользователя была сделана для того, чтобы шпионское ПО запускалось только на избранных устройствах, после двухэтапной проверки. Расследование вновь подтверждает, что метод защиты security through obscurity, в надежде на то, что скрытые механизмы безопасности никогда не будут проанализированы, не работает. Несмотря на то что для крайне опасной аппаратной «функции» был применен механизм авторизации, расчет был только на то, что о фиче никто никогда не узнает. Но рано или поздно даже такие секреты становятся достоянием общественности.
Что еще произошло
Еще одна интересная презентация с конференции 37с3
Также можно посмотреть
Интересная
28 декабря компания Microsoft