Как посмотреть тело вируса

Обновлено: 05.05.2024

Как узнать о заражении?

Хакеры, которые разрабатывают вредоносные скрипты, довольно хитрые особи, которые умело маскируют угрозу под безопасную программу. В любом случае, не нужно паниковать и видеть во всем опасность. Необходимо внимательно проанализировать ситуацию.

Начинать волноваться можно, когда:

Если имеют место быть какие-либо из перечисленных признаков, есть вероятность заражения. Но не стоит паниковать, ведь я всегда готов подсказать, как удалить вирусы.

Способы обнаружения

Я не буду рассказывать, как выявить вредоносный код (файл) с помощью антивирусного софта. Уверен, с этим справится каждый. Достаточно запустить полную проверку с помощью встроенного / стороннего ПО (Kaspersky, Dr.Web Cure It!).

Хочу подробнее рассказать о случае, когда система работает без антивируса (или от последнего нет никакой пользы).

Проверяем диспетчер процессов

Это первое, что приходит мне в голову, когда возникают подозрения. Зачастую, троян маскируется под безопасный процесс и делает свое темное дело. Как обнаружить?

  1. Csrss
  2. Lsass
  3. Explorer
  4. Svchost
  5. Wininit
  6. System
  7. Winlogon

Окно диспетчера задач с вирусными процессами

  • Если список содержит названия, состоящие из бессмысленного набора букв и цифр, стоит задуматься:

Окно диспетчера задач с очень подозрительными именами процессов

Одним из таких является вирус Recycler я рассказывал о как можно от него избавиться.

Анализируем автозагрузку

Окно консоли Выполнить с командой msconfig

Окно конфигурирования системы

  • Опять же, смотрите на названия, проверяйте их через Google / Яндекс. Если уверены, что самостоятельно не добавляли элемент в автозапуск, и он не связан с установленным приложением, то смело удаляйте его.
  • Перезапустите ПК и повторите предыдущие шаги. Если удаленный пункт снова активен, значит это однозначно вирус. Потребуется более доскональное сканирования и лечение.

Если статья оказалась полезной, почему бы не поблагодарить автора (это я о себе) репостами в социальных сетях. Буду очень признателен. И не забывайте, что при любой ситуации можете обращаться ко мне через форму комментирования.

Относящийся к данному классу атомно-силовой микроскоп оказался инструментом, подходящим для исследования биологических объектов и позволил не только визуализировать наноразмерные структуры, но и манипулировать ими. В частности, принципиально возможной оказалась манипуляция одиночными вирионами и прямое измерение сил, возникающих при их контакте с поверхностью клетки. Такие эксперименты позволяют получать подробные данные о самом первом и во многих случаях еще недостаточно исследованном этапе заражения клетки — адгезии вируса к ее поверхности. Данные исследования представляют и значительный практический интерес, т.к. могут дать ключ к созданию эффективных противовирусных препаратов, защищающих клетки от проникновения вирусов.

Об авторе

Вирусы являются чрезвычайно малыми объектами — их размеры лежат в диапазоне от нескольких десятков до нескольких сотен нанометров. Первым и на долгое время единственным методом прямой визуализации наноразмерных частиц стала электронная микроскопия (ЭМ), которая начала развиваться в 1930-е гг. Метод, оказавшийся очень информативным, позволил не только детально охарактеризовать структуру различных вирусов, но и исследовать процессы, происходящие в зараженной клетке.

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

Вне клетки любой вирус является всего лишь молекулярным контейнером с генетическим материалом (ДНК или РНК) и вряд ли может считаться полноценным живым организмом, хотя по этому вопросу в научной среде до сих пор нет окончательной терминологической определенности.

Так, исследование репликации вируса методом просвечивающей электронной микроскопии на ультратонких срезах выглядит следующим образом: зараженные клетки обрабатывают фиксирующим раствором, обезвоживают спиртом и заливают специальной смолой. После отвердевания смолы с помощью специального прибора — ультратома — делают ультратонкие (≈ 50 нм) срезы, которые затем наносят на специальную сетку и обрабатывают растворами солей тяжелых металлов. Во время самого микроскопического исследования образец находится в вакуумной камере и подвергается действию пучка электронов с энергией в несколько десятков кэВ. Очевидно, что прижизненная визуализация в данном случае принципиально невозможна.

В течение почти полувека электронная микроскопия оставалась единственным методом визуализации наноразмерных объектов. Однако в начале 1980-х гг. эта монополия была нарушена появлением сканирующей зондовой микроскопии (СЗМ). Основным принципом СЗМ является сканирование — прецизионное (с высокой точностью) перемещение зонда вблизи исследуемой поверхности, сопряженное с отслеживанием определенного параметра, характеризующего взаимодействие между зондом и образцом. Результатом такого сканирования является топографическая карта рельефа поверхности образца.

Первым прибором СЗМ стал сканирующий туннельный микроскоп (СТМ), который мог лишь весьма ограниченно использоваться для визуализации биологических объектов, так как для его работы требовалась высокая электрическая проводимость исследуемой поверхности.

В 1986 г. швейцарский физик Г. Бинниг и его коллеги создали новый прибор семейства СЗМ — атомно-силовой микроскоп (АСМ). В основе его работы лежит силовое (Ван-дер-Ваальсово) взаимодействие атомов зонда и поверхности. АСМ не требуется электрическая проводимость поверхности образца, и он может осуществлять съемку в жидкой среде. Поэтому этот прибор оказался удобным инструментом для исследования биологических объектов.

Принципиальная схема работы атомно-силового микроскопа (АСМ). Чувствительным элементом АСМ является упругая консоль (кантилевер), на конце которой закреплен острый зонд. Силы, возникающие между атомами острия зонда и исследуемой поверхностью приводят к деформации кантилевера, которая в свою очередь фиксируется при помощи оптической системы, реализованной в большинстве современных АСМ на основе полупроводникового лазера и четырехсекционного фотоприемника. Размер кантилевера — 100÷300 × 20÷40 мкм при толщине около 2 мкм. Высота зонда — около 10 мкм

С момента появления атомно-силового микроскопа было опубликовано огромное число работ, посвященных АСМ-визуализации самых разнообразных биологических образцов. Следует все же признать, что в большинстве случаев в плане визуализации АСМ не дает ничего принципиально нового в сравнении с обычной электронной микроскопией, поэтому зачастую данный метод воспринимается биологами как техническая экзотика, а не как полноценный исследовательский инструмент.

Однако важнейшим, пусть и почти единственным преимуществом визуализации биологических объектов при помощи АСМ по сравнению с электронной микроскопией является возможность выполнения исследований нативных, природных образцов без какой-либо фиксации и специальной пробоподготовки, при физиологических параметрах среды.

Помимо визуализации рельефа поверхности с субнанометровым разрешением АСМ позволяет осуществлять прямое измерение сил, возникающих при взаимодействии одиночных наноразмерных объектов.

Проводятся такие измерения следующим образом: один объект закрепляется на острие зонда АСМ, а второй фиксируется на подложке, после чего зонд подводится к поверхности подложки до достижения механического контакта, а затем возвращается обратно. В ходе этого перемещения отслеживается деформация упругой консоли (кантилевера). Зависимость этого параметра от расстояния между зондом и подложкой называется силовой кривой. С ее помощью можно определить величину силы, действующей между исследуемыми объектами. Этот метод, названный атомно-силовой спектроскопией (АСС), может использоваться для исследования силовых характеристик взаимодействия самых разнообразных малых объектов: от неорганических наночастиц до вирусов и живых клеток.

Метод атомно-силовой спектроскопии позволяет определить величину силы, действующей между исследуемыми объектами. Для этого один объект закрепляется на острие зонда АСМ, а второй фиксируется на подложке. Зонд подводится к поверхности подложки и затем поднимается обратно. Зависимость деформации кантилевера от расстояния между зондом и подложкой называется силовой кривой

Начальным этапом заражения клетки вирусом является адгезия (прилипание) вирусной частицы (вириона) к клеточной поверхности с последующим проникновением генетического материала вируса внутрь клетки. Этот процесс, определяемый взаимодействием белковых рецепторов, расположенных на поверхности клетки, с поверхностными белками вириона, является критически важным для размножения вируса. И, надо отметить, в большинстве случаев изучен недостаточно.

Однако фиксация одиночной вирусной частицы на острие зонда атомно-силового микроскопа является весьма непростой задачей. Для успешного проведения эксперимента требуется большая подготовительная работа:

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

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

Адекватным методом контроля геометрических параметров зонда атомно-силового микроскопа (а) при создании площадки для посадки вириона, является электронная микроскопия, как сканирующая, так и просвечивающая: б — площадка на острие зонда для посадки крупной вирусной частицы; в — вирусоподобная частица, закрепленная на острие зонда. Просвечивающая электронная микроскопия (JEM 1400, Jeol, Япония)

По меркам микроскопии, клетка высших организмов является относительно крупным (≈ 10 мкм) объектом, поэтому хорошо видна в световом микроскопе, при помощи которого на нее наводится кантилевер атомно-силового микроскопа. Но как быть с самим зондом, на острие которого предполагается наличие вириона? Строго говоря, вместо вириона там может оказаться все, что угодно: монослой белковых молекул, фрагмент клетки или вириона, агрегат из нескольких вирионов, случайное загрязнение и т. д. Кроме того, в процессе измерения вирион может разрушиться или оторваться от зонда. Визуализация же зонда с вирусной частицей методом электронной микроскопии до силовых измерений недопустима, так как под воздействием высушивания, вакуума и пучка электронов вирион приобретет необратимые изменения.

Наиболее эффективным методом решения данной проблемы оказалась визуализация острия зонда АСМ с помощью электронной микроскопии, осуществляемая непосредственно после силовых измерений. Если на острие будет обнаружена вирусная частица, уцелевшая в ходе эксперимента, то все сомнения развеются.

В течение последних пятидесяти лет в результате поистине титанической работы, проделанной электронными микроскопистами всего мира, накоплен огромный багаж знаний в области ультраструктурных аспектов репликации различных вирусов. Создание атомно-силового микроскопа и техники силовой спектроскопии позволило вплотную приблизиться к произвольной механической манипуляции одиночными вирусными частицами. Это выводит изучение взаимодействия вируса с клеткой на принципиально другой уровень — от структурных исследований к функциональным.

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

Изучение механизмов связывания вирусных частиц с поверхностью клетки вызывает значительный интерес не только с позиции фундаментальной науки, но и в контексте практических приложений. Более детальное понимание этих механизмов на молекулярном уровне может дать человечеству ключ к созданию эффективных противовирусных препаратов, защищающих клетки от проникновения вирусов.

В публикации использованы фото автора

* Просвечивающая электронная микроскопия с использованием специальной жидкостной ячейки и сканирующая электронная микроскопия при атмосферном давлении позволяют исследовать биологические объекты без фиксации, но из-за ряда технических трудностей и относительно низкого пространственного разрешения эти методы не получили широкого распространения.


Поговорим о компьютерных вирусах? Нет, не о том, что вчера поймал ваш антивирус. Не о том, что вы скачали под видом инсталлятора очередного Photoshop. Не о rootkit-e, который стоит на вашем сервере, маскируясь под системный процесс. Не о поисковых барах, downloader-ах и другой малвари. Не о коде, который делает плохие вещи от вашего имени и хочет ваши деньги. Нет, всё это коммерция, никакой романтики…

В общем, для статьи вполне достаточно лирики, перейдем к делу. Я хочу рассказать о классическом вирусе, его структуре, основных понятиях, методах детектирования и алгоритмах, которые используются обеими сторонами для победы.

Мы будем говорить о вирусах, живущих в исполняемых файлах форматов PE и ELF, то есть о вирусах, тело которых представляет собой исполняемый код для платформы x86. Кроме того, пусть наш вирус не будет уничтожать исходный файл, полностью сохраняя его работоспособность и корректно инфицируя любой подходящий исполняемый файл. Да, ломать гораздо проще, но мы же договорились говорить о правильных вирусах, да? Чтобы материал был актуальным, я не буду тратить время на рассмотрение инфекторов старого формата COM, хотя именно на нем были обкатаны первые продвинутые техники работы с исполняемым кодом.

Начнём со свойств кода вируса. Чтобы код удобней было внедрять, разделять код и данные не хочется, поэтому обычно используется интеграция данных прямо в исполняемый код. Ну, например, так:


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

  • Куда положить вирус? Необходимо найти достаточно места, чтобы вирус туда поместился, записать его туда, по возможности не разломав файл и так, чтобы в области, в которой вирус окажется, было разрешено исполнение кода.
  • Как передать управление на вирус? Просто положить вирус в файл недостаточно, надо еще совершить переход на его тело, а после завершения его работы вернуть управление программе-жертве. Или в другом порядке, но, в любом случае, мы же договорились не ломать ничего, да?

Исполняемый файл (PE или ELF) состоит из заголовка и набора секций. Секции – это выровненные (см. ниже) буферы с кодом или данными. При запуске файла секции копируются в память и под них выделяется память, причем совсем необязательно того объёма, который они занимали на диске. Заголовок содержит разметку секций, и сообщает загрузчику, как расположены секции в файле, когда он лежит на диске, и каким образом необходимо расположить их в памяти перед тем, как передать управление коду внутри файла. Для нас интересны три ключевых параметра для каждой секции, это psize, vsize, и flags. Psize (physical size) представляет собой размер секции на диске. Vsize (virtual size) – размер секции в памяти после загрузки файла. Flags – атрибуты секции (rwx). Psize и Vsize могут существенно различаться, например, если программист объявил в программе массив в миллион элементов, но собирается заполнять его в процессе исполнения, компилятор не увеличит psize (на диске содержимое массива хранить до запуска не нужно), а вот vsize увеличит на миллион чего-то там (в runtime для массива должно быть выделено достаточно памяти).

Флаги (атрибуты доступа) будут присвоены страницам памяти, в которые секция будет отображена. Например, секция с исполняемым кодом будет иметь атрибуты r_x (read, execute), а секция данных атрибуты rw_ (read,write). Процессор, попытавшись исполнить код на странице без флага исполнения, сгенерирует исключение, то же касается попытки записи на страницу без атрибута w, поэтому, размещая код вируса, вирмейкер должен учитывать атрибуты страниц памяти, в которых будет располагаться код вируса. Стандартные секции неинициализированных данных (например, область стека программы) до недавнего времени имели атрибуты rwx (read, write, execute), что позволяло копировать код прямо в стек и исполнять его там. Сейчас это считается немодным и небезопасным, и в последних операционных системах область стека предназначена только для данных. Разумеется, программа может и сама изменить атрибуты страницы памяти в runtime, но это усложняет реализацию.

Также, в заголовке лежит Entry Point — адрес первой инструкции, с которой начинается исполнение файла.

Необходимо упомянуть и о таком важном для вирмейкеров свойстве исполняемых файлов, как выравнивание. Для того чтобы файл оптимально читался с диска и отображался в память, секции в исполняемых файлах выровнены по границам, кратным степеням двойки, а свободное место, оставшееся от выравнивания (padding) заполнено чем-нибудь на усмотрение компилятора. Например, логично выравнивать секции по размеру страницы памяти – тогда ее удобно целиком копировать в память и назначать атрибуты. Даже вспоминать не буду про все эти выравнивания, везде, где лежит мало-мальски стандартный кусок данных или кода, его выравнивают (любой программист знает, что в километре ровно 1024 метра). Ну а описание стандартов Portable Executable (PE) и Executable Linux Format (ELF) для работающего с методами защиты исполняемого кода – это настольные книжки.

  • поставить указатель точно на начало какой-нибудь инструкции (просто так взять рандомное место в исполняемой секции и начать дизассемблирование с него нельзя, один и тот же байт может быть и опкодом инструкции, и данными)
  • определить длину инструкции (для архитектуры x86 инструкции имеют разные длины)
  • переместить указатель вперед на эту длину. Мы окажемся на начале следующей инструкции.
  • повторять, пока не решим остановиться
  1. Выбираем вкусный исполняемый файл (достаточно толстый, чтобы в него поместилось тело вируса, с нужным распределением секций и т.п.).
  2. Читаем свой код (код тела вируса).
  3. Берем несколько первых инструкций из файла-жертвы.
  4. Дописываем их к коду вируса (сохраняем информацию, необходимую для восстановления работоспособности).
  5. Дописываем к коду вируса переход на инструкцию, продолжающую исполнение кода-жертвы. Таким образом, после исполнения собственного кода вирус корректно исполнит пролог кода-жертвы.
  6. Создаем новую секцию, записываем туда код вируса и правим заголовок.
  7. На место этих первых инструкций кладем переход на код вируса.

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

Итак (рассматриваем классические вирусы), на входе имеем исполняемый файл и один из сотни тысяч потенциальных вирусов в нем. Давайте детектировать. Пусть это кусок исполняемого кода вируса:

  • сокрытие кода самого вируса;
  • сокрытие его точки входа.

Сокрытие точки входа (Entry Point Obscuring) в результате послужило толчком для появления в вирусных движках автоматических дизассемблеров для определения, как минимум, инструкций перехода. Вирус старается скрыть место, с которого происходит переход на его код, используя из файла то, что в итоге приводит к переходу: JMP, CALL, RET всякие, таблицы адресов и т.п. Таким образом, вирус затрудняет указание смещения сигнатуры.

Гораздо более подробно некоторые алгоритмы таких движков и детектора мы посмотрим во второй статье, которую я планирую написать в ближайшее время.

Рассмотренный в статье детектор легко детектирует неполиморфные (мономорфными их назвать, что ли) вирусы. Ну а переход к полиморфным вирусам является отличным поводом, наконец, завершить эту статью, пообещав вернуться к более интересным методам сокрытия исполняемого кода во второй части.

Рис.1. Мумия Рамзеса V

Но и Дженнер не имел представления о том, что является причиной заболевания оспой. В XIX веке все болезнетворные организмы и вещества без разбора называли вирусами. Лишь благодаря опытам отечественного биолога Дмитрия Иосифовича Ивановского прекратилась эта путаница! Он пропускал экстракт заражённых табачной мозаикой 1 растений через бактериальные фильтры, сквозь которые не проходят даже самые мелкие бактерии. Выяснилось, что экстракт оставался по-прежнему заразным для других растений. Значит, возбудителями табачной мозаики были организмы, меньшие по размеру, чем бактерии; их назвали фильтрующимися вирусами. Вскоре бактерии перестали называть вирусами, а сами вирусы выделили в отдельное царство живых организмов. Дмитрий Ивановский же во всём мире по праву считается основателем вирусологии — науки о вирусах.

Рис. 2. Дженнер прививает Джеймса Фиппса от оспы

Рис. 2. Дженнер прививает Джеймса Фиппса от оспы

Но что мы пока поняли про вирусы? Только то, что они меньше бактерий. Чем же вирусы так не похожи на другие организмы? И почему понадобилось вдруг их выделять в отдельное царство? А вот почему. В отличие от других живых организмов, вирусы не имеют клеточного строения, а значит, и всех характерных для клетки структур. А ещё они единственные, кто не умеет самостоятельно производить белок, главный строительный материал всего живого. Поэтому их размножение невозможно вне заражённой клетки. Из-за этого многие учёные не без оснований считают вирусы внутриклеточными паразитами.

Жертвами различных вирусов становятся представители всех без исключения существующих царств живых организмов! Так, есть вирусы растений — вирус табачной мозаики (рис. 3, слева), вирус мозаики костра (это растение изображено на рисунке 3, справа), вирус желтухи свёклы, вызывающий иногда даже эпидемии. Кстати, в растение вирус просто так не проникнет. Заражение происходит при травмах растительных тканей. Типичный пример: тля пьёт сок из стебля и для этого протыкает покровные ткани — а вирус тут как тут.

Рис 3. Слева: листья табака, поражённые вирусом табачной мозаики. Справа: костёр (лат. Brómus) — род многолетних травянистых растений семейства Злаки

Рис 3. Слева: листья табака, поражённые вирусом табачной мозаики. Справа: костёр (лат. Brómus) — род многолетних травянистых растений семейства Злаки. Если посмотреть на заросли костра в ветреную погоду, его крупные метёлки, склоняясь под ветром то в одну, то в другую сторону, отсвечивают красноватым светом в солнечных лучах, очень напоминая языки пламени. Отсюда, вероятно, и произошло русское название этого растения

Грибы тоже поражаются вирусами, вызывающими, например, побурение плодовых тел у шампиньонов или изменение окраски у зимнего опёнка. Причиной многих опасных заболеваний животных и человека тоже служат вирусы: вирус гриппа, ВИЧ (вирус иммунодефицита человека), вирус Эбола, вирус бешенства, герпеса, клещевого энцефалита и т. д.

Есть даже вирусы, поражающие бактерии, их называют бактериофагами 2 . Так, в конце XIX века исследователи из Института Пастера заметили, что вода некоторых рек Индии обладает бактерицидным действием, то есть способствует снижению роста бактерий. И достигалось это благодаря присутствию в речной воде бактериофагов.

Рис. 4. Слева: вирус табачной мозаики. В центре: вирус мозаики костра похож на футбольный мяч (справа)

Рис. 4. Слева: вирус табачной мозаики. В центре: вирус мозаики костра похож на футбольный мяч (справа)

Рис. 5. Слева направо: вирус герпеса, аденовирус А человека, бактериофаг

Рис. 5. Слева направо: вирус герпеса, аденовирус А человека, бактериофаг

Рис. 6. Маленькие вирусы-спутники внутри гигантского мимивируса

Рис. 6. Маленькие вирусы-спутники внутри гигантского мимивируса

Но не стоит думать, что вирусы причиняют исключительно вред другим организмам! Так, исследователи из Пенсильванского университета показали, что безвредный для человека вирус AAV2, встречающийся почти у всех людей, убивает самые разные виды раковых клеток. При этом здоровые клетки организма вирус не заражает.

А совсем недавно стало известно, что вирусы тоже болеют. Мимивирус, поражающий амёбу Acanthamoeba polyphaga, сам страдает от другого вируса-спутника (рис. 6). Он, кстати, так и называется — Спутник. Этот вирус-спутник использует механизмы воспроизводства мимивируса для собственного размножения, мешая ему нормально развиваться в клетке амёбы. По аналогии с бактериофагами, он был назван вирофагом, то есть пожирающим вирусы. Можно сказать, что присутствие вируса-спутника в амёбе обеспечивает ей больше шансов на выживание в борьбе с мимивирусом.

Читайте также: