Поліморфне шкідливе ПЗ — шкідливі програми, які постійно змінюють свій код або шифрування з кожною копією чи зараженням, тож усі зразки виглядають по-різному, а поведінка лишається тією самою.
Як працює поліморфне шкідливе ПЗ
Поліморфна програма зазвичай складається із зашифрованого шкідливого тіла й невеликого розшифрувальника. Під час кожного поширення мутаційний рушій заново шифрує тіло новим ключем і переписує розшифрувальник іншими інструкціями, регістрами та сміттєвим кодом. У результаті кожна копія має новий хеш і нову послідовність байтів. Споріднені підходи:
- Метаморфне шкідливе ПЗ — переписує весь свій код, а не лише розшифрувальник, тому сталого зашифрованого тіла в нього немає.
- Серверний поліморфізм — сервер поширення генерує щойно упакований файл для кожного завантаження, як у Storm Worm 2007 року та в багатьох сучасних кампаніях.
Поліморфізм — просунута форма обфускації. Ідея не нова: першим поліморфним вірусом вважають 1260 (1990), а Dark Avenger Mutation Engine початку 1990-х дав змогу іншим вірусописцям додавати поліморфізм до своїх творінь.
Чому поліморфне шкідливе ПЗ небезпечне
Класичний сигнатурний аналіз шукає відомі послідовності байтів або хеші файлів. Коли кожен зразок унікальний, сигнатура для одного файлу не спрацьовує на наступному, а блоклисти хешів стають майже марними. Сьогодні більшість масового шкідливого ПЗ — від завантажувачів у поштових розсилках до програм-вимагачів — використовує ту чи іншу форму поліморфізму або автоматичного перепакування.
Як виявити поліморфне шкідливе ПЗ
- Спиратися на поведінковий аналіз: дії шкідливої програми лишаються тими самими, навіть коли змінюється код.
- Використовувати емуляцію та евристичний аналіз, щоб дати розшифрувальнику відпрацювати й дослідити розпакований код у пам’яті.
- Писати YARA-правила для стабільних ознак розпакованого навантаження, а не зовнішнього файлу.
- Поєднувати телеметрію EDR із класифікаторами машинного навчання, натренованими на структурі файлів.