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-ін'єкції, в систему, щоб побачити, як вона обробляє enter і потенційно використовує будь-які уразливості.

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

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

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

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

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

Як захиститися від буразливість логічного потоку корисності

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

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

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

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

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

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

Заходи по пом'якшенню наслідків

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

  1. Вбудуйте перевірку та очищення вхідних даних, щоб переконатися, що будь-які дані, введені користувачами, правильно відформатовані і не містить шкідливого коду.

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

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

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

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

  6. Використання методів безпечного кодування при розробці коду бізнес-логіки і веб-додатків для запобігання поширених недоліків, таких як впровадження SQL, XSS і CSRF

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

  8. Використання передових методів забезпечення безпеки для розробки та впровадження бізнес-логіки

  9. Використання брандмауера веб-додатків (WAF) для захисту веб-додатків від відомих і невідомих вразливостей.

  10. Навчіть співробітників і розробників передовим методам забезпечення безпеки і важливості дотримання правил безпечного кодування.

Висновок

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

Інші Послуги

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

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