dastapov: (Default)
[personal profile] dastapov
С легкой руки Киви Берда по просторам этого вашего интернета пошла гулять статья про один из докладов на SOURCE Boston 2010. Доклад был посвящен уязвимостям сетей мобильной связи, и именно поэтому он (surprise-surprise!) будет главным героем сегодняшнего поста.

Слегка паникерскую версию того, что накопали Ник ДеПетрилло и Дон Бэйли, вы можете почитать по ссылке выше. Или можете сходить на ProIt и почитать еще более паникерскую версию. А я вам попробую рассказать, что же было в докладе на самом деле :)

Господа ДеПетрилло и Бэйли в своей работе ссылаются на доклад Тобиаса Энгеля с CCC'2008 об определении местоположения мобильных абонентов. Он критичен для понимания происходящего, поэтому с него и начнем. На сайте ССС доступны  слайды этого доклада, причем их можно читать, как статью - они содержат очень мало смысловых пропусков.

Преамбула: что же пишет Энгель?
В чем заключается его способ определния местоположения абонента при помощи SS7?
  1. Сеть, которая вас сейчас обслуживает (в общем случае, вы находитесь где угодно на Земле, не обязательно в вашей родной сети), знает ваше текущее местоположение с точностью примерно до соты -ей это нужно, чтобы доставлять вам входящие звонки (слайд 5)
  2. Если в распоряжении злоумышленника есть SMS-центр, легально подключенный к глобальной сети SS7, то он может узнать ваше местоположение с точностью до сети при помощи MAP-запроса MAP_SEND_ROUTING_INFO_FOR_SM (слайды 9, 10). Более конкретно, злоумышленник, зная всего лишь ваш номер, может узнать ваш IMSI (номер сим-карты), адрес коммутатора, который вас сейчас обслуживает, и состояние вашего телефона - выключен или нет. То есть, злоумышленник получает какую-то новую информацию, которой у него не было (IMSI), и узнает вашу текущую страну и, возможно, сеть+адрес коммутатора в ней.

    Как это происходит? SMS-центр злоумышленника делает вид, что собирается послать вам SMS. По номеру вашего телефона можно смаршрутизировать запрос в вашу сеть: "куда сейчас направлять SMS-ы для этого адресата?" В ответ HLR вашей сети, содержащий сведения о вашей SIM-карте, сообщает все вышеназванные сведения. SMS-центр злоумышленника сохраняет эти данные, а саму посылку SMS не производит.
Что это дает злоумышленнику? Ну, выяснит он, что вы сейчас в Зимбабве. Но где конкретно в Зимбабве вы находитесь? Ведь SS7-адрес коммутатора в Зимбабве, который вас обслуживает, позволит злоумышленнику в лучшем случае определить оператора, которому этот коммутатор принадлежит, и все.

Тут у Энгеля и его партнеров возникла идея: если заполучить телефонную книгу мобильных номеров Зимбабве (с именами и адресами), то можно дождаться ночи (когда все дома и спят), и запросить местоположение у большого количества абонентов. Далее мы соотнесем полученный адрес коммутатора с номером абонента и его адресом из телефонной книги, и узнаем, какие коммутаторы обслуживают какие города/районы. (слайды 13-20)

Бинго! Теперь можно уточнить ваше местоположение в Зимбабве до какого-то города или более-менее некрупного района.

Правда, весь этот хитроумный план держится на том, что в распоряжении злоумышленника есть SMS-центр. Откуда же он возьмется? Энгель утверждает, что уже существуют компании, продающие сервис "lookup данных абонента по подобной схеме" (слайд 21). В настоящий момент услугами таких компаний пользуются те, кто занимается SMS-фродом и рассылает SMS-ы от имени произвольных SMS-центров (куда, по идее, и выставляются счета за разосланные спамером SMS-ы) - см. слайд 22.

Вы еще не устали? :) Тогда я расскажу вам, на какие проблемы может натолкнуться использование этой схемы на практике:
  1. На весь Зимбабве может отказаться ровно один коммутатор. Т.к. определение местоположение идет с точностью до коммутатора, злоумышленники не смогут уточнить ваше местоположение внутри страны. Вместо Зимбабве можно подставить "Зажопинский район России/Украины" - смысл от этого не поменяется
  2. В Зимбабве может не быть телефонной книги или другого способа привязать номер мобильного к предполагаемому местоположению абонента. Например, в России/Украине/Белоруссии все операторы раздают номера абы как, и телефонных книг не выпускают.
  3. Шквал запросов MAP_SEND_ROUTING_INFO_FOR_SM с очень большой вероятностью приведет к тому, что сеть жерты "завбанит" отправителя таких запросов до выяснения обстоятельств. Причем, это может произойти в автоматическом режиме буквально за 10-15 минут.
  4. Если сервис, позволяющий (по HTTP, WebServices, ...) "дернуть" MAP_SEND_ROUTING_INFO_FOR_SM, используется для SMS-фрода, то его будут выслеживать и "банить" фрод-подразделения операторов, попадающих под удар.
  5. Оператор сети жертвы может использовать другую схему организации доставки SMS (слайды 23, 24).
Итоги: злоумышленники могут определить ваше местоположение с точностю до "зоны обслуживания коммутатора", с учетом нескольких "если". Самое главное "если" звучит так: "если существует какой-то способ привязать номера телефонов в вашей стране к ожидаемому местоположению абонента - это может быть телефонная книга или план нумерации, привязанный к административному разделению страны".

Амбула: как использовали эти наработки ДеПетрилло и Бэйли?

К сожалению, видео доклада (пока?) недоступно, поэтому придется ограничиться слайдами.

Во-первых, они использовали базу NPANXX (доступную любому желающему за, кажется, $70) для того, чтобы отобразить телефонные номера в грубое ожидаемое местоположение абонента. Это был их аналог телефонной книги Германии, использованной Энгелем. (стр. 14 презентации ДеПетрилло и Бэйли)

Далее, телефонные номера, отнесенные таким способом к определенному географическому положению, были разделены на физлиц/юрлиц/госкомпании. Как? При помощи "АОНа". В США при звонке с мобильного номера на наземный короткое имя абонента автоматически сообщается наземному телефону (см. слово CNAM на стр. 22). Товарищи исследователи совершали звонки на свой наземный телефон, подменяя номер звонящего абонента на номер человека, данные которого они хотели собрать. И на их наземный телефон услужливо приходил CNAM с именем абонента, чей номер они подставляли вместо своего. (см. стр 23)

Более того, в части CNAM-ов им приходили не только имена, но и адреса (для компаний). Кроме того, они использовали какой-то сервис типа телефонной книги, доступный через веб (стр. 25)

Все это позволило им вычислить приблизительные граници зон контроля MSC для США (стр. 28), аналогично тому, как это сделал Энгель для Германии.

Остаток презентации посвящен двум вещам:
  1. Если злоумышленники хотят ловить свою жертву IMSI catcher-ом, то теперь у них есть чуть больше инфы о том, где примерно географически стоит искать эту самую жертву.
  2. Если злоумышленники занимаются взломом voicemail-а путем подмены номера звонящего (т.е. звонят на voicemail жертвы, подставляя ее же номер, и получая таким образом доступ к сообщениям), то доп. информация о жертве (какой оператор и коммутатор ее обслуживают) позволяет снизить риск поимки злоумышленника.

Развязка: что это значит в наших реалиях?

Стоило бы пригласить ДеПетрилло и Бэйли в Россию и на Украину для показательного выступления в условиях, приближенных к боевым :)

Ведь тут:
  1. Нету ничего подобного телефонным книгам Германии или штатовской базе NPANXX
  2. Нету ничего подобного АОН-у, показывающему имена/адреса звонящего
  3. Операторы строже следят за фродом, т.к. фрода больше и ущерб от него больше (соотв. трюки с массовыми запросами информации через MAP_SEND_ROUTING_INFO могли быть подавлены оператором в зародыше)

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

Выводы
С моей точки зрения, обнаруженная "дыра" состоит из трех частей:
  1. несовершенная схема маршрутизации MAP при отправке SMS - эту проблему адресует стандарт 3GPP TS 23.079, и альтернативный роутинг раньше или позже будет внедрен у всех операторов
  2. как следствие, утечка технических данных о абонентах через недобросовестных интерконнект-партнеров (через те самые сервисы, которые дают возможность через интернет дернуть MAP_SEND_ROUTING_INFO)
  3. утечка приватных (или условно-приватных) сведений из других источников (телефонные справочники, white pages, ....)
Дыра с voicemail перпендикулярна этой уязвимости.

Что можно сделать? Если реализовать альтернативные схемы роутинга при отправке SMS, то лавочка, фактически, прикрывается.

Если же нет "телефонной книги", то можно жить и с "классической" схемой роутинга.

А, чуть не забыл: покажите мне кто-то хоть одну контору, которая продает возможность засылать MAP_SEND_ROUTING_INFO, а? Я сам искал по злачным местам - не нашел.

Теперь можете перечитать статью Киви Берда еще раз :)

PS
Спасибо оператору наведения [livejournal.com profile] kzayko, который прочел слайды ДеПетрилло и Бэйли раньше меня, и в процессе их обсуждения сделал множество ценных комментариев.

(no subject)

Date: 2010-05-01 09:51 pm (UTC)
From: [identity profile] borbelyua.livejournal.com
ага, как-то работает в правильных странах с правильными исходными данными)

(no subject)

Date: 2010-05-01 10:16 pm (UTC)
From: [identity profile] shmyg.livejournal.com
Насчет "строже следят за фродом" у нас - не согласен. В нашей любимой компании за ним _вообще_ практически не следят, особенно последнее время. Если бы не люди в черном из НКРС, то и вообще бы, наверное, забили на все. Поскольку львиная часть новых подключений (да и старых) делается у дилеров, то любимая компания просто переписывает договоры с ними так, чтобы ответственность несли они. И умывает руки.

(no subject)

Date: 2010-05-03 03:47 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Тут бы вылез роуминговый фрод. Неужели и на него забили тоже?

