Злом стільникових мереж: не просто, а дуже просто

Деякий час назад в Інтернеті була популярна «розводка» у вигляді «програми для пробивання мобільного номера». Десь її пропонували безкоштовно скачати, десь продавали за гроші, десь вона була «реалізована» у вигляді онлайн-сервісу - результат був в будь-якому випадку один: заражений трояном комп'ютер або витік коштів з мобільного рахунку через платну підписку або інші подібні відносно чесні способи. Навчені гірким досвідом і коментарями стільникових операторів користувачі практично увірували в те, що створення такої програми неможливо фізично.

Проте зламати допомогою мобільної мережі визначити місце розташування абонента, прочитати його SMS, підслухати розмови і навіть вкрасти з рахунку гроші за допомогою USSD-запиту не просто, а дуже просто. компанія Positive Technologies випустила звіт про безпеку мереж стільникового зв'язку; проведене нею дослідження наочно демонструє, що подібні «фокуси» доступні навіть починаючому хакеру.

компанія   Positive Technologies   випустила   звіт   про безпеку мереж стільникового зв'язку;  проведене нею дослідження наочно демонструє, що подібні «фокуси» доступні навіть починаючому хакеру

Типове пропозиція послуг на одному з форумів

Ніяких «шпигунських штучок» (хоча, за даними Сноудена, саме цими способами користувалося АНБ для стеження за людьми по всьому світу) для цього не буде потрібно. Тим більше що самі спецслужби в них і не потребують: все мережі і так підключені до СОРМ, тому всі ваші розмови і листування, а при проведенні розшукових заходів - і місце розташування цілком доступні відповідним органам і без зломів. А ось те, що доступ до вашої персональної інформації може отримати фактично будь-який школяр - не найкраща новина.

Попит на послуги є, ціна доступна практично кожному

Головна вразливість знаходиться в протоколах сигналізації ОКС-7 (в західній літературі називається SS7), розроблених в кінці 1970-х років і прийнятих в 1981-му. Тоді це був прорив в плані безпеки, тому що для сигналізації (тобто для передачі службових команд під час встановлення телефонного з'єднання) став використовуватися окремий канал, фізично недоступний абоненту. До цього всі команди в вигляді тональні сигнали передавалися прямо в лінію і, наприклад, на основі недокументованих функцій старих протоколів вдалося реалізувати АОН на аналогових АТС: телефонний апарат відправляв запит номера і отримував від станції відповідь. Спочатку це було придумано для міжміських АТС, щоб після набору вісімки на міський АТС можна було зрозуміти, кому виставляти рахунок за розмову. Однак використання для сигналізації того ж каналу, що і для розмови, дозволило визначати номери кому завгодно, а особливо просунутим - і зовсім розмовляти на міжмісто за чужий рахунок шляхом спуфинга запитів номера.

«Але сигнальний канал ж недоступний для абонента!» - скажете ви. Однак справа в тому, що на початку 2000-х років була розроблена специфікація SIGTRAN, що дозволяє передавати команди ОКС-7 по IP-мереж. І вийшло так, що незахищені протоколи (адже їх розробники виходили з того, що до сигнального каналу ніхто фізично не добереться, тому визнали недоцільним все ускладнювати) виявилися в загальнодоступних IP-мережах, і тепер досить лише комп'ютера з підключенням до Інтернету і нехитрого ПО: автори звіту використовували Linux-систему з встановленим SDK для формування пакетів SS7. Вся ідея злому будується на тому, що система не перевіряє джерело пакета (ще раз: за логікою розробників, він фізично не може з'явитися ззовні), тому обробляє команди зловмисника точно так же, як і легітимні, дозволяючи повноцінно «вклинитися» і реалізувати атаку типу man-in-the-middle. Фільтрувати ці пакети неможливо, тому що не можна достовірно встановити їх легітимність.

Фільтрувати ці пакети неможливо, тому що не можна достовірно встановити їх легітимність

Схема підключення для атаки через ОКС-7

Втім, трохи засмутимо кулхацкер, вже присутніх похуліганити, не встаючи з дивана: для проведення атак недостатньо встановити потрібне ПЗ, що емулює обладнання оператора. Потрібно ще й підключення в якості оператора, яке, однак, легко купити на чорному ринку: в ряді країн, де операторську ліцензію видають кому попало, подібний «бізнес» процвітає, а для успішної атаки не важливо, з якої країни ваш «оператор»: заплатив за доступ до шлюзу - і атакуй абонента в будь-якій точці світу. Блокування пакетів ОКС-7 з-за кордону в даному випадку не врятує, бо призведе до неможливості роботи роумінгу та міжнародного зв'язку. Крім того, отримати доступ до мережі оператора можна, наприклад, і шляхом злому фемтосоти. І нарешті, можна взагалі бути гуманітарієм і просто замовити послугу. Наприклад, її під брендом SkyLock пропонує компанія Verint.

