28 Лют, 2023

Обхід авторизації за допомогою керованого користувачем ключа

Що таке обхід авторизації? 

Обхід авторизації - це тип вразливості системи безпеки, коли зловмисник може отримати несанкціонований доступ до системи або ресурсу без належної автентифікації або авторизації.

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

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

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

Що таке керований користувачем ключ?

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

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

Як зловмисник отримує доступ до ключа, контрольованого користувачем?

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

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

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

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

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

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

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

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

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

Як це працює 

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

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

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

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

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

				
					Для изучения условий гонки от времени проверки до времени использования (TOCTTOU)
				
			

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

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

  2. Зловмисник генерує контрольований користувачем ключ, який дозволить обійти перевірку автентичності. У цьому прикладі зловмисник міг просто надати ключ, який дорівнює значенню SECRET_KEY ("5up3r53cr37k3y").

  3. Зловмисник надсилає контрольований користувачем ключ у запиті на вхід на сервер.

  4. Сервер генерує похідний ключ, використовуючи керований користувачем ключ і функцію генерування ключів.

  5. Сервер генерує похідний ключ, використовуючи керований користувачем ключ і функцію генерування ключів.

  6. Сервер повертає відповідь про успішну автентифікацію, і зловмисник отримує доступ до захищеного сервісу.

				
					: Существует несколько онлайн-руководств и учебных курсов, которые охватывают условия гонки от времени проверки до времени использования (TOCTTOU), в том числе предлагаемые Udemy, Pluralsight и Coursera. Эти курсы могут обеспечить структурированный подход к изучению уязвимости и способов ее устранения.
				
			

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

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

  2. Зловмисник модифікує ключ, контрольований користувачем, щоб включити в нього статичний ключ автентифікації (AUTH_KEY), який використовується сервером. У цьому прикладі зловмисник може просто об'єднати ключ, контрольований користувачем, з "5ecr3tK3y".

  3. Зловмисник надсилає модифікований ключ, контрольований користувачем, у запиті на сервер.

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

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

  6. Сервер повертає відповідь про успішну аутентифікацію, і зловмисник отримує доступ до запитуваного файлу.

Реальні приклади з життя

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

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

Витік даних Uber: У 2016 році зловмисники змогли обійти систему авторизації Uber, отримавши доступ до приватного репозиторію GitHub, що містив облікові дані AWS Uber. Після цього зловмисники отримали доступ до персональних даних 57 мільйонів клієнтів і водіїв Uber і викрали їх.

Витік даних Target: У 2013 році зловмисники змогли отримати несанкціонований доступ до систем торгових точок Target, скориставшись вразливістю обходу авторизації в програмному забезпеченні стороннього виробника. Зловмисники змогли викрасти інформацію про кредитні та дебетові картки приблизно 40 мільйонів клієнтів Target.

Витоки даних Yahoo: У 2013 та 2014 роках зловмисники змогли отримати несанкціонований доступ до бази даних користувачів Yahoo, скориставшись вразливістю обходу авторизації у власному коді Yahoo. Після цього зловмисники змогли викрасти особисту інформацію всіх 3 мільярдів облікових записів користувачів Yahoo.

Витік даних Marriott International: У 2018 році зловмисники змогли отримати несанкціонований доступ до системи бронювання Starwood компанії Marriott International, скориставшись вразливістю обходу авторизації. Зловмисники змогли викрасти особисту інформацію приблизно 500 мільйонів клієнтів Marriott.

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

Найпоширеніші посилання на CVE 

