Периодически возникают громкие скандалы с участием известных политиков — их телефонные переговоры и переписка оказываются достоянием общественности, а поскольку политика сама по себе — довольно грязное дело, то и репутации это ой как вредит. Мы сейчас не о пранках: прослушать можно любой телефонный разговор и прочитать любую SMS, а сделать это гораздо проще, чем вы думаете.
Самый недавний скандал был связан со взломом Telegram у двух оппозиционеров, когда через SMS был получен пароль для входа в систему на другом устройстве. До этого выкладывались телефонные разговоры Бориса Немцова и Ксении Собчак. А по данным Эдварда Сноудена, таким же способом спецслужбы США прослушивали всех подряд по всему миру. Но чтобы стать жертвой, не обязательно быть политиком.
Возможно, ваши разговоры никому не интересны, но телефон сегодня является еще и ключом к банковскому счету. Хотя бы потому, что на него приходят SMS-пароли двухфакторной авторизации. И получить доступ ко всему, что проходит через сотовую сеть, можно без всяких «жучков», встраиваемых с смартфон, или подкупа сотрудников правоохранительных органов, имеющих доступ к трафику. Способ очень прозаичен и на первый взгляд выглядит как сцена из фильма про хакеров, где герой нажимает кнопку на своем ноутбуке и тут же включается звук разговора. Но… так и есть!
Verint Skylock — сервис, использующий уязвимость SS7 для определения местоположения произвольного абонента
Первая прослушка
Для понимания того, как это работает, зайдем издалека. Когда-то сотовой связи не было, а был только проводной телефон и аналоговые электромеханические АТС. Когда ваш дедушка звонил вашей бабушке, он набирал номер, а его станция в этот момент подключалась к магистральной линии до другой станции и сообщала, с кем нужно соединить, путем передачи последовательности тональных сигналов. Примерно так же, как сейчас вы в тоновом режиме набираете добавочный номер: на принимающей стороне стоят примитивные фильтры, распознающие ту или иную частоту, разным частотам соответствуют разные цифры — надежная технология, реализуемая с помощью простейших радиодеталей пятидесятых годов прошлого века.
Технология оказалась уязвимой: пропиликав в трубку управляющую последовательность, можно было обмануть АТС и, например, бесплатно поговорить по межгороду. Кстати, мало кто знает, но Стив Возняк и Стив Джобс в том самом легендарном гараже сначала сделали себе по Blue Box (эмулятору сигналов АТС), а уже только потом первый компьютер Apple.
Blue box — прибор для взлома аналоговых сетей связи
В конце 1970-х годов появились первые цифровые АТС. И они для связи друг с другом использовали новый тип сигнализации: SS7, используемый во всех сетях, включая мобильные, до сих пор. Для борьбы с разного рода Джобсами здесь применили простую защиту: голосовой и сигнальный канал разделены физически (в одном тракте 30 голосовых и 2 служебных), и абонент не имеет доступа к сигнальному каналу. Чтобы взломать АТС, хакер должен физически попасть на станцию. Тогда решили, что этого достаточно, поэтому не стали в управляющем канале городить ни шифрования, ни проверки на легитимность команд: если пришла инструкция, оборудование ее выполняет, ведь ну не может же она придти извне!
Долгое время этой защиты хватало, однако на рубеже веков придумали для простоты и экономии расширение SIGTRAN, позволяющее все эти команды передавать по IP-каналам, то есть, через Интернет.
И теперь, сидя где-нибудь на берегу моря с ноутбуком, можно прослушать разговор на другом конце земного шара.
Схема атаки для прослушки разговоров и перехвата SMS
Единственное, что не позволяет так развлекаться любому школьнику — это необходимость доступа к шлюзу, который может иметься только у оператора. Такие шлюзы устанавливаются предприимчивыми людьми в странах с либеральным законодательством в области связи, где купил операторскую лицензию, подключил для проформы пару фиктивных абонентов, арендовал стоечку в ЦОД — и все, продавай доступ к шлюзу на черном рынке. Например, за биткойны.
Атака для отправки USSD-запросов от имени жертвы позволяет украсть деньги с мобильного счета
Как работает?
Атака строится на том, что сначала злоумышленник отправляет в домашнюю сеть абонентов запрос к базе данных HLR на доставку SMS («фишка» здесь в том, что SMS тоже передаются по сигнальным каналам) и таким образом получает в ответ, в каком сегменте сети (VLR), дома или в роуминге находится абонент и каков его IMSI (внутренний идентификатор, используемый при передаче всех управляющих команд). Закрыть эту «дырку» невозможно, потому что не будут ходить SMS и работать роуминг. Зная VLR и IMSI, отправляем туда запрос местоположения абонента и получаем базовую станцию, которой он обслуживается — то есть, знаем, где он, с точностью до нескольких сотен метров.
Если же запустить собственный VLR (софт для Linux лежит в открытом доступе), то можно передать в HLR команду о том, что абонент зарегистрировался в нашем VLR, и теперь все звонки и SMS будут направляться злоумышленнику. Далее их несложно перенаправить легитимному абоненту (ведь известно, в каком VLR он на самом деле), а по пути записать разговор и прочитать SMS (или даже изменить их содержимое). При этом жертва не заподозрит, что между ней и собеседником кто-то вклинился.
Чуть сложнее с исходящими звонками и SMS: здесь нужно подменить в настоящем VLR адрес биллингового сервера с операторского на свой. При наборе номера жертвой туда отправится этот самый номер, ну, а входящий звонок на этот номер мы уже знаем, как мгновенно перехватить.
SMS можно читать и сохранять в удобную таблицу без ведома жертвы
Как защититься?
Есть и множество других действий, которые можно выполнить, купив доступ к шлюзу, а защититься никак нельзя, потому что для этого нужно, по сути, придумывать новый протокол и менять оборудование на всех сетях в мире. А на доходы операторов это никак не повлияет: в этом смысле все они скованы одной цепью, поэтому предпочитают замалчивать наличие таких «детских» уязвимостей. Впрочем, каждый из нас может защититься самостоятельно.
Во-первых, все конфиденциальные переговоры нужно вести строго с глазу на глаз где-нибудь в чистом поле. Или в бане. У обычного человека таких переговоров нет, но зато есть двухфакторная SMS-авторизация во множестве сервисов — от соцсетей до Apple ID и интернет-банка.
Чтобы враг не прошел, достаточно завести для всех этих SMS-паролей отдельный номер телефона (подойдет самый дешевый тариф без абонентской платы), который никто не будет знать. Вот вам и еще одна польза от аппарата с двумя «симками», впрочем, для пущей надежности лучше купить для этого номера отдельный кнопочный аппарат — тогда и трояны, перехватывающие SMS с паролями, вам будут не страшны.