В рамках сервісу SkyLock можна купити підключення безпосередньо до оператора через IP-SEC

Перш ніж перейти до опису самих атак, нагадаємо про те, як влаштовані мережі мобільного зв'язку. У вас є номер. Наприклад, +79992128506. Це MSISDN (Mobile Subscriber Integrated Services Digital Number). Він не зберігається в SIM-карті, як багато хто думає. В SIM-картка зберігає інший ідентифікатор - IMSI (International Mobile Subscriber Identity), який передається в мережу тільки під час реєстрації абонента. Це 15-значне число виду 250115556667778, в якому 250 - код країни, 11 - код оператора, а інші 10 цифр - внутрішній унікальний номер даної SIM-карти (MSIN, Mobile Subscriber Identification Number). Саме IMSI використовується для ідентифікації абонента всередині мережі, тобто для здійснення будь-яких операцій з номером.

Інформація про відповідність IMSI і MSISDN (тобто у якого абонента яка SIM-карта) зберігається в базі даних, що іменується HLR (Home Location Register), причому таких баз може бути кілька - саме тому, наприклад, при спробі поміняти SIM-карту на нову в салоні оператора може не виявитися SIM-карт саме для вашого номера, так як IMSI наявних SIM-карт можуть бути вже занесені в іншу HLR. При цьому для кожного з сегментів мережі (комутаторів) використовується аналогічна база даних VLR (Visitor Location Register) - її відмінність полягає в тому, що дані в ній зберігаються тимчасово, копіюючи з HLR при появі абонента саме в цій частині мережі. В VLR також зберігаються дані про поточне місцезнаходження абонента (щоб знати, через яку базову станцію йому направляти вхідний дзвінок і повідомлення), настройки переадресації тощо. Всіма цими даними користується для своєї роботи комутатор, він же MSC (Mobile Switching Center).

Всіма цими даними користується для своєї роботи комутатор, він же MSC (Mobile Switching Center)

У сервісі SkyLock розташування будь-якого абонента вказується на карті: інтерфейс зрозумілий кожному, весь злом виконує програма

Отже, як же відбувається злом? Спочатку у зловмисника є тільки номер телефону (MSISDN). Щоб щось з ним зробити, потрібно отримати IMSI. Це можна зробити шляхом формування запиту на доставку SMS-повідомлення з нашої зовнішньої «мережі», емуліруемой на комп'ютері. В цьому випадку домашня мережа повідомляє у відповідь на запит адреса MSC / VLR, якими в даний момент обслуговується абонент: ці дані необхідні для того, щоб дізнатися, чи вдома абонент або в роумінгу, і якщо в роумінгу, то в якій мережі, щоб в цьому випадку направляти SMS вже безпосередньо туди (з голосовим викликом так не вийде, тому що він завжди проходить через MSC домашньої мережі - і той уже визначає, як маршрутизировать виклик далі). При цьому відбувається і передача IMSI, оскільки він також необхідний для маршрутизації. Після цієї нехитрої процедури ми маємо IMSI для управління параметрами «облікового запису» абонента, адреса HLR, в якому ці параметри зберігаються, а на солодке - в якій країні жертва зараз знаходиться.

Схема атаки для отримання IMSI

Тепер можна отримати запит точного місця розташування абонента: атакуючий, знаючи поточний MSC / VLR, відправляє туди запит про те, який базовою станцією обслуговується абонент з таким-то IMSI. У відповідь приходить унікальний ідентифікатор БС, за яким через відкриті бази даних можна дізнатися, де вона знаходиться, і з точністю до пари сотень метрів знайти абонента - так само, як визначають місце розташування смартфони з вимкненим GPS.

Схема атаки для визначення місця розташування абонента

Чому б тепер не похуліганити? Давайте повідомимо в HLR про те, що абонент зареєструвався в роумінговій мережі: передамо IMSI і адреса нового MSC / VLR. Тепер ніхто не зможе жертві ні зателефонувати, ні відправити SMS: домашня мережа переадресує запити в нікуди, при цьому абонент буде як і раніше зареєстрований в мережі і нічого не запідозрить.

