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. Обучать пользователей: Разъясняйте пользователям важность надлежащих методов обеспечения безопасности, таких как использование надежных паролей, предотвращение фишинговых атак и соблюдение осторожности при загрузке или установке программного обеспечения.

Заключение

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

Другие Услуги

Готовы к безопасности?

Связаться с нами