OS-IS / ai201-shumejko

0 stars 0 forks source link

CW7 #20

Closed caramel2312 closed 4 days ago

caramel2312 commented 4 days ago

Варіант 29

caramel2312 commented 4 days ago

Завдання 1

Запитання No 1.1 (1 бал). Опишіть ПЗ або програмну бібліотеку, в яких знайдено вразливість.

Назва ПЗ або програмної бібліотеки: OpenSSL (Версія: 3.0.4)

URL-посилання в інтернеті: https://github.com/openssl/openssl

Призначення ПЗ або програмної бібліотеки та приклади споживачів, які можуть бути зацікавлені у їх використанні:

OpenSSL — це широко використовувана бібліотека з відкритим вихідним кодом, яка надає інструменти та функції для реалізації криптографічних алгоритмів, шифрування, SSL/TLS протоколів. Її основна мета — забезпечення захищеного обміну даними через мережі, зокрема Інтернет.

Приклади споживачів OpenSSL:

  1. Вебсервери:
    • Apache HTTP Server: використовує OpenSSL для реалізації HTTPS-з'єднань.
    • NGINX: забезпечує безпеку трафіку через OpenSSL, обробляючи SSL/TLS запити.
  2. Поштові сервери:
    • Postfix і Exim: шифрують трафік між серверами за допомогою TLS.
    • Dovecot: захищає протоколи IMAP/POP3 через SSL/TLS.
  3. Операційні системи та платформи:
    • Linux-дистрибутиви (Ubuntu, CentOS): використовують OpenSSL для захисту системних служб і комунікацій.
    • Windows: у деяких додатках або середовищах.
  4. Програмне забезпечення:
    • Клієнтські програми: OpenSSL використовується для шифрування в браузерах, наприклад, у Firefox або Chromium.
    • VPN-системи: OpenVPN значною мірою базується на OpenSSL для забезпечення безпеки тунелів.
  5. Вбудовані системи та IoT:
    • Мережеві пристрої: маршрутизатори, точки доступу Wi-Fi, які потребують SSL/TLS.
    • IoT-пристрої: для безпечної комунікації між пристроями та серверами.

Кому це потрібно:

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

У версії OpenSSL 3.0.4 була виявлена серйозна помилка в реалізації RSA для процесорів X86_64, які підтримують інструкції AVX512IFMA. Ця проблема призводить до некоректної роботи RSA з приватними ключами розміром 2048 біт на таких машинах, що викликає пошкодження пам’яті під час обчислень. Як наслідок, через це пошкодження пам’яті зловмисник може ініціювати виконання віддаленого коду на машині, яка виконує обчислення. Ця вразливість зачіпає SSL/TLS сервери або інші сервери, що використовують приватні RSA-ключі розміром 2048 біт і працюють на машинах із підтримкою інструкцій AVX512IFMA архітектури X86_64.

Запитання No 1.3 (1 бал). Наведіть фрагменти прикладів уразливого програмного коду, розглянувши розділ References to Advisories, Solutions, and Tools.

Уразливий програмний код можна знайти у секції логів із використанням AddressSanitizer, який повідомляє про переповнення буфера при роботі з RSA-приватними ключами. Компіляція OpenSSL з уразливою версією (3.0.4):

CFLAGS="-O3 -g -fsanitize=address" ./config
make

Повідомлення AddressSanitizer:

==481618==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60c000089400 at pc 0x7f01e32a9509 bp 0x7fff643ec100 sp 0x7fff643ec0f8
READ of size 8 at 0x60c000089400 thread T0
    #0 0x7f01e32a9508 in bn_select_words crypto/bn/rsaz_exp.h:64
    #1 0x7f01e32a9508 in bn_reduce_once_in_place crypto/bn/rsaz_exp.h:74
    #2 0x7f01e32a9508 in ossl_rsaz_mod_exp_avx512_x2 crypto/bn/rsaz_exp_x2.c:223
    #3 0x7f01e3287dc8 in BN_mod_exp_mont_consttime_x2 crypto/bn/bn_exp.c:1448
    #4 0x4042c3 in test_mod_exp_x2 test/exptest.c:260
    #5 0x40611a in run_tests test/testutil/driver.c:370

Проблемний фрагмент коду:

crypto/bn/rsaz_exp.h:64
crypto/bn/rsaz_exp_x2.c:223
crypto/bn/bn_exp.c:1448

Згідно з логами, переповнення буфера сталося у функції bn_select_words, яка знаходиться у файлі rsaz_exp.h. Ця функція працює з неправильними вхідними даними, що спричиняє переповнення купи та порушення пам'яті.

caramel2312 commented 4 days ago

Завдання 2. Назва криптографічного алгоритму - aria-128-cbc

Запитання No 2.1 (1 бал). Розшифруйте абревіатурну назву криптографічного алгоритму та режиму шифрування, а також вкажіть роки їх створення.

ARІA (Advanced Encryption Standard – Replacement for International Applications). ARIA — це блоковий симетричний алгоритм шифрування, розроблений у 2003 році в Південній Кореї як альтернатива AES. Він працює з блоками даних розміром 128 біт і підтримує ключі довжиною 128, 192 або 256 біт. Використовується для забезпечення конфіденційності даних у різних міжнародних додатках.

128 біт — це довжина ключа шифрування в бітах.

CBC (Cipher Block Chaining) — це один із стандартних режимів роботи для блокових шифрів. У CBC кожен блок шифрується залежно від попереднього блоку, що додає випадковості та підвищує стійкість до аналізу. Для початкового блоку використовується IV (Initialization Vector) — випадкове значення, що забезпечує додаткову криптографічну стійкість. Режим CBC був запропонований у 1976 році.

Запитання No 2.2 (1 бал). Опишіть переваги та недоліки криптографічного алгоритму та режиму шифрування

Алгоритм ARIA

Переваги

Безпека:

Швидкість:

Міжнародний стандарт:

Підтримка довжини ключа:

Недоліки

Відносна невідомість:

Менша підтримка в програмному забезпеченні:

Не використовуваний у широкому масштабі:

Режим шифрування CBC (Cipher Block Chaining)

Переваги

Стійкість до патернів:

Простота реалізації:

Шифрування великих даних:

Популярність і підтримка:

Недоліки

Повільніший в порівнянні з іншими режимами:

Потребує IV (Initialization Vector):

Уразливість до атак на повтори:

Незахищеність від модифікації даних:

Висновок

oleksandrblazhko commented 4 days ago

5