dastapov: (Default)
[personal profile] dastapov
Сегодня по пути на работу я посмотрел доклад Karsten Nohl и Sylvain Munaut с 27-го Chaos Communication Congress, также известного как 27C3 (да, я в курсе, что он был чуть ли не год тому назад, но мне было не до грибов :). Видео можно найти тут по словам "wideband GSM sniffing".


Далее - заметки, сделанные в процессе просмотра.

После доклада авторов 26C3 (про который я писал тут) они связывали с операторами, и операторы, помимо прочего говорили - "уязвимости в криптографии - это одно, а вот поди перехвати и запиши все" (я, собственно, писал о том же самом). Тогда, напомню, они собирались показать перехват на практике, но что-то не срослось. Демонстрацию пришлось отложить на год, до 27C3.

Авторы обещают, что, имея только номер телефона, можно узнать местоположение абонента, а затем прослушивать его разговоры. Забегая наперед скажу, что тут есть некоторое художественное преувеличение :)

Для обнаружения местоположения они используют интернет-сервисы, которые дают возможность вбрасывать в сеть SS7 запросы "send routing info". Напомню, что SS7 - это сеть/стек протоколов, которые используются для общения телефонных операторов (GSM и "наземных") друг с другом и для общения компонент сети GSM друг с другом. Тут пока все ОК, сервисы такие натурально есть.

Далее авторы делают интересный финт ушами. Они говорят: а вот в Германии, например, полученное в результате запроса "волшебное число" хорошо коррелирует с area code/zip code. Поэтому мы можем послать такой запрос и понять с точностью до города или даже части города, где в Германии находится этот абонент. Перефразируя классику, надо заметить, что то, что немцу хорошо - русскому смерть :) То есть, никто не обязывает оператора делать именно так, и с Германией им крупно повезло.

Ладно, едем дальше. Они узнали город. Что потом? Потом они берут сниффер (про него отдельно), едут в этот город и начинают "посещать" все его LAC-и (т.е. группы сот, в рамках которых происходит поиск телефона). Приехав на территорию, которая входит в какой-то LAC, они посылают жертве SMS и слушают, идет ли paging телефона жертвы (это происходит по незашифрованному каналу, во всех базовых сразу). Если "клюет" - то они получают сведения о TMSI (temporary IMSI), который был выдан абоненту. Если "не клюет" - едут проверять следующий LAC.

UPD: Совсем забыл рассказать! Поскольку IMSI при пейджинге не передается (и они его не знают), а передается только TMSI (который они и хотят узнать), то производится timing attack. Они посылают несколько SMS-ов с паузами между ними, и смотрят, для каких TMSI производится paging, повторяя процедуру до тех пор, пока в списке "подозрительных" TMSI не останется только один (или ни одного).

Чтобы жертва их "не спалила", SMS посылается не простой, а такой, который не будет показан абоненту (это или специально сделанный flash sms, или кривой-битый SMS, который телефон "прожует и выплюнет", а пользователю не покажет)

Выяснив LAC, они начинают посещать все соты этого LAC, посылать SMS-ы и слушать, отзывается ли кто-то на paging. Если да, то жертва кэмпится вот в этой соте, и можно начинать 1)ломать ее сессионный ключ (Kc) и 2)слушать ее разговоры.

Но для начала поговорим про то, как же записывать происходящее в эфире. Тут было сказано несколько интересных вещей:
1)Существуют делаемые на заказ FPGA-платы, которые способны одновременно писать все каналы либо uplink, либо downlink частот GSM, но стоит такое железо 40-50К, и простому исследователю безопасности недоступно (смех в зале). Карстен упоминает, что не видел готовых устройств, которые используют такое железо, но ведь если его делают - то значит это кому-то же нужно?
2)можно брать менее мощное и более дешевое железо служать часть частот на каждом из них. Можно вписаться в 3.5К EUR с решением на базе USRP2.
3)А можно сначала сломать сессионный ключ, и потом декодировать траффик "на лету" и следовать за frequency hopping-ов при помощи четырех телефонов, в которых вместо родной прошивки - OsmocomBB. Ключевая тема номер один - OsmocomBB допилили до пригодного к использованию состояния как раз за год, прошедший с 26C3 до 27C3, так что я все свои ранние комментарии считаю справедливыми - на тот момент действительно не было практического работающего решения.

Как же они ломают сессионный ключ? Находясь в одной соте с жертвой, они посылают ей SMS, записывают общение жертвы с базовой, и ломают ключ, пользуясь тем, что во время session setup ходит много пакетов полу-пустых или с предсказуемым содержимым. Для ускорения взлома используются rainbow tables. Ключевая тема номер два - на момент 26C3 rainbow tables были не такие модные, и взлом делался отнюдь не за минуты и даже не за десятки минут (авторы, ЕМНИП, упоминают час). То есть, до 27C3 даже у Карстена (основного двигателя прогресса в этой области) не было решения, которое позволяло взломать Kc за приемлемое время (в течении которого, скорее всего, не произойдет rekeying).

Дальше они пользуются тем, что редко кто делает rekeying после каждого звонка или SMS, и сессионный ключ, который они узнали, не будет меняться в течении какого-то времени. Теперь, зная ключ, они могут декодировать зашифрованный траффик к/от жертвы в режиме реального времени, и делать frequency hopping одновременно с жертвой. Для захвата эфира в этом случае реально достаточно четырех перепрошитых телефонов, так как не требуется писать все частоты и даже все таймслоты.

Далее все это было продемонстрировано вживую. Условия, опять же, были слегка тепличные - "жертва" сидела на месте, обслуживалась одной сотой.

Вот теперь я верю, что Карстен Нол действительно может сделать достаточно дешевое/"наколенное" решение для перехвата GSM-разговоров :) (Надо бы пройтись по старым постам, и сделать ссылку сюда).

Традиционно, не обойдется без "но":
1)Эта технология не существует в виде, доступном script kiddies. Есть даже не конструктор, а заготовки для деталей конструктора, которые надо обтачивать и подгонять по месту. В демонстрации неоднократно говорят: "вот это мы еще не зарелизили, и когда зарелизим - непонятно". Т.е. на основании этих наработок китайцы не клепают тысячами устройства за 100 баксов, которые "берут и слушают".
2)OsmocomBB поддерживает только одно семейство чипов. Я не знаю, насколько редки телефоны на этом чипе - похоже, не очень. Но когда-то они кончатся, и придется ждать нового Sylvain Munaut, который расхачит какую-то другую прошивку :)
3)Определение местоположения по запросам к HLR и перебору LAC - это способ, работающий скорее в теории, чем на практике. На практике вы или знаете, где находится жертва физически, или у вас баааальшие проблемы с тем, чтобы попасть в ту же соту, в которой сидит жертва.
3а)Если вы не можете послушать ту же соту, в которой кэмпится жертва - способ не работает.
4)Если жертва перемещается между сотами (кэмпится в разных сотах) - у вас опять проблемы, вам надо быть в той же самой соте
5)Этот способ не подходит для перехвата GPRS
6)Если в сети регулярно происходит rekeying или меняются TMSI (справедливости ради, непохоже, чтобы кто-то всерьез этим занимался), то это способ не работает вообще.
7)Если жертва параноидальна, она может "спалить" процесс ее "нащупывания" и ломания Kc.
8)Слушать кого ни попадя не получится - надо знать номер телефона

С момента окончания 27C3 прошел почти год, и можно бы проверить, зарелизили ли таки весь софт, необходимый для повторения этого эксперимента в домашних условиях кем-то, кто не разбирается в устройстве радиоинтерфейса GSM, но у меня руки не дошли. Никто из читателей не любопытствовал?

