HackerSIM: мечта Неуловимого Джо
В хакспейсе поселилась «симка всевластия».
Про мегафичу подмены любого номера написал на Хабре.
Анонс конкурса по социнженерным атакам с использованием HackerSIM
Заочный тур.
C 6 по 15 октября вы можете прислать в свободной форме модель угроз, которые возможны, если HackerSIM попадет в руки злоумышленника.
Приславшего материал с максимальной "hack value" ждет утешительный приз 10.000 рублей.
Очный тур.
16 октября, хакспейс «Нейрон». Начало в 19-00.
Каждому участнику предоставляется HackerSIM и в течении 3 часов он должен провести penetration test.
Участие индивидуальное или командное.
Приз — достойный.
Заявки на очный и заочный туры принимаются на почту hackersim@яндексточкару.
(Кому не терпится, у меня есть пара симок специально для хабрачитателей)
Помимо этого симка очень очень старается обеспечить анонимность своего владельца и конфиденциальность его разговоров:
- скрывает реальный круг общения
- маскирует местоположение, используя виртуальный номер
- может искажать голос
- принудительное использование шифрование
- скрывает реальный IMSI
Сравнение алгоритмов работы обычной симки и HackerSIM.
Симка хитрая и цепляется только ко второй по мощности базовой станции (а ложные базовые станции выдают очень мощный сигнал, чтобы все обычные телефоны в радиусе ее действия цеплялись к ней)
Подмена номера. Даёт возможность совершать звонки, подменяя Ваш реальный номер. При подключении этой функции, в детализации второго абонента фиксируется указанный Вами номер. В Вашей детализации, в зависимости от типа звонка, будет фиксироваться либо случайный номер, либо номер, принадлежащий серверу HackerSIM. В обоих случаях между Вами и вторым абонентом стоит сервер HackerSIM. Это позволяет Вам скрывать свой реальный круг общения, что является важным компонентом в оперативно розыскных мероприятиях.
Подмена голоса. Даёт возможность искажать свой голос во время разговора. Таким образом, идентифицировать Вас по фонетическим характеристикам становится невозможно. В процессе искажения происходит трансформация Вашего «отпечатка» голоса.
Принудительное шифрование. Запрещает Вашей SIM карте снижать уровень шифрования и заставляет игнорировать команды, поступающие от операторов или комплексов перехвата на отключение алгоритма формирования ключей шифрования (А8), хранящегося в модуле SIM. Таким образом, все ваши разговоры шифруются по алгоритму А5.1.
Виртуальный номер. Позволяет Вам скрыть реальный номер SIM карты. Ваш реальный аутентификатор будет неизвестен третьим лицам. Тем самым определить ваше реальное местоположение становится невозможно.
Для чего нужна SIM-карта?
Как происходит аутентификация
SIM-карта представляет собой модуль определения подлинности абонента. Хранит этот модуль несколько основных компонентов:
- IMSI – международный идентификационный номер абонента
- Ki – индивидуальный ключ аутентификации
- A3 – алгоритм аутентификации
- A8 – алгоритм формирования ключей шифрования
Аналогичные данные находятся и в центре аутентификации AUC. Одной из основных его функцией является передача информации на MSC/VLR, где она будет использована для процедур аутентификации абонента и шифрования передаваемых по радиоканалу сообщений. Информация, генерируемая в AUC, называется триплетом и состоит из:
- RAND (Random Number) – случайное число
- SRES (Signed Response) – пароль-отклик
- Kc (Ciphering Key) – ключ шифрования
При проверке подлинности абонента из MSC/VLR на мобильную станцию передается случайное число RAND. Мобильная станция, используя число RAND, ключ Ki и алгоритм A3 вычисляет результирующее значение,
SRES = Ki [RAND]
и отсылает его обратно в сеть. Затем значение SRES, полученное от мобильной станции сравнивается со значением SRES в MSC/VLR. При положительном результате мобильной станции разрешается передача информации, иначе – блокируется. В целях секретности ключ Ki по радиоканалу не передается.
Шифрование передаваемых данных
Для обеспечения конфиденциальности данных, передаваемых по радиоинтерфейсу между MS и BTS, применяется определенный алгоритм, использующий ключи шифрования. Как говорилось ранее, SIM-карта содержит алгоритм формирования ключей шифрования A8. Процесс вычисления ключей шифрования Kc похож на описанный выше процесс формирования отклика SRES:
Ключ Kc также не передается по радиоканалу для предотвращения его перехвата. Ведь если у злоумышленника будет ключ, то вся наша секретность оказывается под угрозой.
Когда необходимо установить режим секретности, из сети на мобильную станцию передается команда CMC (Ciphering Mode Command). После получения PING, мобильная станция начинает шифрование и дешифрование сообщений бит за битом или поточным шифром, использую при этом ключ Kc и алгоритм шифрования A5.
Еще немного теории
Структурно сеть GSM делится на две основные системы:
- BSS (Base Station System) – система базовых станций
- SS (Switching System) – система коммутации
Управление сетью осуществляется центром управления NMC (Network Management Center) и центром эксплуатации OMC (Operation and Maintenance Center).
Система базовых станций BSS выполняет функции управления радиоинтерфейсом между мобильными и базовыми станциями.
В состав BSS входит:
- BTS (Base Transceiver Station) – базовая приемопередающая станция.
- BSC (Base Station Controller) – контроллер базовой станции.
Контроллер BSC осуществляет конфигурацию и управление группой базовых станций. Он отвечает за распределение радиоканалов, контроль соединений, работу в режиме скачков по частоте, сбор данных о конфигурации сот, хэндовер. Естественно, что это далеко не все задачи, возлагаемые на контроллер. Здесь перечислены только основные.
Фундаментальным, можно сказать, компонентом сети GSM и системы BSS, в частности, является приемопередающая базовая станция. BTS выполняет функции управления радиоинтерфейсом с мобильной станцией (MS). Базовая станция это, по сути, комплекс приемопередатчиков и антенн, осуществляющих обслуживание определенной соты.
Система базовых станций через транскодер TCE передает информацию в систему коммутации SS. SS состоит из:
- MSC (Mobile Switching Centre) – центр коммутации подвижной связи;
- HLR (Home Location Register) – «домашний» регистр положения;
- VLR (Visit Location Register) – «гостевой» регистр положения;
- EIR (Equipment Identify Register) – идентификационный регистр оборудования;
- AUC (Authentication Centre) – центр аутентификации.
Коротко об этих компонентах сети GSM.
Центр коммутации MSC осуществляет управление группой сот, объединенных по географическому признаку, например, по городу или области. То есть, у регионального оператора сотовой связи вполне может быть всего один такой центр. Его еще называют «коммутатор». Судя из названия, коммутатор отвечает за маршрутизацию звонков между различными сетями (обычной телефонной сетью общего пользования, сетями передачи данных и т.д.). Также он отвечает за управление вызовами, «эстафетную передачу» (непрерывную связь при перемещении абонента между сотами), переключение радиоканалов в соте, регистрацию местоположения мобильной станции.
HLR, собственно говоря, это распределенная база данных, содержащая информацию о постоянных абонентах данной сети:
- Опознавательные номера
- Параметры подлинности абонентов
- Состав предоставляемых абоненту услуг
- Служебную информацию
Именно в этой базе хранится вся информация, указанная вами при заключении договора в салоне сотовой связи.
VLR также представляет из себя базу данных. В ней временно хранится информация об абонентах, находящихся в данный момент в зоне обслуживания конкретного MSC. То есть для каждого центра коммутации есть собственный гостевой регистр VLR.
Регистр оборудования EIR содержит централизованную БД, используемую для хранения идентификационных номеров мобильных станций. Проще говоря, в этой базе хранится информация об IMEI вашего телефона. И, по идее, оператор может просто запретить телефон к обслуживанию, если его украли, например. Увы, но в России такое оборудование компаниями сотовой связи не используется.
И, наконец, AUC. Это центр аутентификации, то, с помощью чего ваш телефон успешно регистрируется в сети. В этой процедуре непосредственное участие принимает SIM-карта, содержащая индивидуальный ключ аутентификации.
как я уже говорил, что базовой единицей в сети сотовой связи стандарта GSM является сота. Однако, на самом деле, конкретного определения у этого термина нет. Сота не определяется базовой станцией либо одной антенной. Все зависит от конкретной конфигурации.
Правильнее будет сказать, что сота – это некая географическая область, обслуживаемая одной или несколькими BTS. В пределах этой области определена одна группа контрольных логических каналов. У любой соты имеется Глобальный Идентификатор Соты CGI, однозначно ее определяющий в сети.
Специально определенная группа сот формирует зону местоположения (LA – Location Area). Нахождение абонента определяется той LA, в которой он находится в текущий момент времени. Каждая зона также имеет собственный идентификатор (LAI), хранящийся в VLR.
При пересечении границы различных зон местоположения, мобильная станция, находящаяся в режиме ожидания, передает в сеть информацию о новой LA. Если же MS находится в режиме соединения, то обновление информации о местоположении происходит после завершения сеанса. Когда абонент перемещается между сотами одной зоны LA, то изменения информации о местоположении не происходит. В этом нет необходимости, так в случае входящего вызова к MS происходит широковещательная рассылка служебного сообщения во все соты конкретной LA.
Более крупной структурной единицей сети GSM является зона обслуживания MSC (MSC Serving Area). Она состоит из нескольких LA, находящихся под управлением одного центра коммутации MSC. У каждой такой зоны имеется собственный гостевой регистр VLR. Для входящего вызова MS необходимо знать зону обслуживания, в которой она находится. Поэтому информация о ней тоже отслеживается и передается в HLR.
Следующей по старшинству идет зона обслуживания PLMN (Public Land Mobile Network). Это уже группа сот, в пределах которой конкретный оператор предоставляет абоненту услуги связи на территории одной страны. Перемещение абонентов между зонами обслуживания различных PLMN называется роумингом.
И, наконец, зона обслуживания GSM – это географическая область, в пределах которой абоненту предоставляется доступ к услугам сети GSM. Ее размер зависит от количества операторов, подписавших соглашения по сотрудничеству.
- Идентификатор зоны местоположения LAI
- Список смежных сот, которые также сканируются мобильной станцией
- Перечень частот, которые используются в текущей соте
- Идентификатор соты (Cell Identify)
- Информация, необходимая для контроля мощности передачи
- Сервис поддержки DTX
- Услуги контроля доступа (Call Barring). Дает возможность абоненту ставить запрет на конкретные виды звонков (например запрет входящих звонков).
Мобильная станция также производит мониторинг BCCH каналов сот, находящихся по соседству, а также запоминает данные о шести сотах с наилучшим сигналом. Одновременное отслеживание канала синхронизации позволяет вашему телефону перестроится при перемещении в другую соту довольно быстро.
SDCCH (Stand Alone Dedicated Control Channel) — сигнальный канал. Информация передается в двух направлениях (Uplink и Downlink). При Downlink-передаче базовая станция применяет канал SDCCH для сигнализации во время установления соединения, а контроллер BSC при помощи этого канала назначает для MS каналы трафика TCH. При Uplink-передаче мобильная станция использует канал SDCCH для сигнализации, по этому каналу она принимает информацию о назначении ей конкретного канала TCH (номер таймслота и частоту).
В обоих направлениях по этому каналу происходит также передача коротких сообщений (SMS), при условии, что мобильная станция находится в состоянии IDLE. SDCCH, к тому же, обеспечивает передачу информации, необходимой для Call Forwarding (Переадресация Вызовов).
При первоначальном установлении соединения MS запрашивает канал сигнализации, посылая пакет Access Burst по каналу RACH. Вот его структура:
Как видно из таблицы, здесь присутствует защитный интервал GP в 68.25 бит. Он обеспечивает достаточное временное разнесение от пакетов других подвижных станций. Далее, известно, что длительность одного информационного бита в TDMA составляет 3.69 мкс. Таким образом, длительность GP = 252 мкс. Это допустимая задержка для сигнала от MS (в течении этого времени не произойдет смещения сигнала в другой, «чужой» временной интервал).
За 252 мкс сигнал, теоретически, сможет распространиться на 75.6 км (252 мкс * 300 м/мкс). В силу того, что BTS обратно посылает на MS сигнал синхронизации и для компенсации времени прохождения этого сигнала (точное расстояние ведь неизвестно между BTS и MS), делим 75.6 км на 2. Получаем 37.8 км. Это максимальное теоретическое расстояние, на которое сигнал сможет распространиться без проблем в одну сторону.
Чтобы определить задержку распространения сигнала между BTS и MS, BSS использует синхропоследовательность в пределах пакета Access Burst. Затем, на основе этой последовательности, в BSS вычисляется значение временной задержки TA, которое затем отправляется на MS синхропоследовательностью (64 бита) в пределах пакета синхронизации. Итак, если TA=0, то временная корректировка не производится, при TA=1 задержка составляет 3.69 мкс и т.д.
Мы определили, что «шаг» TA равен 3.69 мкс. Timing Advance учитывает распространение волны туда-обратно. Поэтому временная задержка при одностороннем распространении сигнала равна 1.845 мкс. Умножаем на скорость и получаем: 1.845 мкс * 300 м/мкс = 553.5 м. Это расстояние соответствует TA=1. Т.е если с BTS пришло значение TA=1 это означает, что расстояние между BTS и MS равно 553.5 метра. Максимальное число бит для TA равно 64. Отсюда получаем: 64 * 553.5 м = 35.42 км. Вот вам и максимальный радиус соты в стандарте GSM 900.
Безопасность и, в частности, аутентификация в GSM. Все вы, конечно, знаете, что данный стандарт является цифровым. Это позволяет выполнять управление и контроль за безопасностью в сети довольно таки просто. Итак, механизмы обеспечения безопасности включают четыре основных пункта:
- Аутентификацию
- Шифрование
- Переназначение TMSI
- Идентификацию оборудования
Последовательность аутентификации в сети GSM
Непосредственно в самой GSM-сети за аутентификацию отвечает AUC (Центр Аутентификации), генерирующий определенные данные, необходимые во всей последовательности. В самом AUC постоянно хранятся специальные алгоритмы (A3 и A8), IMSI (уникальный идентификатор мобильной станции) и индивидуальный ключ идентификации Ki, а также генератор случайных чисел, отвечающий за выдачу некоторых чисел RAND. Итого имеем:
- Алгоритмы A3, A8
- IMSI, Ki
- RAND
Мы знаем, что для каждой мобильной станции уникальным идентификатором является IMSI, соответственно IMSI имеется набор ключей KI. В AUC, KI и RAND будут вычисляться с помощью A3 and A8, результаты этого вычисления называются SRES и Kc соответственно.
Значения RAND, SRES, Kc называются триплетами аутентификации в GSM. Причем, в зависимости от числа RAND, значения SRES и Kc формируются различные. Таким образом, в специальном буфере AUC хранятся таблицы, отображающие зависимости между IMSI каждого абонента и его триплетами, количество которых достаточно большое. Далее эти триплеты партиями (по 8-10 комплектов) высылаются на HLR, где временно сохраняются.
Теперь, когда мобильная станция намерена войти в сеть (совершить звонок, произвести Location Update либо получить доступ к дополнительным услугам сети), она подает по каналу RACH запрос в сеть на выделение канала доступа. После некоторых действий (не относящихся к аутентификации) HLR передает триплеты в гостевой регистр местоположения VLR, откуда на мобильную станцию (через MSC) передается RAND из состава ее индивидуальных триплетов.
На SIM-карте MS также хранятся алгоритмы A3, A8 и IMSI/Ki-значения, посредством которых вычисляются, как и в AUC, SRES и Kc. Затем SRES передается на VLR, где оба значения сравниваются. В случае успешного сравнения, аутентификация завершается и мобильная станция получает доступ в сеть GSM.
Таким образом мы с вами рассмотрели первый из этапов управления безопасностью в GSM. Шифрование, переназначение TMSI и идентификация оборудования.
Есть два способа выбора соты:
- Normal cell selection – «нормальный» выбор соты. Осуществляется, если не удался выбор из Stored list selection (как правило, при первом включении аппарата либо в случае новой SIM-карты)
- Stored list selection – список номеров BCCH частот в близлежащих сотах. Получил название BCCH Allocation list (BA лист). Мобильная станция производит сканирование частот только из этого списка. Применяется этот способ во время обычной работы мобильной станции.
При осуществлении Normal cell selection мобильная станция производит сканирование всех 124 радиоканалов и измеряет уровень сигнала. Это занимает около 3-5 секунд. Затем MS настраивается на канал с максимальным средним значением уровня сигнала и определяет BCCH частоту. При положительном результате MS проходит процесс синхронизации с данной BCCH частотой и получает необходимую ей информацию. Когда информация получена, происходит процесс идентификации PLMN. Если эта PLMN — требуемая, то MS пытается получить доступ к соте. Получив доступ, MS вычисляет параметр C1. Неравенство C1>0 является решающим в процессе выбора соты мобильной станцией. Что же это за параметр C1?
Параметр C1 представляет собой важный критерий выбора соты. Он оценивает затухание сигнала в радиоканале. Мобильная станция в свободном состоянии постоянно рассчитывает С1 следующим образом:
C1 = A – B, когда B > 0
C1 = A – 0, когда B
A = RxLev – AccMin
B = CchPwr – P
Для чего же необходимо, чтобы сеть всегда была в курсе того, где мы находимся? Ответ прост. Для правильной адресации входящего вызова на Ваш мобильный телефон его нужно, прежде всего, найти. Поэтому на все аппараты в пределах Location Area (зоны местоположения) посылается широковещательное (пэйджинговое) сообщение с идентификатором нужного абонента. Мобильный телефон постоянно мониторит эфир и, при обнаружении своего идентификатора в сообщении, начнет устанавливать соединение с сетью. Если же в базе данных сети не будет информации о той зоне местоположения, в которой находится абонент в данный момент времени, то входящий вызов будет невозможен.
Существует три типа процедуры Location Update (LU):
Периодический LU
Производится, когда MS находится в пределах одной и той же зоны местоположения и в течение определенного промежутка времени не проявляет активности. Обновление информации происходит по таймеру, что позволяет избегать ненужного использования частотного ресурса.
IMSI attach/detach
Используется мобильной станцией для информирования сети о своем состоянии (включена/выключена). Необходимо, чтобы предотвратить бесполезные вызовы неактивного аппарата.
Нормальный LU
Телефон прослушивает BCCH канал текущей соты и принимает, в том числе, идентификатор зоны местоположения LAI. Принятый идентификатор сравнивается с уже записанным в SIM-карте. В случае их несовпадения (когда происходит перемещение в новую Location Area), мобильная станция начинает производить нормальный Location Update.
Давайте рассмотрим каждый идентификатор. В дальнейшем это будет необходимо для понимания основных процессов, происходящих в сети GSM.
IMSI (International Mobile Subscriber Identity) – идентификатор, однозначно определяющий в сети каждого абонента мобильной связи стандарта GSM (а также UMTS или CDMA). Этот номер необходим для выполнения таких основных процедур, как аутентификация абонента, шифрование/дешифрование передаваемых данных. IMSI состоит из:
- MCC (Mobile Country Code) – код мобильной связи страны;
- MNC (Mobile Network Code) – код оператора мобильной связи;
- MSIN (Mobile Station Identification Number) – идентификатор мобильной станции.
IMSI обычно состоит из 15 цифр.
MSISDN (Mobile Station ISDN Number) – номер, который вы набираете для вызова какого-либо абонента (например, +7 9хх ххх хххх). Вот его составные части:
- CC (Country Code) – код страны;
- NDC (National Destination Code) – национальный код места назначения (сети либо города);
- SN (Subscriber Number) – номер абонента.
Свой NDC есть у каждой сети PLMN. А в России их даже несколько на каждого оператора. MSISDN может быть до 15 цифр длиной, не считая префиксов типа (+7).
Temporary Mobile Subscriber Identity (TMSI) – это временный IMSI, который присваивается мобильной станции при ее регистрации в сети. Временный идентификатор используется в целях безопасности. Именно с использованием TMSI мобильная станция будет устанавливать соединение по радиоканалу. Данный идентификатор периодически меняется сетью и не имеет жесткой структуры (в отличие от IMSI). Длина его, как правило, в два раза меньше, что позволяет в одном цикле осуществлять пэйджинг для двух абонентов, а также уменьшать нагрузку на процессор.
IMEI (International Mobile Terminal Identity) – однозначно определяет любую мобильную станцию в сети. Может использоваться для обнаружения краденого оборудования и блокировки ему доступа в сеть. Вот из чего, согласно спецификациям GSM, состоит IMEI:
- TAC (Type Approval Code) – код утвержденного типового образца;
- SNR (Serial Number) – серийный номер оборудования;
- CD – контрольное число.
IMEISV (International Mobile Terminal Identity and Software Version Number) – с помощью этого идентификатора мобильной станции обеспечивается уникальная идентификация и соответствие установленного на ней программного обеспечения тому, которое разрешено оператором. Это, на самом деле, довольно важно. От версии ПО зависит список доступных мобильной станции услуг и ее возможности по речевому кодированию.
MSRN (Mobile Station Roaming Number) – временный номер мобильной станции, который используется для маршрутизации вызова на тот MSC, под управлением которого находится MS в данный момент. После применения по назначению для одного подвижного терминала MSRN может назначаться другим подвижным терминалам.
SN – адрес управляющего MSC/VLR;
LAI (Location Area Identity) – идентификатор зоны местоположения, который уникально описывает LA в сети GSM в масштабе всего мира;
Структура идентификатора LAI
LAC (Location Area Code) – код зоны местоположения, максимальная длина которого – 16 бит. Это позволяет определить 65536 разных LA в пределах конкретной PLMN;
CGI (Cell Global Identify) – глобальный идентификатор соты. С помощью него происходит определение соты в пределах зоны местоположения LA;
CI (Cell Identity) – идентификатор соты;
BSIC (Base Station Identity Code) – идентификатор базовой станции, позволяющий различать соты с одинаковыми частотами. В его состав входит:
NCC (Network Color Code) – цветовой код сети, используемый для разграничения зон действия операторов в местах их пересечения;
BCC (Base station Color Code) – цветовой код базовой станции. С его помощью различают базовые станции с одинаковыми частотами.