OWASP Top 10 частина 4: Insecure Design

21.10.2024 1 хвилин Автор: Lady Liberty

Небезпечний дизайн – це проблеми в архітектурі та дизайні додатка, які можуть призвести до вразливостей безпеки.

Ненадійні архітектурні рішення

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

  • Приклад: Архітектура, що допускає небезпечні або неконтрольовані дані у внутрішні процеси, що може призвести до витоків інформації або атак.

Відсутність безпеки в процесах розробки

  • Опис: Неврахування безпеки на етапі проектування або розробки додатка.

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

Неправильне управління доступом

  • Опис: Неналежне управління доступом до функцій та даних.

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

 Single entry point (aka Front Controller)

 Blue Team

Single Entry Point, або Front Controller, є архітектурним шаблоном, де всі запити до веб-додатку спрямовуються через одну точку доступу. Це забезпечує централізовану обробку запитів, що спрощує контроль за безпекою та маршрутизацією.

У фреймворках, таких як Symfony, Laravel та Yii2, цей патерн реалізується через єдиний файл, наприклад index.php, який обробляє всі запити до програми.

Red team

1. Атака на Single Entry Point:

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

  • curl http://target-site.com/config.php

2. Використання неправильних налаштувань маршрутизації

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

  • curl http://target-site.com/index.php?controller=Admin&action=editUser&id=1

3. Зловживання можливістю передавання параметрів

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

  • curl http://target-site.com/index.php?module=User&action=delete&id=1

4. Спроби атаки через уразливості в коді

Зловмисники можуть шукати уразливості в коді, який обробляє запити через Front Controller, такі як SQL ін’єкції або інші атаки на основі вхідних даних.

  • curl http://target-site.com/index.php?search=’ OR ‘1’=’1

 Publicly open ports

Blue team

Publicly Open Ports є ключовим елементом мережевої безпеки, і лише мінімальний набір портів повинен бути доступним для зовнішніх користувачів. Наявність зайвих відкритих портів може створювати вразливості, які можуть бути використані зловмисниками для проведення атак.

Основні принципи:

  1. Мінімізація відкритих портів: Тільки необхідні порти повинні бути доступні для користувачів. Наприклад, порти для веб-сервера (80/443 для HTTP/HTTPS) або порт для бази даних (якщо він необхідний).

  2. Обмеження доступу до критичних портів: Деякі порти, наприклад, порт 22 для SSH, повинні бути відкриті тільки за вимогою або доступні лише з ізольованого середовища, наприклад, через VPN або з певних IP-адрес.

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

  4. Застосування брандмауера (firewall): Використовуйте правила брандмауера для обмеження доступу до портів, дозволяючи доступ тільки для певних служб та з певних IP-адрес.

 Red team

1. Сканування портів

Використання інструментів, таких як Nmap, для сканування мережі і виявлення відкритих портів. Це перший крок в атаках на відкриті порти.

  • nmap -p- target-ip

2. Експлуатація уразливостей на відкритих портах

Після виявлення відкритих портів зловмисники можуть спробувати використовувати уразливості у відповідних службах.

  • hydra -l username -P password_list.txt ssh://target-ip

3. Використання відкритих портів для DDoS-атак

Відкриті порти можуть бути використані для проведення атак типу Denial of Service (DDoS), спрямованих на перевантаження ресурсу.

4. Форвардінг портів

Зловмисник може скористатися відкритим портом для створення тунелю і доступу до внутрішніх ресурсів, які зазвичай не доступні ззовні.

  • ssh -L 8080:localhost:80 user@target-ip

Deny by Default, Fail Early

Blue team

Deny by Default і Fail Early — це принципи розробки та безпеки додатків, які передбачають, що система автоматично блокує доступ або виконання дій, якщо не виконуються необхідні умови, а також зупиняє роботу коду на ранніх етапах при виявленні помилок або проблем. Це допомагає мінімізувати ризики і підвищує надійність системи.

Deny by Default:

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

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

Red team

Атаки на системи з неправильним впровадженням цих принципів

1. Байпас перевірок доступу

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

  • curl -X POST https://target-app.com/hidden-route

2. Експлуатація логіки, що не враховує “Fail Early”

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

3. Використання підвищених привілеїв

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

Whitelist, Blacklist

Blue team

Whitelist та Blacklist є важливими методами для управління доступом і обмеженням дій у системах.

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

Blacklist (список заборонених): Включає лише ті елементи, які заборонені. Все інше автоматично дозволено. Це менш надійний підхід, оскільки він не охоплює всі можливі загрози.

Red team

1. Обхід Blacklist

Якщо в Blacklist заборонені лише певні розширення (наприклад, .php), зловмисник може завантажити файл з іншими розширеннями, які все одно можуть бути виконані на сервері (наприклад, .phtml, .php5).

2. Ін’єкції через дозволені файли

Якщо система дозволяє завантажувати певні типи файлів (наприклад, зображення), зловмисник може вбудувати шкідливий код у метадані файлу. Вбудовування шкідливого JavaScript у зображення через XSS-атаку.

3. Обхід Whitelist через нестандартні розширення

Зловмисник може спробувати використовувати нестандартні або нові розширення, які не включені в Whitelist, але можуть бути виконані на сервері. Завантаження файлу з розширенням .phar, яке також може бути виконано на деяких серверах.

Підписатися
Сповістити про
0 Коментарі
Найстаріші
Найновіше Найбільше голосів
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.