Схема атаки для блокування доступності жертви

До речі, а навіщо відправляти дзвінки та SMS в нікуди? Чи не пропадати ж добру! Давайте вкажемо свій MSC / VLR - і весь трафік буде направлений нам! Наприклад, таким чином можна зібрати одноразові SMS-паролі для двухфакторной авторизації в різних сервісах, а це створює майже необмежені можливості для крадіжки грошових коштів та облікових записів. А можна просто читати всю SMS-листування, причому жертва навіть не запідозрить, що за нею стежать. Справа в тому, що SMS вимагає від MSC / VLR підтвердження його доставки, і якщо його не відправляти (у нас же не справжня мережу, а емуляція, можна отримати повідомлення, але сказати, що не отримували), а замість цього перереєструвати абонента на « справжній »MSC, то через кілька хвилин буде зроблена ще одна спроба доставки повідомлення і воно надійде адресату. Тобто один і той же SMS буде відправлено два рази: спочатку вам, потім йому.

Схема атаки для перехоплення SMS-повідомлень, адресованих жертві

Як відомо, USSD-запити завжди працюють і в роумінгу, дозволяючи перевіряти баланс, підключати різні послуги і тарифні опції. Симітіровав USSD-запит від VLR до HLR (тут потрібен MSISDN, адреса HLR і власне сам запит у вигляді комбінації цифр, зірочок і решіток), можна, наприклад, ініціювати переказ коштів з одного рахунку на інший. У деяких операторів для підтвердження цієї операції використовується SMS-авторизація, але SMS перехоплювати ми з вами щойно навчилися.

Схема атаки з відправкою USSD-запитів від імені жертви

Змінивши параметри облікового запису абонента в VLR, зокрема адресу білінгової системи, зловмисник може перехопити запит на тарифікацію вихідного дзвінка - в ньому буде видно номер абонента, якому намагається зателефонувати жертва. Тепер цього абонента теж можна зробити жертвою: той же спосіб, що і для перехоплення SMS, дозволить переадресувати виклик на номер зловмисника, а вже він ініціює конференц-зв'язок із сьогоденням абонентом, тихо підслуховуючи розмову. Вхідні дзвінки, відповідно, прослухати можна тим же способом, але без необхідності емулювати білінгову систему. Всі ці процедури проходять за кілька секунд, і ніхто зі співрозмовників не запідозрить, що між ними є хтось третій. Крім того, можна перенаправити трафік не для прослуховування, а в який-небудь дорогий сервіс на кшталт «сексу по телефону» і тому подібних: це можна непогано монетизувати, так як плата за з'єднання буде списуватися з тих, що дзвонять.

Схема атаки з прослуховуванням розмов абонента

Нарешті, за допомогою ОКС-7 можна влаштувати справжню DoS-атаку на комутатор, яка призведе до неможливості приймати вхідні дзвінки у всіх абонентів, що знаходяться в зоні його обслуговування. Для цього потрібно знати, що при реєстрації в VLR виділяється тимчасовий роумінговий номер, який потрібен, щоб MSC знав, куди саме направляти виклик. До загальновживаного поняття роумінгу (міжнародного чи внутрішньомережевого) роумінговий номер має вельми віддалене відношення. Він виділяється і в домашній мережі: незважаючи на те, що MSC і VLR, як правило, об'єднані, за стандартом GSM це два незалежних логічних елемента мережі, і між ними все одно відбувається обмін сигнальними повідомленнями. Так ось, якщо масово відправляти запити на виділення роумінгових номерів, то їх пул закінчиться, і «справжнім» абонентам ніхто не зможе додзвонитися через перевантаження комутатора.

Схема DoS-атаки на комутатор

Що ж робити? Поки можемо розповісти лише про те, «як страшно жити»: рішення для захисту в основному зводяться до моніторингу атак для виявлення підозрілої активності по вищеописаним сценаріями - це дозволяє вибірково блокувати певні запити. Тим часом оператори намагаються не афішувати наявність вразливостей: на їх бізнес можливості злому практично не впливають, а абонентам можна порадити все-таки не вести по телефону конфіденційних переговорів і не покладатися на SMS для авторизації. Крім того, для подібних цілей краще придбати окрему SIM-карту, номер якої не знатиме ніхто з вашого кола спілкування.

Якщо Ви помітили помилку - виділіть необхідний текст і натисніть CTRL + ENTER.