?

Log in

No account? Create an account
dump -0f - /dev/mind
Я знаю Haskell, OCaml, GSM, эндофункторы и много других страшных слов
Wideband GSM Sniffing (доклад на 27C3) 
18th-Jan-2012 10:51 pm
Сегодня по пути на работу я посмотрел доклад 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 :)
Comments 
19th-Jan-2012 04:36 am (UTC) - пара замечаний
Anonymous
Интересный финт ушами, благодаря которому я по-прежнему считаю твои ранние замечания несправедливыми :)
FPGA на заказ действительно делаются, и таки действительно используются - Карстен, конечно, большой умница и его работа наиболее продвинутая среди открытых проектов, но - именно открытых.
Тот факт, что на позапрошлом С3 не было представлено _открытого_ перехватчика говорит только о том, что не было открытого перехватчика - а вовсе не о том, что технология GSM в её нынешнем виде безопасна.
Разница, конечно, скорее терминологическая, но на мой взгляд принципиальная.

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

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

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

Про GPRS - это как раз материал последнего С3 - приятного просмотра :)
19th-Jan-2012 06:41 pm (UTC) - Re: пара замечаний
Нууу :) Вот мне в руки попадали аж два руководства пользователя от суперсекретных коммерческих комплексов прослушивания GSM (тех самых, который for law enforcements only и т.п.). В обоих, безусловно, были мощные "писалки", которые пишут весь диапазон. В обоих были IMSI catcher-ы.

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

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

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

Да, про фильтр я тоже забыл, спасибо!
19th-Jan-2012 05:21 am (UTC)
Правильно ли я понимаю, что этот способ не сработает, если "жертва" в WCDMA?
19th-Jan-2012 08:07 am (UTC)
WCDMA разве используется для передачи голоса ?
это такой себе переGPRS, кмк.
(no subject) - Anonymous - Expand
19th-Jan-2012 05:30 am (UTC)
слишком много натяжек.
Мне кажется одно то, что абонент обязательно будет переключаться между сотами и секторами, полностью исключает практическое применение этой технологии
21st-Jan-2012 03:16 am (UTC)
Anonymous
Абонент будет переключаться между сотами только при пересечении радиограницы - что мало вероятно, если абонент не несётся сломя голову во время разговора.
А что такое "переключени между секторами"? - не помню такого в стандарте.
(no subject) - Anonymous - Expand
19th-Jan-2012 09:56 am (UTC)
JIMHO, если жертву покрепче зафиксировать, чтобы не сбежал к другой соте, то разговоры можно прослушать с помощью китайского набора инструментов ценой значительно ниже $100. Кстати, метод менее зависим от используемых технологий связи :-)
22nd-Jan-2012 02:11 am (UTC)
Anonymous
Паяльники все же лучше советские.
19th-Jan-2012 03:54 pm (UTC)
Если "клюет" - то они получают сведения о TMSI (temporary IMSI), который был выдан абоненту. Если "не клюет" - едут проверять следующий LAC.

Как? Пейджинг идет по TMSI. IMSI там не фигурирует.
19th-Jan-2012 04:42 pm (UTC)
по идее, если телефон не откликнулся по TMSI, сеть может поискать его по IMSI.
но это опять же допущение (телефон должен по какой-то причине не откликнуться по TMSI), которое сильно осложняет им путь к успеху
19th-Jan-2012 06:38 pm (UTC)
Совсем забыл про это написать. См. UPD в теле поста
19th-Jan-2012 04:52 pm (UTC)
посмотрел телефоны, GPRS в пролете, очевидно если в сети включен Network Mode of Operation =1, то метод работать не будет
20th-Jan-2012 01:34 am (UTC) - Juick Digest January 20, 2012
User crazy_daemon referenced to your post from Juick Digest January 20, 2012 saying: [...] Хорошая статья о прослушивании GSM телефонов. users.livejournal.com [...]
21st-Jan-2012 04:07 pm (UTC)
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 .
25th-Jan-2012 10:11 pm (UTC)
http://www.traksbak.com/grc%20gsm%20interceptor.html

Забавно, что тут уже пишут, что A5/0 - fully passive, а все остальное - semi-active.
This page was loaded Nov 19th 2019, 9:51 am GMT.