Стільникові мережі: злом простіше простого

Стільникові мережі: злом простіше простого
Пару років тому прогримів цікавий скандал із затриманням зловмисників, які отримали несанкціонований доступ до мобільних телефонів випадкових людей і використовували його для переказу коштів на свої рахунки.

Тоді мова йшла про перехоплення ключів з ефіру, їх розкодування і подальшому створенні тимчасових «клонів» SIM-карт. Сучасні потужні комп’ютери можуть зробити це за лічені хвилини, на відміну від своїх попередників у 1991 році, — саме тоді створювався стандарт GSM, і саме на ті обчислювальні потужності була розрахована стійкість ключів.

Оператори вважали за краще не афішувати проблему і через підконтрольних провідних мобільних аналітиків вкинули в ЗМІ якусь наукоподібну нісенітницю про автоматичне підключення до мереж Wi-Fi — що, до речі, теж є серйозною проломом в безпеці, це правда, але проблема була все-таки не в цьому.

Тим часом ще в минулому році був виявлений спосіб атаки на стільникові мережі, що не вимагає ні спеціальних дорогих радіосканером, ні потужних комп’ютерів і доступний будь-кому. При цьому оператори, на жаль, не можуть захиститися від подібного злому практично ніяк. Метод називається «атака через SS7». SS7, або, по-нашому, ОКС-7, — це система сигналізації, яка використовується в стільникових мережах і розроблена ще в 1970-і роки для перших електронних АТС. Ви будете сміятися, але ніякого захисту в ОКС-7 немає: сигнальний трафік ніяк не шифрується, а відрізнити легітимні команди від підроблених неможливо — обладнання справно виконує всі команди, які отримує, неважливо, з якого джерела.

Друзі сайту: до речі, вам можуть знадобитися юридичні послуги від справжніх професіоналів, зокрема юрист Харьков, які допоможуть вам в усіх аспектах правових питань! Детальніше можна дізнатися на reputacia.com.ua.

Причина такого неподобства дуже проста: при використанні SS7 сигнальний канал фізично відділений від голосового, і тому, як справедливо вважали розробники протоколу 40 років тому, ніхто чужий до нього доступу отримати не може, окрім персоналу телефонної станції.

Та й сенсу в цьому ніякого не було: тоді, крім команди на встановлення з’єднання з таким-то абонентом, нічого цікавого і не передавалося. Так що нелегітимних пакетів можна було не побоюватися.

Однак у 2000 році була придумана система передачі команд SS7 по IP-каналам, і тепер вийшло так, що доступ до сигнальному каналу став можливий ззовні.

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

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

Де розташований хаб — абсолютно не має значення, через нього можна відправляти і приймати команди в мережу будь-якого оператора в світі. А блокування команд з певних вузлів з великою часткою ймовірності порушить роботу роумінгу та міжнародного зв’язку, тому від подібних атак і складно захиститися.

Що ж можна зробити, дізнавшись номер телефону жертви? Для початку потрібно отримати IMSI (International Mobile Subscriber Identity) — це умовний внутрішній ідентифікатор SIM-карти в мережі, за допомогою якого згодом і відбувається злом. Для цього використовується SMS. Варто нагадати, що сервіс SMS спочатку з’явився як недокументована «фіча» протоколу. Так що повідомлення передаються як раз по сигнальному каналу.

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

Мовляв, ось тобі IMSI і адреса сегмента мережі, де зараз наш абонент: відправляй повідомлення для цього IMSI на той MSC / VLR. Адреса основної бази даних HLR при цьому теж стає доступним. Знаючи всі ці адреси і ідентифікатори, можна відправляти різні цікаві команди.

Наприклад, можна запросити ідентифікатор базової станції, яка в даний момент обслуговує абонента. Використовуючи цей ідентифікатор (а він унікальний) і відкриту для всіх бажаючих базу даних в Інтернеті, можна отримати місце розташування абонента з точністю до декількох сотень метрів. При цьому є спеціальні програми, які роблять всю процедуру автоматично: ви вводите номер, а через пару секунд отримуєте точку на карті. Зручно же!
Можна послати в HLR команду на зміну VLR і «підставити» неіснуючий, заблокувавши таким чином проходження вхідних дзвінків і повідомлень.

Є і ще більш цікавий варіант: можна вказати адресу «свого» MSC / VLR, який ви емуліруете на комп’ютері, благо пакет SS7 для Linux доступний для вільного скачування. В цьому випадку можна перехоплювати повідомлення і дзвінки, причому робити це непомітно.

Для цього достатньо отримати SMS на підставний комп’ютер і не передати у відповідь підтвердження доставки, а переключити VLR назад на легітимний. Тоді сервер відправника через пару хвилин знову його відправить, і воно дійде-таки до адресата.

Перехоплення SMS-повідомлень зручно використовувати, наприклад, для отримання доступу до сервісів з двухфакторною авторизацією. З дзвінками ще простіше: в HLR можна встановити безумовну переадресацію на наш проміжний номер, а з нього потім ініціювати конференц-зв’язок з жертвою.

Можна прослухати і вихідні дзвінки подібним способом, тільки трохи складніше: переадресацію потрібно буде встановити на номері того, кому дзвонить жертва. Дізнатися його можна в момент, коли при вихідному виклику запит, який містить номер, передається на білінг-платформу для тарифікації виклику.
Підмінивши адресу білінг-платформи на свій, а потім, повернувши його назад, ми отримаємо потрібний номер. Жертва, відповідно, зможе зробити дзвінок тільки з другого разу, але навряд чи щось запідозрить (до речі, регулярне проходження вихідних дзвінків тільки з другого разу — вірна ознака того, що вас прослуховують).

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

У звичайного ж користувача можна поцупити пару сотень гривень з рахунку, відправляючи від його імені USSD-команди послуги «Мобільний переклад» або переадресовуючи його дзвінки на платні номери і продаючи такий трафік.

Як вже було сказано вище, повністю захиститися від таких атак неможливо — проблема закладена на рівні протоколу, і від неї можна позбутися тільки після глибокої модернізації всієї системи зв’язку.

Альтернативний варіант — складний аналіз активності всіх абонентів з метою виявлення потенційно шкідливих дій. Деякі ІТ-компанії пропонують автоматизовані рішення, за принципом роботи нагадують антифродові системи банків.

Однак оператори не поспішають повідомляти публіку про впровадження подібних рішень. Тому рядовий абонент не має можливості дізнатися, захищений він від описаних неприємностей чи ні.

Так що залишається нагадати, що все більш-менш конфіденційні переговори (та й взагалі, розмовляючи, уявляйте, як це буде виглядати в YouTube) варто проводити не по телефону, а при особистій зустрічі. А для двофакторної аутентифікації краще придбати окрему SIM-карту, номер якої не знатиме ніхто, крім вас.