15 Фев, 2023

Недостаточная аутентификация и Авторизация

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

Недостаточный (аутентификация / аутентификация) аутентификация и авторизация относится к уязвимости в системе безопасности, когда приложение или система должным образом не проверяет личность пользователей или не обеспечивает надлежащий контроль доступа.

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

Когда приложение или система имеют недостаточный контроль аутентификации и авторизации, это может позволить неавторизованным пользователям получать доступ к конфиденциальной информации или выполнять действия, которые они не должны иметь возможности. Это может привести к целому ряду проблем безопасности, включая утечку данных, потерю данных и несанкционированный доступ.

Пример уязвимого кода на разных языках программирования

в Python:

				
					
password = input("Enter your password: ")

				
			


В этом примере кода программа предлагает пользователю ввести пароль, но фактическая аутентификация не выполняется. Это означает, что любой пользователь может ввести любой пароль, и программа примет его как действительный. Это уязвимость, поскольку она не позволяет должным образом проверить личность пользователя и может привести к несанкционированному доступу к конфиденциальной информации или функциям.

в Java:

				
					String password = "mypassword";
				
			


В этом примере кода программа сохраняет пароль пользователя в виде обычного текста, а не хэширует или шифрует его. Это означает, что если злоумышленник получит доступ к системе, он может легко прочитать пароль пользователя и использовать его для доступа к другим ресурсам или службам. Это уязвимость, поскольку она ненадлежащим образом защищает учетные данные пользователя и может привести к несанкционированному доступу или утечке данных.

в JavaScript:

				
					const password = "mypassword";
fetch("/login", {
  method: "POST",
  body: JSON.stringify({username: "myusername", password: password})
});
				
			


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

Примеры использования Недостаточной аутентификации и авторизации

SQL-инъекционная атака:

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

Повышение привилегий:

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

Перехват сеанса:

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

Атака грубой силой:

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

Методы повышения привилегий

Использование уязвимых приложений:

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

Использование неправильно настроенных служб:

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

Кража или взлом паролей:

Если злоумышленник способен украсть или взломать пароль пользователя с повышенными привилегиями, он потенциально может сам получить доступ к этим повышенным привилегиям. Например, если злоумышленник может украсть пароль системного администратора, он может использовать этот пароль для получения доступа к привилегиям администратора.

Использование методов социальной инженерии:

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

Использование уязвимостей при включении локальных файлов:

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

Общая методология и контрольный список по тестированию на недостаточную аутентификацию и авторизацию

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

  1. Определите механизмы аутентификации и авторизации приложения:

    Определите типы механизмов аутентификации и авторизации, используемых приложением, такие как имя пользователя / пароль, токены или сеансовые файлы cookie.

    Определите, использует ли приложение какие-либо сторонние службы аутентификации или авторизации, такие как OAuth или OpenID.

  2. Анализируйте элементы управления доступом приложения:

    Определите различные роли и привилегии, которые связаны с пользователями приложения.

    Определите, как приложение применяет средства контроля доступа, такие как проверка ролей пользователей или разрешений перед предоставлением доступа к ресурсам.

  3. Проверка на наличие уязвимостей:

    Проверьте на наличие распространенных уязвимостей, таких как внедрение SQL, межсайтовый скриптинг (XSS) и подделка межсайтовых запросов (CSRF).

    Проверьте наличие уязвимостей, связанных с управлением сеансами, таких как фиксация сеанса и перехват сеанса.

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

  4. Тест на повышение привилегий:

    Проверьте наличие уязвимостей, которые могут позволить пользователю повысить свои привилегии, таких как неправильно настроенные элементы управления доступом или уязвимости переполнения буфера.

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

  5. Устранение уязвимостей:

    Определите приоритеты уязвимостей в зависимости от их серьезности и вероятности использования.

    Устраните уязвимости, внедрив методы безопасного кодирования, такие как использование параметризованных запросов и проверка вводимых пользователем данных.

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

    Используйте методы безопасного управления сеансами, такие как завершение сеансов по истечении определенного периода времени или при выходе из системы.

    Внедрите политики паролей, которые требуют надежных паролей и ограничивают количество неудачных попыток входа в систему.

  6. Мониторинг и поддержание безопасности:

    Регулярно просматривайте журналы и данные мониторинга на предмет подозрительной активности и попыток несанкционированного доступа.

    Обновляйте приложение с помощью исправлений и обновлений безопасности.

    Проводите регулярные оценки безопасности и тестирование на проникновение для выявления и устранения любых новых уязвимостей.

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

  1. Аутентификация:

    Убедитесь, что для доступа к приложению или конфиденциальным областям приложения требуется проверка подлинности.

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

    Проверьте, нет ли проблем с хранением паролей, таких как хранение паролей в виде обычного текста или использование слабых алгоритмов хеширования.

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

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

  2. Авторизация:

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

    Проверьте наличие уязвимостей, связанных с повышением привилегий, таких как неправильная проверка ввода данных пользователем или неправильная настройка элементов управления доступом.

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

    Проверьте наличие уязвимостей, связанных с олицетворением пользователя, таких как неправильная проверка личности пользователя или разрешение олицетворения пользователя с помощью CSRF-атак.

  3. Проверка и очистка входных данных:

    Проверьте наличие уязвимостей, связанных с проверкой и очисткой входных данных, таких как внедрение SQL, межсайтовый скриптинг (XSS) и внедрение команд.

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

  4. Обработка ошибок и ведение журнала:

    Проверьте наличие уязвимостей, связанных с обработкой ошибок, таких как слишком много информации в сообщениях об ошибках или неправильная обработка ошибок.

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

  5. Сетевая безопасность:

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

  6. Сторонние библиотеки и сервисы:

    Проверьте наличие уязвимостей, связанных со сторонними библиотеками и службами, используемыми приложением, таких как известные уязвимости в библиотеке или службе или неправильно настроенная интеграция.

Набор инструментов для использования недостаточной аутентификации и авторизации

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

  • Burp Suite: Burp Suite - это популярный инструмент тестирования безопасности веб-приложений, который позволяет тестировщикам перехватывать, манипулировать и анализировать веб-трафик для выявления уязвимостей. Он включает в себя ряд инструментов для проверки подлинности и ошибок авторизации.

  • OWASP ZAP: OWASP ZAP - это инструмент тестирования безопасности веб-приложений с открытым исходным кодом, который можно использовать для выявления и использования недостатков аутентификации и авторизации. Он включает в себя такие функции, как перехват и изменение запросов, сканирование на наличие уязвимостей и автоматическое тестирование.

  • Nikto: Nikto - это сканер веб-сервера, который можно использовать для выявления уязвимостей в веб-приложениях. Он может обнаруживать проблемы с аутентификацией и авторизацией, а также другие уязвимости, такие как ошибки внедрения и межсайтовые сценарии.

  • Metasploit: Metasploit - это популярная платформа тестирования на проникновение, которая включает в себя ряд инструментов для выявления и использования уязвимостей. Он включает в себя модули для тестирования ошибок аутентификации и авторизации, а также других типов уязвимостей.

  • Nessus: Nessus - это сканер уязвимостей, который можно использовать для выявления и использования недостатков аутентификации и авторизации в веб-приложениях. Он включает в себя ряд плагинов, которые можно использовать для выявления уязвимостей, а также такие функции, как тестирование учетных данных.

  • Acunetix: Acunetix - это сканер безопасности веб-приложений, который можно использовать для выявления и использования недостатков аутентификации и авторизации. Он включает в себя ряд автоматизированных инструментов для проверки на наличие уязвимостей, а также функции ручного тестирования.

  • Wapiti: Wapiti - это сканер безопасности веб-приложений, который можно использовать для выявления и использования недостатков аутентификации и авторизации. Он включает в себя такие функции, как автоматическое тестирование, пользовательские сценарии и сканирование уязвимостей.