(no subject)

Date: 2010-05-03 08:01 pm (UTC)
From: [identity profile] shmyg.livejournal.com
Мне сложно сказать. Ты же знаешь - там теперь сидят незнакомые люди :). Но то, что все (ну или практически все) переложили на дилеров - 100%.
Фрода море. Знаю не понаслышке :)

(no subject)

Date: 2010-07-01 06:40 pm (UTC)
From: [identity profile] ne-moy.livejournal.com
при таком кол-ве абонентов фрода всегда будет море, но круглосуточная смена вроде работает )

(no subject)

Date: 2010-05-05 07:36 pm (UTC)
From: [identity profile] ghrar.livejournal.com
не забили. при выявлении борьба продолжается, но с переменным успехом.

(no subject)

Date: 2010-05-01 10:17 pm (UTC)
From: [identity profile] bugabuga.livejournal.com
Любопытно, как именно разрешается проблема переноса номера :) В смысле даст ли SS7 имя конечного обслуживающего центра, или посредника, которым пользуются местные операторы (вот префикс моего сотового до сих пор значится как "Т-Мобиль" но на самом деле уже много лет АТТ :))
И что будет с CDMA операторами.

Бонус -- CNAM бывает произвольным и мало поддерживаемым :) То бишь при попытке получения caller id будет приходить и Unavailable и Wireless Caller и ATT Mobility и даже имя, если повезло :)

А могли бы просто купить у одной из контор, собирающих данные, запрос в базу с сотовыми, и адресами за 10 баксов и не мучались-бы.

(no subject)

Date: 2010-05-01 10:56 pm (UTC)
From: [identity profile] rootkid.livejournal.com
очередная попытка Гражданских заполучить права Структур)

(no subject)

Date: 2010-05-01 11:20 pm (UTC)
From: (Anonymous)
если фрод входит в состав финансовой дирекции, то он часто даже не знает что такое СС7, не говоря уже о "MAP_SEND_ROUTING_INFO"...

(no subject)

Date: 2010-05-02 09:00 am (UTC)
From: [identity profile] shmyg.livejournal.com
Не встречал пока компаний, где фрод входил бы в какой-то другой департамент, кроме финансового. И - таки да - часто видел, что люди даже не знают основ GSM. Главное - поставить софт, который будет рисовать красивые графики и выводить алерты.

контора

Date: 2010-05-02 06:55 am (UTC)
From: [identity profile] mtve.livejournal.com
вот (http://www.smssubmit.se/en/hlr-lookup.html) например.

Re: контора

Date: 2010-05-02 04:41 pm (UTC)
From: [identity profile] kzayko.livejournal.com
Странная контора....
Где они такие цифры MCC-MNC взяли - непонятно
Ukraine Kyivstar GSM JSC 25567
Ukraine Ukrainian Mobile Comms 25550

(no subject)

Date: 2010-05-10 08:10 am (UTC)
From: [identity profile] senism.livejournal.com
Эти зарубежные товарищи чего-то не договаривают, мне кажется... Обнаружили дыру, которой сто лет в обед :))
Существует вполне официально такая MAP операция, как Provide_Subscriber_Info, которой можно запросить текущее местоположение абонента (причём с выполнением PAGING на радиочасти). Почему-то про это ни слова не написано :)) А ведь вариант SRI4SM+PSI - элементарен...

(no subject)

Date: 2010-11-12 07:45 am (UTC)
From: [identity profile] root4me.livejournal.com
http://www.numberportabilitylookup.com/register
5 халявных hlr пробивок .
Отдает нумер сети , msc , imsi .
Грабли в том , что списка кодов msc по городам у нас нет . Есть правда коды мобильных операторов :
http://www.mtt.ru/info/def/index.wbp
И как бы через них можно вычислить msc конкретного города .
В любом случае для большого города , где несколько msc нужно знать где они стоят чтобы сказать точнее . Да и вообще соль статьи в callerid . Это мимо нас .

Senism . Вот вы интересные вещи задвигаете . Можно как-то где-то узнать подробнее ?




(no subject)

Date: 2010-12-03 08:43 am (UTC)
From: [identity profile] pustota1.livejournal.com
Интересная такая комбинация из одного MSC и продвинутого SS7 фильтрующего SendRoutingInfoForSM по всякому, а так ничего.

(no subject)

Date: 2011-01-31 05:54 pm (UTC)
From: [identity profile] rainbow-beast.livejournal.com
Попытался я использовать такие сервисы (задача очень проста, на самом деле - для voip надо определить, есть ли указанный номер вообще на связи - хоть у домашнего оператора, хоть в роуминге). Отдают совершенно среднепотолочную информацию. То активной показывают карту, которая уже неделю на столе лежит, то всё корректно и шустро обновляют, то для живой карты показыввают, что вообще номер некорректный, то прсто тупят с обновлением минут по 30...
В общем, если там и есть что-то работающее, то полагаться на него не стоит.

By the way - может, есть другие способы "для простых смертных" определения, доступен ли нужный номер?

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