Dmitry Astapov (_adept_) wrote,
Dmitry Astapov
_adept_

Category:

GSM: Если хочешь достать мед -- главное дело в том, чтобы пчелы тебя не заметили.

Пух обхватил голову лапами и задумался глубоко-глубоко.
-- Вот какая история, -- сказал он. -- Если хочешь достать мед -- главное дело в том, чтобы пчелы тебя не заметили. И вот, значит, если шар будет зеленый, они могут подумать, что это листик, и не заметят тебя, а если шар будет синий, они могут подумать, что это просто кусочек неба, и тоже тебя не заметят. Весь вопрос -- чему они скорее поверят?
-- А думаешь, они не заметят под шариком тебя?
-- Может, заметят, а может, и нет, --  сказал Винни-Пух. -- Разве знаешь, что пчелам в голову придет?

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

Начнем с поиска материалов о чудо-устройствах. Искать будем по словам "fake base station", "GSM man-in-the-middle", отсеивая все публикации в желтой прессе, не содержащие фактического материала. Из того, что осталось, я выбрал два характерных примера:
  • Статья IMSI-catcher на Wikipedia
  • Раздел 10.5.4.4 (стр. 248) книги "Information Security" by Mark Stamp (Wiley, 2006) (раздел доступен для чтения через Google Books по указаной ссылке).
По обоим ссылкам речь идет о устройстве, которое, с одной строны, изображает из себя базовую станцию, а с другой стороны - само содержит в себе SIM-карту. Используется оно следующим образом:
  1. Поддельная базовая (ПБ) размещается неподалёку от жертвы (и ее мобильного телефона);

  2. Поддельная базовая начинает свою работу, анонсируя себя в эфире как базовая станция, принадлежащая мобильной сети, которой пользуется жертва. Благодаря искусному размещению (см. п.1) у ПБ должен быть замечательный уровень сигнала; Впрочем, тут есть ньюансы (см. ниже)

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

    Тут надо остановится подробнее на механизме смены camped cell. Каждая базовая сети GSM транслирует в эфир так называемый neighbor list - перечень частот географически соседних с ней базовых. Список этот - часть "конфига" базовой, и управляет им оператор. "Сидя" в какой-то соте, телефон получает от нее список соседей, и периодчески проверяет мощность сигнала от текущей соты и от ее соседей, и, возможно, принимает решение переключится на другую соту.

    Но для переключения новая базовая должна быть не просто "чуть лучше" старой, она должна быть существенно лучше. Казалось бы, если телефон жертвы не спешит менять camped cell - ему можно помочь, ставя радиопомехи на частотах всех остальных ближайших базовых. Но тут есть две проблемы (см. ниже)

  4. Телефон жертвы переходит кэмпится в ПБ. А онаему и говорит: "Я, милый друг, принадлежу другой location area, так что сделай-ка ты перерегистрацию в сети (location update)". Подробнее про location area и location update читайте тут;

    Кстати, алгоритм выбора camped cell включает в себя пенальти за переход в другую location area, что нужно учесть в п.3.

  5. Телефон жертвы делает location update, а ПБ ему и говорит: "О, кстати, совсем забыла сказать - отключай-ка, милый друг, шифрование". Телефон, понятное дело, отключает.
На этом подготовительные операции завершаются. Дальше, допустим, жертва решает позвонить кому-то. Вызов обслуживается поддельной базовой, совершается без шифрования - соотв. на ПБ разговор можно взять и без проблем записать/прослушать. А как же вызов доходит до адресата? Очень просто - в поддельной базовой есть своя SIM-карта, и с её помощью ПБ, как нормальный мобильный телефон, совершает звонок "от своего имени". Понятно дело, что при этом надо использовать CLIR (сокрытие номера вызывающего абонента).

А если кто-то звонит жертве? Тут, увы, вариантов нет  - в "нормальной" сети телефон жертвы не регистрировался, а ПБ со своей SIM-картой не может принять звонок, адресованный не ей. То есть, входящие звонки жертве обламываются с диагностикой "абонент за зоной покрытия".

Получается, доля правды в сообщениях о подобных устройствах есть - действительно, технически возможно сделать устройство, которое будет изображать из себя базовую станцию, и использовать это устройство для прослушивания исходщих разговоров жертвы. Однако, атака получается довольно "грязной", жертва может легко сорваться с крючка или заподозрить неладное. Перечислим недостатки метода:
  • В ПБ может кэмпится много абонентов, если мы не знаем IMSI жертвы - то нам надо играть в угадайку
  • Если в ПБ только одна своя SIM-карта, то она может обслуживать только один исходящий звонок в произвольный момент времени. Если мы хотим создать видимость нормальной работы для более чем одного человека, надо усложнять радиочасть ПБ и втыкать в нее больше SIM-карт. Либо же организовывать uplink с ПБ каким-либо иным образом.
  • ПБ должна начать вещание на частоте, входящей в neighbor list текущей camped cell жертвы. Но ее знает только телефон жертвы, и запросить эту информацию с него нельзя. Надо, опять же, играть в угадайку. Или выключать все легитимные базовые в этом районе вообще.
  • Глушить соседние базовые для форсирования перехода телефона в зону ПБ бессмысленно. Во время выбора соты уровень интерференции не измеряется никогда, а оценивается только уровень мощности на данной частоте. Поэтому любая "забивалка" только повысит мощность сигнала, измеряемую телефоном. И телефон автоматом будет выбирать именно такую частоту и, соответственно, базовую. Получается, надо рассчитывать только на умелое размещение ПБ и направленные антены :)
  • Если жертва не находится на месте (ходит, ездит, как-то еще перемещается в пространстве), то она может выйти из зоны покрытия ПБ и переключиться на другую базовую. Да, ПБ может сама транслировать пустой neighbor list, и это приведет к тому, что телефон будет держаться за нее до последнего. Но если сигнал от ПБ вдруг все-таки хоть на мгновение пропадет, то телефон пересканирует эфир и подключится к любой легитимной базовой, и ПБ не в силах это запретить;
  • Жертву может насторожить символ "шифрование отключено" на экране телефона
  • Жертву может насторожить невозможность получать входящие звонки
  • Жертву может насторожить сообщение о том, что ее номер не определяется у вызываемых абонентов
  • У тех, кому звонит жертва, может быть включена услуга анти-CLIR (как там оно правильно называет?) - "отмена запрета показа номера вызывающего абонента". В таком случае получатели звонка сразу увидят номер, связанный с SIM-картов в ПБ, и могут уведомить жертву
  • SIM-карта в ПБ должна быть того же самого оператора, что и у жертвы, иначе жертва может случайно услышать незнакомый анонс типа "абонент не может вам ответить" и что-то заподозрить
  • SIM-карта в ПБ должна иметь активированным тот же набор услуг, что и у жертвы
