Як зловити вірус у запароленому архіві, SavePearlHarbor

Ще одна копія хабора

Головне меню

Навігація за записами

Як зловити вірус у запароленому архіві

Прочитавши статтю rattlersnake А твій антивірус ловить запаролені архіви? я пройшов стадії від зневіри через сумнів до розчарування і назад до розуміння.

savepearlharbor

Перевірений файл info.exe був знайдений за хешем з VirusTotal і запакований архіватором WinRar у три архіви: zip, rar та rar версії 5.

На всі архіви було встановлено складний пароль для виключення його вибору антивірусом або використання стандартних паролів. На мій подив, антивірус Fortinet спрацював на архівах zip та rar, але не спрацював на rar5!

запароленому

Намагаючись зрозуміти, що впливає на спрацювання антивірусу, я змінив один байт у файлі і знову запакував його в архіви з паролем. Після перевірки на мене чекав інший сюрприз - хоча детект вірусу в архіві зник (0/53), зник детект цим антивірусом і невпакованого файлу, хоча більшість інших антивірусів продовжували його бачити (35/52)!

І тут мені на думку прийшла чудова ідея:

    Дивимося, які властивості файлу доступні в архіві – і бачимо контрольну суму CRC32:

  • Створюємо порожній файл такого ж розміру, наприклад, командою fsutil file createnew info.exe 450362
  • Підганяємо його CRC32 під значення у оригінального файлу (наприклад, так: py.exe forcecrc32.py info.exe 0 76718968) або просто встановлюючи значення перших чотирьох байт у 67 EE C6 57:
  • savepearlharbor

  • Запаковуємо його в архів з паролем і перевіряємо CRC32 - збігається
  • Перевіряємо отриманий архів на VirusTotal
  • Бінґо! Fortinet тепер вважає, що в архіві міститься вірус (1/52).

    savepearlharbor

    Перевіряємо про всяк випадок і exe файл, що вийшов - і бачимодивний результат – Fortinet продовжує знаходити у файлі вірус. Схоже, він детектує його виключно за CRC32!

    запароленому

    Так, схоже, чудес не буває, і справжній детект вірусу в запароленому архіві неможливий.

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

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