21 Лют, 2023

Недостатня ентропія

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

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

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

Приклад уразливого коду на різних мовах програмування:


в Python:

				
					import random

def generate_token(length):
    token = ''
    for i in range(length):
        token += random.choice('abcdefghijklmnopqrstuvwxyz0123456789')
    return token

				
			


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

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

				
					import secrets

def generate_token(length):
    token = secrets.token_urlsafe(length)
    return token

				
			


• 
В Java:

				
					import java.util.Random;

public class PasswordGenerator {
    private static final String ALLOWED_CHARACTERS = "abcdefghijklmnopqrstuvwxyz0123456789";

    public static String generatePassword(int length) {
        Random random = new Random();
        StringBuilder passwordBuilder = new StringBuilder(length);
        for (int i = 0; i < length; i++) {
            int index = random.nextInt(ALLOWED_CHARACTERS.length());
            passwordBuilder.append(ALLOWED_CHARACTERS.charAt(index));
        }
        return passwordBuilder.toString();
    }
}

				
			


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

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

				
					import java.security.SecureRandom;
import java.util.Base64;

public class PasswordGenerator {
    private static final int PASSWORD_LENGTH = 16;

    public static String generatePassword() {
        SecureRandom secureRandom = new SecureRandom();
        byte[] passwordBytes = new byte[PASSWORD_LENGTH];
        secureRandom.nextBytes(passwordBytes);
        return Base64.getEncoder().encodeToString(passwordBytes);
    }
}

				
			


• 
В PHP:

				
					function generate_token($length) {
    $characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
    $token = '';
    for ($i = 0; $i < $length; $i++) {
        $token .= $characters[rand(0, strlen($characters) - 1)];
    }
    return $token;
}

				
			


Цей код генерує токен шляхом вибору випадкових символів з набору з 36 можливих символів. Тим не менш, rand() функція PHP не є криптографічно безпечної, що означає, що зловмисник може передбачити результат цієї функції, проаналізувавши результат rand() функція.

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

				
					function generate_token($length) {
    $token = bin2hex(random_bytes($length));
    return $token;
}

				
			

Приклади використання Недостатньою ентропії

Вгадування Атак:

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

Пророкування Атак:

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

Атаки грубої силою:

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

Методи підвищення привілеїв для Недостатня ентропія

Використання слабкою криптографії:

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

Використання токенів сеансу:

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

Використання паролів:

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

Використання генерації випадкових чисел:

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

Загальна методологія та контрольний список for Недостатня ентропія

Методологія:

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

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

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

  4. Тест на передбачуваність випадкових чисел або насіння: Протестуйте процес генерації випадкових чисел або початкового числа, щоб перевірити, чи є згенеровані числа передбачуваними. Такі інструменти, як Fuzzers, Burp Suite і ZAP Proxy, можна використовувати для перевірки передбачуваності випадкових чисел.

  5. Тест на вплив передбачуваної або недостатньої ентропії: Нарешті, перевірте вплив передбачуваної або недостатньої ентропії, імітуючи атаки, які можуть використовувати такі уразливості, такі як атаки методом перебору або перехоплення сеансу.

  6. Повторіть процес тестування: Важливо регулярно повторювати процес тестування, щоб переконатися, що система залишається безпечною, а нові уразливості своєчасно виявляються та усуваються.

Контрольний список:

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

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

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

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

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

  6. Тест на вплив передбачуваної або недостатньої ентропії: Імітуйте атаки, які можуть використовувати передбачувану або недостатню ентропію, такі як атаки методом перебору або перехоплення сеансу, і перевіряйте, успішні вони.

  7. Тест на використання слабких алгоритмів: Перевірте, чи не використовує система слабкі алгоритми, які покладаються на випадкові числа або початкові значення, такі як слабкі алгоритми шифрування або слабкі алгоритми хешування паролів.

  8. Повторіть процес тестування: Регулярно повторюйте процес тестування, щоб переконатися, що система залишається безпечною, а нові уразливості своєчасно виявляються та усуваються.

Набір інструментів для експлуатації Недостатня ентропія

