Сотовые сети: взлом проще простого

Взломать сотовые сети очень просто, а противостоять этому — практически невозможно. Операторы не готовы принять ответственность и потратить миллионы на защиту клиентов.

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

Сотовые сети: взлом проще простого

Тогда речь шла о перехвате ключей из эфира, их раскодировании и последующем создании временных «клонов» SIM-карт. Современные мощные компьютеры могут сделать это за считаные минуты, в отличие от своих предшественников в 1991 году, — именно тогда создавался стандарт GSM, и именно на те вычислительные мощности была рассчитана стойкость ключей.

Операторы предпочли не афишировать проблему и через подконтрольных ведущих мобильных аналитиков вбросили в СМИ какую-то наукообразную чушь про автоматическое подключение к сетям Wi-Fi — что, кстати, тоже является серьезной брешью в безопасности, это правда, но проблема была все-таки не в этом.

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

Метод называется «атака через SS7». SS7, или, по-русски, ОКС-7, — это система сигнализации, используемая в сотовых сетях и разработанная еще в 1970-е годы для первых электронных АТС.

Вы будете смеяться, но никакой защиты в ОКС-7 нет: сигнальный трафик никак не шифруется, а отличить легитимные команды от поддельных невозможно — оборудование исправно выполняет все команды, которые получает, неважно, из какого источника.

Причина такого безобразия очень проста: при использовании SS7 сигнальный канал физически отделен от голосового, и поэтому, как справедливо полагали разработчики протокола 40 лет назад, никто чужой к нему доступа получить не может, кроме персонала телефонной станции.

Да и смысла в этом никакого не было: тогда, кроме команды на установление соединения с таким-то абонентом, ничего интересного и не передавалось. Так что нелегитимных пакетов можно было не опасаться.

Однако в 2000 году была придумана система передачи команд SS7 по IP-каналам, и теперь получилось так, что доступ к сигнальному каналу стал возможен извне.

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

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

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

Что же можно сделать, узнав номер телефона жертвы? Для начала нужно получить IMSI (International Mobile Subscriber Identity) — это условный внутренний идентификатор SIM-карты в сети, с помощью которого впоследствии и происходит взлом. Для этого используется SMS. Стоит напомнить, что сервис SMS изначально появился как недокументированная «фича» протокола. Так что сообщения передаются как раз по сигнальному каналу.

Если сформировать запрос на отправку SMS абоненту по его номеру, то сеть оператора, в которой он обслуживается (а именно HLR — основная база данных, где хранятся параметры учетной записи), пришлет в ответ идентификатор SIM-карты (IMSI) и адрес текущего коммутатора (MSC) и временной базы данных (VLR), в которой хранятся параметры на время пребывания абонента в конкретном месте.

Мол, вот тебе IMSI и адрес сегмента сети, где сейчас наш абонент: отправляй сообщение для этого IMSI на тот MSC/VLR. Адрес основной базы данных HLR при этом тоже становится доступным. Зная все эти адреса и идентификаторы, можно отправлять разные интересные команды.

Например, можно запросить идентификатор базовой станции, которая в данный момент обслуживает абонента. Используя этот идентификатор (а он уникален) и открытую для всех желающих базу данных в Интернете, можно получить местоположение абонента с точностью до нескольких сотен метров. При этом есть специальные программы, которые делают всю процедуру автоматически: вы вводите номер, а через пару секунд получаете точку на карте. Удобно же!

Можно послать в HLR команду на смену VLR и «подставить» несуществующий, заблокировав таким образом прохождение входящих звонков и сообщений.

Есть и еще более интересный вариант: можно указать адрес «своего» MSC/VLR, который вы эмулируете на компьютере, благо пакет SS7 для Linux доступен для свободного скачивания. В этом случае можно перехватывать сообщения и звонки, причем делать это незаметно.

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

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

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

Подменив адрес биллинг-платформы на свой, а потом вернув его обратно, мы получим нужный номер. Жертва, соответственно, сможет совершить звонок только со второго раза, но вряд ли что-то заподозрит (кстати, регулярное прохождение исходящих звонков только со второго раза — верный признак того, что вас прослушивают).

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

У обычного же пользователя можно утащить пару сотен рублей со счета, отправляя от его имени USSD-команды услуги «Мобильный перевод» либо переадресовывая его звонки на платные номера и продавая такой трафик.

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

Альтернативный вариант — сложный анализ активности всех абонентов с целью выявления потенциально вредоносных действий. Некоторые ИТ-компании предлагают автоматизированные решения, по принципу работы напоминающие антифродовые системы банков.

Однако операторы не торопятся оповещать публику о внедрении подобных решений. Поэтому рядовой абонент не имеет возможности узнать, защищен он от описанных неприятностей или нет.

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

Security Week 47: {не}взломанный Tor, Gmail предупреждает о дешифровке, атака штрихкодами

В новом выпуске дайджеста о кибербезопасности мы рассказываем о самых главных происшествиях уходящей недели. Разные происшествия объединяет одна общая черта — в ИТ безопасности нет ничего стабильного. Меняется все: от самой постановки проблемы до масштаба угроз.

Советы

Как отключить слежку в iOS?

У вас есть iPhone, iPad или iPod? Потратьте несколько минут на настройку служб геолокации, чтобы сэкономить заряд батареи и сохранить конфиденциальность перемещений.