1 августа 2013

Уязвимость шифрования SIM-карт: насколько велика проблема

Бизнес

На конференции Black Hat 31 июля будет представлен доклад исследователя Карстена Нола, в котором тот демонстрирует — экспериментально! — уязвимость в SIM-картах, в теории позволяющая в буквальном смысле «клонировать» таковые. Что это может означать для пользователей? — Как минимум, отличный способ шпионажа, по крайней мере, до тех пор, пока оператор мобильной связи не обнаружит в своей системе два аппарата с одинаковыми идентификаторами. В теории это ставит под угрозу от 500 до 750 млн обладателей SIM-карт, в которых используется стандарт шифрования DES (Data Encryption Standard), — именно в нём Нол и обнаружил уязвимость. Но уже сейчас этот стандарт числится устаревшим, поэтому «всего» от 500 до 750 млн, а не шесть с лишним миллиардов.

Впрочем, 750 миллионов — это уже очень и очень много. Насколько же на самом деле велика угроза? Единства мнений тут нет. Давайте попробуем разобраться в деталях.

Итак, каждая SIM-карта, по сути, представляет собой микрокомпьютер со всеми атрибутами — процессором, оперативным и постоянным запоминающими устройствами (RAM, ROM), микросхемой памяти, поддерживающей шифрование, операционной системой и программным обеспечением, в том числе ключами идентификации. Существуют карты различных стандартов, с различным объёмом памяти и разной функциональностью. Есть карты, на которые при производстве устанавливаются дополнительные приложения (апплеты), такие как SIM-меню, клиенты телебанка, и т.п. Обновление ПО на картах осуществляется с помощью шифрованных SMS — этот метод именуется Over-The-Air Programming (OTA).

Как уже сказано, Карстену Нолу удалось найти уязвимость в ключах шифрования Data Encryption Standard (DES), а точнее взломать шифр с помощью так называемых «радужных таблиц».

«SIM-карта не исполняет некорректно подписанные OTA-команды, но во многих случаях отзывается на попытки её атаковать, пересылая код ошибки, содержащий криптографическую сигнатуру, которая… отправляется посредством двоичного (исполняемого) SMS-сообщения. С помощью радужной таблицы стандартный компьютер преобразует этот сигнатурный кортеж из обычного текста в 56-значный ключ шифрования DES примерно за две минуты», — указывается в описании хака, который осуществил Нол.

Таким образом, злоумышленник может подписать двоичное SMS и послать SIM-карте Java-приложение. «Такие приложения могут, помимо всего прочего, отправлять SMS, изменять номера голосовой почты и запрашивать физическое местоположение аппарата. Всё это предоставляет широкие возможности для злоупотреблений», — говорится в сообщении компании Security Research Labs, в которой работает Нол. Ему удалось взломать Java-песочницы в SIM-картах, которые производят два крупных вендора, и заставить Java-апплеты функционировать вне безопасной среды; тем самым он смог получить доступ к другой информации, хранившейся на карте. «Это позволяет удалённо клонировать множество, возможно, миллионы SIM-карт, в том числе их мобильные идентификаторы (IMSI, Ki), а также дублировать платёжную информацию, если она хранится на карте», — пишет Нол.

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

Однако насколько не следует недооценивать подобные угрозы, настолько же не стоит их и переоценивать. Во-первых, этот способ взлома довольно замысловат, то есть далеко не всякий script kiddie способен его осуществить. Во-вторых, DES — устаревший формат, разработанный в 1970-х годах, и через некоторое время он уйдёт в прошлое. Сейчас он ещё используется примерно в трёх миллиардах карт, а уязвимость присутствует в каждой четвёртой; этот вывод Нол сделал, проверив порядка 1000 карт, функционирующих в мобильных сетях Европы и США. Оттуда и цифра в 750 млн. потенциально уязвимых устройств. На деле, однако, это значение может быть куда меньше. Потенциально уязвимыми являются только те карты, у которых одновременно поддерживаются OTA, функция Proof of Receipt (отправка результата выполнения команды), а OTA-сообщение шифруется с помощью алгоритма DES. Вдобавок, карта должна поддерживать Java, а такие SIM-карты несколько дороже, и не все операторы их закупают.

Сам Карстен Нол заявил, что ещё три месяца назад известил альянс GSMA о выявленных проблемах, и тот уже выпустил рекомендации для своих членов о том, как исправить проблему и избежать возникновения подобных сложностей в будущем.

Что касается мер предосторожности, то самый эффективный способ на данный момент — это смена SIM-карты на более новую. При этом сотовые операторы могут сами удалённо заменить алгоритм шифрования с DES на более надёжный 3DES, а также заблокировать возможность установки и запуска Java-апплетов на самой SIM-карте. К слову, возможно, это уже было сделано, поскольку Нол проинформировал GSMA три месяца назад, и у сотовых операторов было время принять меры. Вопрос в том, приняли ли.

Сам Нол рекомендует установить на мобильные устройства SMS-брандмауэры, которые будут препятствовать приёму SMS из несанкционированных источников. Это, в принципе, позволит уберечься не только от попыток эксплуатировать данную уязвимость, но и от ряда других проблем, связанных с попытками, заразить мобильные устройства вредоносным ПО посредством SMS.