Ручні Інструменти:

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

  • John the Ripper: Ще один інструмент для злому паролів, який можна використовувати для перевірки передбачуваності випадкових чисел або початкових значень, що генеруються системою.

  • Burp Suite: Популярний інструмент тестування веб-додатків, який можна використовувати для перехоплення і зміни запитів і відповідей. Він може бути використаний для перевірки передбачуваної або недостатньої ентропії в сеансових файли cookie, токенах і інших параметрах.

  • ZAP Proxy: Безкоштовний інструмент тестування безпеки веб-додатків з відкритим вихідним кодом, який можна використовувати для перевірки передбачуваності або недостатньої ентропії у веб-додатках.

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

  • Manual Fuzzing: Метод ручного тестування, який включає в себе тестування на передбачувану або недостатню ентропію шляхом спроби передбачити або вгадати випадкові числа.

  • Тестування на проникнення: Метод ручного тестування, який включає в себе моделювання атак, які можуть використовувати передбачувану або недостатню ентропію, таких як атаки методом перебору або перехоплення сеансу.

  • Source Code Review: Метод ручного тестування, який включає в себе перевірку вихідного коду на предмет використання слабких або передбачуваних генераторів випадкових чисел, вихідних даних і алгоритмів.

Автоматизовані інструменти:

  • Metasploit Framework: Інструмент тестування на проникнення з відкритим вихідним кодом, який можна використовувати для перевірки вразливостей, включаючи недостатню ентропію. Він включає в себе модулі для тестування на передбачувану або недостатню ентропію.

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

  • Nessus: Комерційний сканер вразливостей, який можна використовувати для виявлення вразливостей, включаючи недостатню ентропію.

  • Acunetix: Комерційний сканер веб-додатків, який можна використовувати для перевірки вразливостей, включаючи недостатню ентропію.

  • Nikto: Сканер веб-сервер з відкритим вихідним кодом, який можна використовувати для перевірки вразливостей, включаючи недостатню ентропію.

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

  • OWASP ZAP: Автоматизований інструмент тестування безпеки, який можна використовувати для перевірки на наявність вразливостей, включаючи недостатню ентропію.

  • Sqlmap: Інструмент SQL-ін'єкції з відкритим вихідним кодом, який можна використовувати для перевірки вразливостей, включаючи недостатню ентропію.

Плагіни для браузера:

  • Cookie Editor: Плагін для браузера, який можна використовувати для редагування або видалення файлів cookie. Його можна використовувати для перевірки передбачуваної або недостатньої ентропії в сеансових файли cookie.

  • EditThisCookie: Плагін для браузера, який можна використовувати для редагування або видалення файлів cookie. Його можна використовувати для перевірки передбачуваної або недостатньої ентропії в сеансових файли cookie.

  • Web Developer: Плагін для браузера, який можна використовувати для перевірки та оновлення веб-сторінок. Його можна використовувати для перевірки передбачуваності або недостатньої ентропії у веб-додатках.

Середній бал CVSS стек Недостатня ентропія

Загальна система оцінки вразливостей (CVSS) являє собою стандартизовану систему оцінки серйозності вразливостей безпеки в діапазоні від 0 (низька серйозність) до 10 (висока серйозність). Оцінка CVSS враховує можливість використання уразливості, потенційний вплив успішного використання та інші фактори.

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

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

Загальна перерахування слабких місць (CWE)

• CWE-338: Використання криптографічно слабких генераторів псевдовипадкових чисел (PRNG): Цей CWE описує використання слабких або передбачуваних PRNG, які можуть бути легко вгадано або відтворені зловмисником, що може призвести до компрометації криптографічних ключів, токенів сеансу та іншої конфіденційної інформації.

• CWE-330: використання недостатньо випадкових значень: Цей CWE відноситься до використання значень, які не є випадковими, таких як жорстко запрограмовані або передбачувані значення. Це може призвести до слабких криптографічних ключів або іншим заходам безпеки, які можуть бути легко вгадано або використані зловмисником.

• CWE-332: Недостатня ентропія в PRNG: Цей CWE описує використання PRNG, у якого недостатньо ентропії для отримання дійсно випадкових чисел. Це може привести до появи закономірностей у згенерованих числах, які можуть бути легко передбачені або відтворені зловмисником, ставлячи під загрозу безпеку системи.