Ручные Инструменты:

  • SQLMap: SQLMap - это популярный инструмент, используемый для обнаружения и использования уязвимостей SQL-инъекций. Его можно использовать для выявления недостатков аутентификации и авторизации в веб-приложениях, а также других типов уязвимостей.

  • Hydra: Hydra - это инструмент для взлома паролей, который можно использовать для проверки на наличие слабых или легко угадываемых паролей. Его можно использовать для выявления недостатков аутентификации и авторизации в веб-приложениях, а также других типов уязвимостей.

  • DirBuster: DirBuster - это инструмент перебора каталогов и файлов, который можно использовать для выявления скрытых файлов или каталогов в веб-приложениях. Его можно использовать для выявления недостатков аутентификации и авторизации в веб-приложениях, а также других типов уязвимостей.

  • Изменение запроса вручную: Модификация запроса вручную включает в себя ручное изменение HTTP-запросов для обхода проверки подлинности или авторизации. Это требует хорошего понимания веб-протоколов и может быть использовано для выявления и использования широкого спектра уязвимостей.

  • Password Lists: Списки паролей - это наборы распространенных или часто используемых паролей, которые можно использовать для проверки на наличие слабых паролей в веб-приложениях. Они могут быть использованы для выявления ошибок аутентификации и авторизации, а также других типов уязвимостей.

  • Перехват сеанса: Перехват сеанса включает в себя кражу идентификатора сеанса аутентифицированного пользователя для получения несанкционированного доступа к веб-приложению. Это требует хорошего понимания веб-протоколов и может быть использовано для выявления и использования недостатков аутентификации и авторизации.

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

  • Web Developer: Плагин веб-разработчика для Chrome и Firefox позволяет пользователям изменять и управлять веб-страницами для проверки на наличие уязвимостей, таких как ошибки аутентификации и авторизации.

  • Tamper Data: Tamper Data - это плагин для Firefox, который позволяет пользователям изменять HTTP-запросы и ответы для проверки на наличие уязвимостей, таких как ошибки аутентификации и авторизации.

  • Менеджер файлов cookie: Cookie Manager - это плагин для Firefox, который позволяет пользователям управлять и изменять

Средняя оценка CVSS Недостаточной аутентификации и авторизации

Общая система оценки уязвимостей (CVSS) представляет собой основу для оценки серьезности уязвимостей в системе безопасности. Оценка CVSS учитывает несколько факторов, включая воздействие и возможность использования уязвимости.

Для категории Недостаточной аутентификации и авторизации оценка CVSS может сильно варьироваться в зависимости от конкретной уязвимости и ее воздействия. Некоторые уязвимости могут быть относительно незначительными и иметь низкий балл CVSS, в то время как другие могут быть критическими и иметь высокий балл CVSS.

Однако, как правило, уязвимости с недостаточной аутентификацией и авторизацией часто считаются серьезными, поскольку они могут позволить злоумышленнику получить несанкционированный доступ к конфиденциальным данным или выполнить действия, которые он не должен иметь возможности выполнять. Таким образом, они часто имеют оценку CVSS в диапазоне от 7,0 до 10,0, что считается “Высокой” или “Критической” степенью тяжести.

Общее перечисление слабых мест (CWE)

Общее перечисление слабых мест (CWE) - это разработанный сообществом список распространенных слабых мест безопасности программного обеспечения. CWE предоставляет стандартизированный способ выявления и описания слабых мест в системе безопасности программного обеспечения и используется разработчиками программного обеспечения и специалистами по безопасности для лучшего понимания и устранения уязвимостей в системе безопасности.

Для категории Недостаточной аутентификации и авторизации в CWE есть несколько связанных записей, в том числе:

CWE-287: Неправильная аутентификация: эта слабость относится к случаям, когда приложение не выполняет надлежащую аутентификацию пользователей, прежде чем разрешить им доступ к защищенным ресурсам или функциям. Это может привести к несанкционированному доступу или другим проблемам безопасности.

CWE-285: неправильная авторизация: эта слабость относится к случаям, когда приложение неправильно применяет средства управления авторизацией, позволяя неавторизованным пользователям получать доступ к защищенным ресурсам или функциям. Это также может привести к проблемам с безопасностью.

CWE-613: недостаточное истечение срока действия сеанса: эта слабость относится к случаям, когда приложение неправильно завершает пользовательские сеансы, позволяя злоумышленнику повторно использовать сеанс и потенциально получить несанкционированный доступ.

CWE-611: Неправильное ограничение ссылки на внешнюю сущность XML: эта слабость относится к случаям, когда приложение неправильно ограничивает ссылки на внешние сущности XML, что может позволить злоумышленнику получить доступ к конфиденциальным данным или выполнить вредоносный код.

CWE-602: Обеспечение безопасности на стороне клиента на стороне сервера: эта слабость относится к случаям, когда приложение полагается на средства управления безопасностью на стороне клиента для обеспечения соблюдения политик безопасности на стороне сервера, которые могут быть легко обойдены злоумышленником.

Топ-10 CVE, связанных с недостаточной аутентификацией и авторизацией

CVE-2022-20747 – Уязвимость в API истории программного обеспечения Cisco SD-WAN vManage Software может позволить удаленному злоумышленнику, прошедшему проверку подлинности, получить доступ к конфиденциальной информации в уязвимой системе. Эта уязвимость связана с недостаточной проверкой авторизации API в базовой операционной системе. Злоумышленник может воспользоваться этой уязвимостью, отправив обработанный запрос API в Cisco vManage в качестве пользователя с более низкими привилегиями и получив доступ к конфиденциальной информации, доступ к которой им обычно не разрешен.

CVE-2021-34766 – Уязвимость в веб-интерфейсе Cisco Smart Software Manager On-Prem (SSM On-Prem) может позволить удаленному злоумышленнику, прошедшему проверку подлинности, повысить привилегии и создавать, читать, обновлять или удалять записи и настройки в нескольких функциях. Эта уязвимость связана с недостаточной авторизацией возможностей роли Системного пользователя и Системного оператора. Злоумышленник может воспользоваться этой уязвимостью, напрямую обратившись к веб-ресурсу. Успешный эксплойт может позволить злоумышленнику создавать, читать, обновлять или удалять записи и настройки в нескольких функциях без необходимых разрешений в веб-интерфейсе.

CVE-2021-1477 – Уязвимость в механизме контроля доступа программного обеспечения Cisco Firepower Management Center (FMC) может позволить удаленному злоумышленнику, прошедшему проверку подлинности, получить доступ к службам, выходящим за рамки их авторизации. Эта уязвимость связана с недостаточным обеспечением контроля доступа в уязвимом программном обеспечении. Злоумышленник может воспользоваться этой уязвимостью, напрямую обратившись к внутренним службам уязвимого устройства. Успешный эксплойт может позволить злоумышленнику перезаписать политики и повлиять на конфигурацию и работу уязвимого устройства.

CVE-2021-1399 – Уязвимость в портале самообслуживания Cisco Unified Communications Manager (Unified CM) и Cisco Unified Communications Manager Session Management Edition (Unified CM SME) может позволить удаленному злоумышленнику, прошедшему проверку подлинности, изменять данные в уязвимой системе без надлежащей авторизации. Уязвимость связана с недостаточной проверкой предоставленных пользователем данных на Портале самообслуживания. Злоумышленник может воспользоваться этой уязвимостью, отправив обработанный HTTP-запрос в уязвимую систему. Успешный эксплойт может позволить злоумышленнику изменять информацию без надлежащего разрешения.

CVE-2021-1381 – Уязвимость в программном обеспечении Cisco IOS XE может позволить авторизованному локальному злоумышленнику с высокими привилегиями или злоумышленнику, не прошедшему проверку подлинности, имеющему физический доступ к устройству, открыть консоль отладки. Уязвимость связана с недостаточными ограничениями авторизации команд. Злоумышленник может воспользоваться этой уязвимостью, выполнив команды на аппаратной платформе для открытия консоли отладки. Успешный эксплойт может позволить злоумышленнику получить доступ к консоли отладки.

CVE-2021-1284 – Уязвимость в веб-интерфейсе службы обмена сообщениями программного обеспечения Cisco SD-WAN vManage Software может позволить злоумышленнику, не прошедшему проверку подлинности, обойти аутентификацию и авторизацию и изменить конфигурацию уязвимой системы. Чтобы воспользоваться этой уязвимостью, злоумышленник должен иметь доступ к связанному устройству Cisco SD-WAN vEdge. Эта уязвимость связана с недостаточной проверкой авторизации. Злоумышленник может воспользоваться этой уязвимостью, отправив обработанные HTTP-запросы в веб-интерфейс службы обмена сообщениями уязвимой системы. Успешный эксплойт может позволить злоумышленнику получить неаутентифицированный доступ на чтение и запись к уязвимой системе управления виртуальными машинами. С помощью этого доступа злоумышленник может получить доступ к информации о уязвимой системе управления виртуальной машиной, изменить конфигурацию системы или внести изменения в конфигурацию устройств, управляемых системой.

