dastapov: (new)
[personal profile] dastapov
Начало тут.


В этой истории с атакой мне больше всего было интересно то, что атака происходит через SMS. Ведь все мы писали SMS-ы, и видели, что волшебной кнопки "послать как OTA-апдейт" там нету :)

Как же выглядит весь процесс? Ведь входящие SMS-ы принимаются GSM-модулем телефона, потом отдаются симке, и симка должна как-то определить, что этот SMS надо обработать особым образом - а именно, отдать в SIM Toolkit, в ту его часть, которая занимается OTA.

Какие же именно атрибуты SMS-а изменяют заставляют все элементы цепочки вести себя необычным образом? Я немного порылся, и нарыл вот что.

Начинается все с того, что при отсылке SMS-а надо поставить специальные значения в поля Protocol ID (PID) и Data Coding Scheme (DCS). В PID надо указать, что это "Data Download" (0x7f), в DCS - "Binary message" (0xf6). Дальше в тело SMS-а можно пихать команды, и по приходу такого SMS-а сим-карта отдаст его на обработку в SIM Toolkit.

Каждая командна будет включать в себя Toolkit Application Reference (TAR) - число, которое как-то описывает тип сообщения, и позволяет SIM Toolkit-у по-разному реагировать на разные входящие SMS-ы. По сути, указывая определенное значение TAR мы выбираем, какой именно апплет внутри SIM Toolkit получит тело SMS-а и будет его интерпретировать.

Да, кроме этого в самое начало тела SMS-а нужно вставить специальный заголовок (User Data Header, UDH), в котором вставить цифровую подпись (изначально мы ее не можем сформировать, т.к. не знаем ключа) и указать, что мы (отправитель) шифровать не будем, а будем строго подписывать, и понимаем мы только DES и никакие там AES.

А дальше начинаются плохие новости:
1)Оператор может как за нефиг запретить пересылку между абонентами любых SMS-ов с PID и DCS, отличными от "обычных" (0x00 и 0x00 соответственно). И судя по количеству страдальцев (погуглите "sim pid 7f") обычно так и происходит.
2)Более того, оператор может как за нефиг запретить отсылку подобных SMS-ов даже при прямом подключении к его SMSC
3)Про отсылку из другой сети и говорить нечего.
4)Значения TAR по большому счету не стандартизированы. То, какой TAR надо указать, чтобы SMS был передан менеджеру файловой системы (интерпретирующий команды OPEN FILE, READ FILE, STORE FILE) или в менеджер OTA - зависит от производителя SIM-карты и даже в рамках одного прозводителя они не фиксирован. Производители, понятное дело, эти данные широко не афишируют.
5)Отправитель может сказать "я умею только DES и шифровать не буду", но SIM Toolkit может ответить "ну и пошел нафиг, нешифрованные сообщения не берем"
6)Судя по сведениям энтузиастов криптоданные утекают в сообщение об ошибке у меньшенства SIM-ок, преимущественно старых. (Ну, они могут и ошибаться)

Что же делать? Судя по сведениям от тех же энтузиастов, Карстен предлагает обходит пункты 1-3 путем использования fake BTS (т.е. самопальной базовой), в пунктах 5 и 6 надеется, что ему попадется правильная симка, а до пункта 4 дело не доходит, т.к. атака демонстрирует уязвимость механизма цифровой подписи, а конкретное использование остается упражнением на будущее.

Подводя итог, получается, что из всего этого можно соорудить целевую точечную атаку на конкретный SIM, если порядком попотеть: сделать и подогнать в нужное место базовую (или жертву), знать наверняка (или надеяться), что из сообщений об ошибке "протекут" данные, позволящие подобрать ключ для подписи. А дальше надо выяснить заранее, какие значения TAR использовать, и придумать, что бы такое с полученной дырой делать. Можно слить контакты из SIM-ки, или переписать IMSI :)

