Перейти к содержимому

Эксклюзивное интервью: Взлом iPhone через SMS

    1652314862

    Вступление

    Недавно мы поговорили с экспертом по безопасности Чарли Миллером из Independent Security Evaluators о недавно обнаруженной уязвимости iPhone, которая позволила бы злоумышленнику получить контроль над iPhone с помощью серии тщательно продуманных SMS-сообщений.

    Алан: Спасибо, что нашел время поболтать, Чарли. Почему бы вам не начать с небольшого рассказа об уязвимости SMS?

    Чарли: Ошибка iPhone связана с тем, что он сообщает телефону, что есть определенный объем данных, а затем не отправляет их столько, сколько вы обещали. Функция, которая считывает данные, начинает возвращать -1, чтобы указать на ошибку, но другие части программы не проверяют наличие этой ошибки и на самом деле считают -1 данными из сообщения. Это показывает, насколько сложным может быть написание безопасного кода, так как по отдельности каждая часть программы выглядит правильно, но то, как они взаимодействуют, опасно!

    В любом случае, в зависимости от того, что вы отправляете, могут случиться разные плохие вещи. В какой-то момент вы можете заставить его выйти, потому что он собирается выделить -1 байт (который рассматривается как 0xffffffff — очень большое число). Это отказ в обслуживании, при котором телефон временно отключается от сети.  

    Во время моего выступления в BlackHat мы каждые 10 секунд отправляли это сообщение об отказе в обслуживании добровольцу из аудитории, чтобы он не подключался к сети. Как прискорбное последствие, сообщения стали появляться в сети, а его телефон все еще отключался через несколько часов после разговора. С тех пор он снова встал и работает.

    Алан: Примечание для наших читателей: всякий раз, когда Чарли говорит, что ему нужен доброволец, не смотрите ему в глаза. Итак, как вы отправили сообщение? Вы отправляли его через интерфейс SMS другого iPhone или делали что-то вроде отправки по электронной почте « номер телефона @ attwireless »?

    Чарли: Для отправки SMS по сети оператора у нас было небольшое приложение на атакующем iPhone, которое общалось с модемом с помощью AT-команд GSM. Для тестирования и поиска ошибок мы использовали эту действительно крутую структуру внедрения, которую написал мой содокладчик Коллин Маллинер, которая позволяет вам тестировать реализации SMS-сообщений, отправляя данные только по TCP. Это избавляет вас от необходимости отправлять данные по сети оператора и ничего не стоит, а также позволяет очень быстро тестировать множество сообщений.

    Алан: Итак, как перейти от отказа в обслуживании к полноценному эксплойту?

    Чарли: Худший случай связан с тем, как программа обрабатывает составные сообщения. Это способ отправки более 140 байт за раз. Вы можете отправить длинное сообщение в серии сообщений, и телефон преобразует его в одну длинную строку. Он обращается к массиву на основе значения из данных. В случае, когда он думает, что читает -1, он на самом деле обращается к памяти перед массивом, а не в массиве. Настроив все правильно и хитро, вы можете использовать это, чтобы получить полный контроль над устройством.

    Вся атака занимает чуть более 500 сообщений, хотя жертва не знает, что они отправляются, потому что они не отображаются на телефоне. Большинство этих сообщений связаны с настройкой вещей «в самый раз». Шестнадцать из них фактически обращаются к массиву за его пределами.

    0 0 голоса
    Rating post
    Подписаться
    Уведомить о
    guest
    0 comments
    Межтекстовые Отзывы
    Посмотреть все комментарии
    0
    Оставьте комментарий! Напишите, что думаете по поводу статьи.x