• CWE-329: не використовувати випадкову крапельницю в режимі CBC: Цей CWE описує використання режиму ланцюжка блоків шифрування (CBC) без дійсно випадкового вектора ініціалізації (IV). Без випадкового введення один і той же ключ шифрування і відкритий текст можуть створити один і той же зашифрований текст, який може бути використаний зловмисником для отримання інформації про відкритому тексті.

• CWE-331: Недостатня ентропія при генерації насіння для PRNG: Цей CWE описує використання PRNG, який заповнюється недостатньо випадковими значеннями, що може призвести до появи шаблонів у згенерованих числах, які можуть бути легко передбачені або відтворені зловмисником.

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

• CWE-338: Використання криптографічно слабких генераторів псевдовипадкових чисел (PRNG): Цей CWE описує використання слабких або передбачуваних PRNG, які можуть бути легко вгадано або відтворені зловмисником, що може призвести до компрометації криптографічних ключів, токенів сеансу та іншої конфіденційної інформації.

• CWE-338: Використання криптографічно слабких генераторів псевдовипадкових чисел (PRNG): Цей CWE описує використання слабких або передбачуваних PRNG, які можуть бути легко вгадано або відтворені зловмисником, що може призвести до компрометації криптографічних ключів, токенів сеансу та іншої конфіденційної інформації.

• CWE-338: Використання криптографічно слабких генераторів псевдовипадкових чисел (PRNG): Цей CWE описує використання слабких або передбачуваних PRNG, які можуть бути легко вгадано або відтворені зловмисником, що може призвести до компрометації криптографічних ключів, токенів сеансу та іншої конфіденційної інформації.

• CWE-338: Використання криптографічно слабких генераторів псевдовипадкових чисел (PRNG): Цей CWE описує використання слабких або передбачуваних PRNG, які можуть бути легко вгадано або відтворені зловмисником, що може призвести до компрометації криптографічних ключів, токенів сеансу та іншої конфіденційної інформації.

Топ-10 CVE, пов'язаних з Недостатня ентропія

• CVE-2022-43755 – Вразливість з недостатньою ентропією в SUSE Rancher дозволяє зловмисникам, які дізналися про токені для великої рогатої худоби, продовжувати зловживати цим навіть після поновлення сертифіката. Ця проблема зачіпає: версії SUSE Rancher Rancher до версії 2.6.10; версії Rancher до версії 2.7.1.

• CVE-2022-34746 – Вразливість недостатньою ентропії, викликана неправильним використанням джерел випадковості з низькою ентропією для генерації пари ключів RSA, була виявлена у версіях прошивки серії Zyxel GS1900 до версії V2.70. Ця вразливість може дозволити зловмиснику, який не пройшов перевірку, отримати закритий ключ шляхом факторизації модуля N RSA в сертифікаті інтерфейсу веб-адміністрування.

• CVE-2022-20941 – Уразливість в веб-інтерфейсі управління програмним забезпеченням Cisco Firepower Management Center (FMC) може дозволити віддаленого зловмиснику, який не пройшов перевірку, отримати доступ до конфіденційної інформації. Ця вразливість, пов'язана з відсутністю авторизації для певних ресурсів у веб-інтерфейсі управління, а також недостатньою ентропією в іменах цих ресурсів. Зловмисник може скористатися цією уразливістю, відправивши серію HTTPS-запитів на вразливе пристрій для перерахування ресурсів на пристрої. Успішний експлойт може дозволити зловмиснику отримати конфіденційну інформацію з пристрою.

• CVE-2021-4248 – У kapetan dns до версії 6.1.0 була виявлена уразливість. Вона була оцінена як проблемна. Ця проблема пов'язана з деякими невідомими функціями файлу DNS /Protocol/Request.cs. Маніпуляція призводить до недостатньої ентропії в prng. Атака може бути запущена віддалено. Оновлення до версії 7.0.0 дозволяє усунути цю проблему. Назва патча - cf7105aa2aae90d6656088fe5a8ee1d5730773b6. Рекомендується оновити порушене компонент. Id цієї уразливості - VDB-216188.

