Полезные знания Теория взлома и устройства сотовых сетей

Наивный чукотский анархист )
nafaniil

nafaniil

Стаж на Мигалках с 2010 года
Старожил
Migalki Club
Регистрация
4/12/15
Сообщения
8.933
Репутация
10.773
Реакции
53.670
RUB
0
Депозит
4 000 рублей
Сделок через гаранта
8
Естественно это копипаст,но для меня например было много нового в этой статье а главное достаточно понятно.

Главная уязвимость находится в протоколах сигнализации ОКС-7 (в западной литературе называется SS7), разработанных в конце 1970-х годов и принятых в 1981-м. Тогда это был прорыв в плане безопасности, потому что для сигнализации (то есть для передачи служебных команд во время установления телефонного соединения) стал использоваться отдельный канал, физически недоступный абоненту. До этого все команды в виде тоновых сигналов передавались прямо в линию и, например, на основе недокументированных функций старых протоколов удалось реализовать АОН на аналоговых АТС: телефонный аппарат отправлял запрос номера и получал от станции ответ. Изначально это было придумано для междугородных АТС, чтобы после набора восьмерки на городской АТС можно было понять, кому выставлять счет за разговор. Однако использование для сигнализации того же канала, что и для разговора, позволило определять номера кому угодно, а особенно продвинутым – и вовсе разговаривать по межгороду за чужой счет путем спуфинга запросов номера.

«Но сигнальный канал же недоступен для абонента!» — скажете вы. Однако дело в том, что в начале 2000-х годов была разработана спецификация SIGTRAN, позволяющая передавать команды ОКС-7 по IP-сетям. И получилось так, что незащищенные протоколы (ведь их разработчики исходили из того, что до сигнального канала никто физически не доберется, поэтому сочли нецелесообразным все усложнять) оказались в общедоступных IP-сетях, и теперь достаточно только компьютера с подключением к Интернету и нехитрого ПО: авторы отчета использовали Linux-систему с установленным SDK для формирования пакетов SS7. Вся идея взлома строится на том, что система не проверяет источник пакета (еще раз: по логике разработчиков, он физически не может появиться извне), поэтому обрабатывает команды злоумышленника точно так же, как и легитимные, позволяя полноценно «вклиниться» и реализовать атаку типа man-in-the-middle. Фильтровать эти пакеты невозможно, потому что нельзя достоверно установить их легитимность
1447664607_vzlom-003.png

Схема подключения для атаки через ОКС-7

Впрочем, немного огорчим кулхацкеров, уже собравшихся похулиганить, не вставая с дивана: для проведения атак недостаточно установить нужное ПО, эмулирующее оборудование оператора. Нужно еще и подключение в качестве оператора, которое, однако, легко купить на черном рынке: в ряде стран, где операторскую лицензию выдают кому попало, подобный «бизнес» процветает, а для успешной атаки не важно, из какой страны ваш «оператор»: заплатил за доступ к шлюзу – и атакуй абонента в любой точке мира. Блокировка пакетов ОКС-7 из-за рубежа в данном случае не спасет, потому что приведет к невозможности работы роуминга и международной связи. Кроме того, получить доступ к сети оператора можно, например, и путем взлома фемтосоты. И наконец, можно вообще быть гуманитарием и просто заказать услугу. Например, ее под брендом SkyLock предлагает компания Verint

1447664617_vzlom-004.png

В рамках сервиса SkyLock можно купить подключение напрямую к оператору через IP-SEC

Прежде чем перейти к описанию самих атак, напомним о том, как устроены сети мобильной связи. У вас есть номер. Например, +79992128506. Это MSISDN (Mobile Subscriber Integrated Services Digital Number). Он не хранится в SIM-карте, как многие думают. В SIM-карте хранится другой идентификатор – IMSI (International Mobile Subscriber Identity), который передается в сеть только во время регистрации абонента. Это 15-значное число вида 250115556667778, в котором 250 – код страны, 11 – код оператора, а остальные 10 цифр – внутренний уникальный номер данной SIM-карты (MSIN, Mobile Subscriber Identification Number). Именно IMSI используется для идентификации абонента внутри сотовой сети, то есть для совершения каких-либо операций с номером.

Информация о соответствии IMSI и MSISDN (то есть у какого абонента какая SIM-карта) хранится в базе данных, именуемой HLR (Home Location Register), причем таких баз может быть несколько – именно поэтому, например, при попытке поменять SIM-карту на новую в салоне оператора может не оказаться SIM-карт именно для вашего номера, так как IMSI имеющихся SIM-карт могут быть уже занесены в другую HLR. При этом для каждого из сегментов сети (коммутаторов) используется аналогичная база данных VLR (Visitor Location Register) — ее отличие заключается в том, что данные в ней хранятся временно, копируясь из HLR при появлении абонента именно в этой части сети. В VLR также хранятся данные о текущем местоположении абонента (чтобы знать, через какую базовую станцию ему направлять входящий звонок и сообщение), настройки переадресации и тому подобное. Всеми этими данными пользуется для своей работы коммутатор, он же MSC (Mobile Switching Center)

