oleksandrblazhko / ai181-belyaev

1 stars 3 forks source link

CW8 #29

Closed VIVAskAVIV closed 1 year ago

VIVAskAVIV commented 1 year ago

Варіант 1. CVE-2022-32223 Запитання № 1.1

Вразливість знайдено у Hijack Execution Flow: DLL Search Order Hijacking https://attack.mitre.org/techniques/T157 Зловмисники можуть виконувати власні зловмисні навантаження, переймаючи порядок пошуку, який використовується для завантаження DLL. Системи Windows використовують загальний метод для пошуку необхідних бібліотек DLL для завантаження в програму. Викрадення завантажень DLL може здійснюватися з метою встановлення стійкості, а також підвищення привілеїв та/або ухилення від обмежень на виконання файлів.

Є багато способів, якими зловмисники можуть викрасти завантаження DLL. Зловмисники можуть встановити троянські файли бібліотеки динамічних посилань (DLL) у каталозі, у якому здійснюватиметься пошук перед місцем розташування легітимної бібліотеки, запитуваної програмою, що змусить Windows завантажувати їх шкідливу бібліотеку, коли її викличе програма-жертва. Зловмисники також можуть здійснювати попереднє завантаження DLL, що також називається атаками на встановлення бінарних файлів, розміщуючи шкідливу DLL із таким же ім’ям, що й неоднозначно визначена DLL, у місці, яке Windows шукає перед легітимною DLL. Часто це розташування є поточним робочим каталогом програми. Атаки на віддалене попереднє завантаження DLL відбуваються, коли програма встановлює свій поточний каталог у віддалене розташування, наприклад, спільний веб-сайт, перед завантаженням DLL.

Приклади:

Запитання № 1.2 Node.js уразливий до Hijack Execution Flow: DLL Hijack за певних умов на платформах Windows. Цією вразливістю можна скористатися, якщо жертва має такі залежності на комп’ютері Windows:* OpenSSL інстальовано та “C:\Program Files\Common Files\SSL\openssl.cnf" існує. Щоразу, коли наявні вищезазначені умови, node.exe шукатиме providers.dll у поточному каталозі користувача. Після цього node.exe намагатиметься шукати providers.dll за порядком пошуку DLL у Windows. Зловмисник може розмістити шкідливий файлproviders.dll` за різними шляхами та використати цю вразливість.

Запитання № 1.2 Цією вразливістю можна скористатися, якщо жертва має такі залежності від комп’ютера Windows:

OpenSSL встановлено, і існує «C:\Program Files\Common Files\SSL\openssl.cnf». За наявності наведених вище умов node.exe шукатиме providers.dll у поточному каталозі користувача. Після цього node.exe спробує знайти providers.dll за порядком пошуку DLL у Windows.

Зловмисник може розмістити шкідливий файл providers.dll за різними шляхами та використати цю вразливість.

Це критична зміна, внесена до рядків випусків v14.x, v16.x і v18.x. Node.js може використовувати файл конфігурації OpenSSL, вказавши змінну середовища OPENSSL_CONF або використовуючи параметр командного рядка --openssl-conf, і якщо жоден із них не вказано, за замовчуванням буде читати файл конфігурації OpenSSL openssl.cnf за замовчуванням. Node.js читатиме лише розділ, який за замовчуванням називається nodejs_conf.

Якщо інсталяція використовувала файл openssl.cnf за замовчуванням і на нього вплинула ця критична зміна, ви можете повернутися до попередньої поведінки:

Додавання --openssl-shared-config до командного рядка (лише Node.js 18.5.0); або Створення нового розділу nodejs_conf у цьому файлі та копіювання вмісту розділу за замовчуванням у новий розділ nodejs_conf.

Запитання № 2.1 Назва криптографічного алгоритму - aes-128-cbc

Advanced Encryption Standard (AES), також відомий під назвою Rijndael — симетричний алгоритм блочного шифрування (розмір блока 128 біт, ключ 128/192/256 біт), фіналіст конкурсу AES і прийнятий як американський стандарт шифрування урядом США. Вибір припав на AES з розрахуванням на широке використання та активний аналіз алгоритму, як це було із його попередником, DES. Державний інститут стандартів і технологій (англ. National Institute of Standards and Technology, NIST) США опублікував попередню специфікацію AES 26 жовтня 2001 року, після п'ятилітньої підготовки. 26 травня 2002 року AES оголошено стандартом шифрування. Станом на 2009 рік AES є одним із найпоширеніших алгоритмів симетричного шифрування. 'aes' у назві криптографічного алгоритму вказує на алгоритм AES, а число 128 - це розмір ключа. 'cbc' - це режим блокового шифрування, який перекладається як Ланцюгування шифроблоків (CBC). IBM винайшла режим ланцюгування шифроблоків (англ. cipher-block chaining, CBC) у 1976. В CBC режимі, кожен блок відкритого тексту XOR-ять з попереднім шифроблоком перед шифруванням. Так, кожен шифроблок, залежить від усіх блоків оброблених до нього. Для отримання унікальних повідомлень потрібно використовувати ініціалізаційний вектор у першому блоці.

Запитання № 2.2 Перевага використання алгоритму шифрування AES Все це зводиться до того, що AES безпечний, швидкий і гнучкий. Алгоритм AES – набагато швидше DES. Варіанти з різними довжинами ключів – це найбільша перевага: чим довше ключі, тим складніше їх зламати.

На сьогоднішній день AES є найбільш популярним алгоритмом шифрування – він використовується в багатьох додатках, включаючи:

Запитання № 2.3 Перевагами режиму CBC є відсутність недоліків, які притаманні ECB, а саме, підтримки процесу приховування структури відкритого тексту та відсутність можливості перестановки блоків зашифрованого тексту, які досягаються за рахунок того, що кожен наступний блок зашифрованого тексту залежить від всіх попередніх блоків. Однак це в свою чергу не дозволяє одночасно зашифровувати декілька блоків відкритого тексту. Окрім вищезазначених переваг варто відзначити, що цей режим дозволяє розпаралелювати процес розшифрування блоків зашифрованого тексту і підтримує самосинхронізацію. Якщо під час передачі або запису даних був пошкоджений i-ий блок зашифрованого тексту, то під час розшифрування лише i-ий та (i+1)-ий блоки відкритого тексту будуть пошкодженими. Однакові блоки відкритого тексту зумовлюють появу різних блоків зашифрованого тексту, що в свою чергу унеможливлює використання процесу перестановки блоків зашифрованого тексту для модифікації змісту відкритого тексту на відміну від режиму ECB. За рахунок цього режим шифрування CBC також використовують в якості засобу для забезпечення цілісності та захисту інформації від фальсифікації. Недоліком є те, що CBC є вразливим до атаки «дня народження», за допомогою якої під час використання одного і того ж секретного ключа можна отримувати інформацію про відкритий текст та порушувати цілісність відкритого тексту.

oleksandrblazhko commented 1 year ago

Оцінка = 7 балів. Дякую за активність!