Получается слишком много минусов, самые главные из которых - это невозможность прослушивать подвижную жертву, отключение шифрования, и невозможность организации входящих звонков. Согласитесь, что это приемлемо для краткосрочной целевой акции, но недопустимо для долговременного широкомасштабного прослушивания. Как с Винни-Пухом - можно взять в руки синий шарик и прикинуться тучкой, но пчелы почти наверняка что-то такое начнут подозревать.

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

Q: А что, если кто-то научился делать ПБ, не требующие отключения шифрования?
A: Это означает, что такая ПБ может авторизовать жертву в сети. Для этого ПБ должна: а)знать секретный ключ (Ki) SIM-карты жертвы, б)поддерживать тот же алгоритм A38, что и центр аутентификации (AuC) компании-оператора. И то, и другое - не слишком легкие и наказуемые законом вещи.

Чтобы узнать секретный ключ, нужно либо иметь доступ к данным о SIM-карте на этапе ее производства, либо иметь доступ к AuC или биллинговой системе оператора, обслуживающего жертву. Ладно, допустим, что взятки решают все, и ключ получен.

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

Если надо работать с разными операторами, то может оказаться, что все они используют разные реализации А38.

Q: А если ПБ просто служит "прокси" в процессе аутентификации, передавая туда-сюда траффик, разве при этом нельзя обеспечить включение шифрования у жертвы меньшими усилиями?
A: Для этого сеть оператора должна быть аутентифицировать SIM-карту с тем же IMSI, что и у жертвы. То есть, SIM-карта в ПБ должна иметь тот же IMSI, что и у жертвы. Правда, есть одна закавыка - если SIM-карта в ПБ имеет совпадающий с жертвой IMSI, но вы не знаете Ki, то поработать прокси для аутентификации получится, а вот дешифровать проходящий через ПБ траффик - нет (так как у вас не будет ключа для дешифровки трафика, Kc). Чтобы получить Kc, нужно иметь в ПБ полный клон SIM-карты жертвы.

Но для этого вам надо знать Ki жертвы и описание алгоритма А38, используемого оператором :) То есть, легче не получится.

Q: Но ведь в инете полно статей про клонирование SIM-карт простыми кард-ридерами и программами!
A: Они - про клонирование SIM-карт тех операторов, которые используют старый стандартный алгоритм A38 под названием COMP128 v1 (не знаю, может, уже клонируют и v2, и v3). Такие операторы есть, но они - в меньшинстве. К тому же, для клонирования надо иметь доступ к оригинальной SIM-карте и быть готовым к тому, что вы ее можете "запороть".

Q: А что, если кто-то научился делать ПБ, позволяющие доставлять жертве входящие звонки?
А: Для этого ПБ должна обслуживаться сетью оператора наравне со всеми остальными базовыми станциями этой сети. То есть, ПБ должна быть подключена к какому-то контроллеру базовых станций (BSC) и описана в его "таблицах марштуризации". Начнем с того, что интерфейс с BSC обычно "проводной". Допустим, для нас это не преграда, и "проводов" у нас много.

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

Q: А если в этой ПБ реализована базовая + BSC в одном флаконе?
A: Ее все равно надо подключить к сети оператора, только уже "уровнем выше". Если вы это можете - то проще вообще пойти на шаг дальше и поиметь доступ к средствам СОРМ (lawful interception) оператора и прослушивать жертву на уровне коммутаторов :)

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

Остается проблема взаимодействия с окружающим эфиром. Наша ПБ должна работать на частоте, отличающейся от частот всех окружающих легитимных базовых станций всех существующих в данной точке операторов. Интерференции пофиг, какая базовая настоящая, а какая - поддельная. Если две базовых с перекрывающимися областями покрытия начнуть вещать на одной частоте, то работать не сможет ни одна из них. Соответственно, наша ПБ должна постоянно сканировать эфир и адаптироваться к изменяющимся условиям. Фактически, нам надо построить автоматическое средство решения задачи радиопланирования сети. Если у нас это получится - то лучше бросать нафиг потенциально подсудную прослушку, и продавать свое решение операторам. За такой чудо-радиопланировщик они с радостью дадут Много Бабла.

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

Итого, получается, что сделать такую ПБ, которая "прозрачна" для прослушиваемой жертвы и позволяет прослушивать ее в режиме нон-стоп - нельзя.

PS
Какие еще возможные возражения я пропустил? :)
Tags: gsm
Subscribe

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 101 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →