RU2491615C1 - Система и способ формирования записей для обнаружения программного обеспечения - Google Patents

Система и способ формирования записей для обнаружения программного обеспечения Download PDF

Info

Publication number
RU2491615C1
RU2491615C1 RU2012106466/08A RU2012106466A RU2491615C1 RU 2491615 C1 RU2491615 C1 RU 2491615C1 RU 2012106466/08 A RU2012106466/08 A RU 2012106466/08A RU 2012106466 A RU2012106466 A RU 2012106466A RU 2491615 C1 RU2491615 C1 RU 2491615C1
Authority
RU
Russia
Prior art keywords
operations
execution
emulation
emulator
level
Prior art date
Application number
RU2012106466/08A
Other languages
English (en)
Inventor
Максим Юрьевич Головкин
Original Assignee
Закрытое акционерное общество "Лаборатория Касперского"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Закрытое акционерное общество "Лаборатория Касперского" filed Critical Закрытое акционерное общество "Лаборатория Касперского"
Priority to RU2012106466/08A priority Critical patent/RU2491615C1/ru
Priority to US13/527,511 priority patent/US8555392B2/en
Priority to EP12177005.1A priority patent/EP2631838B1/en
Priority to CN201310053734.1A priority patent/CN103150507B/zh
Application granted granted Critical
Publication of RU2491615C1 publication Critical patent/RU2491615C1/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

Группа изобретений относится к системам и способам для формирования записей с целью обнаружения программного обеспечения, такого как неизвестные упаковщики, которые модифицируют вредоносные файлы. Техническим результатом изобретения является улучшение уровня обнаружения неизвестных упаковщиков за счет использования записей для обнаружения, сформированных на основании информации о высокоуровневых операциях, за выполнение которых ответственен данный неизвестный упаковщик. Способ содержит этапы, на которых: I. эмулируют исполнение объекта; II. записывают в журнал выполняемые операции с памятью во время эмуляции исполнения объекта; III. объединяют упомянутые операции с памятью в, по меньшей мере, один последовательный набор; IV. определяют высокоуровневые операции, которые были выполнены во время эмуляции исполнения объекта, по объединенным в, по меньшей мере, один последовательный набор операциям с памятью; V. формируют записи для обнаружения программного обеспечения на основании информации о высокоуровневых операциях. 2 н. и 21 з.п. ф-лы, 4 ил.

Description

