Що таке зловмисне програмне забезпечення з підписом коду та як його уникнути?

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

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

Що таке зловмисне програмне забезпечення з підписом коду?

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

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

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

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

Хакери викрадають сертифікати з центру сертифікації

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

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

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

Що таке зловмисне програмне забезпечення з підписом коду та як його уникнути?

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

Звідки походить цифровий сертифікат підпису коду?

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

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

Група дослідників безпеки з Університету Масарика в Чеській Республіці та Мерілендського центру кібербезпеки виявили чотири організації, які продають сертифікати Microsoft Authenticode анонімним покупцям. Коли розробник зловмисного програмного забезпечення має сертифікат Microsoft Authenticode, він може підписати будь-яке можливе зловмисне програмне забезпечення за допомогою підпису коду та захисту на основі сертифіката.

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

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

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

  • Зловмисне програмне забезпечення Stuxnet : це зловмисне програмне забезпечення знищило ядерну програму Ірану за допомогою двох викрадених сертифікатів і чотирьох уразливостей нульового дня. Ці сертифікати були вкрадені у двох компаній JMicron і Realtek. Stuxnet використовував викрадені сертифікати, щоб уникнути нової вимоги Windows щодо необхідності перевірки всіх драйверів.
  • Злом сервера Asus: у період з червня по листопад 2018 року хакери проникли на сервер Asus, який компанії використовують для надсилання оновлень програмного забезпечення користувачам. Дослідження «Лабораторії Касперського» показують, що близько 500 тисяч пристроїв Windows отримали це шкідливе оновлення, перш ніж його виявили. Не викрадаючи сертифікатів, ці хакери підписують законні цифрові сертифікати Asus для свого зловмисного програмного забезпечення до того, як сервер програмного забезпечення поширить оновлення системи.
  • Зловмисне програмне забезпечення Flame: варіант зловмисного програмного забезпечення модуля Flame, націленого на країни Близького Сходу, яке використовує шахрайські підписані сертифікати, щоб уникнути виявлення. Розробники Flame використовували слабкий алгоритм шифрування, щоб підробити цифрові сертифікати підпису коду, створюючи враження, ніби їх підписала Microsoft. На відміну від Stuxnet, який мав бути деструктивним, Flame є шпигунським інструментом, який шукає файли PDF, файли AutoCAD, текстові файли та інші типи важливих промислових документів.

Як уникнути шкідливих програм із підписом коду?

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

Залишити коментар

Як виправити помилку “Prisma Client Has Not Been Generated Yet”

Як виправити помилку “Prisma Client Has Not Been Generated Yet”

Виправте помилку незгенерованого Prisma Client, перевіривши генератор, схему, шлях виводу, імпорти, версії, налаштування монорепозиторію та кроки збірки під час розгортання.

Як виправити помилку SSL-сертифіката: не вдалося отримати локальний сертифікат емітента в Git

Як виправити помилку SSL-сертифіката: не вдалося отримати локальний сертифікат емітента в Git

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

Як виправити помилку таймауту мережі MongoDB у з'єднанні Mongoose

Як виправити помилку таймауту мережі MongoDB у з'єднанні Mongoose

Виправте помилки таймауту мережі MongoDB у Mongoose, визначивши тип таймауту, перевіривши доступність Atlas або TCP, виправивши URI та налаштувавши таймаути лише за необхідності.

Як виправити помилку «Execution Policy Restricted» у Windows PowerShell

Як виправити помилку «Execution Policy Restricted» у Windows PowerShell

Виправте помилку обмеженої політики виконання PowerShell, перевіривши область дії та групову політику, а потім обравши RemoteSigned, Unblock-File або тимчасовий параметр сесії.

Як виправити помилку npm ERR! code ERESOLVE: конфлікт залежностей-партнерів

Як виправити помилку npm ERR! code ERESOLVE: конфлікт залежностей-партнерів

Виправте конфлікти залежностей-партнерів npm ERESOLVE, визначивши несумісний діапазон пакетів, узгодивши версії, використовуючи npm explain та npm ls, а також розглядаючи legacy-peer-deps або force лише як контрольовані резервні варіанти.

Як виправити помилку підключення Redis до 127.0.0.1:6379

Як виправити помилку підключення Redis до 127.0.0.1:6379

Виправте помилки відмови у підключенні Redis на 127.0.0.1:6379, перевіривши сервер, порт, мережу Docker, redis.conf, автентифікацію та TLS.

Як виправити внутрішню помилку 500 у серверних компонентах Next.js

Як виправити внутрішню помилку 500 у серверних компонентах Next.js

Виправте помилки 500 у серверних компонентах Next.js, аналізуючи логи сервера, перевіряючи запити даних та змінні середовища, обробляючи помилки та перевіряючи збірку для продакшену.

Як виправити помилку CrashLoopBackOff у Kubernetes у локальному Minikube

Як виправити помилку CrashLoopBackOff у Kubernetes у локальному Minikube

Діагностуйте та виправляйте помилку CrashLoopBackOff у Kubernetes у локальному Minikube, перевіряючи стан пода, попередні логи, причини завершення роботи, проби, конфігурацію, ліміти пам’яті та стан кластера.

Як виправити помилку «Docker Desktop Engine Stopped» у Windows 11

Як виправити помилку «Docker Desktop Engine Stopped» у Windows 11

Виправте помилку «Docker Desktop Engine Stopped» у Windows 11, перевіривши статус Docker, оновивши та перезавантаживши WSL 2, підтвердивши віртуалізацію та використавши діагностику перед скиданням налаштувань.

Як виправити помилку Uncaught ReferenceError: process is not defined у Vite

Як виправити помилку Uncaught ReferenceError: process is not defined у Vite

Виправте помилку 'process is not defined' у Vite, замінивши використання process.env у стилі Node.js, правильно налаштувавши змінні VITE_ та перевіривши залежності.