Про блокування мобільного додатку Yota з боку МТС

    Привіт, Хабр. Як ви знаєте, 13 серпня ми почали видавати з попереднього замовлення SIM-карти Yota . Пройшло трохи більше тижня з того моменту — і спочатку в Twitter, потім в інших соцмедіа, а потім і в зверненнях в нашу службу підтримки стали з'являтися однотипні скарги від користувачів — вони повідомляли про непрацюючий мобільному додатку Yota. В результаті аналізу з'ясувалося, що проблеми виникали тільки у абонентів МТС, які намагалися запустити додаток Yota, і саме при підключенні до мобільного інтернету. При підключенні через Wi-Fi додаток працювало без нарікань. Також у абонентів МТС не відкривався розділ Voice на сайті yota.ru.
 
Ми припустили, що МТС заблокував роботу нашого застосування у своїй мережі. І незабаром наші здогадки підтвердилися. Але про все по порядку.
 
 

Кілька слів про додатку

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

Зав'язка

Перші повідомлення про проблему з мобільним додатком Yota з'явилися 19 серпня, про це написав у своєму мікроблозі в Twitter один з абонентів МТС. Додаток успішно завантажувати і встановлювати, але на першому ж екрані зависало. Дослідним шляхом користувач з'ясував, що така поведінка додатки спостерігається тільки при використанні мобільного інтернету в мережі МТС, при підключенні по Wi-Fi все починало працювати коректно.
 
 
 
 
 
 
 
 
 
Після отримання цієї інформації ми перевірили роботу нашого застосування в мережах інших мобільних операторів. У всіх випадках, крім мережі МТС, додаток працювало коректно. Тобто описана користувачем проблема дійсно була відтворена при використанні SIM-карти нашими тестувальниками.
 
 

Перший акт

Після пристойної кількості скарг від користувачів наші фахівці звернулися в службу підтримки МТС. На сайті mts.ru за всіма правилами була зареєстрована проблема з доступом до певним ресурсам і проханням вирішити її.
 
 
 
Також ми продублювали свою скаргу в контактний центр МТС. З другого разу, після тривалого очікування відповіді оператора, після декількох перемикань на різних фахівців, вдалося отримати відповідь, що питанням займуться. Через кілька днів пролунав дзвінок: дзвонили з контактного центру, питали, чи не зважилася Чи проблема. Співробітник Yota відповів, що не зважилася. Той, хто дзвонив пообіцяв перевести заявку на іншого фахівця. Більше служба підтримки МТС ніяких дій не робила, ми не отримали ні письмової відповіді на наш запит, ні дзвінків.
 
До моменту нашого звернення в службу підтримки в мережі було вже багато повідомлень від інших користувачів МТС, які зіткнулися з фактом блокування. Ця ситуація навіть встигла залучити увагу журналістів . Однак оператор всякий раз заперечував факт блокування, причому глава їхньої прес-служби у відповідь звинуватив Yota в «нахабному брехня» і спробах «видавати фейлов за злу волю оператора-конкурента» .
 
 
 
 

Другий акт

Паралельно зі спробами достукатися до МТС ми вивчали, яким чином здійснюється блокування. Було ясно, що це робиться набагато тонше, ніж повне обрізання трафіку, оскільки всі IP-адреси пінгуються без проблем. Також з'ясувалося, що причина непрацездатності додатки та розділу Voice на сайті полягає в наступному: для їх коректної роботи необхідний доступ до службових ресурсам static.yota.ru і wa.yota.ru. Коли для встановлення сесії з ними здійснюється обмін пакетами, цьому процесу ніщо не перешкоджає. У нашому ж випадку всі наступні пакети з даними «ріжуться». Тобто формально зв'язок встановлюється, однак обмін «корисними» даними з віддаленим ресурсом відразу блокується.
 
 

Третій акт

Оскільки ми не отримали відповіді від МТС, а блокування продовжилося, ми направили їх керівництву офіційний лист. Сам факт блокування був завірений у нотаріуса. Також ми звернулися в незалежну експертну компанію СПІІРАН, яка провела власний аналіз і видала багатосторінкове офіційний висновок, в якому підтверджувалися зроблені нами «відкриття». Загальний обсяг документа склав більше 100 сторінок, тому ми наведемо лише поставлені завдання і зроблені в ході дослідження висновки:
 
 Базове дослідження / розширене дослідження
 
Мета: підтвердити або спростувати факт наявності проблем з працездатністю мобільного додатку і сайту Yota з точки зору абонента при використанні SIM-карт і мережі оператора зв'язку МТС, а також визначити джерела проблем працездатності мобільного додатку і розділу / voice сайта Yota при використанні мережі оператора зв'язку МТС.
 
 
 
 Сценарій :
1. Вимкнути телефон
2. Помістити SIM-карту в телефон
3. Включити телефон, підключитися до мережі оператора зв'язку
4. Зафіксувати оператора зв'язку, до якого встановилося з'єднання, і умови підключення
5. Перевірити працездатність послуги передачі даних: через штатний браузер операційної системи відкрити сайти yandex.ru, google.ru, lenta.ru
6. Перевірити відсутність доступу через проксі-сервер — зайти на сайт 2ip.ru, зафіксувати зовнішній IP-адреса, через базу даних IP-адрес переконатися, що IP-адреса належить оператору, до якого вироблено підключення
7. Виміряти швидкість передачі даних за допомогою додатка Speedtest
8. Встановити на мобільний пристрій мобільний додаток Yota
9. Виконати базові перевірки роботи мобільного додатку Yota
10. Через штатний браузер операційної системи відкрити розділ сайту yota.ru/voice
11. Зафіксувати результати
Сценарій має бути виконаний на кожному телефоні і з кожною SIM-картою, використовуваними для поточного дослідження.
 
 Висновки : результати дослідження підтверджують наявність проблем працездатності мобільного додатку і розділу / voice сайта Yota з точки зору абонента при використанні всіх закуплених для дослідження SIM-карт МТС та мережі оператора зв'язку МТС. Одночасно з цим підтверджується, що при використанні альтернативного оператора зв'язку «Білайн» працездатність мобільного додатку Yota відповідає заявленому поведінці, розділ / voice сайта Yota штатними засобами операційної системи відкривається.
 
Результати розширеного дослідження показали, що для всіх SIM-карт МТС, всіх використовуваних в дослідженні пристроїв і для всіх проблемних сценаріїв актуальна одна проблема, з симптомами, властивими всіх підключень клієнта до серверів Yota з IP-адресами 94.25.232.254, 94.25.232.127. При використанні альтернативного оператора зв'язку «Білайн» проблема підключення до цих IP-адресами не відтворюється, всі мережеві з'єднання встановлюються коректно. Проблема полягає в тому, що після коректного встановлення TCP-з'єднання подальший мережевий обмін переривається через відсутність відповіді сервера на TCP-запит клієнта.
 
 Визначення причини виникнення проблем
 
 Мета : шляхом проведення поглибленого дослідження визначити причини виникнення проблеми порушення мережевої взаємодії при зверненні абонентів МТС до серверів Yota з IP-адресами 94.25.232.254, 94.25.232.127.
 
 
 
Для проведення поглибленого дослідження було розроблено спеціалізоване програмне забезпечення, що емулює різні етапи TCP-з'єднання. Спеціалізоване ПО запускалось з боку тестового комп'ютера (2), підключеного до тестового телефону (1) по інтерфейсу Wi-Fi.
 
З метою подальшого аналізу проміжних результатів дослідження проводився з'їм даних мережевих з'єднань з інтерфейсу Wi-Fi тестового комп'ютера (2) за допомогою програмного комплексу WIRESHARK. Одночасно з цим з боку серверів Yota також запускався з'їм даних мережевих з'єднань утилітою TCPDUMP.
 
 Сценарій :
