[Перевод] Конференция DEFCON 18. Практический шпионаж с помощью мобильного телефона. Часть1
Добро пожаловать на презентацию «Практический шпионаж с помощью сотового телефона». Прежде чем мы начнем, сделаю пару замечаний по поводу конфиденциальности. В-первых, звонок по сотовому телефону может быть записан прямо во время разговора. Сюрприз! Так что если вы не хотите, чтобы ваш звонок был записан, выключите свой телефон. Если вы пользуетесь услугами сотовых операторов Sprint или Verizon, вы не находитесь в сетях GSM, и моя система вообще не сможет говорить с вашими телефонами, так что вам не о чем беспокоиться.
Должен заметить, что я призываю людей держать свои телефоны на виду во время разговора, особенно если они пользуются GSM — трубкой, потому весь смысл этого в том, чтобы показать, как могут быть перехвачены ваши телефонные звонки. Если же вы не пользуетесь своей трубкой, этот приём не работает.
Итак, это компьютерная презентация, вы видите сбоку моего ноутбука большую щель, где должен быть HDD, но я использую загрузочную USB-флешку, потому что базовую приёмно-передающую станцию сотовой связи BTS для GSM-сети можно загрузить с переносного носителя без использования жесткого диска. В конце презентации я разрежу эту флешку пополам с помощью мультитула Leatherman, потому что собираюсь записать на неё очень конфиденциальную информацию, все настройки вашего телефона, лог телефонных звонков и прочее. Всё это будет уничтожено в конце презентации, так что можете об этом не беспокоиться.
Позвольте мне подключить обратно шнур питания и вернуться к теме. В настоящее время я подключен к сети Verizon, так что мой «веризондроид» обеспечивает меня подключением к VoIP связи.
Если вы подключаетесь к моей сети, то единственный способ узнать, подключены ли вы на самом деле — это попробовать сделать звонок. Если вы позвоните, то получите голосовое сообщение, что ваш разговор перехвачен, бла-бла-бла. Так что просто возьмите ваши телефоны во время презентации, попробуйте набрать номер и посмотрите, что произойдет. И если вы услышите в трубке такое сообщение, значит, вы подсоединены к моей системе. Если не услышите — значит, с вами всё в порядке. В любом случае, в любое время, если кто-либо подключится к этой сети, всё для осуществления звонков будет сделано наилучшим образом.
Итак, прежде чем мы поговорим о перехватчике IMSI, я расскажу, что это такое. IMSI, или международный идентификатор мобильного абонента — это уникальный 15-значный номер, используемый для аутентификации абонента, перемещающегося от сети к другой сети. Вы можете считать его чем-то вроде имени пользователя сети GSM. Он состоит из двух частей, которые находятся на вашей SIM-карте и осуществляют вашу аутентификацию.
Ваш MSI — это имя пользователя и секретный ключ аутентификации в сети, расположенный в read-only части SIM-карты. Небольшая защита осуществляется так: при подключении к сети IMSI заменяется временным TMSI. В процессе презентации я покажу вам, сколько этих TMSI возникает, чтобы дать возможность увидеть, сколько людей связаны с базовой станцией.
Так что IMSI — это своего рода секрет, а ICCID, длинная строка цифр, напечатанная на SIM-карте, является уникальным идентификатором самой карты, чем-то вроде её серийного номера. Эти два идентификатора тесно связаны. Во многих сотовых сетях США и некоторых других странах вы можете определить IMSI по ICCID и наоборот, и это не секрет. В других странах сделали немного лучше, там ICCID никак не связан с другим идентификатором и представляет собой просто случайный набор цифр.
На самом деле это не имеет особого значения, но я часто упоминаю об этом, потому что, по крайней мере, в США вы можете узнать из него IMSI. Итак, что собой представляет «ловец» IMSI?
Основная идея заключается в том, что это поддельная вышка GSM, поддельная базовая станция. По идее, когда телефон ищет сигнал, он выбирает ту вышку, которая предоставляет самый мощный сигнал, и подсоединяется в вышке с лучшим сигналом. Если вблизи находится антенна с самым высоким коэффициентом усиления, направленная прямо на вас, то я буду этой вышкой! Я продуцирую очень слабый сигнал, всего 25 милливатт, но я нахожусь близко и использую направленные антенны. Поэтому я надеюсь, что ваши телефоны выберут именно мой сигнал и вы подсоединитесь к моей сети.
Нужно иметь ввиду, что в сети GSM базовая станция определяет все настройки, поэтому, когда вы подключитесь к моей вышке, она сообщит вашему телефону, следует ли использовать шифрование, переход на другие частоты сигнала и подобные вещи. Если я прикажу не использовать шифрование, ваш телефон подумает: «отлично, никакого шифрования, я буду использовать обычный текст».
Поверьте мне на слово, я не делаю ничего вредоносного, мой тест влияет только на функциональность и не вызовет никаких постоянных изменений в характеристиках ваших телефонов, если они подключатся к моей сети. Но если бы я захотел, то мог бы проделать с ними множество вещей, например, обновить SIM-карту и вообще получить от этого кучу удовольствия.
Итак, если у меня имеется возможность генерировать действительно мощный сигнал, то отменив шифрование А5, я без труда смогу захватить контроль над вашим телефоном, и вы ничего не сможете сделать и даже не узнаете об этом. Идея перехватчика IMSI возникла одновременно со стандартом GSM, и технология перехватчика была запатентована Роде и Шварцем в Европе в 1993 году. Я никогда не встречал ссылки на подобные патенты в США, но в любом случае патенты в Европе являются достоянием общественности, так что эта уязвимость хорошо известна. Смысл патента в том, что если вы обратитесь в компанию R&S и скажете, что хотите купить «ловца» IMSI, они сдерут с вас пару миллионов долларов.
Из оборудования, которое находится на столе, самым дорогим является мой ноутбук, затем следует трансивер USRP, примерно за $1500, и следующим по стоимости является устройство мгновенного обмена сообщениями за $20. Таким образом, используя это оборудование, вы можете делать то же самое, что делает коммерческое оборудование стоимостью в 1000 раз дороже.
Коротко расскажу вам, что представляет собой шифрование, участвующее в перехватчике IMSI. Если я — атакующий, который создал свою базовую станцию, а у вас есть телефон, который к ней подключился, я просто говорю ему отключить шифрование. Мне не нужно взламывать шифры, строить «радужные таблицы», мне не нужны никакие жесткие диски для быстрого просмотра. Я просто говорю вашему телефону отключить шифрование, это так просто.
В действительности спецификация стандарта GSM предусматривает отправку абоненту сообщения, когда ваш телефон подключается к сети, которая не использует шифрование. Но если вы дальше прочтёте дальше, то увидите, что в спецификации есть еще одно место, где говорится: «если вы хотите отключить предупреждающее сообщение, то установите на SIM-карте эту небольшую конфигурацию бит». Каждая виденная мной SIM-карта, а я видел множество различных сетей сотовых операторов по всему миру, содержит эти биты. Каждый оператор, которого я когда-либо встречал, отключает это предупреждение, поэтому мне ни разу не попадался телефон, который бы выдал сообщение: «вы подключаетесь к небезопасной сети!», как этого требует спецификация GSM.
Это осознанный выбор операторов. Идея заключается в том, что если вы едете в такую страну, как Индия, где не поддерживается шифрование сотовой связи, так как там это незаконно, но вы хотите пользоваться своим телефоном, он должен поддерживать функцию незашифрованных звонков A5/0. Если вы начнёте получать предупреждение каждый раз, как подсоединяетесь к новой вышке GSM, то подумаете, что, черт возьми, происходит, начнёте проклинать AT&T или кого-то ещё и так далее.
Давайте обратим внимание на спектр используемого диапазона частот. Один из вопросов, который был поднят прессой, касался проблемы, при которой операторы используют разные частоты. Поэтому во всём мире было принято решение использовать всего 4 стандарта GSM: 850, 900, 1800 и 1900. Частоты 850 и 1900 используются преимущественно в США, а 900 и 1800 — в Европе.
Если вы посмотрите на размер полосы этих частот, то увидите, что между европейской частотой 900 и американской 850 существует перекрытие. Фактически стандарт GSM 900 работает в диапазоне от 880 до 914 Мгц, а американский стандарт US ISM — от 902 до 928 Мгц, таким образом, частоты этих стандартов будут перекрываться в диапазоне от 902 до 912 Мгц.
Итак, я запущу свой трансмиттер в абсолютно законном диапазоне частот, сдвинувшись в сторону европейского стандарта связи. При этом вашему телефону будет абсолютно всё равно, его не волнуют географические особенности связи, он просто поймает самый сильный сигнал и скажет: «прекрасно, вот моя вышка»!
Если у вас европейский телефон, или 4-х диапазонный телефон, работающих во всех 4-х стандартах связи, вы увидите сеть. Если у вас американский телефон, который видит только американские частоты, вы сети не увидите.
Что же представляет собой американский стандарт ISM? Он расшифровывается как Industrial, Scientific, Medical, то есть создан для промышленных, научных и медицинских сетей сотовой связи. Идея стандарта состоит в том, что он предназначен для маломощных устройств, которые очень быстро меняют частоту, и конструкция которых предусматривает минимальное вмешательство пользователя в работу телефона.
Формально это вспомогательный диапазон связи, предназначенный в основном для радиолюбителей, но они не любят пользоваться этими частотами, потому что они слишком зашумлены, кроме того, любители считают, что это просто отстойный диапазон. Однако для наших целей он вполне подходит, и мы можем на законной основе запустить свою базовую станцию BTS в любительском диапазоне GSM. Итак, мы будем действовать как радиолюбители.
Что нам нужно в первую очередь — это лицензия на использование любительских частот, и получить её необычайно легко. Можно зайти на сайт kb0mga.net/exams и начать отвечать на экзаменационные вопросы. Вы можете проделывать это снова и снова, пока не случайно не наткнётесь на правильный ответ, потому что если вы отвечаете неправильно, вам будут продолжать задавать вопросы. Вы можете потратить на это несколько часов, и когда, наконец, правильно ответите на все вопросы, то сдадите экзамен. Я бы посоветовал всё-таки изучить материал, если вы надумаете стать радиолюбителем, потому что я определенно многому научился, отвечая на экзаменационные вопросы. Следующее требование к любительской радиостанции — её мощность не должна превышать 1500 Вт, что для наших целей более чем достаточно. У меня есть еще один усилитель, который я используя для RFID, его мощность составляет 600 Вт, и это ужасающее количество энергии, его мощность слишком велика, так что 1500 Вт хватит для каких угодно целей.
Относительно того, что мы собираемся транслировать, можно сказать, что технически мы собираемся передавать неопределённый цифровой код — это биты, путешествующие вперёд и назад между телефоном и моей вышкой. Таким образом, в терминах радиолюбителей вам разрешено передавать неопределённый цифровой код, пока его спецификация не будет опубликована. В нашем случае все GSM протоколы и спецификации опубликованы, так что этим вопросом можно не заморачиваться.
Вам также не позволено использовать шифрование, то есть ваши сообщения не должны быть зашифрованы никоим образом. Так что по закону я, запуская свою базовую станцию, просто обязан отключить шифрование! Что я и делаю.
Для радиолюбителей нет никаких ограничений в размере антенны, единственное, что ограничено — это радиочастотное воздействие. FCC публикует нормы, какой коэффициент поглощения радиоизлучения является безопасным для людей. Моё оборудование далеко от этих лимитов, поскольку излучает всего 25 милливатт. Если ваш телефон работает в высшем диапазоне частот GSM 1800/1900, то он изучает около 1 Вт, то есть в 40 раз больше, а в низшем GSM 800/900 — около 2 Вт, то есть в 80 раз больше. Так что телефон в вашем кармане излучает намного больше, чем моя «большая и страшная» антенна.
Единственное важное требование — это то, что станция должна идентифицировать себя каждые 10 минут. Позывной радиостанции — это прямая несущая волна, азбука Морзе, сигнал, который периодически отправляется в эфир. Интегрировать подобное в GSM довольно трудно, поэтому оптимальное решение — это вторая передающая станция, работающая на частоте основной базовой станции. Она немного мощнее и заменяет сигнал базовой станции GSM, совершая на неё DoS атаку в течение 1 секунды, чтобы передать позывной. Я просто интегрировал эту функцию в трансмиттер USRP, это совсем не сложно. Так что всё, что нам нужно — это легко управляемый 900-мегагерцовый трансмиттер.
Далее у меня имеется эта маленькая розовая коробочка для мгновенного обмена сообщениями Instant messaging device, она называется ID-ME, или «идентифицируй меня». Её принёс мне Тревис Гудспид. Она имеет выходную мощность +10 дБм, широкий охват частотного диапазона и программируется на языке С. У этого устройства нет никакой безопасно прошивки, его можно «прошить» с помощью утилиты Тревиса под названием GoodFET. К сожалению, она не совместима с интерфейсом JTAG и радиочастотными разъемами, но их достаточно легко добавить.
Итак, мы можем написать прошивку для этого устройства, мы знаем соответствующие частоты, поэтому можем привести частоту и мощность в соответствие с USRP, объединить и усилить сигналы основной станции и дополнительного трансмиттера.
Теперь рассмотрим установку базовой приемо-передающей станции сотовой связи BTS. Итак, у меня есть IMEI для радиолюбителя, это то, что нужно для GSM, и теперь мне нужно универсальное программное радио USRP. Вся периферия для него доступна онлайн, там она стоит примерно 1500 долларов за две дочерние платы RFX900.
Кроме того, необходимо устройство под названием ClockTamer — code.google.com/p/clock-tamer, которое позволяет создать очень точный тактовый генератор для синхронизации с GPS. Оно специально разработано для совместного использования с USRP.
Телефоны получают свои частоты от базовых станций. Базовые станции обеспечивают весьма точные частоты, и телефоны выясняют, насколько их собственная частота совместима с частотой передающей станции.
Так что если я прийду со стороны со своей собственной станцией, стабильность частоты которой не соответствует стабильности частот местных вышек, которые расположены вокруг, то все телефоны будут откалиброваны на частоту этих местных вышек и даже не обратят внимания на мою станцию, даже если разница наших частот составит всего несколько килогерц.
«Прямо из коробки» ClockTamer чрезвычайно точно настраивает частоту с шагом ±100 Гц в диапазоне до 1,9ГГц, по сравнению с этой точностью GPS модуль — просто отстой. Это устройство обладает просто сумасшедшей точностью и оно гибко программируется.
Программное обеспечение моей станции сотовой связи обеспечивает ноутбук с Debian, OpenBTS и Asterix. OpenBTS обеспечивает всё, что связано с GSM, Asterix принимает звонки от OpenBTS и отправляет их через VoIP. Я использовал базовую версию BTS, она передаёт голос и SMS, но не передаёт данные.
Для данной презентации я отключил возможность использования SMS, в основном из-за того, что мне трудно получить ваш идентификатор вызывающего абонента, когда вы посылаете SMS. Да, я могу направить его через интернет и подключить его туда, куда оно должно подключаться, но человек, который его получит, не сможет определить, от кого оно пришло, и не сможет ответить. Так что я подумал, что проще будет просто отключить эту функцию BTS, хотя система её поддерживает.
Итак, давайте приступим к первому демо и запустим BTS в тестовом режиме. Я подключаю к ноутбуку USRP, всё остальное уже включено, так что давайте запустим базовую станцию. Не знаю, насколько вы сможете разглядеть изображение на экране моего ноутбука, сейчас я подвину его поближе к камере. Единственное, что я хочу показать, это запуск команды TMSI — она показывает мне список всех временных MSI, которые были выделены базовой станцией, другими словами, сколько людей в настоящее время связаны с ней. Внизу экрана вы можете увидеть, что в таблице 0, то есть в данный момент к моей сети никто не подключился.
Сейчас я наберу ещё несколько команд. Cell ID — это идентификатор соты, который показывает, что мобильный код страны, который я использую в данный момент, равен 001, 00 это код страны по спецификации GSM, 1 означает тест. Затем я использую код мобильной сети MNC, он равен 01, единица здесь тоже означает тест, так что это тестовая сеть в тестовой стране, это не Европа и не Америка. Ниже показано название сотовой сети, которую я представляю, это DEFCON18. Некоторые телефоны его отобразят, некоторые нет.
Хочу обратить ваше внимание, что в настоящее время это не «враждебная» конфигурация, это тестовый режим, это не реклама какой-либо известной сети и он не работает на частоте сотовой связи США, так что пока я не запущу эту штуку, никто не сможет подсоединиться к моей сети.
Если вы захотите просканировать доступные сети сотовой связи, то можете это сделать, но я рекомендую вам просто оставить свои телефоны в покое. Просто доставайте их из карманов раз в несколько минут и пробуйте позвонить. Буквально через минуту я покажу вам, насколько легко это работает.
Итак, как я подменяю конкретную сеть, чтобы использовать перехватчик IMSI не просто в случайной сети? Мобильные телефоны идентифицируют сеть по двум значениям, которые я упоминал — это мобильный код страны MCC, состоящий из двух цифр, и MNC — код мобильной сети оператора. Для США MCC равен 310. В Википедии приведён список этих кодов для каждой страны мира. Код MNC обычно состоит из 2–3 цифр, его также можно найти в Википедии, так что подменить эти значения не так уж сложно, через секунду я покажу вам, как это сделать с помощью OpenBTS. Это действительно очень легко. Итак, я установил нужный MNC и MCC, изменил имя сети, и оно отобразиться на экране ваших телефонов во время подключения к моей сети, потому что я хочу, чтобы вы его увидели.
Я заметил, что в некоторых случаях телефоны проверяют имя сети и не будут подсоединяться к базовой станции, если имя сети введено неправильно. Однако чувствительность к регистру не является серьёзной защитой.
Итак, приступим к демо №2, где я покажу, как подменить коды MNC/ MCC и название сети. Прежде чем я это сделаю, я ещё раз запущу TMSIS. Ничего себе! У нас в сети уже 15 человек, в данный момент к моей вышке подключены 15 «трубок», и это без всякого спуфинга сотовой связи. То есть моей сетью перехвачены звонки 15 человек в этом зале, при этом моя сеть не представляет собой ни одну из известных в мире сеть сотовой связи. Она работает в тестовом режиме, не излучает частоты, но вы всё равно смогли к ней подсоединиться!
(аплодисменты зала)
Проведу быстрый опрос: поднимите руки, если у вас есть iPhone. Если вы не подняли руку, то вероятно, не смогли подсоединиться к моей сети. Опыт показывает, что легче всего к моей сети подсоединяются «Айфоны». Поэтому я стараюсь держать эти чёртовы «Айфоны» подальше от себя.
Ничего себе, теперь в нашей таблице TMSIS уже 30 абонентов! Сейчас я объясню, почему все эти люди присоединились к сети. Итак, давайте посмотрим, как подделать MNC/ MCC. Я упомянул команду Сell ID, которая показывает код зоны расположения MCC/MNC и идентификатор соты. Я очень быстро могу подделать идентификатор соты. Поднимите руки, кто хочет, чтобы я подделал оператора сети T-mobile. А теперь поднимите руки, кто желает, чтобы я подделал AT&T. Ага, я просто должен был это увидеть!
Итак, я просто набираю этот ID и код страны. Мы находимся в Штатах, так что наш MCC 310, затем я ввожу код оператора AT&T. У него несколько кодов, но чаще всего используется 410, и в конце набираю код области местоположения вышки и идентификатор соты 6610. Вот и все, теперь я сфальсифицировал сеть AT&T. Я мог бы быть с этим более осторожным и сделать такую конфигурацию — вы видите на экране ноутбука команду Cell ID 31041066610, которая устанавливает мобильный код страны и код моей мобильной сети. Ниже неё расположена команда, задающая конфигурацию короткого имени GSM, так что для ваших мобильных телефонов моя сеть неотличима от подлинной сети AT&T.
Поступил вопрос, сколько времени длится передача. Честно говоря, с момента, как только я запустил перехватчик IMSI, в течение следующих 20 минут или получаса каждый телефон, принадлежащий оператору AT&T, будет прописываться в моей сети. Единственный вопрос, который при этом возникает — как можно ускорить процесс захвата телефонов фальшивой сетью. На практике требуется около часа, чтобы перехватчик обнаружил и подсоединил к фальшивой сети все телефоны, находящиеся в зоне передачи сигнала.
26:15 мин
Конференция DEFCON 18. Практический шпионаж с помощью мобильного телефона. Часть 2
Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5–2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).
VPS (KVM) E5–2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps до января бесплатно при оплате на срок от полугода, заказать можно тут.
Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5–2650v4 128GB DDR4 6×480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5–2650 v4 стоимостью 9000 евро за копейки?