Область техники
Группа изобретений относится к антивирусным технологиям, в частности к системам и способам формирования записей для обнаружения программного обеспечения, такого как неизвестные упаковщики, которые модифицируют вредоносные файлы.
Уровень техники
Влияние современных технологий на уклад жизни каждого человека год от года увеличивается. Стремительно развиваются компьютерные технологии, а также сеть Интернет, увеличивая влияние на современное мироустройство. Благодаря этому любая информация стала доступнее, ведь даже с мобильного телефона можно выйти в сеть Интернет и прочитать актуальные на текущий момент мировые новости. В течение нескольких минут человек может найти любую информацию в сети Интернет, а затем по мере необходимости скачать ее на персональный компьютер. Также "всемирная паутина" предоставляет много возможностей для общения. Так электронная почта, средства мгновенного обмена сообщениями и социальные сети стали спутниками современного человека, позволяющими ему при наличии доступа в сеть Интернет иметь возможность связаться с друзьями и коллегами. Но существуют и негативные стороны - по мере развития компьютерных технологий растет количество вредоносного программного обеспечения (ПО), а также уровень профессионализма людей, занимающихся созданием подобных программ. Современная сеть Интернет, несмотря на все свои плюсы, является небезопасной, и при работе в ней можно стать объектом атаки вредоносного ПО.
Злоумышленники с помощью вредоносного ПО могут преследовать разные цели: от банального хулиганства до серьезных киберпреступлений, таких как воровство финансовых средств с банковских счетов. Развиваются и совершенствуются методы проникновения вредоносного ПО на компьютер пользователя. Так злоумышленники активно используют уязвимости - недостатки в ПО, используя которые, можно вызвать неправильную работу данного ПО, а также получить доступ к ПК, на котором данное ПО установлено. Активно используются приемы социальной инженерии, которые благодаря развитию социальных сетей и других инструментов сетевого общения стали особенно популярны среди создателей вредоносного ПО. Также для злоумышленников важно, чтобы вредоносное ПО не было обнаружено при проверке антивирусным приложением.
Большинство исследуемых исполняемых файлов, в том числе и вредоносных, на данный момент являются так называемыми РЕ-файлами (Portable Executable), которые имеют РЕ-формат (формат исполняемого файла для семейства операционных систем Windows, под которые создается большая часть вредоносного ПО). Для того чтобы антивирусное приложение при проверке не обнаружило исполняемый вредоносный файл, создатели вредоносного ПО используют специальные приложения - упаковщики и шифровщики (называемые также крипторами), позволяющие сжать, видоизменить и зашифровать код вредоносного исполняемого файла в попытке предотвратить обнаружение этого файла антивирусными приложениями.
Упаковщик исполняемых файлов - программа для уменьшения размера исполняемых файлов. В упакованный файл записывается сжатая копия оригинального файла и код для распаковки. После запуска упакованного файла код для распаковки используется для извлечения оригинального кода программы из упакованного образа в оперативную память и передает ему управление. Однако в случае, если исполняемый файл является вредоносным, то ПК может быть заражен. Кроме того, у упаковщиков существует ряд методов, направленных на предотвращение обнаружения вредоносного кода антивирусным приложением, например, распаковка кода не полностью, а лишь по мере исполнения. Шифровщик или криптор - название ряда программ для криптозащиты, используемых преимущественно создателями вредоносного ПО для маскировки вредоносного программного обеспечения. Шифровщики являются частным вариантом упаковщиков исполняемых файлов. Шифровщик, проводя зашифровку программы, обеспечивает защиту вредоносного программного кода от распространенных детектирующих методов поиска, например по сигнатурам. С использованием шифровщика, например, зашифровывается оригинальный программный файл и в его начало записывается код, при запуске выполняющий расшифровку и выполнение зашифрованной программы. Таким образом, существуют программы, называемые упаковщиками, которые позволяют модифицировать исходный исполняемый файл путем его упаковки, а также путем его зашифровки.
Существует вероятность того, что вредоносный исполняемый файл, модифицированный неизвестным упаковщиком, не будет обнаружен антивирусным приложением на ПК. Поэтому для более надежной защиты от вредоносного ПО необходим инструмент обнаружения и анализа неизвестных упаковщиков. Предложенная и описанная далее система позволяет осуществить запуск в эмуляторе модифицированного неизвестным упаковщиком исполняемого файла, записать информацию об операциях с оперативной памятью, которые были осуществлены во время запуска, выделить из этих записей такие высокоуровневые операции, как расшифровка или распаковка и другие. Подобный анализ выполненных операций с памятью позволяет определить поведение неизвестного упаковщика и сформировать запись для обнаружения, с помощью которой можно будет впоследствии обнаружить данный неизвестный упаковщик.
Таким образом, задача обнаружения неизвестных упаковщиков и быстрого формирования записи для обнаруженного неизвестного упаковщика является очень важной для антивирусной индустрии. На сегодняшний день известны различные подходы, позволяющие обнаружить потенциально вредоносное ПО, используя анализ операций с памятью, выполненных данным ПО в рамках эмуляции.
В патенте US 7418729 B2 описывается система и способ для эвристического обнаружения потенциально вредоносного ПО в рамках эмуляции. В данном патенте описывается использование отслеживания всех обращений к виртуальной памяти во время эмуляции файла. Выявление потенциально вредоносного кода основывается на анализе обращений эмулируемого файла к запрещенным диапазонам адресов. При этом запрещенный диапазон адресов - какая-либо часть памяти, к которой приложение, как правило, не имеет доступа, например, заголовки и другие разделы, которые не содержат исполняемого кода. Запрещенный диапазон адресов виртуальной памяти включает в себя часть виртуальной памяти, содержащей адреса API-функции. Но описанная система не позволяет вести запись информации об операциях с памятью, которые были осуществлены во время запуска запакованного упаковщиком программного кода.
В заявке US 20110041179 А1 описывается система для определения потенциально вредоносного ПО. Программы запускаются в эмуляторе, все последовательности байтов, относящиеся к изменениям в памяти, вызванные эмуляцией программы, фиксируются. В это же время в данной системе не описано выделение высокоуровневых операций из информации о выполненных операциях с оперативной памятью, которые могут быть проанализированы с целью определения поведенческих особенностей упаковщиков.
В патенте US 7814544 В1 описывается система для распаковки файлов, запакованных упаковщиками, а также для обнаружения неизвестных упаковщиков. В безопасной среде исполняется запакованный файл, каждый запрос к API-функции перехватывается. API-профиль упаковщика сравнивается с известными профилями упаковщиков. Если же есть запросы к API-функциям, которые не относятся к какому-либо профилю упаковщика, то запакованный код распаковывается в памяти как образ памяти, который далее сканируется на предмет наличия вредоносности. Но данная система не осуществляет запись информации об операциях с оперативной памятью, которые были осуществлены во время запуска зашифрованного упаковщиком программного кода, и не осуществляет выделение из этих записей высокоуровневых операций.
В патенте US 7568233 B1 описывается система для обнаружения вредоносного ПО, зашифрованного каким-либо упаковщиком. Но в данной системе не используется эмуляция, а используется анализ дампа памяти.
Предложенные и описанные далее система и способ формирования записей для обнаружения неизвестных упаковщиков, которые модифицируют вредоносные файлы, обходят описанные выше недостатки. Анализ предшествующего уровня техники и возможностей, которые появляются при комбинировании в одной системе различных подходов по формированию записей для обнаружения вредоносного ПО, позволяют получить новый результат, а именно улучшение уровня обнаружения неизвестных упаковщиков за счет использования записей для обнаружения, сформированных на основании информации о высокоуровневых операциях, за выполнение которых ответственен данный неизвестный упаковщик.
Сущность изобретения
Настоящее изобретение предназначено для формирования записей с целью обнаружения программного обеспечения, такого как неизвестные упаковщики, которые модифицируют вредоносные файлы. Технический результат заключается в улучшении уровня обнаружения неизвестных упаковщиков за счет использования записей для обнаружения, сформированных на основании информации о высокоуровневых операциях, за выполнение которых ответственен данный неизвестный упаковщик.
Способ формирования записи для обнаружения программного обеспечения, содержащий этапы, на которых:
I. эмулируют исполнение объекта;
II. записывают в журнал выполняемые операции с памятью во время эмуляции исполнения объекта;
III. объединяют упомянутые операции с памятью в, по меньшей мере, один последовательный набор;
IV. определяют высокоуровневые операции, которые были выполнены во время эмуляции исполнения объекта, по объединенным в, по меньшей мере, один последовательный набор операциям с памятью;
V. формируют запись для обнаружения программного обеспечения на основании информации о высокоуровневых операциях.
Система формирования записи для обнаружения программного обеспечения, содержащая:
I. эмулятор, связанный с коллектором, и предназначенный для:
- эмуляции исполнения объекта;
II. упомянутый коллектор, связанный с обработчиком, и предназначенный для:
- записи в журнал выполняемых операций с памятью во время эмуляции исполнения упомянутого объекта эмулятором;
- объединения упомянутых операций с памятью в, по меньшей мере, один последовательный набор;
- передачи, по меньшей мере, одного последовательного набора на обработчик.
III. упомянутый обработчик, связанный с модулем формирования решения, и предназначенный для:
- определения высокоуровневых операций, которые были выполнены во время эмуляции исполнения объекта эмулятором по объеденным в, по меньшей мере, один последовательный набор коллектором операциям с памятью;
- передачи информации о высокоуровневых операциях на модуль формирования решения;
IV. упомянутый модуль формирования решения, предназначенный для формирования записи для обнаружения программного обеспечения на основании полученной от обработчика информации о высокоуровневых операциях, которые были выполнены во время эмуляции исполнения объекта эмулятором.
Краткое описание прилагаемых чертежей
Сопровождающие чертежи, которые включены для обеспечения дополнительного понимания изобретения и составляют часть этого описания, показывают варианты осуществления изобретения и совместно с описанием служат для объяснения принципов изобретения.
Заявленное изобретение поясняется следующими чертежами, на которых:
Фиг.1 иллюстрирует общую схему системы защиты от вредоносного ПО.
Фиг.2 иллюстрирует схему системы формирования записей для обнаружения программного обеспечения.
Фиг.3 иллюстрирует алгоритм работы системы формирования записей для обнаружения программного обеспечения.
Фиг.4 иллюстрирует пример компьютерной системы общего назначения, на которой может быть реализована система формирования записей для обнаружения программного обеспечения.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.
Фиг.1 иллюстрирует общую схему системы защиты от вредоносного ПО.
Системой защиты от вредоносного ПО является антивирусное приложение 120, которое содержит ряд модулей защиты 130, позволяющих обнаружить и, например, удалить вредоносное ПО. Для работы модулей защиты 130 антивирусное приложение 120 в своем составе имеет антивирусную базу 140, которая содержит записи для обнаружения. При антивирусной проверке того или иного объекта 110 какой-либо модуль защиты из ряда модулей защиты 130 может использовать записи для обнаружения из антивирусной базы данных 140. Такими записями являются, например: сигнатуры, эвристики, средства родительского контроля и так далее. Следует отметить, что не все модули защиты из ряда модулей защиты 130 используют одни и те же записи. В зависимости от типа объекта 110 используется соответствующий модуль защиты, который использует записи для обнаружения при проверке данного объекта 110. Объектом 110 может являться, по меньшей мере, исполняемый файл, письмо, ссылка и так далее. Несколько модулей защиты могут также осуществлять проверку объекта 110 совместно.
В состав модулей защиты 130 также входит модуль эмуляции 150, предназначенный для проверки запакованных, а также зашифрованных (далее-модифицированных) исполняемых файлов. Целью данной проверки является, по меньшей мере, определение программного обеспечения, такого как упаковщик, которым был модифицирован исполняемый файл, определение вредоносности расшифрованного или распакованного исполняемого файла, а также обнаружение неизвестных упаковщиков. Следует отметить, что модуль эмуляции 150 также может проверять исполняемые файлы, не являющиеся запакованными или зашифрованными, но признанные подозрительными по результатам проверки каким-либо другим модулем защиты из ряда модулей защиты 130. В дальнейшем описании работы данной системы речь будет идти о проверке модулем эмуляции 150 модифицированного неизвестным упаковщиком исполняемого файла.
Фиг.2 иллюстрирует схему системы формирования записей для обнаружения программного обеспечения.
Описываемая далее система предназначена для обнаружения факта модификации исполняемого файла неизвестным упаковщиком, анализа поведения неизвестного упаковщика и последующего формирования записи для обнаружения, позволяющей точно и быстро выявить модифицированные данным неизвестным упаковщиком исполняемые файлы.
Модифицированный неизвестным упаковщиком исполняемый файл 210 (далее-файл) при попадании на ПК с установленной системой защиты от вредоносного ПО будет проверен с помощью модуля эмуляции 150 на предмет наличия вредоносного кода. Модуль эмуляции 150 в текущей реализации системы состоит из эмулятора 220, коллектора 230 и обработчика 240. Следует отметить, что также возможна реализация системы, в которой эмулятор 220, коллектор 230 и обработчик 240 выполняют свои функции не в рамках модуля эмуляции 150, а как самостоятельные модули. В частном варианте реализации коллектор 230 может быть интегрирован в эмулятор 220. Эмулятор 220 предназначен, по меньшей мере, для:
- распаковки или расшифровки файла 210;
- исследования файла 210 на предмет содержания участков кода, который может выполнять вредоносные действия, с помощью эвристических правил;
- поиска в файле 210 постоянных участков программного кода, которые являются вредоносными, с помощью сигнатур.
В дальнейшем описании работы эмулятора 220 речь будет идти об эмуляции исполнения модифицированного неизвестным упаковщиком файла 210. Эмулятор 220 способен выполнять разбор кода файла 210 на инструкции и имитировать их исполнение в специальной среде.
Модуль эмуляции 150, а именно эмулятор 220, связан с антивирусной базой 140, что необходимо, например, для исследования эмулятором 220 файла 210 на предмет содержания в нем участков вредоносного кода, а также обнаружения эмулятором 220 известных упаковщиков. Антивирусная база 140 также содержит предварительные записи, предназначенные для определения во время эмуляции исполнения файла 210 того факта, что данный файл 210 модифицирован неизвестным упаковщиком по тем признакам, которые свойственны для упаковщиков. Такими признаками могут быть, например, чтение памяти системных модулей, таких как kemel32.dll, user32.dll, ntdll.dll, а также чтение специфических системных структур, например PebLdrData. Данная системная структура содержит информацию обо всех загруженных модулях того или иного процесса. Наиболее часто эта структура используется упаковщиками для скрытого использования API-функций. Также у отдельных семейств упаковщиков существуют свои определенные операции, позволяющие их идентифицировать, и антивирусная база 140 может также содержать предварительные записи, позволяющие определить, что файл 210 модифицирован с помощью неизвестного упаковщика определенного семейства.
Если при эмуляции исполнения файла 210 эмулятором 220 сработала подобная предварительная запись, то процесс эмуляции файла 210, выполняемый эмулятором 220, начнется заново, при этом будет активирован коллектор 230 и обработчик 240. Таким образом, предварительная запись инициирует коллектор 230 на сбор данных, имеющих отношение к операциям с памятью, выполняемым при эмуляции исполнения файла 210 эмулятором 220.
Когда эмулятор 220 начнет заново осуществлять эмуляцию исполнения файла 210, коллектор 230 будет записывать в журнал операции с памятью, выполняемые при эмуляции исполнения файла 210 эмулятором 220, объединять эти операции в последовательный набор и передавать объединенные в последовательный набор операции на обработчик 240. Операциям с памятью являются, по меньшей мере, чтение и запись.
Коллектор 230 после записи в журнал операций с памятью осуществляет объединение этих операций в последовательный набор - цепочки операций. Каждая цепочка объединяется коллектором 230 исходя из адресов операции, при этом операции могут быть схожими. Каждой операции соответствует свой адрес начала операции и ее размер (далее-диапазон адресов). Коллектор 230 при объединении операций с памятью в цепочку осуществляет поиск по актуальным диапазонам адресов операций, чтобы найти наиболее подходящие для объединения в цепочку операции. Коллектор 230 может объединить две операции с памятью, если будет выявлено, что диапазоны адресов для двух операций каким-либо образом коррелируют между собой. Например, адрес начала одной операции соответствует адресу завершения другой операции.
Ниже представлены две примерные цепочки операций, собранных и объединенных коллектором 230.
16871; WRITE; FRWD; (4): Address=40A5D8; Size=26BC0; Data=66EBF2B2B90ACCE8; Data=[0 - FFFFFFFF]; EIP=[431FBB - 431FD2]; TIME=[3F160 - 82DEE]; API=[4-4].
16870; READ; FRWD; (4): Address=40A5D8; Size=26BC0; Data=142DBA9052BD9EFF; Data=[7839 - FFFFB9F6]; EIP=[431FBD - 431FD2]; TIME=[3F161 - 82DEE]; API=[4-4].
Указанные цепочки содержат данные о наборе однотипных операций с памятью, которые были осуществлены в одном диапазоне адресов. Для указанного примера операции были объединены коллектором 230 за счет одинакового адреса операций. Каждая строка цепочки содержит одинаковый набор данных, собранных коллектором 230 и имеющих отношение к операции. Указанный набор содержит, по меньшей мере, следующие данные, расположенные в примерной цепочке данных слева направо:
- уникальный идентификатор цепочки;
- вид операции;
- направление операции;
- размер элемента данных, над которым осуществляется операции;
- адрес, по которому осуществляется операции;
- размер данных;
- хеш-сумма данных;
- размер минимального и максимального элемент в цепочке;
- минимальный и максимальный адрес регистра Eip;
- количество команд процессора, выполненных за время жизни цепочки;
- количество API-функций, выполненных за время жизни цепочки.
Обработчик 240, получив объединенные в цепочки операции от коллектора 230, определяет высокоуровневые операции, которые были выполнены при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220. Таким образом, обработчик 240 определяет те высокоуровневые операции при эмуляции исполнения файла 210, за выполнение которых ответственен неизвестный упаковщик, при помощи которого был модифицирован файл 210. Высокоуровневые операции определяются обработчиком 240 по анализу выполненных операций с памятью во время эмуляции исполнения файла 210 эмулятором 220, данные о которых были собраны и объединены коллектором 230. Высокоуровневые операции определяются обработчиком 240 на основании, например, эвристических правил, которые может содержать как сам обработчик 240, так и антивирусная база 140. Обработчик 240 сравнивает объединенные в цепочки операции с памятью с эвристическими правилами для определения высокоуровневой операции. Выполняемыми при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220 и определяемыми обработчиком 240 на основании эвристических правил высокоуровневыми операциями могут быть, по меньшей мере, такие операции как:
- расшифровка (decrypt) - изменение данных, размер массива-приемника данных равен размеру массива-источника данных;
- распаковка (unpack) - изменение данных, размер массива-приемника данных больше размера массива-источника данных;
- декодирование (decode) - изменение данных, размер массива-приемника данных меньше размера массива-источника данных;
- запись (put) - запись данных, источник неизвестен;
- фильтрация (filter) - применение оптимизирующего Е8/Е9 фильтра, позволяющего добиться лучшего сжатия данных за счет их предварительной обработки;
- импорт (import) - заполнение таблиц импорта системных модулей;
- копирование (memcpy) - копирование области памяти;
- запись (memset) - запись одинаковых данных в определенную область памяти;
- получение адресов функций (getprocaddr) - получение адресов системных функций через чтение таблиц экспорта системных модулей;
- настройка адресов (fixup) - настройка адресов объекта при его загрузке по адресу, отличному от базового.
Необходимо пояснить, что таблица импорта описывает библиотеки и API-функции, которыми пользуется приложение, а таблица экспорта описывает функции, которые само приложение предоставляет для использования.
Следует отметить, что обработчик 240 способен также определять точные операции на основании анализа выполненных операций с памятью при эмуляции исполнения файла 210 эмулятором 220, данные о которых были собраны и объединены коллектором 230, без использования эвристических правил. Такими точными операциями могут быть, по меньшей мере, такие операции, как:
- переход (branch) - переход в другой блок памяти;
- выделение (alloc) - выделение памяти;
- освобождение (free) - освобождение памяти;
- загрузка (load) - загрузка модуля или библиотеки.
Необходимо отметить, что в скобках отмечены заголовки указанных высокоуровневых операций, которыми оперирует обработчик 240 при дальнейшей работе с полученными цепочками операций.
Обработчик 240 определяет по полученным и обработанным цепочкам операций, какие высокоуровневые операции были выполнены при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220, и представляет обработанные данные в виде выражения. Выражение может быть представлено обработчиком 240 в следующем виде: address: operation(dst, dst_size, src, src_size, op_size, direction, type); <weight>, где:
- address - адрес операции;
- operation - название высокоуровневой операции;
- dst - адрес массива-приемника данных;
- dst_size - размер данных в массиве-приемнике;
- src - адрес массива-источника данных;
- src_size - размер данных в массиве-источнике;
- op_size - размер операции равен размеру одного элемента массива;
- direction - направление обработки данных;
- type - флаг, характеризующий операцию;
- weight - среднее количество команд процессора, затрачиваемое на обработку одного элемента массива.
Следует отметить, что указанное выше выражение, формируемое обработчиком 240, не является финальным вариантом с точки зрения представленных в рамках выражения данных. Выражение может также формироваться обработчиком 240 с использованием только той части указанных выше данных, которая необходима для описания высокоуровневой операции. Также данных, представленных в выражении, может быть больше, чем в указанном примере.
Адрес, как правило, представлен в виде комбинации адреса области памяти и смещения в нем. Также область памяти в указанном выражении обозначается, по меньшей мере, через одну из таких переменных, как:
- image - модуль памяти под главный эмулируемый файл;
- mem - выделенная память;
- mod - подгруженные модули и библиотеки.
Размер данных в указанном выражении обозначается, по меньшей мере, через одну из следующих переменных:
- Byte;
- Word;
- Dword;
- Qword.
Направление обработки данных в указанном выражении обозначается, по меньшей мере, через одну из следующих переменных:
- FRWD - вперед;
- BKWD - назад.
Флаг, характеризующий операцию в указанном выражении, обозначается, по меньшей мере, через одну из следующих переменных:
- DFLT - обычная операция;
- POLY - операция, на обработку которой уходило большое количество инструкций;
- API - возможное сокрытие операции, например, вызов API-функции при расшифровке.
Для указанных выше примерных цепочек операций, объединенных коллектором 230, выражение будет представлено обработчиком 240 в следующем виде:
image+0×00031FBD: decrypt(image+0×0000A5D8, image+0×0000A5D8, 0×00026 ВСО, DWORD, FRWD, DFLT); <000007>
Результатом работы обработчика 240 после обработки всех цепочек операций, переданных коллектором 230, будет последовательность выражений, отображающая порядок выполняемых высокоуровневых операций при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220, то есть описывает поведение неизвестного упаковщика, при помощи которого был модифицирован файл 210. Так, например, для известного упаковщика исполняемых файлов UPX (the Ultimate Packer for eXecutables) цепочка выражений, определяющая поведение данного упаковщика при распаковке или расшифровке во время эмуляции исполнения модифицированного данным упаковщиком файла, выглядит следующим образом:
Image+0×0083A180: unpack (image+0×00001000, 0×008384F6,
image+0×0048C000, 0×003AE15D); <000033>
Image+0×0083A256: filter (image+0×00001000, 0×00745С1С); <000005>
Image+0×0083A281: import (image+0×00001000, image+00836000, 0×00003328); <000024>
Далее набор выражений, описывающих поведение неизвестного упаковщика, при помощи которого был модифицирован файл 210, направляется обработчиком 240 на модуль формирования решения 250. Следует отметить, что модуль формирования решения 250 может находиться на стороне компании-поставщика антивирусных услуг. После получения от обработчика 240 указанного набора выражений, который определяет поведение неизвестного упаковщика, то есть информацию о высокоуровневых операциях, выполненных при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220, модуль формирования решения 250 способен формировать запись для обнаружения, позволяющую в дальнейшем точно и быстро выявить факт модификации исполняемого файла данным неизвестным упаковщиком по определенным характерным высокоуровневым операциям. Модуль формирования решения 250 формирует запись для обнаружения на основании полученного набора выражений, используя известные методы формирования записей для обнаружения. В частном варианте реализации в работу модуля формирования решения 250 могут вмешиваться аналитики для анализа поступающих наборов выражений, описывающих поведение неизвестного упаковщика. Аналитики могут отвечать за формирование записей для обнаружения неизвестного упаковщика в каких-либо случаях, требующих вмешательства эксперта.
На Фиг.3 изображен алгоритм работы системы формирования записей для обнаружения программного обеспечения.
Основными целями работы данной системы является обнаружение факта модификации файла 210 неизвестным упаковщиком, анализ поведения данного неизвестного упаковщика и последующее формирование записи для обнаружения, позволяющей в дальнейшем точно и быстро выявить факт модификации исполняемого файла данным неизвестным упаковщиком.
Работа системы начинается на этапе 301, на котором с помощью модуля эмуляции 150 осуществляется проверка файла 210. Следует отметить, что модуль эмуляции 150 отвечает за проверку подозрительных файлов, а также таких файлов, которые могли быть модифицированы неизвестными упаковщиками. Модуль эмуляции 150 связан с антивирусной базой 140, в которой хранятся записи для обнаружения, позволяющие обнаружить тот факт, что файл 210 был модифицирован с помощью известного упаковщика. Модуль эмуляции имеет в своем составе эмулятор 220, предназначенный для выполнения на этапе 301 эмуляции исполнения файла 210.
Как было сказано ранее, антивирусная база 140 также содержит предварительные записи, предназначенные для определения во время эмуляции исполнения файла 210 с помощью эмулятора 220 того факта, что данный файл 210 модифицирован неизвестным упаковщиком по тем операциям, которые свойственны для упаковщиков. Если на этапе 302 при эмуляции исполнения файла 210 эмулятором 220 сработала подобная предварительная запись, то на этапе 303 процесс эмуляции файла 210, выполняемый эмулятором 220, начнется заново, при этом будет активирован коллектор 230 и обработчик 240, которые входят в состав модуля эмуляции 150. На этапе 303, когда эмулятор 220 начнет заново осуществлять эмуляцию исполнения файла 210, коллектор 230 будет записывать в журнал операции с памятью, выполняемые при эмуляции исполнения файла 210 эмулятором 220.
Далее, на этапе 304, коллектор 230 после записи в журнал указанных операций осуществляет объединение этих операций в последовательный набор - цепочки операций. Каждая цепочка объединяется коллектором 230 исходя из адреса операции, при этом операции могут быть схожими. Каждой операции соответствует свой диапазон адресов. Коллектор 230 при объединении операций с памятью в цепочку осуществляет поиск по актуальным диапазонам адресов операций, чтобы найти наиболее подходящие для объединения в цепочку операции. Коллектор 230 может объединить две операции с памятью, если будет выявлено, что диапазоны адресов для двух операций каким-либо образом коррелируют между собой. Далее коллектор 230 отправляет собранные в цепочки операции на обработчик 240.
На этапе 305 обработчик 240, получив объединенные в цепочки операции от коллектора 230, определяет высокоуровневые операции, которые были произведены при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220. Обработчик 230 определяет те высокоуровневые операции, за которые ответственен неизвестный упаковщик, при помощи которого был модифицирован файл 110. Высокоуровневые операции определяются обработчиком 240 по анализу выполненных операций с памятью при эмуляции исполнения файла 210 эмулятором 220, данные о которых были собраны и объединены коллектором 230. Высокоуровневые операции определяются обработчиком 240 на основании, например, эвристических правил, которые может содержать как сам обработчик 240, так и антивирусная база 140. Обработчик 240 определяет по полученным и обработанным цепочкам операций, какие высокоуровневые операции были выполнены при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220 и представляет обработанные данные в виде выражения. Результатом работы обработчика 240 после обработки всех цепочек операций, переданных коллектором 230, будет последовательность выражений, отображающая последовательность выполняемых высокоуровневых операций при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220.
Далее, на этапе 306, набор выражений, описывающих поведение неизвестного упаковщика, при помощи которого был модифицирован файл 210, направляется обработчиком 240 на модуль формирования решения 250. После получения от обработчика 240 указанного набора выражений, который определяет поведение неизвестного упаковщика, то есть информацию о наборе высокоуровневых операций, выполненных при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220, модуль формирования решения 250 способен формировать запись для обнаружения, позволяющую в дальнейшем точно и быстро выявить факт модификации файла 210 данным неизвестным упаковщиком по данным характерным высокоуровневым операциям. Запись для обнаружения формируется модулем формирования решения 250, базируясь на полученном от обработчика 240 наборе выражений. В частном варианте реализации в работу модуля формирования решения 250 могут вмешиваться аналитики для анализа поступающих наборов выражений, описывающих поведение неизвестного упаковщика, а также для формирования записей для обнаружения. Модуль формирования решения 250 может находиться на стороне компании-поставщика антивирусных услуг, и набор выражений, описывающих поведение неизвестного упаковщика, может отправляться на сторону компании-поставщика антивирусных услуг в рамках существующего потока статистических данных. Работа системы завершается на этапе 307.
Фиг.4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п.Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг.4. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, то есть в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.