Ну, и, как правильно замечают авторы, забороть этот конкретный способ достаточно легко:
1)Вместо константного байта использовать для паддинга пустых GSM-сообщений случайные значения
2)Менять Kc после каждого звонка
3)Менять TMSI как можно чаще

Пунты 2 и 3 должны, по идее, реализовываться простой переконфигурацией элементов сети (не требуют апгрейда прошивок или железа). Было бы желание

На очереди - видео с 28C3 :)

пара замечаний

Date: 2012-01-19 04:36 am (UTC)
From: (Anonymous)
Интересный финт ушами, благодаря которому я по-прежнему считаю твои ранние замечания несправедливыми :)
FPGA на заказ действительно делаются, и таки действительно используются - Карстен, конечно, большой умница и его работа наиболее продвинутая среди открытых проектов, но - именно открытых.
Тот факт, что на позапрошлом С3 не было представлено _открытого_ перехватчика говорит только о том, что не было открытого перехватчика - а вовсе не о том, что технология GSM в её нынешнем виде безопасна.
Разница, конечно, скорее терминологическая, но на мой взгляд принципиальная.

Про поддержку чипов - OsmocomBB поддерживает 2 типа чипов TI Calypso и MTK - причём это чуть ли не самые массовые GSM чипы на планете, так что закончатся они ещё очень и очень не скоро. Хотя китайский стоит подучить - по слухам на профильных форумах разработчиков периодически утекают спеки чипов.

Про софт - Карстен упоминал в рассылке, что часть софта он из принципа не собирается релизить, как раз из соображений защиты от script-kiddies.

Ещё один важный, но не упомянутый момент: телефоны, используемые в демонстрации требуют аппаратной модификации - нужно убрать фильтр с антенны, а то телефоны чужой аплинк не увидят.

Про GPRS - это как раз материал последнего С3 - приятного просмотра :)

Re: пара замечаний

Date: 2012-01-19 06:41 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Нууу :) Вот мне в руки попадали аж два руководства пользователя от суперсекретных коммерческих комплексов прослушивания GSM (тех самых, который for law enforcements only и т.п.). В обоих, безусловно, были мощные "писалки", которые пишут весь диапазон. В обоих были IMSI catcher-ы.

Но в обоих функциональность "listening to A5/1 encrypted calls" выглядела как "введите вот сюда Kc, и мы вам все расшифруем" :)

Поэтому это еще бабушка надвое сказала - были такие закрытые комплексы или нет. Я их не видел и про них не знаю, и именно это и пишу. Я, конечно, не бог весть какой спец, но других данных у меня нет.

Про чипы - спасибо за уточнение!

Да, про фильтр я тоже забыл, спасибо!

(no subject)

Date: 2012-01-19 05:21 am (UTC)
From: [identity profile] dizel-by.livejournal.com
Правильно ли я понимаю, что этот способ не сработает, если "жертва" в WCDMA?

(no subject)

Date: 2012-01-19 08:07 am (UTC)
From: [identity profile] ekrava.livejournal.com
WCDMA разве используется для передачи голоса ?
это такой себе переGPRS, кмк.

(no subject)

Date: 2012-01-19 08:12 am (UTC)
From: [identity profile] dizel-by.livejournal.com
WCDMA - технология радиоинтерфейса. А голос или данные там бегают - уже другое дело.

(no subject)

