14 Лют, 2023

Десериализация ненадійних даних

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

Десериализация ненадійних даних (DUD) це вразливість, яка може виникнути в програмних системах, що використовують серіалізацію і десеріалізацію. Серіалізація - це процес перетворення стану об'єкта в потік байтів, в той час як десериализация - це процес відтворення об'єкта з потоку байтів.

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

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

C:

				
					#include <stdio.h>
#include <string.h>

void deserialize(char *data) {
  char buffer[100];
  strcpy(buffer, data);
  printf("Deserialized data: %s\n", buffer);
}

int main(int argc, char *argv[]) {
  if (argc < 2) {
    printf("Usage: %s <data>\n", argv[0]);
    return 1;
  }

  deserialize(argv[1]);
  return 0;
}
				
			

Цей код вразливий для атаки переповнення буфера, оскільки він використовує strcpy функція для копіювання даних з argv[1] до того buffer масив без перевірки розміру даних. Зловмисник може надати рядок довжиною більше 100 символів, яка замінить суміжну пам'ять і потенційно дозволить їм виконувати довільний код.

C++:

				
					#include <iostream>
#include <string>
#include <sstream>

class Person {
 public:
  Person(std::string name, int age) : name_(name), age_(age) {}

  void Print() {
    std::cout << "Name: " << name_ << ", Age: " << age_ << std::endl;
  }

 private:
  std::string name_;
  int age_;
};

void Deserialize(std::string data) {
  std::stringstream ss(data);
  std::string name;
  int age;
  ss >> name >> age;
  Person p(name, age);
  p.Print();
}

int main(int argc, char *argv[]) {
  if (argc < 2) {
    std::cout << "Usage: " << argv[0] << " <data>" << std::endl;
    return 1;
  }

  Deserialize(argv[1]);
  return 0;
}

				
			

Цей код вразливий для атаки плутанини типів, оскільки він використовує stringstream для аналізу даних з argv[1] і створити Person об'єкт. Зловмисник може надати рядок, яка не відповідає очікуваному формату, що може призвести до несподіваного поведінки і потенційно дозволити їм виконати довільний код.

Python:

				
					import pickle

def deserialize(data):
    obj = pickle.loads(data)
    print("Deserialized object:", obj)

data = input("Enter serialized data:")
deserialize(data)
				
			

Цей код вразливий для атаки pickle injection, оскільки він використовує pickle.loads функція для десеріалізації даних без перевірки їх вмісту. Зловмисник може надати зловмисно створену рядок pickle, що може призвести до виконання довільного коду.

Ruby:

				
					require 'psych'

def deserialize(data)
  obj = Psych.load(data)
  puts "Deserialized object: #{obj}"
end

data = gets
deserialize(data)
				
			

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

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

Приклади використання Десеріалізації вразливостей ненадійних даних

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

  1. Віддалене виконання коду: зловмисник може створити шкідливий сериализованный об'єкт, який при десеріалізації цільовим додатком буде виконувати довільний код у системі. Наприклад, зловмисник може створити сериализованный об'єкт у додатку .NET, який при десеріалізації завантажить і запустить шкідливий виконуваний файл.

  2. Ін'єкційні атаки: зловмисник може створити сериализованный об'єкт, який при десеріалізації буде впроваджувати код цільове додаток. Наприклад, зловмисник може створити сериализованный об'єкт у додатку Java, який при десеріалізації буде вводити SQL-запит, який може бути використаний для доступу до конфіденційних даних, що зберігаються в базі даних.

  3. Підробка даних: зловмисник може створити сериализованный об'єкт, який при десеріалізації буде змінювати або маніпулювати даними в цільовій програмі. Наприклад, зловмисник може створити сериализованный об'єкт у додатку Ruby on Rails, який при десеріалізації змінить стан об'єкта у додатку, що призведе до неправильних результатів або несподіваного поведінки.

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

Ці приклади ілюструють широкий спектр ризиків безпеки, пов'язаних з несправними уразливими.

Методи підвищення привілеїв Десериализация вразливостей ненадійних даних

Підвищення привілеїв - це метод, використовуваний для одержання більш високих рівнів доступу або привілеїв в системі, ніж ті, які були надані поточному користувачу. У контексті десеріалізації вразливостей ненадійних даних (DUD) зловмисник може використовувати методи підвищення привілеїв для отримання доступу до конфіденційних даних або для виконання довільного коду з більш високими привілеями.

Ось кілька прикладів методів підвищення привілеїв, які можуть бути використані в контексті несправних вразливостей:

  1. Непривилегированная десериализация: зловмисник може створити шкідливий сериализованный об'єкт, який при десеріалізації цільовим додатком буде виконувати код з правами користувача, запускає додаток. Наприклад, зловмисник може створити сериализованный об'єкт у додатку Java, який при десеріалізації буде запускати код з правами користувача, що запустив програму.

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

  3. Плутанина в типах: зловмисник може створити шкідливий сериализованный об'єкт, який при десеріалізації змусить цільове додаток обробляти об'єкт з низькими привілеями як об'єкт з високими привілеями. Наприклад, зловмисник може створити сериализованный об'єкт у додатку Ruby on Rails, який при десеріалізації змусить додаток обробляти об'єкт з низькими привілеями користувача з правами адміністратора, що дозволить зловмиснику отримати доступ до конфіденційних даних або виконати код з більш високими привілеями.

Загальна методологія та контрольний список для тестування десеріалізації вразливостей ненадійних даних

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

Ось докладний контрольний список для тестування несправних вразливостей:

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

  2. Визначення формату серіалізації: наступним кроком є визначення формату серіалізації, використовуваного цільовим додатком. Поширені формати включають формати JSON, XML і двійковій серіалізації, такі як серіалізація Java і серіалізація .NET.

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

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

  5. Аналіз результатів: Останнім кроком є аналіз результатів тестування, щоб визначити, чи несправна вразливість. Це може включати перегляд журналів додатків, пошук виключень або помилок і аналіз поведінки цільового додатка, щоб визначити, виконувався який-небудь шкідливий код або дані або з ними маніпулювали.

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

Набір інструментів для використання вразливостей десеріалізації ненадійних даних

Ось список популярних інструментів для використання вразливостей десеріалізації ненадійних даних (DUD):

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

  1. Burp Suite: Burp Suite - це популярний інструмент тестування безпеки веб-додатків, що включає функції для тестування вразливостей, пов'язаних з серіалізацією. Його можна використовувати для перевірки несправних вразливостей шляхом перехоплення і зміни мережевих запитів і відповідей. Він також може бути використаний для автоматизації окремих етапів процесу тестування за допомогою макросів або розширень.

  2. OWASP ZAP: OWASP ZAP (Zed Attack Proxy) - це сканер безпеки веб-додатків з відкритим вихідним кодом, що включає функції для тестування несправних вразливостей. Його можна використовувати для перевірки несправних вразливостей шляхом перехоплення і зміни мережевих запитів і відповідей. Він також містить плагіни для тестування певних типів несправних вразливостей.

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

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

  5. Postman: Postman - це популярний інструмент для розробки і тестування API, який можна використовувати для перевірки вразливостей в API. Його можна використовувати для побудови і відправлення запитів API, а також для аналізу відповідей. Він також включає функції для тестування безпеки API-інтерфейсів, такі як обмеження швидкості і тестування аутентифікації.

  6. SoapUI: SoapUI - це популярний інструмент тестування API, який можна використовувати для перевірки несправних уразливостей у веб-сервісах. Його можна використовувати для створення та надсилання запитів веб-служб, а також для аналізу відповідей. Він також включає функції для тестування безпеки веб-служб, такі як тестування на наявність вразливостей, пов'язаних з SOAP.

  7. JsonView: JsonView - це плагін для браузера для тестування несправних вразливостей в API-інтерфейси на основі JSON. Його можна використовувати для перегляду даних JSON в браузері і для перевірки на наявність несправних вразливостей шляхом створення і відправки шкідливих корисних навантажень.

  8. XML Developer Tools: Інструменти розробника XML - це плагін для браузера, призначений для тестування вразливостей в API на основі XML. Його можна використовувати для перегляду XML-даних в браузері і для перевірки на наявність несправних вразливостей шляхом створення і відправки шкідливих корисних навантажень.

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

  1. YSoSerial: YSoSerial - це інструмент для автоматичного створення шкідливих корисних навантажень для тестування несправних вразливостей в додатках .NET. Його можна використовувати для створення корисних навантажень, які можна використовувати для перевірки на наявність несправних вразливостей в додатках .NET.

  2. JRMPListener: JRMPListener - це інструмент для тестування несправних вразливостей в додатках Java. Його можна використовувати для прослуховування вхідних запитів RMI (Remote Method Invocation) та для перевірки на наявність несправних вразливостей шляхом відправки шкідливих корисних навантажень.

  3. SerialKiller: SerialKiller - це інструмент для тестування несправних вразливостей в додатках Java. Він може бути використаний для створення шкідливих корисних навантажень, які можуть бути використані для перевірки на наявність несправних вразливостей в додатках Java.

  4. SerializationDumper: SerializationDumper - це інструмент для тестування несправних вразливостей в додатках .NET. Його можна використовувати для створення корисних навантажень, які можна використовувати для перевірки на наявність несправних вразливостей в додатках .NET.

  5. Сканер десеріалізації Java: Java Deserialization Scanner - це інструмент для тестування несправних вразливостей в додатках Java. Його можна використовувати для сканування Java-додатків на наявність несправних вразливостей і для створення звітів з докладною інформацією про виявлені вразливості.

  1. ysoserial.net : ysoserial.net це інструмент для тестування несправних вразливостей в додатках .NET. Його можна використовувати для створення шкідливих корисних навантажень, які можна використовувати для перевірки на наявність несправних вразливостей в додатках .NET.

  2. SerializeToFile: SerializeToFile - це інструмент для тестування несправних вразливостей в додатках .NET. Його можна використовувати для створення шкідливих корисних навантажень, які можна використовувати для перевірки на наявність несправних вразливостей в додатках .NET.

  3. SerializationTester: SerializationTester - це інструмент для тестування несправних вразливостей в додатках .NET. Його можна використовувати для створення шкідливих корисних навантажень, які можна використовувати для перевірки на наявність несправних вразливостей в додатках .NET.

Тестові фреймворки:

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

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

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

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

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

Середній бал CVSS Десериализация вразливостей ненадійних даних

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

Середній бал CVSS для десеріалізації вразливостей ненадійних даних може сильно варіюватися в залежності від конкретної уразливості і її впливу. Однак уразливості десеріалізації часто вважаються серйозними і часто можуть отримувати оцінки CVSS від 7.0 або вище.

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

Загальна перерахування слабких місць (CWE) - це розроблений співтовариством список поширених слабких місць безпеки програмного забезпечення. CWE включає категорію для десеріалізації вразливостей ненадійних даних, і в топ-10 найбільш часто реєструються вразливостей при десеріалізації ненадійних даних в CWE входять:

CWE-502: Десериализация ненадійних даних
CWE-501: Порушення меж довіри з допомогою десеріалізації, що контролюється користувачем
CWE-506: Вбудований шкідливий код
CWE-512: Невідповідні процедури управління пам'яттю
CWE-513: Неконтрольоване розіменування вказівника
CWE-117: Неправильна нейтралізація вихідних даних для журналів
CWE-78: Неправильна нейтралізація спеціальних елементів, використовуваних в команді операційної системи
CWE-119: Неправильне обмеження операцій в межах буфера пам'яті
CWE-434: Необмежена завантаження файлу з небезпечним типом
CWE-190: Цілочисельне переповнення або обтікання

Десериализация ненадійних даних експлойтів

  1. Уразливості десеріалізації Java: ці уразливості виникають, коли ненадійні дані десериализуются в додатку Java, що може призвести до виконання шкідливого коду.

  2. Впровадження об'єкта PHP: ця вразливість виникає, коли ненадійні дані використовуються для створення об'єкта в додатку PHP, що може призвести до виконання довільного коду.

  3. Впровадження зовнішньої сутності XML (XXE): ця вразливість виникає при аналізі ненадійних XML-даних в додатку, що може призвести до розкриття конфіденційної інформації або виконання довільного коду.

  4. Десериализация Ruby on Rails YAML: ця вразливість виникає, коли ненадійні дані десериализуются в додатку Ruby on Rails з використанням YAML, що може призвести до виконання довільного коду.

  5. Десериализация Python Pickle: ця вразливість виникає, коли ненадійні дані десериализуются в додатку Python з використанням модуля pickle, що може призвести до виконання довільного коду.

  6. Десериализация .NET BinaryFormatter: ця вразливість виникає, коли ненадійні дані десериализуются в додатку .NET за допомогою BinaryFormatter, що може призвести до виконання довільного коду.

Практика в тестуванні на десеріалізацію вразливостей ненадійних даних

Практика в тестовій середовищі - відмінний спосіб дізнатися про десеріалізації вразливостей ненадійних даних і про те, як їх усунути. Ось кілька кроків, які ви можете зробити, щоб попрактикуватися в тестовій середовищі:

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

  2. Визначте уразливий код: перегляньте код програми, щоб виявити будь-які випадки десеріалізації ненадійних даних. Шукайте місця, де додаток використовує бібліотеки серіалізації або десеріалізації, такі як ObjectInputStream Java або BinaryFormatter .NET.

  3. Створення шкідливого введення: створення шкідливого введення, який може бути використаний для використання уразливості. Це може бути пов'язано із створенням шкідливого сериализованного об'єкта або XML-документа, що містить шкідливі дані.

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

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

Для вивчення Десеріалізації вразливостей ненадійних даних

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

  1. OWASP Deserialization Cheat Sheet: Це всеосяжне керівництво, яке охоплює все, від основ серіалізації та десеріалізації до докладної інформації про конкретних уразливість і способи їх запобігання. Він також включає в себе приклади коду і приклади експлойтів.

  2. Уразливості десеріалізації Java: Це стаття, написана групою дослідників в області безпеки, в якій докладно розглядаються уразливості десеріалізації Java, включаючи поширені шаблони атак і стратегії їх усунення.

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

  4. Введення в вразливості десеріалізації: Це серія відеороликів дослідника безпеки Джейсона Хаддикса, в яких дається огляд уязвімостей десеріалізації і способів їх використання. Серія включає приклади експлойтів і демонстрації того, як пом'якшити ці типи вразливостей.

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

Книги з оглядом Десериализация вразливостей ненадійних даних

  1. "Захист Java: перехід до бізнесу з допомогою мобільного коду, 2-е видання" Гері Макгроу: Ця книга охоплює широкий спектр тем безпеки Java, включаючи уразливості десеріалізації. У ньому міститься докладна інформація про те, як працюють уразливості десеріалізації і як їх можна використовувати, а також рекомендації щодо запобігання цих типів вразливостей.

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

  3. "Безпека веб-додатків, керівництво для початківців" Брайана Саллівана і Вінсента Ллю: Ця книга являє собою введення в безпеку веб-додатків, включаючи поширені уразливості, такі як уразливості десеріалізації. Він містить практичні рекомендації по усуненню цих уязвимостей і забезпечення безпеки веб-додатків.

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

  5. "Безпека веб-додатків: всеосяжне керівництво по забезпеченню безпеки вашого додатка" Ендрю Хоффмана і Тао Вана: Ця книга являє собою практичне керівництво з безпеки веб-додатків, в тому числі щодо виявлення та усунення вразливостей десеріалізації. Він включає в себе реальні приклади вразливостей десеріалізації та практичні поради щодо забезпечення безпеки веб-додатків.

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

Ось кілька прикладів корисних навантажень, які можуть викликати десеріалізацію вразливостей ненадійних даних:

  1. Java: rO0ABQXr...

  2. PHP: O:+5:"Користувач":25:{...}

  3. Python: cos \nsystem \n(Дуже вразливий \ntR.

  4. Ruby: --- !ruby/об'єкт:OpenStruct\n ...

  5. JSON: {"ім'я": "користувач", "дані": {...}}

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

Як захиститися від Десериализация вразливостей ненадійних даних

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

  1. Правило брандмауера: блокуйте весь трафік з ненадійних джерел або IP-адрес.

  2. Правило сігми: заголовок: Виявлення ненадійною десеріалізації даних в Java \n \nlogsource:\n категорія: брандмауер \n \ ndetection:\n вибір: \n - "повідомлення": "* java.lang.ClassNotFoundException *"\ n "повідомлення": "* java.io.InvalidClassException *"\n\nfalsepositives: \ n - Можливі помилкові спрацьовування, перевірте, перевіривши код.\n \ nlуровень: високий \n \ n рекомендація:\n - Дослідіть джерело трафіку і переконайтеся, що трафік є законним.\ n - Перевірте наявність оновлень і виправлень для постраждалих бібліотеки.\n\n

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

  4. Правило сігми: заголовок: Виявлення ненадійною десеріалізації даних в PHP \n \nlogsource:\n категорія: веб-сервер \n \ виявлення: \n вибір: \n - "повідомлення": "* unserialize()*"\ n "повідомлення": "* __wakeup()*"\n \nfalsepositives:\n - Можливі помилкові спрацьовування, перевірте, перевіривши код.\n\ nlуровень: високий \n\ прекомендации:\n - Перевірте наявність оновлень і виправлень для постраждалих бібліотеки.\n - Реалізуйте перевірку й фільтрацію вхідних даних, щоб запобігти десеріалізацію ненадійних даних.\n \ n

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

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

  1. Уникайте або зведіть до мінімуму використання десеріалізації, коли це можливо.

  2. Десериализуйте дані лише з надійних джерел.

  3. Використовувати захищений протокол серіалізації, такий як буфери протоколу JSON або Google, який менше піддається атакам.

  4. Вбудуйте перевірку вхідних даних для запобігання шкідливого введення, наприклад перевірку типів даних, довжини і формату.

  5. Використовуйте білий список, щоб обмежити класи, які можуть бути десериализованы.

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

  7. Використовуйте ізольоване середовище або віртуалізацію, щоб ізолювати процес десеріалізації.

  8. Відстежуйте і реєструйте дії по десеріалізації для виявлення атак і реагування на них.

Висновок

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

Інші Послуги

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

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