1. Вимкнути мобільний пристрій (1)
2. Помістити SIM-карту в мобільний пристрій (1)
3. Включити мобільний пристрій (1), підключитися до мережі оператора зв'язку
4. Зафіксувати оператора зв'язку, до якого виробилося підключення, а також умови підключення
5. Виконати базові перевірки роботи послуги передачі даних
6. Підключити тестовий комп'ютер (2) до інтерфейсу Wi-Fi мобільного пристрою (1)
7. Провести базові перевірки доступності IP-адрес і маршрутизації до IP-адресами по протоколу ICMP штатними засобами TRACEROUTE і PING.
8. Зафіксувати і проаналізувати проміжні результати
9. Провести спеціалізований тест за розробленою методикою (см. Опис методики нижче) по проходженню TCP пакета з мережевого маршрутом до IP-адрес серверів Yota
10. Зафіксувати і проаналізувати результати.
Сценарій необхідно провести на кожній SIM-карті МТС.
 
 Методика спеціалізованого дослідження : Методика полягає в емуляції TCP-з'єднання з сервером Yota і послідовним зміною TTL TCP-пакетів із запитом даних від клієнта до сервера за аналогією з методикою визначення маршруту до сервера по протоколу ICMP (команда TRACEROUTE).
 
 
 
При визначенні маршруту до сервера клієнт передає ICMP Echo Request пакети з часом життя пакета від TTL = 1 до TTL = (довжина маршруту). Кожен мережевий вузол, отримавши пакет, зменшує його на одиницю і передає далі по маршруту. Отримавши IP-пакет з TTL = 1, якщо це не кінцевий вузол-одержувач пакета, мережевий вузол відкидає пакет і посилає відправникові пакет ICMP Time-to-live exceeded, який вказує відправнику на те, що пакет не був перенаправлений далі. Якщо вузол-одержувач є кінцевим вузлом, то він відповідає на запит пакетом ICMP Echo Reply. Аналізуючи заголовки отриманих пакетів, клієнт може визначити повний маршрут до вузла-одержувачу. Також даним способом можливо відстежити потенційну фільтрацію IP- і ICMP-пакетів на мережевому обладнанні.
 
Методика поточного дослідження повторює алгоритм визначення маршруту до вузла-одержувача за винятком того, що для дослідження використовується не протокол ICMP, а протокол TCP. При цьому спочатку клієнт встановлює коректне TCP-з'єднання, а потім передає TCP-пакет запиту даних до сервера з заданим TTL. Збільшуючи час життя TCP пакета від TTL = 1 до TTL = (довжина маршруту), можливо перевірити наявність фільтрації на мережевому обладнанні TCP-пакетів за умови, що на тому ж обладнанні відсутня фільтрація ICMP пакетів Echo Request / Reply і ICMP Time-to-live Exceeded.
 
 Сценарій дослідження :
1. Визначення «довжини» маршруту до сервера. Для цього використовується інформація з результатів виконання команди TRACEROUTE.
2. емулюються встановлення TCP-з'єднання (TCP handshake)
3. Посил TCP-пакета із заданим TTL
4. Очікування відповіді від устаткування (сервера).
 
Сценарій повторюється кількість разів, згідно довжині маршруту, до тих пір поки не виявиться хост, на якому ICMP-відповідь на пакет не приходить за умови наявності ICMP-відповіді під час визначення довжини маршруту. Сценарій проводиться на кожній SIM-карті МТС. Якщо на якомусь із вузлів мережі присутній фільтрація мережевих пакетів, то від цього обладнання відповідь на тестовий пакет не прийде. Оператор зв'язку, фільтруючий пакети на шляху маршруту, визначається за IP-адресою обладнання, що не відповідає на тестовий пакет.
 
 Результати : за результатами можна зробити висновок, що сервера доступні за протоколом IP, маршрутизація функціонує коректно — відстань до IP-адрес Yota становить 15 мережевих вузлів, включаючи тестовий телефон, IP-пакети доставляються до сервера, від сервера приходять відповіді, середній час відповіді сервера становить 90 мс.
 
Перевірка проходження IP-пакетів ICMP Echo Request до IP-адрес серверів Yota пройшла успішно. Перевірка проходження пакетів ICMP Echo Request і пакетів ICMP Time-to-live exceeded при інкрементальних зміні TTL-пакетів виявила часткову фільтрацію пакетів ICMP на етапі між IP адресами 37.29.4.162 і 94.25.208.193. При цьому фільтрація зачіпає тільки ICMP-відповіді, незалежно від наявності даного типу фільтрації пакети запитів доходять до IP адрес Yota.
 
 Висновки : результати проведення поглибленого дослідження показують, що причиною проблеми, через яку клієнтське мобільний пристрій після посилки TCP-пакета з даними не отримує відповідь від сервера, є наявність фільтрації TCP-пакетів з даними на стороні оператора зв'язку МТС в районі мережевого обладнання, яке є першим обладнанням мережевого рівня, на яке надходить трафік з абонентських пристроїв.
 
 
 
 
 Результат виконання команди TRACERT для сервера static.yota.ru
 
Доставка IP-пакетів і маршрутизація пакетів від і до IP-адрес серверів Yota виробляються коректно. Виявлена ​​фільтрація службових IP-пакетів, що не впливає на кінцеве встановлення з'єднання і передачу даних у разі використання TCP-протоколу транспортного рівня з гарантованою доставкою пакетів.
 
Поглиблене дослідження за спеціально розробленою методикою проходження TCP-пакета запиту даних з різними значеннями TTL показала наявність фільтрації TCP-пакета запиту на обладнанні МТС з IP адресою 10.25.132.90, яке є першим обладнанням мережевого рівня, на яке надходить трафік з абонентських пристроїв.
 
 
 Результат передачі TCP пакета з TTL = 1 для сервера static.yota.ru
 
 
 Результат передачі TCP пакета з TTL = 2 для сервера static.yota.ru
 
 
 Результат передачі TCP пакета з TTL = 3 для сервера static.yota.ru
 
 
 Результат виконання команди TRACERT для сервера wa.yota.ru
 
 
 Результат передачі TCP пакета з TTL = 14 для сервера wa.yota.ru
 
 
 Результат передачі TCP пакета з TTL = 15 для сервера wa.yota.ru
 
 

Висновок

Отже, за результатами експертизи було підтверджено блокування допоміжних ресурсів, що забезпечують працездатність програми та розділу сайту — 94.25.232.254 (wa.yota.ru) і 94.25.232.127 (static.yota.ru). Це спостерігалося на всіх використаних в ході тестування SIM-картах МТС. В мережах інших операторів додаток і розділ Voice на сайті yota.ru працюють коректно.
 
Проведена експертиза підтвердила, що на мережевому обладнанні МТС, на яке надходить трафік з абонентських пристроїв, відбувається виборча фільтрація мережевих пакетів запитів даних. Причому фільтрація здійснювалась немає від IP-адрес наших серверів, а до них. При цьому службові пакети, призначені для коректного встановлення і завершення з'єднання, не фільтруються.
 
В результаті мобільний додаток встановлювало з'єднання з сервером, деякий час відправляло запити на отримання даних, але не дочекавшись, закривало з'єднання. Все це призводило до того, що «з боку користувача спостерігалося вельми характерна поведінка додатки — тривале" зависання "і відсутність реакції на дії користувача, які можуть бути розцінені як помилки і некоректна робота самого додатка». В результаті користувачі не могли скористатися якими-небудь функціями програми, в тому числі замовити SIM-карту Yota.
 
Особливо варто відзначити, що така виборча фільтрація вводить в оману технічних фахівців при спробах аналізу мережевих проблем, так як штатними засобами аналізу мережевих збоїв подібну фільтрацію виявити не представляється можливим.
 
Дії МТС побічно нанесли збиток і нашої репутації, оскільки в непрацездатності додатки користувачі звинувачують Yota. Це не кажучи про час, силах і засобах, витрачених нами на проведення вищеописаного розслідування.
 
 
 
 

Кульмінація (чи ще ні?)

З 21 серпня ми неодноразово зверталися до представників МТС на різних рівнях з вимогою розблокувати додаток Yota. Ніяких заходів ними прийнято не було. Сьогодні за результатами тестів та зворотного зв'язку від клієнтів МТС, раніше мала проблеми з додатком, ми підтверджуємо, що додаток почало працювати коректно. Ми пов'язуємо це з тим, що сьогодні широкій громадськості стало відомо про підготовці нами заяви в ФАС , і МТС оперативно вжив заходів з розблокування Yota. Незважаючи на рішення проблеми, ми все одно будемо подавати скаргу.
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.