Date: 2012-01-19 09:05 am (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Я слишком мало знаю про радиоинтерфейс WCDMA, чтобы что-то утверждать наверняка

(no subject)

Date: 2012-01-21 03:21 am (UTC)
From: (Anonymous)
Конкретно этот способ не будет работать даже с GSM при внедрении А5/3 к примеру.
Про "испорченный kasumi", используемый в wcdma видел статьи по взлому, но открытой практической реализации атаки пока не попадалось.

(no subject)

Date: 2012-01-19 05:30 am (UTC)
From: [identity profile] ilatovski.livejournal.com
слишком много натяжек.
Мне кажется одно то, что абонент обязательно будет переключаться между сотами и секторами, полностью исключает практическое применение этой технологии

(no subject)

Date: 2012-01-21 03:16 am (UTC)
From: (Anonymous)
Абонент будет переключаться между сотами только при пересечении радиограницы - что мало вероятно, если абонент не несётся сломя голову во время разговора.
А что такое "переключени между секторами"? - не помню такого в стандарте.

(no subject)

Date: 2012-01-21 09:56 pm (UTC)
From: [identity profile] kzayko.livejournal.com
Абонент может переключаться с интенсивностью раз в -надцать секунд стоя на месте и никуда не двигаясь :). Причин моджет быть куча - от проезжающего паровоза или дождя до прошедшего за спиной человека (особенно в помещении). Качество радиоканала падает - и пожалуйста, на другую соту.

(no subject)

Date: 2012-01-24 05:45 am (UTC)
From: (Anonymous)
Ну да, нам может так "повезти", что пользователь окажется точнёхонько на радиогранице и будет там упорно стоять никуда не двигаясь всё время, пока мы пытаемся перехватить его трафик.
По-моему это ещё менее вероятная ситуцация, чем движение сломя голову через радиограницу.
Речь ведь вроде идёт про технологию в целом, а не про исключительные случаи? :)

(no subject)

Date: 2012-01-25 10:05 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Стоп-стоп. Скачки же абонента "на границе" будут регулироваться пресловутым параметрами С1 и С2, которые рулят частотой такого скакания? Так что пока "жаренный петух не клюнет", он же должен держаться за соту (ну, в разумных пределах).

По-моему, так.

(no subject)

Date: 2012-04-11 10:51 am (UTC)
From: [identity profile] kzayko.livejournal.com
А они рулят не частотой, а уровнями :)
Частота скорее определяется интервалом сканирования и таймерами телефона.

(no subject)

Date: 2012-01-19 06:40 am (UTC)
From: [identity profile] bugzilla.livejournal.com
мышки плакали, кололись, но всё равно продолжали жрать кактус

(no subject)

Date: 2012-01-19 09:56 am (UTC)
From: [identity profile] blinohod.livejournal.com
JIMHO, если жертву покрепче зафиксировать, чтобы не сбежал к другой соте, то разговоры можно прослушать с помощью китайского набора инструментов ценой значительно ниже $100. Кстати, метод менее зависим от используемых технологий связи :-)

(no subject)

Date: 2012-01-22 02:11 am (UTC)
From: (Anonymous)
Паяльники все же лучше советские.

(no subject)

Date: 2012-01-19 03:54 pm (UTC)
From: [identity profile] kzayko.livejournal.com
Если "клюет" - то они получают сведения о TMSI (temporary IMSI), который был выдан абоненту. Если "не клюет" - едут проверять следующий LAC.

Как? Пейджинг идет по TMSI. IMSI там не фигурирует.

(no subject)

Date: 2012-01-19 04:42 pm (UTC)
From: [identity profile] andrey bessonov (from livejournal.com)
по идее, если телефон не откликнулся по TMSI, сеть может поискать его по IMSI.
но это опять же допущение (телефон должен по какой-то причине не откликнуться по TMSI), которое сильно осложняет им путь к успеху

(no subject)

Date: 2012-01-19 06:38 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Совсем забыл про это написать. См. UPD в теле поста

(no subject)

Date: 2012-01-19 09:38 pm (UTC)
From: [identity profile] kzayko.livejournal.com
На сколько-нибудь нагруженной LA, когда таких сообщений тысячи вряд ли взлетит... Нужно расшифровывать весь трафик всего LA, пытаясь найти корреляцию. А пейджинг работает по определению не в момент отправки, а в определенные временные окна и пачками (по пейджинг-группам со своими очередями, номер которой суть остаток от деления IMSI на количество каналов, которое в каждой соте может быть свое)- что опять же усложняет жизнь.Особенно, учитывая смену TMSI (пускай, даже не на каждое событие).