Існує кілька посилань на CVE (Common Vulnerabilities and Exposures), які пов'язані з обходом авторизації через вразливості в контрольованих користувачем ключах. Ось деякі з найпоширеніших з них:

  • CVE-2017-5638 - Дане посилання на CVE пов'язане з фреймворком Apache Struts 2 та уразливістю несанкціонованого доступу через використання ключа, контрольованого користувачем. Зловмисники змогли використати цю уразливість, відправивши спеціально створений HTTP-запит на цільовий сервер.

  • CVE-2018-11882 - Це посилання на CVE пов'язане з уразливістю в Microsoft Office, яка дозволяла зловмисникам обійти автентифікацію та виконати довільний код. Вразливість була спричинена використанням ключа, контрольованого користувачем, для розшифрування частини документа Office.

  • CVE-2019-5736 - Дане посилання на CVE пов'язане з уразливістю в середовищі виконання контейнерів Docker, яка дозволяла зловмисникам обійти авторизацію та отримати привілейований доступ до хост-системи. Уразливість була спричинена використанням ключа, контрольованого користувачем, для виконання криптографічної перевірки зображень контейнерів.

  • CVE-2020-13942 - Дане посилання на CVE пов'язане з уразливістю в Apache Tomcat, яка дозволяла зловмисникам обійти авторизацію та отримати доступ до ресурсів, доступ до яких мав би бути обмежений. Уразливість була спричинена використанням контрольованого користувачем ключа для підписання JAR-файлів, що використовувалися вразливою програмою.

  • CVE-2018-3191 - Ця вразливість пов'язана з уразливістю в базі даних Oracle, яка дозволяла зловмисникам обійти автентифікацію та отримати доступ до конфіденційних даних. Уразливість була спричинена використанням контрольованого користувачем ключа для розшифрування даних, що зберігаються в базі даних.

  • CVE-2018-0886 - Ця вразливість пов'язана з уразливістю в протоколі Microsoft Credential Security Support Provider (CredSSP), яка дозволяла зловмисникам обходити автентифікацію та виконувати віддалені команди на уражених системах. Вразливість була спричинена використанням ключа, контрольованого користувачем, для виконання криптографічних операцій.

  • CVE-2019-11510 - Ця вразливість пов'язана з вразливістю в Pulse Secure VPN, яка дозволяла зловмисникам обійти автентифікацію та отримати доступ до конфіденційних даних. Вразливість була спричинена використанням ключа, контрольованого користувачем, для шифрування облікових даних користувача, що зберігаються на пристрої VPN.

  • CVE-2020-5410 - Це посилання на CVE пов'язане з уразливістю в Spring Framework, яка дозволяла зловмисникам обійти авторизацію та виконати довільний код на уражених системах. Уразливість була спричинена використанням контрольованого користувачем ключа для десеріалізації об'єктів.

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

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

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

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

Використовуйте надійні криптографічні алгоритми та протоколи. Додатки повинні використовувати стійкі криптографічні алгоритми і протоколи для генерації ключів і токенів та управління ними. Це може включати використання стандартних алгоритмів і протоколів, таких як AES, RSA і TLS.

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

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

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

  1. Надійні функції отримання ключів: Використовуйте надійні функції отримання ключів, такі як PBKDF2, bcrypt або scrypt, для отримання ключів з паролів, наданих користувачем, або інших даних.

  2. Безпечне зберігання ключів: Зберігайте ключі надійно, використовуючи апаратні модулі безпеки, довірені середовища виконання або інші механізми безпечного зберігання. Не зберігайте ключі у вигляді простого тексту або за допомогою слабких механізмів шифрування.

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

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

  5. Навчання з безпеки: Проводьте тренінги з безпеки для розробників, адміністраторів та іншого персоналу, щоб вони розуміли важливість безпеки, а також те, як розробляти та підтримувати безпечні системи та додатки.

Що робити, якщо виявлено уразливість обходу авторизації через контрольований користувачем ключ?

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

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

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

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

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

Книги з оглядом Обхід авторизації за допомогою керованого користувачем ключа

"Безпека веб-додатків: керівництво для початківців" Брайан Салліван і Вінсент Лью – У цій книзі розглядаються різні теми безпеки веб-додатків, включаючи аутентифікацію і авторизацію, а також даються практичні рекомендації по захисту веб-додатків від поширених загроз, таких як обхід авторизації за допомогою керованого користувачем ключа.

"Хакерство: мистецтво експлуатації" автор: Джон Еріксон – Ця книга містить докладний введення в комп'ютерну безпеку і методи злому, включаючи розділ про криптографічних атаках, який включає обхід авторизації за допомогою керованого користувачем ключа.

"Керівництво хакера веб-додатків: пошук і використання недоліків безпеки" автор: Дафидд Штуттард і Маркус Пінто – У цій книзі міститься докладна інформація про методи тестування безпеки веб-додатків, в тому числі про те, як виявляти і використовувати уразливості обходу авторизації, такі як ті, які можуть бути викликані одними ключами.

"Black Hat Python: програмування на Python для хакерів і пентестеров" автор: Джастін Сейтц – У цій книзі розглядаються різні методи і інструменти злому, включаючи криптографічні атаки, та наводяться практичні приклади використання вразливостей, таких як обхід авторизації за допомогою керованого користувачем ключа, з використанням Python.

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

Практика в тестуванні на обхід авторизації за допомогою керованого користувачем ключа

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

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

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

Ідентифікація вхідних даних, керованих користувачем: Визначте різні керовані користувачем вхідні дані в додатку, такі як поля форми, URL-адреси і параметри. Використовуйте такі інструменти, як OWASP ZAP або Burp Suite, щоб перехопити і змінити ці вхідні дані і подивитися, як реагує програма.

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

Проаналізуйте результати: Проаналізуйте результати ваших тестів і визначте всі виявлені вразливості. Документуйте свої висновки та надати рекомендації щодо усунення вразливостей.

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

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

Висновок

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

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

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

Інші Послуги

Готові до безпеки?

зв'язатися з нами