oleksandrblazhko / ai-191-buriak

0 stars 0 forks source link

CW7 #23

Closed Yakiv7 closed 11 months ago

Yakiv7 commented 11 months ago

1-варіант Запитання № 1 (1 бал) Опишіть ПЗ, в якому знайдено вразливість:

Вразливість CVE-2022-4566 була знайдена в програмному забезпеченні y_project RuoYi 4.7.5.

URL-посилання: https://github.com/luelueking/ruoyi-4.7.5-vuln-poc або на сайті Gitee. Призначення ПЗ: RuoYi є проектом для розробки веб-додатків, який надає базову платформу для розробки, включаючи систему користувачів, систему ролей, систему меню, систему службовців тощо. Це допомагає розробникам швидко побудувати власні веб-додатки. Приклади споживачів: Розробники веб-додатків, компанії, що займаються розробкою програмного забезпечення, та організації, які потребують швидкої розробки веб-додатків, можуть бути зацікавлені у використанні RuoYi. Ця вразливість впливає на деякі невідомі процеси файлу com/ruoyi/generator/controller/GenController. Маніпуляції призводять до SQL-ін’єкції. Рекомендується застосувати патч для виправлення цієї проблеми.

Запитання № 2 (1 бал) Опишіть знайдену вразливість, переклавши на українську розділ Description.

Опис. Виявлено вразливість, яка була класифікована як критична, у проекті y_project RuoYi 4.7.5. Ця проблема впливає на невідому обробку файлу com/ruoyi/generator/controller/GenController. Маніпуляції призводять до SQL-ін'єкції. Назва патча - 167970e5c4da7bb46217f576dc50622b83f32b40. Рекомендується застосувати патч для вирішення цієї проблеми. Пов'язаний ідентифікатор цієї вразливості - VDB-215975. Маніпуляції з невідомим введенням призводять до вразливості ін’єкції sql. Використання CWE для оголошення проблеми призводить до CWE-89 . Продукт створює всю або частину команди SQL, використовуючи зовнішні вхідні дані від вищого компонента, але він не нейтралізує або неправильно нейтралізує спеціальні елементи, які можуть змінити призначену команду SQL, коли вона надсилається нижчестоящому компоненту. Це стосується конфіденційності, цілісності та доступності.

Запитання № 3 (1 бали) Наведіть фрагменти прикладів уразливого програмного коду, розглянувши розділ References to Advisories, Solutions, and Tools. У цьому коді функція create у контролері GenController обробляє параметр sql, який містить SQL-запит. Важливо враховувати, що без належної перевірки та фільтрації введеного SQL-запиту з боку користувача, це може призвести до виконання небезпечних запитів до бази даних.

@PostMapping("/createTable") @ResponseBody public AjaxResult create(String sql) { try { SqlUtil.filterKeyword(sql); // решта коду } catch (Exception e) { logger.error(e.getMessage(), e); return AjaxResult.error("Сталася помилка при створенні таблиці[" + e.getMessage() + "]"); } }

Щоб уникнути таких уразливостей, важливо використовувати параметризовані запити або дотримуватися найкращих практик безпеки баз даних, таких як використання підготовлених заявок (prepared statements) та обмеження прав доступу до баз даних.

Фрагмент коду SQL_REGEX намагається заборонити певні ключові слова в SQL-запитах, проте цей механізм фільтрації може бути обхідним за допомогою витівливих технік.

public static String SQL_REGEX = "select |insert |delete |update |drop |count |exec |chr |mid |master |truncate |char |and |declare ";

Цей POC-спосіб уразливості демонструє, як можна використовувати уразливий параметр sql для виконання шкідливого SQL-запиту, що може призвести до небажаних дій у базі даних.

Запитання № 4 (2 бали) В таблиці 2 наведено URL-посилання на наукові публікації, пов’язані з SQLinjection. Розглянувши приклад публікації, номер якої співпадає з номером вашого варіанту виконання лабораторних робіт, перекладіть української вказані назви розділи.

ВСТУП У сучасному світі Інтернет стає широко розповсюдженою інформаційною інфраструктурою. Зараз веб-застосунки стали найбільш відповідним способом надання доступу до онлайн-сервісів через Інтернет [1]. Веб-застосунки стають широко поширеними у всіляких комерційних, корпоративних бізнесах, установах, організаціях, численних фінансових транзакціях та інших Інтернет-сервісах [2]. Часто вони містять цінну та конфіденційну інформацію, що робить їх привабливою метою для загроз проникнення, які можуть бути досягнуті шляхом ін'єкції в базу даних [3]. Якщо несанкціонований користувач може отримати чутливу інформацію, відправивши шкідливий код, це може призвести до простою та збитків для сервісів [4]. Таким чином, безпека стала одним із основних викликів у останні роки, оскільки більшість веб-застосунків мають вразливості, що роблять їх привабливими об'єктами атак на безпеку [5]. Проте важливо надавати захист веб-застосункам від спрямованих атак SQLIAs [6]. Атака ін'єкції структурованого запитання мовою SQL (SQLIA) є найбільш поширеною та шкідливою для онлайн-сервісів через веб-застосунки. Цей напад використовує перевагу існуючого довір'я між користувачами та сервером, а також використовує відсутність перевірки введення/виведення на сервері для відхилення шкідливих кодів [7]. Крім того, атака ін'єкції SQL (SQLI) є технікою, яка загрожує базовому рівню даних веб-застосунку через наявність вразливості безпеки програми. Це тип атаки, який використовує недоліки в кодуванні програми [8]. Згідно з проектом з безпеки веб-застосунків (OWASP), SQLIA у 2013 році визначалася як одна з десяти найпоширеніших вразливостей веб-застосунків [9]. SQLIAs - це поширений і визначний клас серйозних атак на веб-застосунки. Таким чином, вони можуть легко надавати зловмисникам нелегальний доступ до бази даних веб-застосунку, отримуючи повний контроль над системою та спричинюючи втрати, що становлять мільйони доларів для корпорацій. Збережені процедури - це підпрограми або колекції SQL-запитів чи операторів, які зберігаються в базі даних, яка розташована в системі управління базами даних (RDBMS) [10]. Збережені процедури (SP) є важливою частиною сучасних веб-застосунків і зберігаються на стороні сервера, де вони можуть бути доступні для всіх клієнтів [11]. Крім того, атака ін'єкції SQL на збережені процедури - це одна з серйозних атак, яка загрожує базі даних, що лежить в основі веб-застосунків. При цьому атака може бути спланована для виконання збережених процедур, які надаються конкретною базою даних і охоплюють процедури, які мають справу з операційною системою [12].

Це дослідження спрямоване на аналіз та вирішення проблеми атак ін'єкції SQL з метою виявлення цих атак в реальному середовищі за допомогою концепції динамічного позитивного обарвлення та синтакс-освідомленої оцінки веб-застосунку для розробки реального методу. Основні внески цього дослідження включають: розробку інструменту WASP, який був запропонований Халфондом у 2008 році, для виявлення атак ін'єкції SQL у режимі реального часу веб-застосунків, оцінку точності результатів запропонованої техніки на основі стандартних метрик продуктивності (фальшиві від'ємні та фальшиві позитивні), а також виконання оцінки ефективності техніки на практиці з використанням метрик ефективності. Решта цієї статті організована наступним чином: у розділі 2 наводиться формулювання проблеми дослідження. Розділ 3 розглядає та обговорює роботи, які були виконані для вирішення конкретних атак. Надає чіткий опис запропонованого дизайну в розділі 4. В розділі 5 буде представлено та обговорено реалізацію та тестування запропонованого інструменту. Розділ 6 презентує емпіричну оцінку та аналіз запропонованого інструменту. І, нарешті, в розділі 7 буде надано висновки та перспективи майбутнього дослідження.

oleksandrblazhko commented 11 months ago

Оцінка = 5 балів