Дальше. Пускай, LA мы нашли. Дальше надо нащупать ответ абонента
Передатчик телефона имеет мощность 1-2 ватта. Соответственно, просканировать его с расстояния нескольких десятков метров - та еще задача. Получаем парадокс: LA накрывает, например, целую область (утрировано, но город на сотню тысяч- вполне реально), например, полста сот, у некоторых из которых радиус действия доходит до 30 км. и пытаемся поймать - и расшифровать - на ненаправленную антенну излучение, которое на сети ловится двухметровой антенной с полящиком железа (для одного частотного канала)?
Или они ловят не "хакнутыми телефонами"? Все же в поле это выглядит малореально без автобуса с радио-железом, причем аналоговым по большей части :)
А с такого расстояния, на котором реалистичным выглядит перехват сигнала телефона, намного эффективнее направленный микрофон IMHO :)

(no subject)

Date: 2012-01-19 09:42 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Ну, конкретно авторы ловят свои собственне телефоны, лежащие в двух метрах рядом :)

Хотя они говорят, что выпилили из мобилки фильтр, после чего стало возможным слышать и аплинк, и даунлинк со 100 метров.

(no subject)

Date: 2012-01-19 10:07 pm (UTC)
From: [identity profile] kzayko.livejournal.com
И всех мобилок, находящихся ближе чем жертва, причем чем ближе - тем лучше.

P.S. Вот, оказываеццо зачем фильтр в радиоканал ставят! Чтобы мобилка сильно далеко не принимала!

Расскажу одну байку, эксплуатационных времен.
Повадились бабушки в в городе, широко известном по роману Фадеева жаловаться на то, что опосля установки антенн на крыше близлежащего сарая у них телевизор показывать перестал. Выключаем БС - работает. И, что характерно, проблема массовая. Народ толпами в исполком жаловаться бежит. Нас уже из города выгонять начинают тихой сапой.
У базовиков все в шоке: как же так - в ТВ 450 Мгц у нас - 900, нам до них еще тянуться и тянуться чтобы перекрыть сигнал. Решили сходить в гости к одному. Оказалось - в город недавно завезли китайские "активные антенны" для ТВ с усилителями в ДМВ-диапазоне. И вот как раз из них-то фильтр китайцами и выпилен - из экономии. Потому антенна, успешно принимая 900 Мгц сигнал, отдавала его на незащищенный фильтром усилок, который от такой мощности входил в насыщение и просто клеил ласты.

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

P.P.S. Даже в самом простом радиоприемнике есть фильтр, который позволяет ему слушать ровно одну радиостанцию, а не все одновременно :)
Edited Date: 2012-01-19 10:08 pm (UTC)

(no subject)

Date: 2012-04-09 05:50 pm (UTC)
From: [identity profile] timeforward.livejournal.com
Скажите, а почему требуется 4 телефона?
Edited Date: 2012-04-09 06:35 pm (UTC)

(no subject)

Date: 2012-04-11 11:03 am (UTC)
From: [identity profile] kzayko.livejournal.com
Скорее всего, для того, чтобы писать два канала:
1й - тот, в котором BCCH, пейджинг и прочий контроль
2й - тот, который выделен абоненту для разговора.
Для каждого - по два, чтоб писать прием и передачу.
Наверное, можно обойтись и одной парой, перестраиваясь вслед за жертвой - но
потребуется более сложная логика управления, и можно что-то пропустить.

Как настроить приемники в телефоне на область частот передатчика MS (она на 45 Мгц ниже)тоже секрет не раскрыт :)

небольшое уточнение

Date: 2012-01-21 03:30 am (UTC)
From: (Anonymous)
Paging летает в открытом виде, так что никакой необходимости "расшифровывать весь трафик всего LA" нет.

Про грузовичок с железом и перехват телефонами - таки вам не приходило в голову, что демонстрация практической осуществимости атаки на конференции это не совсем то же самое, что и промышленный продукт, готовый к массовому использованию? :)

Могу подсказать: атака без проблем портируется на промышленные перехватчики, руководства к которым читал Дмитрий. Был там "автобус с радиожелезом"?

Re: небольшое уточнение

Date: 2012-01-21 09:52 pm (UTC)
From: [identity profile] kzayko.livejournal.com
>Paging летает в открытом виде, так что никакой необходимости "расшифровывать весь трафик всего LA" нет.

Я имел ввиду, что разобрать достаточно большой объем трафика - тоже не легкий труд. Да, он незашифрован, но его очень много. В одном LA вполне может быть 100-200К абонентов. И всем им довольно часто звонят/пишут. А для того, чтобы вычислить TMSI "профайлингом" нужно обрабатывать весь поток событий, следя за обновлениями TMSI и ловя нужные именно нам.

>Про грузовичок с железом и перехват телефонами - таки вам не приходило в голову, что демонстрация практической осуществимости атаки на конференции это не совсем то же самое, что и промышленный продукт, готовый к массовому использованию? :)

Так вся статья была именно о том, что перехват на практике не реален. Мои тезисы в ту же сторону, если кто-то не заметил.
Я вовсе не сомневаюсь в том, что показали именно то, о чем писал адепт.

>Могу подсказать: атака без проблем портируется на промышленные перехватчики, руководства к которым читал Дмитрий. Был там "автобус с радиожелезом"?

Подсказывать не надо, читать мы и сами можем. Речь как раз о том, что перехват радиосигнала "в пределах стола" и "в пределах города" - это настолько разные вещи, что без автобуса сейчас, увы, никак ...

Re: небольшое уточнение

Date: 2012-01-24 05:50 am (UTC)
From: (Anonymous)
cast _adept_ :)
Дмитрий, те перехватчики, руководства к которым вы читали - были размером с автобус или меньше?
Я правильно понимаю, что за счёт специализированного FPGA они вполне могут осилить декодирование трафика LA для поиска paging с целью выделения целевого TMSI?

Re: небольшое уточнение

Date: 2012-01-25 10:06 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Увы, там для операторов только. Т.е. скриншоты экранов, без внешнего вида.

А пейджинг - он нешифрованный, тут FPGA не нужно. Надо коррелировать только, по идее, чтобы понять, кто есть кто.
Edited Date: 2012-01-25 10:14 pm (UTC)

(no subject)

Date: 2012-01-19 04:52 pm (UTC)
From: [identity profile] andrey bessonov (from livejournal.com)
посмотрел телефоны, GPRS в пролете, очевидно если в сети включен Network Mode of Operation =1, то метод работать не будет

Juick Digest January 20, 2012

Date: 2012-01-20 01:34 am (UTC)
From: [identity profile] pingback-bot.livejournal.com
User [livejournal.com profile] crazy_daemon referenced to your post from Juick Digest January 20, 2012 (http://crazy-daemon.livejournal.com/209262.html) saying: [...] Хорошая статья о прослушивании GSM телефонов. users.livejournal.com [...]

(no subject)

Date: 2012-01-21 04:07 pm (UTC)
From: (Anonymous)
Тематические фото с последнего Milipol-а - https://picasaweb.google.com/110310618089554803287/Milipol2011?authuser=0&authkey=Gv1sRgCLjQsLfb6dClMg&feat=directlink#5673033108505805170 ,
https://picasaweb.google.com/110310618089554803287/Milipol2011?authuser=0&authkey=Gv1sRgCLjQsLfb6dClMg&feat=directlink#5673033159436950930 .

(no subject)

Date: 2012-01-25 10:11 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
http://www.traksbak.com/grc%20gsm%20interceptor.html

Забавно, что тут уже пишут, что A5/0 - fully passive, а все остальное - semi-active.

Profile

dastapov: (Default)
Dmitry Astapov

July 2017

M T W T F S S
     12
3456789
1011 1213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags