27 Янв, 2023

Поток бизнес-логики

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

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

Примеры уязвимость потока бизнес-логики

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

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

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

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

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

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

Ниже приведены примеры уязвимостей потока бизнес-логики в разных языках программирования:

• JavaScript:

				
					var page = req.query.page;
if (page === "admin") {
  res.render("admin.ejs");
} else {
  res.render("user.ejs");
}

				
			

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

• Java:

				
					String function = request.getParameter("function");
if (function.equals("create")) {
  create();
} else if (function.equals("read")) {
  read();
} else if (function.equals("update")) {
  update();
} else if (function.equals("delete")) {
  delete();
}

				
			

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

• C#:

				
					string table = Request.QueryString["table"];
string query = "SELECT * FROM " + table;
SqlCommand cmd = new SqlCommand(query, con);

				
			

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

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

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

Некоторые распространенные методы использования уязвимостей потока бизнес-логики включают:

  • Обход проверки входных данных: манипулирование входными данными для обхода проверок проверки и получения доступа к ограниченным функциям или данным.

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

  • Изменение параметров: манипулирование параметрами в URL-адресе или данными формы для получения доступа к ограниченным функциям или данным.

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

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

  • Внедрение команд: внедрение вредоносных команд в поля ввода для выполнения произвольного кода на сервере.

  • Уязвимости при включении файлов: манипулирование входными данными для включения внешних файлов и выполнения произвольного кода на сервере.

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

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

  1. Понимание приложения: понимание функциональности и потока данных приложения для выявления потенциальных слабых мест.

  2. Выполните разведку: соберите информацию о приложении, например, об используемых им технологиях, URL-адресах и параметрах, которые оно принимает.

  3. Проверка правильности ввода: попытка обойти элементы управления проверкой правильности ввода путем манипулирования входными данными.

  4. Управление сеансами тестирования: попытка перехватить сеансы путем перехвата файлов cookie и манипулирования ими.

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

  6. Тест прямой ссылки на объект: попытка использовать слабые места в объектно-реляционном отображении приложения для получения доступа к ограниченным данным.

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

  8. Проверка на внедрение команд: попытка внедрить вредоносные команды в поля ввода для выполнения произвольного кода на сервере.

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

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

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

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

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

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

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

Набор инструментов для эксплуатации

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

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

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

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

  • Nessus: сканер уязвимостей, который можно использовать для выявления уязвимостей в системах и приложениях.

  • Aircrack-ng: средство защиты беспроводной сети, которое можно использовать для взлома ключей шифрования беспроводной сети и проведения тестирования на проникновение беспроводной сети.

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

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

  • Maltego: инструмент для интеллектуального анализа данных и анализа связей, который можно использовать для выявления взаимосвязей между данными.

  • John the Ripper: инструмент для взлома паролей, который можно использовать для взлома хэшей паролей.

  • Cain and Abel: инструмент для взлома паролей и прослушивания сети.

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

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

  • Snort: система обнаружения вторжений с открытым исходным кодом, которая может использоваться для обнаружения сетевых атак.

  • Immunity Debugger: мощный отладчик, который можно использовать для анализа и использования уязвимостей в программном обеспечении.

  • Core Impact: Коммерческий инструмент тестирования на проникновение, который может использоваться для выявления и использования уязвимостей в системах и приложениях.

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

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

  • sqlninja: инструмент для использования уязвимостей SQL-инъекций в серверах Microsoft SQL.

  • Vega: Сканер веб-безопасности с открытым исходным кодом, который можно использовать для выявления уязвимостей в веб-приложениях.

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

Лучшие CVE

• CVE-2019-0708: уязвимость в службах удаленных рабочих столов Microsoft Windows, которая может позволить злоумышленнику выполнять код в уязвимой системе без проверки подлинности. Эта уязвимость, известная как BlueKeep, имела базовый балл CVSS 9,8.

• CVE-2017-5638: Уязвимость в Apache Struts 2, которая может позволить злоумышленнику выполнить произвольный код в уязвимой системе. Эта уязвимость имела базовый балл CVSS 9,8.

• CVE-2020-0601: Уязвимость в Windows CryptoAPI, которая может позволить злоумышленнику подделать цифровые сертификаты и выполнить произвольный код в уязвимой системе. Эта уязвимость имела базовый балл CVSS 9,8.

• CVE-2018-0101: Уязвимость в программном обеспечении Cisco ASA, которая может позволить злоумышленнику выполнить произвольный код или вызвать отказ в обслуживании (DoS) в уязвимой системе. Эта уязвимость имела базовый балл CVSS 9,8.

• CVE-2020-0796: Уязвимость в Microsoft Windows SMBv3, которая может позволить злоумышленнику выполнять произвольный код в уязвимой системе без проверки подлинности. Эта уязвимость, известная как SMBGhost, имела базовую оценку CVSS, равную 10.

Уязвимость потока бизнес-логики подвиги

  • EternalBlue: эксплойт, разработанный Агентством национальной безопасности (АНБ) и опубликованный в 2017 году, который нацелен на уязвимость в Microsoft Windows SMBv1 и может использоваться для выполнения произвольного кода в уязвимой системе.

  • WannaCry: атака вымогателей, которая быстро распространилась с использованием эксплойта EternalBlue в 2017 году, затронув сотни тысяч систем по всему миру.

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

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

  • Stuxnet: сложная вредоносная программа, предназначенная для уничтожения промышленных систем управления, в частности тех, которые используются на ядерных объектах в Иране.

  • Shellshock: уязвимость в оболочке Bash, которая может быть использована для выполнения произвольного кода в уязвимой системе.

  • Spectre и Meltdown: две уязвимости, которые влияют на современные процессоры и могут быть использованы для считывания конфиденциальной информации из уязвимой системы.

  • Petya: атака вымогателей, которая быстро распространилась в 2016-2017 годах, которая шифрует таблицу основных файлов жесткого диска (MFT), делая систему не загружаемой

  • BlueKeep: уязвимость в службах удаленных рабочих столов Microsoft Windows, которая может позволить злоумышленнику выполнять код в уязвимой системе без проверки подлинности.

  • Ghostcat: уязвимость в Apache Tomcat, которая может позволить злоумышленнику читать или записывать файлы в уязвимой системе.

Практика в тестировании

Уязвимости потока бизнес-логики могут быть протестированы в различных областях приложения, в том числе:

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

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

  3. Хранение и обработка данных: тестирование на наличие уязвимостей в механизмах хранения и обработки данных приложения, таких как внедрение SQL или небезопасное хранение данных.

  4. Бизнес-логика: тестирование бизнес-логики и потока работы приложения, например, манипулирование входными данными для доступа к ограниченным функциям или обхода бизнес-правил.

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

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

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

  1. Курсы: Существует несколько онлайн-курсов, которые охватывают темы, связанные с уязвимостями потока бизнес-логики, такие как “Тестирование веб-приложений на проникновение” и “Безопасное кодирование на Java”.

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

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

• OWASP
• Институт САНС
• Веб-безопасность PortSwigger
• Хакерон
• Скопище насекомых

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

  2. Веб-сайты: Веб-сайты, такие как OWASP (Open Web Application Security Project), содержат множество информации о безопасности веб-приложений и уязвимостях бизнес-логики.

Список полезных нагрузок

  • Внедрение неожиданных входных данных: попытка ввести неожиданные данные, такие как специальные символы или строки SQL-инъекции, в систему, чтобы увидеть, как она обрабатывает ввод и потенциально использует любые уязвимости.

  • Манипулирование переменными сеанса: попытка манипулировать переменными сеанса, такими как учетные данные пользователя или разрешения, для получения несанкционированного доступа к системе.

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

  • Использование известных уязвимостей: попытка использовать известные уязвимости, например, перечисленные в базе данных общих уязвимостей и уязвимостей (CVE), в программном или аппаратном обеспечении системы.

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

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

Как защититься от буязвимость логического потока полезности

Чтобы заблокировать или остановить уязвимость потока бизнес-логики, вы можете использовать правила Sigma или правила брандмауэра, которые могут обнаруживать и предотвращать вредоносную активность. Некоторые примеры включают:

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

  2. Отслеживайте и блокируйте попытки манипулирования или обхода элементов управления бизнес-логики, таких как проверка входных данных или элементы управления доступом.

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

  4. Проверяйте сетевой трафик для обнаружения и предотвращения атак, использующих известные уязвимости в бизнес-логике, таких как внедрение SQL или атаки с использованием межсайтовых сценариев (XSS).

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

Меры по смягчению последствий

Вот несколько примеров мер по устранению уязвимости потока бизнес-логики, пронумерованных для вашего удобства:

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

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

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

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

  5. Регулярно обновляйте систему последними исправлениями безопасности и программным обеспечением.

  6. Использование методов безопасного кодирования при разработке кода бизнес-логики и веб-приложений для предотвращения распространенных уязвимостей, таких как внедрение SQL, XSS и CSRF

  7. Использование инструментов тестирования безопасности для проверки кода бизнес-логики и веб-приложений на наличие уязвимостей в процессе разработки

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

  9. Использование брандмауэра веб-приложений (WAF) для защиты веб-приложений от известных и неизвестных уязвимостей.

  10. Обучите сотрудников и разработчиков передовым методам обеспечения безопасности и важности соблюдения правил безопасного кодирования.

Заключение

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

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

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

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