Могут ли двоичные файлы вредоносных программ быть в упакованном виде? - PullRequest
0 голосов
/ 19 мая 2019

Недавно я читаю анализ вредоносных программ.Я просматриваю этот репозиторий вредоносных программ (https://github.com/ytisf/theZoo). Здесь мы можем найти двоичные файлы вредоносных программ. Могут ли двоичные файлы быть упакованы? Если да, то как мы можем сказать, что эти двоичные файлы упакованы или нет?

PS : Упаковщики сжимают программу и будут пытаться скрыть от нас внутренние данные (своего рода сжатие или шифрование). У меня возникли сомнения относительно этого. Могут ли двоичные файлы быть в упакованном виде или нет?

Edit2 : В этом репозитории они просто заархивировали его, чтобы быть безопасным, что не является настоящей упаковкой, о которой я говорю. После разархивирования мы получим двоичный файл. Может ли это быть в упакованном виде или нет?

1 Ответ

0 голосов
/ 20 мая 2019

Прежде всего, различие, которое вы проводите между «упаковщиками» и программами архивирования (ZIP и т. Д.) Или программами сжатия, похоже, не имеет под собой никаких оснований.

«Упакованный» исполняемый файл не может быть выполнен напрямую. Это должно быть сначала распаковано. Это точно так же, как (скажем) ZIP-файл, содержащий вредоносное ПО, или файл вредоносного ПО, сжатый стандартной программой сжатия.

А как насчет "упакованного" исполняемого файла, созданного программой, которая "упаковывает" секретным способом ... чтобы избежать обнаружения? Ну, это не сработает. Вредоносная программа все еще должна быть распакована, прежде чем ее можно будет запустить. Это означает, что у плохой кишки появилась вторая проблема: доставить распаковщик на машину жертвы. И как только кто-то (анти-хакер) овладевает сверхсекретным распаковщиком, это уже не секрет. Он может быть переработан ... или просто использован как есть AV-продуктом на подозрительных двоичных файлах.

Единственное практическое использование «упаковки», о которой я могу подумать, - это добавить функцию самораспаковывания в вредоносную программу. Вредоносная программа (как распределенная) будет состоять из исполняемого файла с небольшим количеством кода, который реализует распаковщик. Остальная часть исполняемого файла будет упакованным кодом, который реализует неприятные вещи. Когда пользователь запускает вредоносное ПО, он распаковывает упакованный код, загружает его в память и начинает выполнение.

Однако существуют потенциальные способы обнаружения или предотвращения такого рода вещей.

  • Если распаковщик записывает исполняемый код в файл до его загрузки, AV-продукт может обнаружить это.
  • Если упаковщик пытается загрузить код в себя, существуют способы, которые могут быть заблокированы; например использование аппаратных средств защиты памяти + ОС и т. д. для предотвращения распаковщика создавать сегменты памяти, содержащие исполняемый код; см https://en.wikipedia.org/wiki/Executable_space_protection.
  • AV может искать сигнатуру в упакованном коде или может искать сигнатуру в коде распаковщика.

Короче говоря, вредоносное ПО может использовать какую-то "упаковку", чтобы скрыть себя, но где-то должен быть исполняемый компонент, чтобы распаковать его.


Если так, как мы можем сказать, что эти двоичные файлы упакованы или нет?

  • Если вредоносная программа распространяется как неисполняемая, вы выясняете, что ее распакует, а затем посмотрите, даст ли этот процесс исполняемый файл.

  • Если вредоносная программа представляет собой самораспаковывающийся исполняемый файл, вы перепроектируете распаковывающий компонент, чтобы выяснить, как он работает.

...