Ідентифікація, автентифікація

та авторизація

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

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

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

Як їх не переплутати

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

Розберемося, чим відрізняються ці процеси, які тут можуть виникати вразливості та як їх уникати.

Ідентифікація

Під час першої реєстрації на майданчику кожному користувачеві надається ідентифікатор або ID, призначається роль користувача в системі. І коли користувач намагається увійти до облікового запису, ініціюється ідентифікація — процес перевірки наявності облікового запису та ролі користувача. Ось як може виглядати ID в Google-сервісах:

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

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

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

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

Автентифікація

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

Автентифікація буває двоетапною або двофакторною. У цій статті ми розповідали, чим вони відрізняються. Також поширеною є багатофакторна автентифікація (MFA).

Автентифікацію також розрізняють за факторами та способами.

Фактори автентифікації:

  • щось відоме лише вам (паролі, коди, секретні фрази);
  • щось, що належить вам (телефони, ПК, планшети, токени, ключі безпеки);
  • щось, що є частиною вас самих — біометрія (відбиток пальця, голос, сітківка ока).

Кожен фактор під час налаштування перевіряється на належність; наприклад, якщо користувач вказує як контакт свою пошту або телефон, то має підтвердити доступ до них:

  • для пошти — перейти за одноразовим посиланням, що має обмежений термін дії;
  • для телефону — ввести одноразовий пароль.

Так само перевіряється фізичний пристрій: наприклад, потрібно натиснути кнопку на екрані смартфона «Так, це я», або торкнутися датчика на ключі безпеки, підтвердивши фізичну присутність.

Способи автентифікації:

  • електронно-цифрові підписи (простий, некваліфікований, кваліфікований);
  • паролі (одноразові — ОТР, багаторазові — незашифровані або зашифровані);
  • SMS-повідомлення (одноразовий ключ);
  • біометрична автентифікація (відбиток пальця чи долоні, сітківка ока, контури обличчя, голос).

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

Співвідносячи автентифікацію з процесами офлайн, її можна порівняти, наприклад, з можливістю увійти до квартири за наявності ключа

 

Авторизація

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

Авторизацію онлайн наочно видно на прикладі можливостей робити якісь дії у блозі або на форумі:

  • права нового користувача – тільки коментувати;
  • права авторів чи користувачів зі стажем — коментувати та надсилати на редагування свої пости, створювати нові гілки;
  • права редактора чи модератора — мати можливість керувати обліковими записами інших авторів (користувачів), додавати та знімати з публікації матеріали.

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

Вразливості ідентифікації

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

Інтернет-магазин може мати гібридну структуру, тобто частково перебувати у хмарі (про це ми розповідали минулого разу), або збирати облікові записи з різних сервісів; отже, розробникам потрібно враховувати особливості кожної системи та закривати вразливості.

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

Вразливості автентифікації

На жаль, практично всі способи автентифікації зловмисники можуть оминути:

  • паролі можуть підібрати, зламати чи вкрасти;
  • поштові та SMS-паролі можуть перехопити;
  • біометричну автентифікацію варто скомпрометувати один раз і нею вже не можна буде користуватися як ключем; особливо легко шахраям вдається підробити голос (достатньо один раз зателефонувати власнику, записати його голос, а вже потім змоделювати фрази) або контури обличчя (деякі застарілі або неякісні програми можуть не відрізняти справжнє обличчя від фото).

Однак є методи, які хакерам зламати справді важко:

  • ЕЦП, якщо, звичайно, ви зберігаєте його на захищеному токені, а не на ПК, де його можуть вкрасти за допомогою вірусів або отримавши фізичний доступ до пристрою;
  • ключі безпеки, якщо вони мають належну сертифікацію та якість, наприклад, ключі YubiKey, виробництва Швеції та США.

Оскільки токени та ключі безпеки мають захист від читання й копіювання та в ключах безпеки використовуються надійні алгоритми криптографії, стійкі навіть до квантових обчислень (quantum resistant), то навіть при крадіжці пристроїв ймовірність зламу облікового запису дуже невисока. Особливо якщо власник швидко виявить пропажу і потурбується вжити відповідні заходи.

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

І, звичайно ж, для надійності автентифікація має бути багатофакторною (MFA) або хоча б двофакторною (2FA). Оскільки чим більше факторів захисту встановлено, тим складніше хакеру зламати обліковий запис.

Вразливості авторизації

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

Приклади доступів у банківській сфері:

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

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

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

Горизонтальне розширення привілеїв

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

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

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

Швидше за все, код містив помилку і не тільки не закривав сесію на певному етапі, а й переводив у наступний за списком у базі даних обліковий запис.

Вертикальне розширення привілеїв

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

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

Долається це встановленням коду перевірки даних, які користувач може ввести, і забороною на введення невідповідних даних.

Висновки і рекомендації

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

  1. Знайдіть компанію з гарною репутацією, яка допоможе вам протестувати поточний стан платформи на вразливості та отримайте список рекомендацій щодо інформаційного захисту. Наприклад, у цьому питанні можемо допомогти ми як фахівці з 30-річним досвідом і компанія, що цінує свою репутацію.
  2. Встановіть надійну захищену платформу для керування ідентифікацією, наприклад, Gluu, яка заощадить ваш час та гроші і за потреби може обслужити до мільярда користувачів.

Чому це вигідно:

  • не доведеться утримувати у штаті дорогих висококваліфікованих фахівців, яким потрібно платити за робочий час, а не за фактом зробленої роботи;
  • платформа візьме на себе всі необхідні потужності (програмне забезпечення, обсяг хмарного сховища, антивірусний захист та багато іншого) при цьому її обслуговування обійдеться в рази дешевше, ніж придбання, утримання та оновлення необхідного обладнання та ПЗ;
  • ви зможете з легкістю масштабувати бізнес без величезних вкладень і без необхідності брати кредити.

Зацікавлені у цих питаннях? Зв’яжіться з нами або надсилайте заявку з сайту.