• CVE-2021-41615 – websdac в GoAhead WebServer 2.1.8 має недостатню ентропію одноразового використання, оскільки обчислення одноразового використання грунтується на жорстко закодованому значенні onceuponatimeinparadise, яке не відповідає керівництву з секретним даними для аутентифікації доступу до дайджесту HTTP розділі 3.3 RFC 7616 (або RFC 2617 розділ 3.2.1). ПРИМІТКА: 2.1.8 - це версія 2003 року; однак порушене код websda.c з'являється в декількох похідних роботах, які можуть бути використані в 2021 році. Нещодавнє програмне забезпечення GoAhead не порушено.

• CVE-2021-33027 – Sylabs Singularity Enterprise через 1.6.2 має недостатню ентропію в одноразовому номері.

• CVE-2021-22799 – Існує вразливість CWE-331: недостатня ентропія, яка може призвести до випадкового підключення з внутрішньої мережі до зовнішньої мережі, коли зловмиснику вдається розшифрувати пароль проксі-сервера SESU з реєстру. Порушене продукт: Оновлення програмного забезпечення Schneider Electric з версії V2.3.0 за версією V2.5.1

• CVE-2021-22727 – Вразливість CWE-331: недостатня ентропія існує в EVlink City (EVC1S22P4 / EVC1S7P4 всі версії до версії R8 V3.4.0.1), EVlink Parking (EVW2 / EVF2 / EV.2 всі версії до версії R8 V3.4.0.1) і EVlink Smart Wallbox (EVB1A всі версії до версії R8 V3.4.0.1 ), які можуть дозволити зловмиснику отримати несанкціонований доступ до веб-сервера зарядної станції

• CVE-2020-25926 – На DNS-клієнт InterNiche NicheStack TCP / IP 4.0.1 впливає: Недостатня ентропія у ідентифікатор транзакції DNS. Наслідки такі: отруєння кеша DNS (віддалене). Це компонент: dns_query_type(). Вектор атаки: певний пакет DNS.

• CVE-2020-12735 – reset.php у DomainMOD 4.13.0 використовує недостатню ентропію для запитів на скидання пароля, що призводить до захоплення облікового запису.

Недостатня ентропія подвиги

  • Heartbleed: Критична уразливість в OpenSSL, широко використовуваної бібліотеки програмного забезпечення з відкритим вихідним кодом для шифрування SSL / TLS, яка дозволяла зловмисникам красти конфіденційну інформацію, таку як закриті ключі, паролі і файли cookie.

  • РОКУ: Уразливість в реалізації алгоритму генерації пари ключів RSA, використовуваного у криптографічного бібліотеці Infineon, яка дозволяла зловмисникам розкласти ключі RSA на множники і зламати шифрування, що використовується в різних додатках і сервісах.

  • CVE-2015-7547: Уразливість в бібліотеці glibc, яка використовується в більшості систем Linux, яка дозволяла зловмисникам виконувати довільний код або вивести систему з ладу, використовуючи вразливість переповнення буфера в коді дозволу DNS.

  • CVE-2018-4407: Уразливість в операційній системі Apple iOS, яка дозволяла зловмисникам виконувати довільний код або викликати відмову в обслуговуванні (DoS), використовуючи проблему пошкодження пам'яті при обробці IP-пакетів.

  • Уразливість в Apache Struts (CVE-2017-5638): Уразливість в платформі веб-додатків Apache Struts, яка дозволяла зловмисникам виконувати довільний код або виконувати DoS-атаки, використовуючи уразливість в синтаксичному аналізаторі Jakarta Multipart.

  • Уразливість OpenSSL FREAK (CVE-2015-0204): Уразливість в OpenSSL, яка дозволяла зловмисникам перехоплювати і розшифровувати з'єднання SSL / TLS, використовуючи слабкість в способі узгодження деяких шифрів.

  • Уразливість ідентифікатор сеансу PHP: Уразливості в PHP, яка дозволяла зловмисникам перехоплювати сеанси користувачів, пророкуючи або вгадуючи ідентифікатори сеансів, які були згенеровані з використанням недостатньою ентропії.

  • Уразливість XML-параметрів Ruby on Rails (CVE-2013-0156): Уразливість в середовищі веб-додатків Ruby on Rails, яка дозволяла зловмисникам виконувати довільний код або виконувати DoS-атаки, використовуючи уразливість в синтаксичному аналізі параметрів XML.

Практикуючись в тестуванні на Недостатня ентропія

Практика роботи з уразливими додатками:
Існує безліч навмисно вразливих додатків, які можна використовувати для практичного тестування на недостатню ентропію. Деякі приклади включають біса вразливе веб-додаток (DVWA), WebGoat і Mutillidae.

Беріть участь в змаганнях Capture The Flag (CTF):
Змагання CTF часто включають у себе завдання, пов'язані з криптографією і випадковістю. Участь в цих змаганнях може стати цікавим способом попрактикуватися у тестуванні на недостатню ентропію та інші уразливості в системі безпеки.

Використовуйте інструменти онлайн-тестування:
Існує безліч доступних онлайн-інструментів тестування, які можуть допомогти вам попрактикуватися у виявленні і використанні вразливостей з недостатньою ентропією. Наприклад, каталог вразливих веб-додатків OWASP включає в себе ряд веб-додатків, які можна використовувати для практичного виявлення та використання вразливостей з недостатньою ентропією.

Читання і аналіз CVE:
Читання та аналіз типових недоліків та ризиків (CVE), пов'язаних з недостатньою ентропією, можуть бути корисним способом дізнатися більше про реальних уразливість і про те, як вони використовуються.

Створіть своє власне вразливе додаток:
Нарешті, створення власного уразливого програми може стати відмінним способом попрактикуватися у тестуванні на недостатню ентропію. Навмисно включаючи уразливості в свій додаток, ви можете перевірити свою власну здатність виявляти і використовувати уразливості з недостатньою ентропією.

Для вивчення Недостатня ентропія

ОВАСП: Проект Open Web Application Security Project (OWASP) - це некомерційна організація, яка надає інформацію та ресурси для підвищення безпеки веб-додатків. Проект OWASP Top Ten включає в себе перелік найбільш критичних ризиків безпеки веб-додатків, включаючи недостатню ентропію.

Спеціальне видання NIST 800-90A: Ця публікація Національного інституту стандартів і технологій (NIST) містить рекомендації щодо генерації випадкових чисел. Він включає рекомендації по вибору та використанню генераторів випадкових чисел в криптографічних додатках.

CWE: Загальна перерахування слабких місць (CWE) - це розроблений співтовариством список слабких місць програмного забезпечення. CWE-338, CWE-330, CWE-332, CWE-329, CWE-331 і CWE-327 пов'язані з недостатньою ентропією.

CVE: База даних загальних загроз і вразливостей (CVE) являє собою список загальнодоступних вразливостей кібербезпеки. Пошук CVE, пов'язаних з недостатньою ентропією, може надати цінну інформацію про реальних вразливості.

Книги та статті: Існує безліч книг і статей, присвячених криптографії та випадковості. Деякі рекомендовані назви включають "Криптографічний інженерія" Нільса Фергюсона, Брюса Шнайера і Тадаєсі Коно і "Прикладна криптографія" Брюса Шнайера.

Онлайн-курси: Існують також доступні онлайн-курси, присвячені криптографії та випадковості. Деякі популярні варіанти включають курси криптографії I і II на Coursera і курс криптографії в Академії Хана.

Книги з оглядом Недостатня ентропія

"Криптографічний інженерія: принципи проектування та практичне застосування" Нільс Фергюсон, Брюс Шнайер і Тадаєсі Коно – У цій книзі представлений огляд принципів криптографії, включаючи генерацію випадкових чисел і ентропію.

"Прикладна криптографія: протоколи, алгоритми і вихідний код на мові Сі" Брюс Шнайер – Ця класична книга являє собою введення в принципи криптографії, включаючи генерацію випадкових чисел.

"Серйозна криптографія: практичне введення в сучасне шифрування" Жан-Філіп Омассон – У цій книзі представлений огляд сучасної криптографії, включаючи генерацію випадкових чисел і ентропію.

"Crypto 101: вступна книга в криптографію" автор: Лоренс Ван Хаутвен – Ця книга являє собою введення в криптографію, включаючи генерацію випадкових чисел і ентропію.

"Кодова книга: наука секретності від Стародавнього Єгипту до квантової криптографії" Саймон Сінгх – У цій книзі подано історичний огляд криптографії, включаючи роль випадковості і ентропії.

"Розуміння криптографії: навчальний посібник для студентів і практиків" Крістоф Паар і Ян Пельцль – Цей підручник являє собою введення в принципи криптографії, включаючи генерацію випадкових чисел і ентропію.

"Мережева безпека: приватне спілкування в загальнодоступному світі" автор: Чарлі Кауфман, Радіаційної Перлман і Майк Спекинер – У цій книзі представлений огляд мережевої безпеки, включаючи генерацію випадкових чисел і ентропію.

"Довідник з прикладної криптографії" Альфреда Дж. Менезеса, Статі К. ван Оршота і Скотта А. Ванстоуна – Ця книга являє собою всеосяжний довідник з прикладної криптографії, включаючи генерацію випадкових чисел і ентропію.

"Інженерія безпеки: керівництво по створенню надійних розподілених систем" Росс Андерсон – У цій книзі представлений огляд розробки систем безпеки, включаючи роль випадковості і ентропії.

"Введення в сучасну криптографію" Джонатан Кац і Ієгуда Линделл – Цей підручник являє собою введення в сучасну криптографію, включаючи роль випадковості і ентропії.

Список корисних навантажень Недостатня ентропія

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

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

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

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

  5. Передбачувані вектори ініціалізації (IVS): Вектор ініціалізації використовується при шифруванні, щоб гарантувати, що один і той же відкритий текст шифрується в один і той же зашифрований текст. Якщо IV генерується з недостатньою ентропією, зловмисник може бути в змозі передбачити майбутні IV і розшифрувати зашифрований текст.

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

Як захиститися від Недостатня ентропія

  1. Використовуйте надійні криптографічні алгоритми: Вибирайте добре відомі і стандартизовані криптографічні алгоритми, такі як AES або SHA-256, щоб гарантувати, що вони забезпечують високий рівень безпеки.

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

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

  4. Використовуйте надійні ключі і вектори ініціалізації: Використовуйте надійні ключі і вектори ініціалізації (IVS), щоб забезпечити надійне шифрування. Ключі повинні бути довгими і випадковими, в той час як IVS повинні бути унікальними для кожного зашифрованого повідомлення.

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

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

  7. Регулярно оновлюйте і виправляйте програмне забезпечення: Оновлюйте програмне забезпечення з допомогою останніх виправлень безпеки, щоб переконатися, що всі відомі уразливості з недостатньою ентропією виправлені.

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

  1. Використовуйте криптографічно захищені генератори випадкових чисел: Додатки повинні використовувати криптографічно захищені генератори випадкових чисел для генерації випадкових чисел. Ці генератори випадкових чисел призначені для отримання непередбачуваних і неповторюваних чисел.

  2. Використовуйте кілька джерел ентропії: Додатки повинні використовувати кілька джерел ентропії для генерації випадкових чисел. Це допомагає гарантувати, що випадкові числа не будуть легко передбачувані або упереджені.

  3. Використовуйте надійні криптографічні алгоритми: Додатки повинні використовувати надійні і стандартизовані криптографічні алгоритми, такі як AES або SHA-256, щоб гарантувати, що вони забезпечують високий рівень безпеки.

  4. Використовуйте правильно посіяний PRNG: Якщо необхідно використовувати PRNG, переконайтеся, що він правильно заповнений достатньої ентропією з різних джерел.

  5. Використовуйте випадкову крапельницю в режимі CBC: При використанні режиму CBC для шифрування використовуйте випадковий вектор ініціалізації (IV) для кожного повідомлення. Це допомагає гарантувати, що одне і те ж повідомлення відкритого тексту, зашифроване двічі, не призведе до отримання одного і того ж зашифрованого тексту.

  6. Використовуйте безпечні методи управління ключами: Ключі повинні зберігатися в надійному місці та бути захищені від несанкціонованого доступу. Їх також слід регулярно чергувати.

  7. Використовуйте сканер вразливостей: Регулярно скануйте свої програми та системи за допомогою сканера вразливостей для виявлення потенційних вразливостей, включаючи уразливості з недостатньою ентропією.

Висновок

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

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

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

Інші Послуги

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

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