1447664663_vzlom-005.png


Итак, как же происходит взлом? Изначально у злоумышленника есть только номер телефона (MSISDN). Чтобы что-то с ним сделать, нужно получить IMSI. Это можно сделать путем формирования запроса на доставку SMS-сообщения из нашей внешней «сети», эмулируемой на компьютере. В этом случае домашняя сеть сообщает в ответ на запрос адрес MSC/VLR, которыми в данный момент обслуживается абонент: эти данные необходимы для того, чтобы узнать, дома абонент или в роуминге, и если в роуминге, то в какой сети, чтобы в этом случае направлять SMS уже непосредственно туда (с голосовым вызовом так не получится, потому что он всегда проходит через MSC домашней сети — и тот уже определяет, как маршрутизировать вызов дальше). При этом происходит и передача IMSI, поскольку он также необходим для маршрутизации. После этой нехитрой процедуры мы имеем IMSI для управления параметрами «учетной записи» абонента, адрес HLR, в котором эти параметры хранятся, а на сладкое – в какой стране жертва сейчас находится.

1447664593_vzlom-006.png

Схема атаки для получения IMSI

Теперь можно получить запрос точного местоположения абонента: атакующий, зная текущий MSC/VLR, отправляет туда запрос о том, какой базовой станцией обслуживается абонент с таким-то IMSI. В ответ приходит уникальный идентификатор БС, по которому через открытые базы данных можно узнать, где она находится, и с точностью до пары сотен метров найти абонента — так же, как определяют местоположение смартфоны с выключенным GPS.

1447664590_vzlom-007.png

Схема атаки для определения местоположения абонента

Почему бы теперь не похулиганить? Давайте сообщим в HLR о том, что абонент зарегистрировался в роуминговой сети: передадим IMSI и адрес нового MSC/VLR. Теперь никто не сможет жертве ни позвонить, ни отправить SMS: домашняя сеть переадресует запросы в никуда, при этом абонент будет по-прежнему зарегистрирован в сети и ничего не заподозрит.

1447664587_vzlom-008.png

Схема атаки для блокировки доступности жертвы

Кстати, а зачем отправлять звонки и SMS в никуда? Не пропадать же добру! Давайте укажем свой MSC/VLR — и весь трафик будет направлен нам! Например, таким образом можно собрать одноразовые SMS-пароли для двухфакторной авторизации в различных сервисах, а это создает почти что неограниченные возможности для кражи денежных средств и учетных записей. А можно просто читать всю SMS-переписку, причем жертва даже не заподозрит, что за ней следят. Дело в том, что SMS требует от MSC/VLR подтверждения его доставки, и если его не отправлять (у нас же не настоящая сеть, а эмуляция, можно получить сообщение, но сказать, что не получали), а вместо этого перерегистрировать абонента на «настоящий» MSC, то через несколько минут будет предпринята еще одна попытка доставки сообщения и оно поступит адресату. То есть одно и то же SMS будет отправлено два раза: сначала вам, потом ему.

1447664656_vzlom-009.png

Схема атаки для перехвата SMS-сообщений, адресованных жертве

Как известно, USSD-запросы всегда работают и в роуминге, позволяя проверять баланс, подключать разные услуги и тарифные опции. Сымитировав USSD-запрос от VLR к HLR (тут нужен MSISDN, адрес HLR и собственно сам запрос в виде комбинации цифр, звездочек и решеток), можно, например, инициировать перевод средств с одного счета на другой. У некоторых операторов для подтверждения этой операции используется SMS-авторизация, но SMS перехватывать мы с вами только что научились.

1447664618_vzlom-010.png

Схема атаки с отправкой USSD-запросов от имени жертвы

Изменив параметры учетной записи абонента в VLR, в частности адрес биллинговой системы, злоумышленник может перехватить запрос на тарификацию исходящего вызова — в нем будет виден номер абонента, которому пытается позвонить жертва. Теперь этого абонента тоже можно сделать жертвой: тот же способ, что и для перехвата SMS, позволит переадресовать вызов на номер злоумышленника, а уже он инициирует конференц-связь с настоящим абонентом, тихо подслушивая разговор. Входящие вызовы, соответственно, прослушать можно тем же способом, но без необходимости эмулировать биллинговую систему. Все эти процедуры проходят за несколько секунд, и никто из собеседников не заподозрит, что между ними есть кто-то третий. Кроме того, можно перенаправить трафик не для прослушивания, а в какой-нибудь дорогой сервис вроде «секса по телефону» и тому подобных: это можно неплохо монетизировать, так как плата за соединение будет списываться со звонящих.

1447664601_vzlom-011.png

Схема атаки с прослушкой разговоров абонента




 
Хорошая статья!
 
Сверху Снизу