Claims (23)

1. Способ формирования записи для обнаружения программного обеспечения, содержащий этапы, на которых:
I. эмулируют исполнение объекта;
II. записывают в журнал выполняемые операции с памятью во время эмуляции исполнения объекта;
III. объединяют упомянутые операции с памятью в, по меньшей мере, один последовательный набор;
IV. определяют высокоуровневые операции, которые были выполнены во время эмуляции исполнения объекта, по объединенным в, по меньшей мере, один последовательный набор операциям с памятью;
V. формируют запись для обнаружения программного обеспечения на основании информации о высокоуровневых операциях.
2. Способ по п.1, в котором программным обеспечением является, по меньшей мере, упаковщик.
3. Способ по п.1, в котором объектом является, по меньшей мере, исполняемый файл.
4. Способ по п.1, в котором эмулируют исполнение объекта, и в случае выявления предварительной записи во время эмуляции исполнения объекта заново начинают эмуляцию.
5. Способ по п.4, в котором предварительная запись предназначена для определения во время эмуляции исполнения объекта того факта, что указанный объект модифицирован программным обеспечением.
6. Способ по п.5, в котором программное обеспечение модифицирует объект путем его запаковки или зашифровки.
7. Способ по п.1, в котором объединение операций в, по меньшей мере, один последовательный набор происходит, по меньшей мере, исходя из корреляций диапазонов адресов, в которых выполняются операции.
8. Способ по п.1, в котором высокоуровневые операции были выполнены, по меньшей мере, при распаковке или расшифровке объекта во время эмуляции его исполнения.
9. Способ по п.1, в котором высокоуровневые операции определяются на основании, по меньшей мере, эвристических правил.
10. Способ по п.1, в котором информация о высокоуровневых операциях представлена в виде последовательности выражений.
11. Способ по п.1, в котором каждое выражение из упомянутой последовательности выражений содержит, по меньшей мере, один пункт из следующей информации о высокоуровневой операции, которая была выполнена во время эмуляции исполнения объекта:
- адрес операции;
- название высокоуровневой операции;
- адрес массива-приемника данных и его размер;
- адрес массива-источника данных и его размер;
- направление;
- флаг, характеризующий операцию.
12. Система формирования записи для обнаружения программного обеспечения, содержащая:
I. эмулятор, связанный с коллектором и предназначенный для
эмуляции исполнения объекта;
II. упомянутый коллектор, связанный с обработчиком и предназначенный для:
- записи в журнал выполняемых операций с памятью во время эмуляции исполнения упомянутого объекта эмулятором;
- объединения упомянутых операций с памятью в, по меньшей мере, один последовательный набор;
- передачи, по меньшей мере, одного последовательного набора на обработчик;
III. упомянутый обработчик, связанный с модулем формирования решения и предназначенный для:
- определения высокоуровневых операций, которые были выполнены во время эмуляции исполнения объекта эмулятором по объеденным в, по меньшей мере, один последовательный набор коллектором операциям с памятью;
- передачи информации о высокоуровневых операциях на модуль формирования решения;
IV. упомянутый модуль формирования решения, предназначенный для формирования записи для обнаружения программного обеспечения на основании полученной от обработчика информации о высокоуровневых операциях, которые были выполнены во время эмуляции исполнения объекта эмулятором.
13. Система по п.12, в которой программным обеспечением является, по меньшей мере, упаковщик.
14. Система по п.12, в которой объектом является, по меньшей мере, исполняемый файл.
15. Система по п.12, в которой дополнительно содержится антивирусная база данных, необходимая для хранения, по меньшей мере, эвристических правил для определения высокоуровневых операций и предварительных записей.
16. Система по п.12, в которой эмулятор эмулирует исполнение объекта, и в случае выявления предварительной записи из антивирусной базы данных во время эмуляции исполнения объекта эмулятор заново начинает эмуляцию исполнения.
17. Система по п.12, в которой предварительная запись из антивирусной базы данных предназначена для определения во время эмуляции исполнения объекта эмулятором того факта, что указанный объект модифицирован программным обеспечением.
18. Система по п.17, в которой программное обеспечение модифицирует объект путем его запаковки или зашифровки.
19. Система по п.12, в которой коллектор объединяет в, по меньшей мере, один последовательный набор операции с памятью, при этом объединение операций происходит, по меньшей мере, исходя из корреляций диапазонов адресов, в которых выполняются операции.
20. Система по п.12, в которой высокоуровневые операции были выполнены, по меньшей мере, при распаковке или расшифровке объекта во время эмуляции его исполнения эмулятором.
21. Система по п.12, в которой высокоуровневые операции определяются обработчиком на основании, по меньшей мере, эвристических правил.
22. Система по п.12, в которой информация о высокоуровневых операциях представляется обработчиком в виде последовательности выражений.
23. Система по п.12, в которой каждое выражение из упомянутой последовательности выражений, представляемое обработчиком, содержит, по меньшей мере, один пункт из следующей информации о высокоуровневой операции, которая была выполнена во время эмуляции исполнения объекта эмулятором:
- адрес операции;
- название высокоуровневой операции;
- адрес массива-приемника данных и его размер;
- адрес массива-источника данных и его размер;
- направление;
- флаг, характеризующий операцию.
RU2012106466/08A 2012-02-24 2012-02-24 Система и способ формирования записей для обнаружения программного обеспечения RU2491615C1 (ru)