CVE-2021-1235 – Уязвимость в интерфейсе командной строки программного обеспечения Cisco SD-WAN vManage может позволить локальному злоумышленнику, прошедшему проверку подлинности, считывать конфиденциальные файлы базы данных в уязвимой системе. Уязвимость связана с недостаточной авторизацией пользователя. Злоумышленник может воспользоваться этой уязвимостью, получив доступ к vshell уязвимой системы. Успешный эксплойт может позволить злоумышленнику считывать файлы базы данных из файловой системы базовой операционной системы.

CVE-2020-4621 – IBM Data Risk Manager (iDNA) 2.0.6 может позволить прошедшему проверку подлинности пользователю повысить свои привилегии до уровня администратора из-за недостаточной проверки авторизации. Идентификатор IBM X-Force: 184981.

CVE-2020-3592 – Уязвимость в веб-интерфейсе управления программным обеспечением Cisco SD-WAN vManage vManage может позволить удаленному злоумышленнику, прошедшему проверку подлинности, обойти авторизацию и изменить конфигурацию уязвимой системы. Уязвимость связана с недостаточной проверкой авторизации в уязвимой системе. Злоумышленник может воспользоваться этой уязвимостью, отправив обработанные HTTP-запросы в веб-интерфейс управления уязвимой системой. Успешный эксплойт может позволить злоумышленнику получить привилегии, превышающие те, которые обычно разрешены для его настроенного уровня авторизации пользователя. Это может позволить злоумышленнику изменить конфигурацию уязвимой системы.

CVE-2020-3478 – Уязвимость в REST API программного обеспечения Cisco Enterprise NFV Infrastructure Software (NFVIS) может позволить удаленному злоумышленнику, прошедшему проверку подлинности, перезаписать определенные файлы, которые должны быть ограничены на уязвимом устройстве. Уязвимость возникает из-за недостаточного применения авторизации в уязвимой системе. Злоумышленник может воспользоваться этой уязвимостью, загрузив файл с помощью REST API. Успешный эксплойт может позволить злоумышленнику перезаписать и загрузить файлы, что может привести к ухудшению функциональности уязвимой системы.

Недостаточные возможности аутентификации и авторизации 

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

Перехват сеанса: это эксплойт, при котором злоумышленник получает доступ к сеансу пользователя и захватывает его сеанс без его ведома или согласия. Это позволяет злоумышленнику получить доступ к учетной записи пользователя и выполнять действия так, как если бы он был пользователем.

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

SQL-инъекция: это эксплойт, при котором злоумышленник внедряет вредоносный код в инструкцию SQL. Это может позволить злоумышленнику обойти аутентификацию и получить доступ к конфиденциальной информации или выполнить несанкционированные действия.

Межсайтовый скриптинг (XSS): это эксплойт, при котором злоумышленник внедряет вредоносный код на веб-сайт или в приложение, что может позволить злоумышленнику украсть конфиденциальную информацию или завладеть учетными записями пользователей.

Нарушенная аутентификация и управление сеансами: это эксплойт, при котором злоумышленник может обойти элементы управления аутентификацией или управлением сеансами. Это может позволить злоумышленнику получить доступ к конфиденциальной информации или выполнить несанкционированные действия.

Обход авторизации: это эксплойт, при котором злоумышленник может обойти элементы управления авторизацией, чтобы получить доступ к ресурсам или функциям, к которым у него не должно быть доступа. Это может позволить злоумышленнику выполнять несанкционированные действия или получать доступ к конфиденциальной информации.

Практика в тестировании на недостаточную аутентификацию и авторизацию

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

Проверьте наличие слабых паролей.
Используйте автоматические инструменты и методы ручного тестирования для проверки на наличие слабых паролей. Это может включать в себя подбор пароля, атаки методом перебора и другие методы.

Тест на перехват сеанса.
Проверка на перехват сеанса путем попытки перехвата активного сеанса пользователя. Это можно сделать с помощью таких инструментов, как Burp Suite, или путем манипулирования идентификаторами сеансов.

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

Тест на SQL-инъекцию.
Проверка на внедрение SQL путем внедрения вредоносного кода в инструкции SQL. Это можно сделать с помощью таких инструментов, как SQLMap, или вручную введя код в поля ввода.

Тест на межсайтовый скриптинг (XSS).
Проверьте наличие межсайтовых сценариев путем внедрения вредоносного кода в поля ввода или URL-адреса. Это можно сделать с помощью таких инструментов, как OWASP ZAP, или вручную введя код в поля ввода.

Проверьте, не нарушена ли аутентификация и управление сеансами.
Проверьте, не нарушена ли проверка подлинности и управление сеансами, попытавшись обойти элементы управления аутентификацией или управлением сеансами. Это можно сделать с помощью таких инструментов, как Burp Suite, или путем манипулирования файлами cookie или другими данными, связанными с сеансом.

Тест на обход авторизации.
Проверьте обход авторизации, попытавшись обойти элементы управления авторизацией для доступа к ресурсам или функциям, которые должны быть ограничены. Это можно сделать, изменив URL-адреса или используя другие методы обхода контроля авторизации.

Книги для изучения Недостаточная аутентификация и авторизация

“Безопасность веб-приложений, руководство для начинающих” Брайан Салливан и Винсент Лью: Эта книга представляет собой введение в безопасность веб-приложений, включая недостаточную аутентификацию и авторизацию. В нем рассматриваются распространенные методы атак и рекомендации по разработке безопасных приложений.

“Руководство хакера веб-приложений: поиск и использование недостатков безопасности” Дэфидд Штуттард и Маркус Пинто: Эта книга представляет собой всеобъемлющее руководство по тестированию безопасности веб-приложений, включая недостаточную аутентификацию и авторизацию. Он охватывает широкий спектр тем, от разведки и картографирования до атаки на пользовательские функции.

“Взломанные веб-приложения, третье издание: секреты и решения безопасности веб-приложений” автор: Джоэл Скамбрей, Майк Шема и Калеб Сима: В этой книге рассматриваются новейшие методы атаки на веб-приложения, включая недостаточную аутентификацию и авторизацию. В нем содержатся практические рекомендации по защите от этих атак и обеспечению безопасности веб-приложений.

“Руководство по тестированию OWASP v4” Проект Open Web Application Security Project: Эта книга представляет собой всеобъемлющее руководство по тестированию безопасности веб-приложений, включая недостаточную аутентификацию и авторизацию. В нем содержатся практические советы и методы тестирования для выявления и устранения уязвимостей безопасности в веб-приложениях.

“Поиск ошибок в реальном мире: практическое руководство по веб-хакингу” Питер Яворски: В этой книге рассматриваются практические методы выявления и использования уязвимостей веб-приложений, включая недостаточную аутентификацию и авторизацию. В нем приведены реальные примеры и практические советы по обеспечению безопасности веб-приложений.

“Запутанная сеть: руководство по обеспечению безопасности современных веб-приложений” Михал Залевский: В этой книге рассматриваются современные методы обеспечения безопасности веб-приложений, включая недостаточную аутентификацию и авторизацию. В нем подробно рассматриваются сложности современных веб-приложений и проблемы их защиты.

“Black Hat Python: программирование на Python для хакеров и пентестеров” автор: Джастин Сейтц: В этой книге рассматривается ряд передовых методов взлома, включая недостаточную аутентификацию и авторизацию. В нем содержатся практические советы по использованию Python для тестирования и эксплуатации веб-приложений.

“Взлом серой шляпы: руководство этичного хакера, пятое издание” Даниэль Регаладо, Шон Харрис и Аллен Харпер: Эта книга представляет собой всеобъемлющее руководство по этическим методам взлома, включая недостаточную аутентификацию и авторизацию. Он охватывает широкий спектр тем, от разведки и составления карт до использования уязвимостей и повышения привилегий.

“Освоение современного веб-тестирования на проникновение” автор: Прахар Прасад: В этой книге рассматриваются передовые методы тестирования веб-приложений на проникновение, включая недостаточную аутентификацию и авторизацию. В нем содержатся практические советы по тестированию и эксплуатации веб-приложений с использованием современных инструментов и методов.

“Искусство эксплуатации, 2-е издание” Джон Эриксон: В этой книге рассматривается ряд передовых методов взлома, включая недостаточную аутентификацию и авторизацию. В нем содержатся практические советы и практические примеры по тестированию и эксплуатации веб-приложений и других систем.

Список полезных нагрузок Недостаточная аутентификация и авторизация

  1. Полезные нагрузки SQL-инъекций: Эти полезные нагрузки могут быть использованы для проверки уязвимостей SQL-инъекций, которые часто могут приводить к недостаточным уязвимостям аутентификации и авторизации. Примеры полезных нагрузок SQL-инъекций включают ' ИЛИ 1=1--, '; УДАЛИТЬ пользователей ТАБЛИЦЫ; --, и ОБЪЕДИНЕНИЕ ВЫБОРА имени пользователя, пароля ОТ пользователей.

  2. Полезная нагрузка межсайтовых сценариев (XSS): Эти полезные нагрузки могут быть использованы для проверки на наличие уязвимостей XSS, которые также могут привести к недостаточным уязвимостям аутентификации и авторизации. Примеры полезных нагрузок XSS включают <script>alert('XSS');</script>, <img src="x" onerror="alert(1)">

  3. Полезная нагрузка при обходе каталогов: Эти полезные нагрузки можно использовать для проверки уязвимостей обхода каталогов, которые могут быть использованы для доступа к несанкционированным файлам или каталогам на сервере. Примеры полезных нагрузок обхода каталогов включают ../../../../etc/passwd, ..\..\..\..\..\..\..\Windows\System32\cmd.exe, и ..................etcpasswd.

  4. Полезные нагрузки в обход аутентификации: Эти полезные нагрузки можно использовать для проверки уязвимостей обхода аутентификации, которые могут позволить злоумышленнику получить доступ к неавторизованным ресурсам или выполнить неавторизованные действия. Примеры полезных нагрузок обхода аутентификации включают администратор'--, администратор' #, и администратор'/*.

  5. Полезная нагрузка CSRF: Эти полезные нагрузки могут быть использованы для проверки уязвимостей подделки межсайтовых запросов (CSRF), которые могут быть использованы для выполнения несанкционированных действий от имени пользователя. Примеры полезных нагрузок CSRF включают <img src="https://attacker.com/attack.php?name=<script>document.location='http://vulnerable.com/admin/delete-user.php?id=123'</script>"> и <form action="http://vulnerable.com/profile.php" method="POST"><input type="hidden" name="email" value="[email protected]"></form><script>document.forms[0].submit()</script>.

Меры по смягчению последствий недостаточной аутентификации и авторизации

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

  2. Ограничьте доступ пользователей к ресурсам и функциям в зависимости от их роли в организации. Используйте принцип наименьших привилегий, когда пользователям предоставляется минимальный уровень доступа, необходимый для выполнения их рабочих функций.

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

  4. Используйте надежные алгоритмы шифрования и хеширования для хранения учетных данных пользователей и убедитесь, что механизмы аутентификации устойчивы к обычным атакам, таким как атаки методом перебора и атаки по словарю.

  5. Проводите регулярное тестирование безопасности и анализ кода для выявления уязвимостей и своевременного их устранения. Это может включать ручное тестирование, автоматическое тестирование и инструменты анализа кода.

  6. Используйте безопасный жизненный цикл разработки, который включает требования безопасности, моделирование угроз и тестирование безопасности на каждом этапе процесса разработки. Это может помочь выявить и устранить уязвимости до того, как они будут внедрены в производство.

  7. Обновляйте все программные компоненты с помощью последних исправлений и обновлений безопасности. Это может помочь обеспечить устранение известных уязвимостей и снизить риск эксплуатации.

Заключение

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

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

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

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