Специально для [livejournal.com profile] arkanoid: можно ли таким образом вытащить из SIM-ки Ki и клонировать? Не думаю. И вот почему - допустим, у нас получится залить на симку свой апплет, зарегистрировать его в таблице TAR-ов и послать ему SMS, "активирующий" его. Дальше нам надо будет выбраться за рамки привелегий, данных Java-рантаймом. Допустим, нам это удалось. Дальше нам надо каким-то образом обойти механизм привелегий операционной системы, в которой крутится Java runtime (да, там есть операционка :). А у нее для операций с "файлами" (блоками байтов в EEPROM) есть интересный набор привелегий: Read, Write и Never, при этом блоки с правами Never не читаются даже ядром или процессами с админскими привелегиями. То есть, надо будет искать и эксплойтить дырку в этой ОС. Учитывая сложность разработки и отладки даже аплетов для JavaCard, в универсальный эксплоит такого уровня верится с очень большим трудом.

Итого, лично мое мнение:
1)Карстен - молодец!
2)Апокалиписис, нарисованный СМИ ("миллионы карт под угрозой! вас всех похачат!") - отменяется. Дырка имеет очень узкое применение.

(no subject)

Date: 2013-07-24 09:17 pm (UTC)
From: [identity profile] arkanoid.livejournal.com
Зная общую леность разработчиков, я сомневаюсь, что механизмы защиты JCRE ими считаются недостаточными и на все остальное не забили сто лет назад. Разве что такие же карты делают для NSAшных спецприложений и руку сбивать неохота.

(no subject)

Date: 2013-07-24 09:27 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
А там не стандартное JCRE. Там, как я понял, совершенно отдельная тема с ключами разного уровня крутости, которыми надо подписывать свои классы, чтобы получать нужный уровень привелегий, и для "админских" привелегий на девелоперских картах ключ идет в составе SDK, а на боевых - есть у только у производителя.

(no subject)

Date: 2013-07-24 09:31 pm (UTC)
From: [identity profile] arkanoid.livejournal.com
ну так вот не факт, что в JCRE нет дырок, позволяющих это обойти.

(no subject)

Date: 2013-07-24 09:32 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Сорри, вместо JCRE прочитал вначале JRE

(no subject)

Date: 2013-07-24 09:20 pm (UTC)
From: [identity profile] kaa.livejournal.com
а как же аркеной кредитными-то картами пользуется? ;-)

(no subject)

Date: 2013-07-24 09:27 pm (UTC)
From: [identity profile] dil.livejournal.com
А там дополнительные приложения не предусмотрены и джавы вообще нет ;)

(no subject)

Date: 2013-07-24 10:48 pm (UTC)
From: [identity profile] dmarck.livejournal.com
а вот не факт, кстати. другое дело, что простому пользователю об этом вряд ли сообщат ;)

(no subject)

Date: 2013-07-25 09:23 am (UTC)
From: [identity profile] dil.livejournal.com
Ну даже если туда удастся что-нибдуь лишнее залить, у кредитки, в отличие от телефонной карты, нет телефона, чтоб сливать данные наружу :)

(no subject)

Date: 2013-07-25 12:49 am (UTC)
From: [identity profile] mds.livejournal.com
есть уже. google global platform

(no subject)

Date: 2013-07-25 06:52 am (UTC)
From: [identity profile] elfadmin.livejournal.com
Global platform к Гуглу не имеет никакого отношения, более того, Гугл пару месяцев назад отказался от обязательного требования Security element для Google wallet.
Edited Date: 2013-07-25 06:52 am (UTC)

(no subject)

Date: 2013-07-25 08:47 am (UTC)
From: [identity profile] blacklion.livejournal.com
google это глагол тут.

(no subject)

Date: 2013-07-25 09:31 am (UTC)
From: [identity profile] dil.livejournal.com
Global platform - это стандарт. Есть сведения, что он реально применяется в платёжных картах?

(no subject)

