Химич Роман (totaltelecom) wrote,
Химич Роман
totaltelecom

Кід МОЗу

Днями зіткнувся із анонімним ентузіастом пресвятої Ульяни, поціновувачем e-Health платформи, про яку її розробники кажуть, що "на сегодня подобных систем в мире нет". Розмова вийшла весела, як це завжди буває, коли зустрічаю Свідків Супрун, але то дрібнички. Важливо те, що завдяки цій суперечці я усвідомив помилку, через яку досі дуже сильно недооцінював масштаби загроз, пов'язаних із цим шедевром реформаторської думки.

Справа в тому, що у липні, коли востаннє досліджував процедури аутентифікації користувачів сайту Helsi.me (загальнодоступний компонент e-Health платформи), я був неуважним і вирішив, що там використовується аутентифікація за одним-єдиним фактором, а саме номером стільникового зв'язку. Тобто так само, як це реалізовано, наприклад, в деяких інноваційних послугах самого інноваційного банку. Достатньо мати зареєстрований в системі номер, тобі надсилають на нього в SMS тимчасовий/одноразовий пароль (SMS OTP), ти його повідомляєш системі і - вуаля! - весь світ у твоїх ніг. Або твій світ - у чужих, вже кому як пощастить.

Вади схеми на основі SMS OTP добре відомі. Якщо користувач зареєстрував неперсоніфікований номер передплаченого зв'язку - а це досі приблизно 90% всіх номерів, - зловмисники можуть цілком легально оформити на себе цей номер. Із мінімальними зусиллями, витратами часу та нульовим ризиком. Для цього їм достатньо знати лише сам цей номер. Це не миттєва операція, вона передбачає певні трудовитрати, але давно та добре відпрацьована.

Так от, виявляється, у випадку e-Health платформи все набагато гірше. На етапі реєстрації нового користувача на його номер надсилається код доступу у вигляді семизначного числа, який і використовується в подальшому. Тобто використовується статична пара номер телефону + семизначний код (у випадку із МОЗом варто, мабуть, казати про кід), причому виключно числовий. АЛЕ! Якщо людина забула оцей свій код чи кід, вона може отримати його повторно, почекавши аж 60 сек. Попри те, що їй регулярно нагадують - цей кід постійний!

Це якесь bullshit bingo, "найкраще з обох світів". Попри балачки про GDPR, security by design та імплементацію крутих technical measures МОЗ, НСЗУ та їхні побратими з Edenlab припустилися просто дитячих помилок. Мало того, що вони запопадливо зберегли можливість проникнення до окремо взятого облікового запису через переоформлення номера (т.зв. SIM swap), обрана ними схема аутентифікації забезпечує ідеальні умови для автоматизації фішінгу. Автоматизація в даному контексті означає діяльність, яка а) відбувається без залучення персоналу б) може бути масштабована майже без обмежень в) дозволяє радикально, порівняно із хакінгом вручну, підвищити продуктивність.

Автоматизований фішінг такого штибу давно й плідно використовується на російському ринку тамтешніми майстрами "фінтеху a la russ". Стосовно української e-Health платформи такий сервіс може виглядати так:

1. Спочатку SMS-розсилка по цільовій авдиторії. На сьогоднішній день це і швидко, і недорого і 100% безпечно. Завдяки феєричному бардакові в царині захисту персональних даних, в комерційному обороті знаходиться більш ніж достатньо таких даних на будь-який смак. Можна з великою точністю таргетувати розсилку, спрямувавши її молодим мамусям, або дідусям й бабусям, або хлопчиськам та дівчиськам будь-якого віку, сімейного стану і таке інше.

2. Жертви отримують SMS, де в якості відправника міститься HELSI або номер +380 66 580 1551, який є офіційним номером підтримки цього сервісу. Так, короткий номер то для піжонів, в МОЗ/НСЗУ звикли рахувати кожну державну копійку.

3. Повідомлення містить чи прохання, чи то вказівку зробити щось навколомедичне, зателефонувавши на вказаний в ньому номер. Це може бути "автоматична звірка даних", або "інтерактивне опитування", або "науковий експрес-тест Вашого поточного стану". Безпрограшним варіантом виглядає "повна збірка порад від Уляни Супрун".

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

4. Зателефонувавши, жертва чує механічну тітоньку, яка лагідно вітає її, передає привіт від пані міністерки та просить ввести кід МОЗу, що використовується для доступу до приватного кабінету в Helsi.me Жертва вводить ці данні, отримує чергові поради від Уляни Супрун або проходить науковий експрес-тест і вішає трубку, отримавши наостання суворе застереження не передавати нікому секретний кід.

Звичайно, все це також можна реалізувати за допомогою Viber-, Telegram- та інших розсилок через популярні месенджери. Замість IVR можна використовувати фішінгові сайти, на які жертва потрапить через гіперпосилання в повідомленні.

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

Якщо вірити інсайдерам російського ринку, за сприятливого збігу обставин у такий спосіб можна збирати по кількадесят тисяч пар "логін-пароль" протягом однієї доби.

За українських реалій, якщо діяти обережно, кілька місяців в МОЗ/НСЗУ взагалі нічого не помічатимуть. Потім казатимуть, що мова йде про поодинокі випадки. Потім впадуть на "мороз", як це зазвичай робить в.о., коли має місце незручна для неї ситуація (див. кейс із сироваткою від ботулізму). Врешті-решт, коли смаженим вже не пахнитеме, а смердітиме, притомні люди з гарними обличчями знов організують флеш-моб #ВимагаюСупрун чи #УлянувМіністри ну, все як завжди, всі в курсі, гадаю. Найбільш пильні й допитливі пластуни різного віку 100% задаватимуться вголос питанням на чий млин лиє воду Secure and Trustful Digital Environment Task Force? Чи не путінські це, бува, посіпаки? Вопщем, за перспективи фішингу медичних даних можна не хвилюватися.

Збуджені
моїми розвідками, фахівці та фахівчині МОЗу просувають тезу, що через Helsi можна всього лише записатися до лікаря, жодних медичних даних там нема. Тому, мовляв, і використовуються такі слабкі запобіжники. Між тим достатньо зайти в розділ Про Helsi, аби побачити згадки про електроні медичні картки, аналізи та інші персональні дані, що складають медичну тайну. Все це почне вводитися з 2020 року, а просто зараз подібної інформації нема. Час ще не прийшов, ось і все.

Інший аргумент, який здається Свідкам Супрун дуже потужним, полягає в тому, що Helsi це всього лише одна з МІС, яку підтримує якась ТОВка, себто приватний бізнес, відокремлений від МОЗ/НСЗУ/Св.Уляни. Але Є Одне Але Саме цей сервіс є інтерфейсом для великої частини населення, яке лікується в комунальних/державних закладах. Тому МОЗ/НСЗУ/св. Уляна відповідають за цю компанію та її сервіс.

Все це вимагає від нас відповіді на питання що можна зробити в цій ситуації? Конкретно та Конструктивно.

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

На сьогоднішній день бачу наступні варіанти:

0. За будь-яких обставин забезпечити підтримку офіційно визнаних цифрових інструментів ідентифікації, таких як різноманітні ЕЦП, BankID, одним словом, eID. Для цього, здається, є все необхідне, починаючи від сервісу id.gov.ua ВАЖЛИВО: в користувача, який обрав аутентифікацію у такий спосіб, має бути можливість відключити/заблокувати базову опцію аутентифікації за номером мобільного.

1. Якщо вважати автоматизований фішінг більшою небезпекою порівняно із індивідуалізованими атаками, тоді варто перейти на виключно тимчасові одноразові паролі, себто SMS OTP.

2. Підсилити SMS OTP перевіркою чи не переносився останнім часом цей номер на нову картку, як це зроблено, наприклад, в братньому Мозамбіку. На замовлення МОЗ операторам стільникового зв'язку треба буде реалізувати відповідні API

3. Додати вимогу персоніфікації номерів, які використовуються для аутентифікації в цій системі. Відповідно, МОЗу доведеться замовити (і заплатити, так) операторам за впровадження ще одного API. Користувачам неідентифікованих номерів доведеться сходити до салонів і оформити свої номери на себе.

4. Реалізувати модель аутентифікації, коли за певним номером перевіряється наявність в користувача не просто самого номера, а конкретної SIM-картки, яка була асоційована із цим номером на момент реєстрації. Така функціональність реалізована, наприклад, в Mobile Connect, що його просуває GSM Association. Користувач заходить на сайт і бачить сесійний пароль. В нього на телефоні з'являється віконце, де треба ввести цей пароль. Оператор бачить, яка саме SIM-ка використовується, тому злочинцям нема сенсу переоформлювати номер на себе, бо картка буде інша. Навіть якщо користувач повідомить цей пароль злочинцям, це ніяк їм не допоможе, бо їхня сессія буде іншою. Єдиний спосіб дістатися до даних користувача - заволодіти його телефоном/SIM-карткою з чинним номером.

Звичайно, пп. 2-4 потребуватимуть інвестицій, та, сподіваюсь, жодна притомна людина не чекає від рішень, що забезпечують безпеку даних із медичною тайною (а весь гармидер саме через них, с 2020 вони почнуть накопичуватися в eHealth), що вони будуть ще й безкоштовними. Тобто халявою.


P.S. Це ми ще не торкалися питання підстав, на яких відбувається обробка даних. Про це буде окремий і дуже розлогий текст. 
Tags: digital identity, здравоохранение
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 3 comments