Priority Applications (4)

Application Number Priority Date Filing Date Title
RU2012106466/08A RU2491615C1 (ru) 2012-02-24 2012-02-24 Система и способ формирования записей для обнаружения программного обеспечения
US13/527,511 US8555392B2 (en) 2012-02-24 2012-06-19 System and method for detecting unknown packers and cryptors
EP12177005.1A EP2631838B1 (en) 2012-02-24 2012-07-19 System and method for detecting unknown packers and cryptors
CN201310053734.1A CN103150507B (zh) 2012-02-24 2013-02-19 用于检测未知打包器和加密器的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2012106466/08A RU2491615C1 (ru) 2012-02-24 2012-02-24 Система и способ формирования записей для обнаружения программного обеспечения

Publications (1)

Publication Number Publication Date
RU2491615C1 true RU2491615C1 (ru) 2013-08-27

Family

ID=46875634

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2012106466/08A RU2491615C1 (ru) 2012-02-24 2012-02-24 Система и способ формирования записей для обнаружения программного обеспечения

Country Status (4)

Country Link
US (1) US8555392B2 (ru)
EP (1) EP2631838B1 (ru)
CN (1) CN103150507B (ru)
RU (1) RU2491615C1 (ru)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2624540C2 (ru) * 2013-11-25 2017-07-04 Общество с ограниченной ответственностью "Доктор Веб" Способ обнаружения вредоносных программ для ЭВМ заархивированных по неизвестному алгоритму
RU2628921C1 (ru) * 2016-03-18 2017-08-22 Акционерное общество "Лаборатория Касперского" Система и способ выполнения антивирусной проверки файла на виртуальной машине
RU2637997C1 (ru) * 2016-09-08 2017-12-08 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного кода в файле
RU2659734C1 (ru) * 2017-07-17 2018-07-03 Акционерное общество "Лаборатория Касперского" Способ эмуляции исполнения файлов

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9852290B1 (en) * 2013-07-12 2017-12-26 The Boeing Company Systems and methods of analyzing a software component
US9280369B1 (en) 2013-07-12 2016-03-08 The Boeing Company Systems and methods of analyzing a software component
US9336025B2 (en) 2013-07-12 2016-05-10 The Boeing Company Systems and methods of analyzing a software component
US9396082B2 (en) 2013-07-12 2016-07-19 The Boeing Company Systems and methods of analyzing a software component
US9479521B2 (en) 2013-09-30 2016-10-25 The Boeing Company Software network behavior analysis and identification system
US9355246B1 (en) * 2013-12-05 2016-05-31 Trend Micro Inc. Tuning sandbox behavior based on static characteristics of malware
US9824356B2 (en) 2014-08-12 2017-11-21 Bank Of America Corporation Tool for creating a system hardware signature for payment authentication
US8943598B1 (en) * 2014-08-12 2015-01-27 Bank Of America Corporation Automatic compromise detection for hardware signature for payment authentication
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10554507B1 (en) 2017-03-30 2020-02-04 Fireeye, Inc. Multi-level control for enhanced resource and object evaluation management of malware detection system
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
CN108959925A (zh) * 2018-06-22 2018-12-07 珠海市君天电子科技有限公司 一种恶意脚本的检测方法、装置、电子设备及存储介质
RU2770570C2 (ru) * 2020-08-24 2022-04-18 Акционерное общество "Лаборатория Касперского" Система и способ определения процесса, связанного с вредоносным программным обеспечением, шифрующим файлы компьютерной системы
US20230385412A1 (en) * 2022-05-25 2023-11-30 Palo Alto Networks, Inc. Automatically detecting unknown packers
CN116361239B (zh) * 2023-05-24 2023-07-28 成都交大光芒科技股份有限公司 基于对象特征的对象识别同步方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973577B1 (en) * 2000-05-26 2005-12-06 Mcafee, Inc. System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state
RU91202U1 (ru) * 2009-10-01 2010-01-27 ЗАО "Лаборатория Касперского" Система обнаружения неизвестных вредоносных программ
US7657419B2 (en) * 2001-06-19 2010-02-02 International Business Machines Corporation Analytical virtual machine

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826013A (en) * 1995-09-28 1998-10-20 Symantec Corporation Polymorphic virus detection module
US5790778A (en) 1996-08-07 1998-08-04 Intrinsa Corporation Simulated program execution error detection method and apparatus
US5794012A (en) 1996-10-09 1998-08-11 Hewlett-Packard Company Verification of strongly ordered memory accesses in a functional model of an out-of-order computer system
US6357008B1 (en) * 1997-09-23 2002-03-12 Symantec Corporation Dynamic heuristic method for detecting computer viruses using decryption exploration and evaluation phases
US6463582B1 (en) 1998-10-21 2002-10-08 Fujitsu Limited Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method
US6415436B1 (en) 1998-12-11 2002-07-02 Hewlett-Packard Company Mechanism for cross validating emulated states between different emulation technologies in a dynamic compiler
US6971019B1 (en) * 2000-03-14 2005-11-29 Symantec Corporation Histogram-based virus detection
US6775780B1 (en) * 2000-03-16 2004-08-10 Networks Associates Technology, Inc. Detecting malicious software by analyzing patterns of system calls generated during emulation
US7069583B2 (en) * 2000-07-14 2006-06-27 Computer Associates Think, Inc. Detection of polymorphic virus code using dataflow analysis
US7350235B2 (en) * 2000-07-14 2008-03-25 Computer Associates Think, Inc. Detection of decryption to identify encrypted virus
US7356736B2 (en) 2001-09-25 2008-04-08 Norman Asa Simulated computer system for monitoring of software performance
US7415726B2 (en) 2001-12-28 2008-08-19 Mcafee, Inc. Controlling access to suspicious files
US6971017B2 (en) * 2002-04-16 2005-11-29 Xerox Corporation Ad hoc secure access to documents and services
US7409717B1 (en) * 2002-05-23 2008-08-05 Symantec Corporation Metamorphic computer virus detection
US7418729B2 (en) 2002-07-19 2008-08-26 Symantec Corporation Heuristic detection of malicious computer code by page tracking
US7644441B2 (en) 2003-09-26 2010-01-05 Cigital, Inc. Methods for identifying malicious software
US7836504B2 (en) 2005-03-01 2010-11-16 Microsoft Corporation On-access scan of memory for malware
US7568233B1 (en) 2005-04-01 2009-07-28 Symantec Corporation Detecting malicious software through process dump scanning
US7647636B2 (en) 2005-08-24 2010-01-12 Microsoft Corporation Generic RootKit detector
US7779472B1 (en) 2005-10-11 2010-08-17 Trend Micro, Inc. Application behavior based malware detection
US7434105B1 (en) 2005-11-07 2008-10-07 Symantec Operating Corporation Selective self-healing of memory errors using allocation location information
US7814544B1 (en) 2006-06-22 2010-10-12 Symantec Corporation API-profile guided unpacking
US8261344B2 (en) * 2006-06-30 2012-09-04 Sophos Plc Method and system for classification of software using characteristics and combinations of such characteristics
US7827447B2 (en) 2007-01-05 2010-11-02 International Business Machines Corporation Sliding window mechanism for data capture and failure analysis
US7620992B2 (en) 2007-10-02 2009-11-17 Kaspersky Lab Zao System and method for detecting multi-component malware
US20110041179A1 (en) 2009-08-11 2011-02-17 F-Secure Oyj Malware detection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973577B1 (en) * 2000-05-26 2005-12-06 Mcafee, Inc. System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state
US7657419B2 (en) * 2001-06-19 2010-02-02 International Business Machines Corporation Analytical virtual machine
RU91202U1 (ru) * 2009-10-01 2010-01-27 ЗАО "Лаборатория Касперского" Система обнаружения неизвестных вредоносных программ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2624540C2 (ru) * 2013-11-25 2017-07-04 Общество с ограниченной ответственностью "Доктор Веб" Способ обнаружения вредоносных программ для ЭВМ заархивированных по неизвестному алгоритму
RU2628921C1 (ru) * 2016-03-18 2017-08-22 Акционерное общество "Лаборатория Касперского" Система и способ выполнения антивирусной проверки файла на виртуальной машине
RU2637997C1 (ru) * 2016-09-08 2017-12-08 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного кода в файле
RU2659734C1 (ru) * 2017-07-17 2018-07-03 Акционерное общество "Лаборатория Касперского" Способ эмуляции исполнения файлов

Also Published As

Publication number Publication date
US8555392B2 (en) 2013-10-08
CN103150507A (zh) 2013-06-12
EP2631838B1 (en) 2014-06-11
CN103150507B (zh) 2016-07-27
US20130227300A1 (en) 2013-08-29
EP2631838A1 (en) 2013-08-28

Similar Documents

Publication Publication Date Title
RU2491615C1 (ru) Система и способ формирования записей для обнаружения программного обеспечения
Or-Meir et al. Dynamic malware analysis in the modern era—A state of the art survey
US12079340B2 (en) Cloud based just in time memory analysis for malware detection
US10242186B2 (en) System and method for detecting malicious code in address space of a process
US8195953B1 (en) Computer program with built-in malware protection
RU2485577C1 (ru) Способ увеличения надежности определения вредоносного программного обеспечения
US7934261B1 (en) On-demand cleanup system
JP6353498B2 (ja) ユーザ機器上でマルウェアを検出するためにアンチウィルス記録セットを生成するシステム及び方法
US10013555B2 (en) System and method for detecting harmful files executable on a virtual stack machine based on parameters of the files and the virtual stack machine
CN110119619B (zh) 创建防病毒记录的系统和方法
US10372907B2 (en) System and method of detecting malicious computer systems
Alrawi et al. Forecasting malware capabilities from cyber attack memory images
WO2019075388A1 (en) MEMORY ANALYSIS JUST IN TIME FOR THE DETECTION OF MALICIOUS SOFTWARE
AlSabeh et al. Exploiting ransomware paranoia for execution prevention
RU2510530C1 (ru) Способ автоматического формирования эвристических алгоритмов поиска вредоносных объектов
Webb Evaluating tool based automated malware analysis through persistence mechanism detection
Mahboubi et al. Using process mining to identify file system metrics impacted by ransomware execution
Sumbly et al. Static and Dynamic Analysis of Clop Ransomware
RU2774042C1 (ru) Система и способ выявления потенциально вредоносных изменений в приложении
Garg et al. Analysis and categorization of emotet iot botnet malware
RU2739832C1 (ru) Система и способ выявления измененных системных файлов для проверки на вредоносность в облачном сервисе
UPPIN Dynamic Analysis of a Window-Based Malware Using Automated sandboxing
Hsu et al. A Kernel-Based Solution for Detecting and Preventing Fileless Malware on Linux
Vandhana et al. VIEGO: Malware Generating Tool
Badal Batllori Malware analysis methodology applied to the WannaCry ransomware