Date: 2013-07-25 12:51 pm (UTC)
From: [identity profile] mds.livejournal.com
да. в мастеркарде, как минимум.

(no subject)

Date: 2013-07-25 12:55 pm (UTC)
From: [identity profile] dil.livejournal.com
Давно? У меня есть несколько старых ненужных мастеркардовских карт :)

(no subject)

Date: 2013-07-25 01:25 pm (UTC)
From: [identity profile] mds.livejournal.com
это довольно новая тема - карта, как носитель доп. функций. и да, там есть nfc, как часть платформы.

(no subject)

Date: 2013-07-25 01:27 pm (UTC)
From: [identity profile] dil.livejournal.com
Тогда у меня, значит, старые, там NFC ещё нет. Есть только в визе, но она пока действующая, и мне её на опыты жалко :)

(no subject)

Date: 2013-07-25 08:49 am (UTC)
From: [identity profile] blacklion.livejournal.com
(шёпотом) есть. А теперь ещё и NFC есть.

(no subject)

Date: 2013-07-25 09:21 am (UTC)
From: [identity profile] dil.livejournal.com
Ага, и это меня напрягает. Тем более, что тут некоторые придумали способ общаться с NFC-картми на расстоянии порядка метра, и это меня напрягает особенно сильно.

Но всё равно это не означает, что туда можно загрузить дополнительный софт.

Upd: https://www.blackhat.com/us-13/briefings.html#Brown
Edited Date: 2013-07-25 09:50 am (UTC)

(no subject)

Date: 2013-07-24 09:26 pm (UTC)
From: [identity profile] dil.livejournal.com
Свою собственную SIM-карту можно засунуть не в телефон, а напрямую в программатор, и скармливать в неё что угодно, и ответы читать напрямую. Никакую базовую станцию имитировать не придётся. Правда, придётся эмулировать телефон, но это, пожалуй, попроще будет, вроде есть даже opensource'овые реализации.
Универсальный эксплойт, конечно, очень маловероятен, но под конкретные карты можно попробовать. Есть шанс, что производители не предусматривали специальной защиты данных от приложений внутри карты. Надо проверять.

(no subject)

Date: 2013-07-24 09:37 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Судя по том, что пишут в JavaCard spec ("Applet Isolation and Object Sharing", "Applet Firewall", "Method invocation across contexts" - сорри, на вебу этого нет, но отдается с сайта оракла по поиску "javacard spec") шары нету :(

(no subject)

Date: 2013-07-25 07:02 am (UTC)
From: [identity profile] arkanoid.livejournal.com
Никто и не рассчитывал, что защиты вообще нет. Насколько корректно она реализована, другой вопрос.

(no subject)

Date: 2013-07-25 07:03 am (UTC)
From: [identity profile] elfadmin.livejournal.com
Только Оракл застенчиво не уточняет, что механизмы эти неявно предполагают что апплет прошел верификатор, который для javacard ВНЕШНИЙ т.к. на самой карте ресурсов для такой работы просто не хватает. Если действительно есть возможность загрузки произвольных аплетов - нету особой проблемы выбраться из sandbox т.е. можно получить плюс минус доступ ко всему что доступно JCRE. Хотя так на вскидку как вытащить ключи я не вижу, но я и не криптограф.

(no subject)

Date: 2013-07-24 09:40 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Имея собственную сим-карту можно даже не эмулировать телефон - если я правильно помню GSM 11.14, можно прямо обращаться к SIM Toolkit. Дальше вопрос тех самых ключей для подписи своих аплетов для засовывания их в Toolkit.

(no subject)

Date: 2013-07-24 10:01 pm (UTC)
From: [identity profile] dil.livejournal.com
Ну, собственно, да, весь телефон эмулировать не обязательно, только то, чего ожидает от него карта.

(no subject)

Date: 2013-07-24 10:46 pm (UTC)
From: [identity profile] dmarck.livejournal.com
Sorry for nitpicking, но всё же привилегии ;)

(no subject)

Date: 2013-07-25 05:18 am (UTC)
From: [identity profile] qwe13.livejournal.com
>3)Про отсылку из другой сети и говорить нечего.

не особо вижу варианты на каком оборудовании эти вх. смски будут анализироваться.

(no subject)

Date: 2013-07-25 08:31 am (UTC)
From: [identity profile] komarov.livejournal.com
Если и нет какого-нибудь модуля в SMS-центре на шлюзе для смсок, входящих от других операторов, то после этой новости они его придумают. А там, разве не подойдёт решение — резать все бинарные смски от чужих?

(no subject)

Date: 2013-07-25 09:25 am (UTC)
From: [identity profile] qwe13.livejournal.com
SMSC получателя не участвует в доставке вх. SMS сообщений. Абонент оператора А отправлят смс абоненту оператора Б, то смски проходят через SMSC-А, а в SMSC-Б они в общем случае не попадают.

ну я немного поспешил, я думаю наверное есть вариант блокировать трафик на STP в связке с какими нибудь антифорд системами, но интересно узнать мнение более знающих специалистов, есть ли в них возможность такого глубокого анализа.

(no subject)

Date: 2013-07-25 08:46 am (UTC)
From: [identity profile] blacklion.livejournal.com
Я вот чего не понимаю — там же payload сколько, 140 байтов? Сколько же надо SMS'ок что бы прошивку SIM-карты обновить?!

(no subject)

Date: 2013-07-25 09:21 am (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Так прошивку таким образом никто и не обновляет. Типицный юз-кейс - это поменять номер SMS-центра, заслать настройки для инета, заслать какой-то контакт на симку (номер колл-центра), заслать новые пункты меню. Все это отлично влазит в СМС, ну максимум в два.

(no subject)

Date: 2013-07-26 10:04 pm (UTC)
From: [identity profile] kzayko.livejournal.com
>> 3)Про отсылку из другой сети и говорить нечего.
Практика показывет, что вот как раз это проконтролировать и сложнее всего :)
Оператор не может запретить отсылку себе каких-то специфичных СМС из другой сети и, как правило не может контролировать доставку (если работает "по ГОСТу").
ЕМНИП, контроль этих параметров если и ведется, то на СМС-центре.
А "чужие" СМСки туда не попадают.

Многие, конечно, начали фильтровать межсетевой трафик всякими аналогами DPI
для семерки, но даалеко не все.

(no subject)

Date: 2013-07-31 09:05 am (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
А я запамятовал, как контролируется "reply via same SMSC" - его можно запросить для конкретного SMS-а? А если нет, то не пойдет ли ответ через SMSC оператора жертвы, где его можно отфильтровать?

(no subject)

Date: 2013-07-31 07:53 pm (UTC)
From: [identity profile] qwe13.livejournal.com
"reply via" выставляется для каждой отдельной SMS-ки в заголовке.

но дальнейшую мысль я не уловил.

Новое, прекрасное

Date: 2013-07-29 09:42 am (UTC)
From: [identity profile] golosptic.livejournal.com
http://top.rbc.ru/society/29/07/2013/867920.shtml

Вы не могли бы прокомментировать техническую реализуемость?
Особенно в части выключеных телефонов.
Edited Date: 2013-07-29 09:42 am (UTC)

Re: Новое, прекрасное

Date: 2013-07-31 03:25 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
http://users.livejournal.com/_adept_/125718.html

(no subject)

Date: 2013-07-30 06:47 pm (UTC)
From: [identity profile] pash7ka.livejournal.com
Присоединяюсь к просьбе [livejournal.com profile] golosptic, также об этом писали в http://izvestia.ru/news/554378

(no subject)

Date: 2013-07-31 03:25 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
http://users.livejournal.com/_adept_/125718.html

Profile

dastapov: (Default)
Dmitry Astapov

April 2017

M T W T F S S
     12
3 45 6789
10111213141516
17181920212223
24252627282930

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags