16 Лют, 2023

Порушений контроль доступу

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

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

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

Приклад уразливого коду на різних мовах програмування:


В Java:

				
					// Insecure access control example in Java
public class BankAccount {
    private int balance;
    
    public int getBalance() {
        return balance;
    }
    
    public void setBalance(int balance) {
        this.balance = balance;
    }
}

// Client code
BankAccount account = new BankAccount();
account.setBalance(1000000); // attacker can directly modify the account balance without proper access control

				
			


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

• в Python:

				
					# Insecure access control example in Python
class BankAccount:
    def __init__(self):
        self.balance = 0
        
    def get_balance(self):
        return self.balance
        
    def set_balance(self, balance):
        self.balance = balance

# Client code
account = BankAccount()
account.set_balance(1000000) # attacker can directly modify the account balance without proper access control

				
			


Цей приклад Python схожий на попередній приклад Java. В BankAccount клас забезпечує get_balance спосіб отримання поточного балансу та set_balance спосіб відновлення балансу. Однак не існує механізму контролю доступу для запобігання несанкціонованого доступу до set_balance метод.

• В PHP:

				
					// Insecure access control example in PHP
class BankAccount {
    private $balance = 0;
    
    public function getBalance() {
        return $this->balance;
    }
    
    public function setBalance($balance) {
        $this->balance = $balance;
    }
}

// Client code
$account = new BankAccount();
$account->setBalance(1000000); // attacker can directly modify the account balance without proper access control

				
			


Цей приклад PHP також схожий на попередні приклади Java і Python. В BankAccount клас забезпечує getBalance спосіб отримання поточного балансу та setBalance спосіб відновлення балансу. Однак не існує механізму контролю доступу для запобігання несанкціонованого доступу до setBalance метод.

Приклади використання Порушеного контролю доступу

Приклад 1. Доступ до конфіденційних даних

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

Приклад 2: Зміна даних

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

Приклад 3: Підвищення привілеїв

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

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

Методи підвищення привілеїв для порушеного контролю доступу

Зміна параметрів

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

Примусовий перегляд

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

Перехоплення сеансу

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

Використання недоліків бізнес-логіки

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

Пряме посилання на об'єкт

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

Загальна методологія та контрольний список для порушеного контролю доступу

Методологія:

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

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

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

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

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

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

Контрольний список:

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

  2. Перераховувати ресурси: Визначте всі ресурси, які захищені механізмами контролю доступу, включаючи веб-сторінки, API, файли та інші ресурси.

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

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

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

  6. Тест на непряму посилання на об'єкт: Спроба прямого доступу до ресурсів шляхом вгадування або перебору ідентифікаторів ресурсів.

  7. Тест на небезпечну пряме посилання на об'єкт: Спробуйте отримати доступ до ресурсів, змінивши ідентифікатор ресурсу або інші параметри, щоб обійти перевірки контролю доступу.

  8. Перевірка на наявність небезпечних методів контролю доступу: Перевірте безпека механізмів контролю доступу, використовуваних додатком, таких як управління сеансами, управління доступом на основі ролей і списки контролю доступу.

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

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

  11. Звіт та виправлення: Повідомляйте про будь-які виявлені уразливості власнику програми або команди розробників і усувайте їх як можна швидше.

Набір інструментів для використання Порушеного контролю доступу

Ручні Інструменти:

  • Burp Suite – Інструмент тестування веб-додатків, який дозволяє вручну обробляти запити і відповіді. Він може бути використаний для виявлення і використання вразливостей в системі управління доступом.

  • Postman – Потужний інструмент розробки API, який дозволяє проводити ручне тестування і маніпулювати запитами і відповідями. Він може бути використаний для виявлення і використання вразливостей непрацюючого контролю доступу до API.

  • Tamper Data – Плагін для браузера Firefox, який дозволяє вручну маніпулювати запитами і відповідями. Він може бути використаний для виявлення і використання вразливостей в системі управління доступом.

  • Fiddler – Проксі-інструмент веб-налагодження, який дозволяє вручну перехоплювати і маніпулювати HTTP-запитами і відповідями. Він може бути використаний для виявлення і використання вразливостей в системі управління доступом.

  • OWASP ZAP – Сканер безпеки веб-додатків з відкритим вихідним кодом, який можна використовувати як для ручного, так і для автоматичного тестування. Він має потужну функцію проксі-сервера, яка дозволяє вручну маніпулювати запитами і відповідями.

  • Wireshark – Аналізатор мережевих протоколів, який дозволяє вручну перехоплювати і аналізувати мережевий трафік. Він може бути використаний для виявлення і використання вразливостей зі зламаним контролем доступу в мережевих протоколах.

Автоматизовані інструменти:

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

  • Acunetix – Сканер веб-вразливостей, який може виявляти і використовувати зламані уразливості контролю доступу. Він використовує комбінацію автоматичного тестування та ручної перевірки для виявлення вразливостей.

  • AppScan – Інструмент тестування безпеки веб-додатків, який може виявляти уразливості в системі управління доступом і повідомляти про них. Він використовує комбінацію автоматичного тестування та ручної перевірки для виявлення вразливостей.

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

  • Arachni – Сканер безпеки веб-додатків з відкритим вихідним кодом, який може виявляти уразливості в системі управління доступом і повідомляти про них. Він використовує комбінацію автоматичного тестування та ручної перевірки для виявлення вразливостей.

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

  • Wapiti – Сканер безпеки веб-додатків з відкритим вихідним кодом, який може виявляти уразливості в системі управління доступом і повідомляти про них. Він використовує комбінацію автоматичного тестування та ручної перевірки для виявлення вразливостей.

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

  • Nikto – Сканер веб-сервер з відкритим вихідним кодом, який може виявляти уразливості в системі управління доступом і повідомляти про них. Він використовує комбінацію автоматичного тестування та ручної перевірки для виявлення вразливостей.

Плагіни для браузера:

  • Tamper Chrome – Плагін для браузера Google Chrome, що дозволяє вручну обробляти запити і відповіді. Він може бути використаний для виявлення і використання вразливостей в системі управління доступом.

  • FoxyProxy – Плагін для браузерів Firefox і Chrome, який дозволяє вручну перехоплювати і маніпулювати HTTP-запитами і відповідями. Він може бути використаний для виявлення і використання вразливостей в системі управління доступом.

  • HackBar – Плагін для браузера Firefox, який дозволяє вручну маніпулювати запитами і відповідями. Він може бути використаний для виявлення і використання вразливостей в системі управління доступом.

  • XSStrike – Плагін для браузера Google Chrome, який може виявляти і використовувати уразливості міжсайтового скриптинга (XSS). Він також може бути використаний для виявлення і використання вразливостей в системі управління доступом.

  • Cookie Editor – Плагін для браузерів Firefox і Chrome, який дозволяє вручну маніпулювати файлами cookie. Він може бути використаний для виявлення і використання зламаних

Середній бал CVSS Управління доступом до стеку Порушено

Загальна система оцінки вразливостей (CVSS) - це стандартизована система, використовувана для оцінки серйозності вразливостей в системі безпеки. Оцінка CVSS заснована на шкалою від 0 до 10, причому більш високі оцінки вказують на більш серйозні уразливості.

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

При цьому, як правило, уразливості зі зламаним контролем доступу можуть варіюватися від низької серйозності (з оцінками CVSS близько 4 або 5) до високої серйозності (з оцінками CVSS 9 або 10), в залежності від конкретного контексту і впливу уразливості. Таким чином, середній бал CVSS по порушеній управління доступом до пакетів, ймовірно, буде десь в середньому діапазоні, близько 6 або 7. Однак важливо мати на увазі, що це лише оцінка, і фактичний середній показник CVSS може сильно варіюватися в залежності від конкретних вразливостей, присутніх в стеку.

Загальна перерахування слабких місць (CWE)

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

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

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

• CWE-276: неправильні дозволу за замовчуванням: цей CWE стосується дозволів за промовчанням, які встановлені в системі або додатку і є занадто дозвільними, дозволяючи несанкціонований доступ до конфіденційних даних або функцій.

• CWE-732: неправильне призначення дозволів для критичного ресурсу з недостатньою авторизацією: це CWE ставиться до проблем, коли дозволу призначаються критичного ресурсу, але системі не вдається належним чином перевірити авторизацію користувача, відправляє запит.

• CWE-269: Слабкі місця в механізмах аутентифікації: Цей CWE стосується слабких місць в процесі аутентифікації, таких як слабкі паролі або уразливості обходу аутентифікації. Ці слабкі місця можуть дозволити зловмисникам отримати несанкціонований доступ до конфіденційної інформації або функцій.

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

• CWE-269: відсутній або недостатній контроль доступу: Цей CWE стосується відсутності або неповної реалізації механізмів контролю доступу, які можуть дозволити зловмисникам отримати несанкціонований доступ до конфіденційних даних або функцій.

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

• CWE-285: недостатня авторизація: цей CWE схожий на CWE-285, але він конкретно ставиться до проблем, коли система належним чином не обмежує доступ до ресурсів або функцій.

• CWE-285: неправильний контроль доступу: цей CWE схожий на CWE-285 і відноситься до проблем, при яких система неправильно застосовує політики контролю доступу.

• CWE-306: відсутній аутентифікація для критичної функції: цей CWE ставиться до проблем, коли критична функція або ресурс не захищені належним чином механізмом аутентифікації, що може дозволити зловмисникам отримати несанкціонований доступ.

Топ-10 CVE, пов'язаних зі Зламаним контролем доступу

• CVE-2023-22471 – Deck - це інструмент організації в стилі канбан, призначений для особистого планування та організації проектів для команд, інтегрованих з Nextcloud. Порушений контроль доступу дозволяє користувачеві видаляти вкладення інших користувачів. В даний час не існує відомих обхідних шляхів. Рекомендується оновити додаток Nextcloud Deck до версії 1.6.5, 1.7.3 або 1.8.2.

• CVE-2022-45475 – Tiny File Manager версії 2.4.8 дозволяє віддаленому зловмиснику, який не пройшов перевірку, отримати доступ до внутрішніх файлів додатка. Це можливо, оскільки додаток вразливим для порушення контролю доступу.

• CVE-2022-45369 – Auth. (subscriber+) Broken Access Control vulnerability in Plugin for Google Reviews plugin <= 2.2.2 on WordPress.

• CVE-2022-45353 – Broken Access Control in Betheme theme <= 26.6.1 on WordPress.

• CVE-2022-45172 – Була виявлена проблема в LIVEBOX Collaboration vDesk до версії v018. Порушення контролю доступу може відбутися в кінцевій точці / api/v1/registration /validateEmail, кінцевій точці / api/ v1 / vdeskintegration/user / adduser і кінцевій точці / api/ v1/registration / changePasswordUser. На веб-додаток впливають недоліки в логіці авторизації, за допомогою яких зловмисник (без прав) може виконати підвищення привілеїв до ролі адміністратора і вкрасти облікові записи будь-яких користувачів в системі.

• CVE-2022-45066 – Auth. (subscriber+) Broken Access Control vulnerability in WooSwipe WooCommerce Gallery plugin <= 2.0.1 on WordPress.

• CVE-2022-43844 – IBM Robotic Process Automation для Cloud Pak з 20.12 по 21.0.3 вразлива для порушення контролю доступу. Користувач неправильно перенаправляється на екран виходу з платформи при виході з IBM RPA for Cloud Pak. Ідентифікатор IBM X-Force: 239081.

• CVE-2022-42461 – Broken Access Control vulnerability in miniOrange’s Google Authenticator plugin <= 5.6.1 on WordPress.

• CVE-2022-42460 – Broken Access Control vulnerability leading to Stored Cross-Site Scripting (XSS) in Traffic Manager plugin <= 1.4.5 on WordPress.

• CVE-2022-41839 – Broken Access Control vulnerability in WordPress LoginPress plugin <= 1.6.2 on WordPress leading to unauth. changing of Opt-In or Opt-Out tracking settings.

Непрацюючі експлойти контролю доступу

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

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

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

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

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

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

Практикуючись в тестуванні на Порушений контроль доступу

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

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

Перевірка на наявність прямих посилань на об'єкти:
Перевірте наявність прямих посилань на об'єкти, маніпулюючи ідентифікаторами і параметрами для доступу до ресурсів, які повинні бути обмежені.

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

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

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

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

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

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

Перевірка виправлення:
Перед повторним тестуванням переконайтеся, що всі уразливості були усунені.

Для вивчення Порушений Контроль доступу

  1. OWASP: Проект Open Web Application Security Project (OWASP) надає обширну інформацію про безпеки веб-додатків, включаючи порушений контроль доступу. Їх веб-сайт пропонує безкоштовні ресурси, такі як керівництва з тестування, шпаргалки та безпечні методи кодування.

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

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

  4. Книги: Існує безліч книг з безпеки веб-додатків, деякі з яких спеціально присвячені порушеній контролю доступу. Популярними варіантами є "Безпека веб-додатків, керівництво для початківців" Брайана Саллівана і Вінсента Ллю, а також "Керівництво хакера веб-додатків: пошук і використання недоліків безпеки" Дафида Штуттарда і Маркуса Пінто.

  5. Онлайн-курси: Онлайн-платформи, такі як Udemy, Coursera і edX, пропонують різноманітні курси з безпеки веб-додатків, включаючи непрацюючий контроль доступу.

  6. Конференції: Відвідування конференцій та заходів, присвячених безпеки веб-додатків, може дати цінну інформацію та мережеві можливості. Прикладами можуть служити конференції OWASP AppSec і саміти з безпеки SANS.

Книги з оглядом Зламаного контролю доступу

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

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

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

"Безпечне кодування на C та C ++" Роберт Сикорд: Ця книга присвячена методам безпечного кодування для мов програмування C і C ++, включаючи методи запобігання вразливостей в системі управління доступом.

"Моделювання загроз: проектування в інтересах безпеки" автор: Адам Шостак: Ця книга містить керівництво з виконання моделювання загроз для веб-додатків, включаючи виявлення та усунення потенційних вразливостей в системі управління доступом.

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

"Керівництво по тестуванню OWASP v4" Проект Open Web Application Security Project (OWASP): У цьому посібнику представлений огляд тестування безпеки веб-додатків, включаючи тестування на наявність вразливостей в системі управління доступом, і пропонуються практичні рекомендації та інструменти для виконання такого тестування.

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

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

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

Список корисних навантажень Порушений контроль доступу

Корисні навантаження IDOR (небезпечна пряме посилання на об'єкт):
Ці корисні навантаження можна використовувати для маніпулювання даними веб-додатки, наприклад, шляхом зміни параметра ID в URL-адресі для доступу до ресурсів або даними, які повинні бути обмежені.

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

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

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

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

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

Корисне навантаження при проходженні шляху:
Ці корисні навантаження можна використовувати для переходу до файлів або ресурсів, маніпулюючи параметром path запитів до веб-додатком, минаючи засоби контролю доступу і дозволяє зловмиснику отримати доступ до ресурсів або даними, які повинні бути обмежені.

Як бути захищеним від порушення контролю доступу

  1. Контроль доступу має бути реалізований як на стороні клієнта, так і на стороні сервера програми. Елементи управління на стороні клієнта можна обійти, тому елементи управління на стороні сервера дуже важливі.

  2. Використовуйте механізм контролю доступу, відповідний типу захищеного ресурсу. Наприклад, управління доступом на основі ролей (RBAC) підходить для управління доступом до функцій та функцій програми, в той час як управління доступом на основі атрибутів (ABAC) може краще підходити для управління доступом до конфіденційних даних.

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

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

  5. Забезпечте поділ обов'язків, коли жоден користувач не має доступу до всіх конфіденційних функцій або даними додатка.

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

  7. Вбудуйте шифрування конфіденційних даних при передачі й зберіганні для захисту від крадіжки даних і несанкціонованого доступу.

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

  9. Вбудуйте моніторинг і ведення журналу для виявлення спроб несанкціонованого доступу, а також розробіть план реагування на інциденти на випадок порушення.

  10. Регулярно перевіряйте й оновлюйте елементи керування доступом, щоб переконатися, що вони продовжують відповідати мінливим потребам додатка і його користувачів.

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

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

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

  3. Забезпечити розподіл обов'язків: Переконайтеся, що жоден користувач не має доступу до всіх конфіденційних функцій або даними додатка.

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

  5. Реалізувати шифрування: Використовуйте шифрування для захисту конфіденційних даних при передачі і в стані спокою.

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

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

  8. Використовуйте інструменти тестування: Використовуйте інструменти автоматичного тестування для виявлення потенційних вразливостей в додатку.

  9. Запровадити моніторинг і ведення журналу: Запровадити моніторинг і ведення журналу для виявлення спроб несанкціонованого доступу, а також розробити план реагування на інциденти на випадок порушення.

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

Висновок

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

Інші Послуги

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

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