Способ обнаружения вредоносных программ и элементов
METHOD FOR DETECTING MALWARE AND MALWARE COMPONENTS

Изобретение относится к идентификации и анализу данных, передаваемых через незащищенную сеть связи, а именно, к идентификации, обнаружению и анализу злонамеренного программного обеспечения, т.е. вредоносных программ и элементов.
Двоичный файл зачастую передается между множеством вычислительных устройств по неконтролируемым сетям. Вычислительное устройство, которое принимает двоичный файл, обычно не имеет сведений о том, содержит ли он вредоносные программы.
По мере того, как совершенствуются технологии и инфраструктура компьютерных сетей, в последнее время возрастает объем и скорость данных, передаваемых между устройствами компьютерной сети, при этом в их составе имеется класс данных, называемых вредоносными программами (ВП).
Одним из средств идентификации и удаления ВП является известное антивирусное программное обеспечение, использующее последовательный поиск и основанный на определенных правилах стандартный аналитический подход для поиска. Однако, код ВП может часто изменяться автором, в результате чего известные последовательности поиска и основанный на известных правилах анализ не всегда способны обнаружить непрерывно обновляемые ВП. Таким образом, к недостаткам известного антивирусного программного обеспечения можно отнести неспособность обнаружения новых или неизвестных вирусов.
Указанные проблемы также решаются известными способами обнаружения подозрительного режима работы программы и ее оценки с помощью антивирусного программного обеспечения. Если антивирусное программное обеспечение находит существенные корреляции кода либо поведения с уже известными вредоносными кодами, оно считает, что обнаружен новый вирус или ВП.
Упомянутые выше способы обнаружения ВП подпадают под обобщенный термин "эвристические". Эвристический анализ предполагает, что анализируемая программа запускается в некотором изолированном и безопасном окружении, и способ фиксирует сведения о ее выполнении. Эвристический способ подвергает рассмотрению и оценке максимально возможный объем информации, что позволяет сделать выводы о легитимности анализируемой программы либо, в противном случае, о ее нестандартной или, скорее всего, вредоносной нацеленности. Эвристический анализ работает независимо от того, подвергался анализу или нет конкретный код ранее. Кроме того, он может распознавать новые вирусы и программы - "трояны".
Основным недостатком эвристических способов является недостаточная достоверность анализа, поскольку грань между корректным и наносящим вред режимом работы программного обеспечения может быть неопределенной, поскольку степень сходства с уже известным вредоносным кодом либо аномальным поведением может быть преднамеренно скрыта автором. При этом проверка программы в безопасном окружении, когда можно быть твердо уверенным, что вред не будет нанесен, связана со значительными затратами времени. К тому же следует учитывать набор разнообразных приемов авторов ВП, направленных на создание препятствий осуществлению анализа эвристического типа с целью его недопущения.
Известен способ (RU 2417429, опубл. 2011.04.27) сведения к минимуму возможности использования злоумышленником уязвимых мест в установленном в целевом компьютере программном обеспечении. Способ осуществляют посредством изучения сетевого трафика и идентификации злонамеренного кода до того, как он может быть выполнен и/или установлен. Сетевой трафик отслеживается с помощью компонента безопасности, установленного в целевом компьютере. Когда поступает сообщение, предназначенное для вычислительной системы, признаки включенных в сообщение данных сравниваются с признаками эксплойта (код, эксплуатирующий уязвимые места в программном обеспечении, произведенном третьими сторонами), используемыми для того, чтобы идентифицировать злонамеренный код. Признаки эксплойта предоставляются компоненту безопасности службой безопасности, которая собирает информацию о злонамеренном коде. При сравнении данных в сообщении с признаками эксплойта руководствуются правилами, которые предписывают компоненту безопасности выполнить соответствующее действие по принятому сообщению. Однако в известном способе отсутствует возможность селективного наблюдения именно за интерпретируемыми объектами веб-сайтов, а не за всем трафиком на транспортном уровне, при этом отсутствует возможность анализа отдельных интерпретируемых файлов.
Известен эвристический способ анализа кода (RU 2526716, опубл. 2014.08.27), который включает в себя следующие действия: анализ программы, содержащей последовательность программных инструкций, определение того, удовлетворяет или нет каждая инструкция в последовательности какой-либо группе критериев подозрительности, назначение количественного показателя на уровне инструкций для каждой инструкции, которая удовлетворяет любому из критериев подозрительности, суммирование упомянутых количественных показателей с получением в результате количественного показателя на уровне программы и определением того, превышает или нет подсчитанный таким образом количественный показатель на уровне программы установленное пороговое значение, и в случае такого превышения создают сообщение, свидетельствующее о факте обнаружения ВП. Для известного способа характерны все перечисленные выше недостатки эвристических способов, основным из которых является недостаточная достоверность обнаружения вредоносных элементов.
Наиболее близким к предлагаемому является способ обнаружения вредоносных программ и элементов (RU 2613535, опубл. 2017.03.16), предусматривающий анализ программы или сообщений, которые удовлетворяют критерию или группе критериев подозрительности, указывающих на обнаружение вредоносных элементов, согласно которому в сервер, браузер или канал коммуникаций между ними встраивают систему фильтрации, которая осуществляет анализ передаваемых документов с учетом базы данных, содержащей сведения об известных безопасных элементах, и в случае наличия в документе потенциально вредоносных элементов, отсутствующих в упомянутой базе данных, осуществляют декомпозицию полученного документа на множество элементов с потенциально вредоносным содержимым, из которых формируют файлы, число которых коррелирует с числом декомпозированных элементов, после чего создают композицию файлов из декомпозированных элементов, которые подвергают динамическому детектированию, осуществляемому с помощью программ, которые должны обеспечить срабатывание вредоносных кодов в процессе работы с соответствующим типом интерпретируемых файлов, в частности, с уязвимыми версиями Microsoft Office, для отслеживания отклонений от нормального поведения клиентской программы в результате действий вредоносных элементов, при этом детектирование и передачу документа в браузер осуществляют после удаления из него выявленных вредоносных элементов, затем проверяют его валидность. Кроме того, при обнаружении вредоносных элементов включают их в базу данных вредоносных элементов, а остальные элементы в базу данных безопасных элементов и дополнительно осуществляют автоматическое лечение сайта.
К недостаткам известного способа следует отнести необходимость использования динамического детектирования, которое несет в себе опасность распространения в рабочей системе вредоносного заражения, при этом его применение усложняет способ, увеличивает затраты времени и требует дополнительных ресурсов.
Основной задачей, решаемой заявляемым изобретением, является создание эффективного способа обнаружения вредоносных программ и элементов, способного с высокой вероятностью обнаруживать вредоносные программы и элементы, не прибегая к динамическому детектированию. Повышение вероятности правильного обнаружения ВП, причем без применения режима динамического детектирования, является на сегодняшний день актуальной задачей.
Технический результат предлагаемого способа заключается в повышении вероятности обнаружения вредоносных программ и элементов без применения режима динамического детектирования при одновременном упрощении способа, сокращении затрат времени и ресурсов.
Указанный технический результат достигают способом обнаружения вредоносных программ и элементов, предусматривающим анализ программы или передаваемых сообщений с помощью системы фильтрации, которая осуществляет анализ документов с учетом базы данных, содержащей сведения об известных безопасных элементах, и в случае наличия в документе отсутствующих в упомянутой базе данных потенциально вредоносных элементов, которые удовлетворяют критерию или группе критериев подозрительности, осуществляют декомпозицию полученного документа на множество элементов с потенциально вредоносным содержимым, из которых формируют файлы, число которых коррелирует с числом декомпозированных элементов, в котором, в отличие от известного, множество декомпозированных элементов, которые функционально связаны структурой входной программы (сообщения) подвергают анализу с учетом баз данных, содержащих сведения об известных вредоносных и безопасных элементах, после чего безопасные элементы загружают на предназначенные для них места в структуре входной программы (сообщения), а потенциально вредоносные элементы подвергают очередной декомпозиции на множество более мелких, структурно связанных элементов, которые, в свою очередь, подвергают анализу с учетом упомянутых баз данных, причем полученные на этом этапе более мелкие декомпозированные безопасные элементы загружают на предназначенные им места в структуре связанного множества более мелких декомпозированных элементов, а потенциально вредоносные более мелкие декомпозированные элементы подвергают следующей декомпозиции на множество еще более мелких, структурно связанных, декомпозированных элементов, повторяя операцию до того момента, когда либо будет определен подэлемент кода вредоносной программы, либо будет выполнено заданное количество декомпозиций.
В случае, когда подэлемент кода вредоносной программы не найден, объем декомпозируемых элементов изменяют на первом этапе в К раз, а на следующем в 1/К раз, где К определяют из опыта, преимущественно равным 2, и проводят процесс поиска сигнатур в новых условиях в изменившемся масштабе.
В одном из вариантов осуществления способа обнаруженный подэлемент кода вредоносной программы включают в состав сообщения, содержащего результаты выполненного анализа по обнаружению вредоносного элемента.
В другом варианте осуществления способа в случае, когда решение не принято, а сомнения относительно присутствия элемента ВП остаются, используют дополнительную процедуру: определив подэлемент кода, предположительно вредоносной программы, его заменяют безусловным переходом к следующему, полученному на предыдущей стадии декомпозиции, более мелкому, декомпозированному элементу в структуре связанного множества более мелких декомпозированных элементов и вместе с предполагаемым подэлементом кода вредоносной программы передают на выход системы, реализующей способ.
Способ осуществляют следующим образом.
Проводят анализ поступившей программы или сообщений, которые удовлетворяют критерию или группе критериев подозрительности с учетом баз данных, содержащих сведения об известных вредоносных и безопасных элементах.
Выполняют загрузку элементов, безопасность которых установлена в результате проверки полученных из баз данных сведений, на предназначенные им места в структуре входной программы или сообщения. В том случае, если в документе присутствуют потенциально вредоносные элементы, то переходят к этапу декомпозиции полученного документа на множество декомпозированных элементов и анализа, продолжая процесс до тех пор, пока не будет выполнено условие: пройдено заданное количество (циклов) декомпозиции.
Если в результате оговоренное циклов декомпозиции «пройдено» и «код не найден», т.е. в документе нет потенциально вредоносных элементов, то выполняют выход и передачу проверенного входного документа потребителю.
В другом варианте осуществления предлагаемого способа в том случае, если подэлемент кода вредоносной программы не найден, производят изменение масштаба, например, сначала увеличивают объем декомпозируемых элементов файла, затем уменьшают объем декомпозируемых элементов для уточнения местоположения элемента кода ВП, что позволяет найти ранее не обнаруженные (не коррелируемые) участки.
Еще в одном варианте осуществления предлагаемого способа в том случае, если подэлемент кода вредоносной программы не найден в базах данных как безопасных, так и вредоносных элементов программ, осуществляется безусловный переход к следующему элементу, из связанного множества более мелких декомпозированных элементов, полученных в итоге следующего этапа декомпозиции исходного файла, который вместе с подэлементом кода, по которому не принято решение, передается на выход и в таком виде представляется результатом обнаружения элемента вредоносной программы.
Предлагаемый способ схематично показан на чертеже, где этапы его осуществления, их содержание, их последовательность и связи между ними наглядно представлены в виде блок-схемы со следующими обозначениями:
1 - анализ программы или сообщений, которые удовлетворяют критерию или группе критериев подозрительности, с учетом сведений о вредоносных и безопасных элементах, полученных из баз данных;
2 и 3 - базы данных, хранящие сведения об известных вредоносных 2 и безопасных 3 элементах;
4 - этап декомпозиции полученного документа (программы или сообщения), в котором присутствуют потенциально вредоносные элементы, предусматривающий разделение документа на множество декомпозированных элементов,
5 - этап, на котором множество декомпозированных элементов, функционально связанных структурой входной программы или сообщения, подвергают анализу с учетом баз данных, включающих сведения об известных вредоносных и безопасных элементах;
6 - этап загрузки выделенных безопасных элементов на предназначенные им места в структуре входной программы или сообщения;
7 - очередная декомпозиция потенциально вредоносных элементов на множество более мелких структурно связанных декомпозированных элементов;
8 - проведение анализа множества упомянутых выше мелких, структурно связанных, декомпозированных элементов с учетом баз данных, хранящих сведения об известных вредоносных и безопасных элементах,
9 - загрузка безопасных более мелких декомпозированных элементов на предназначенные им места в структуре связанного множества более мелких декомпозированных элементов;
10 - очередная декомпозиция потенциально вредоносных более мелких декомпозированных элементов на множество еще более мелких, структурно связанных, декомпозированных элементов;
11 - проверка условия: определен подэлемент кода вредоносной программы или нет?
12 - проверка условия: пройдено заданное количество (циклов) декомпозиции или нет?
13 - включение обнаруженного подэлемента кода вредоносной программы в состав сообщения, показывающего результаты по выявлению вредоносного элемента;
14 - изменение объема декомпозируемых элементов в том случае, если подэлемент кода вредоносной программы не найден:
15 - на первом этапе в К раз;
16 - на следующем этапе в 1/К раз;
17 - замена подэлемента кода вредоносной программы безусловным переходом к следующему декомпозированному элементу в структуре связанного множества более мелких декомпозированных элементов. Предоставление в таком виде результатов анализа, цель которого заключается в обнаружении вредоносной программы или ее элемента (подэлемента), и передача этих результатов, включающих файл в виде структуры связанного множества безопасных элементов (вылеченный файл) и элемент кода вредоносной программы на выход.
Существенными отличительными признаками предлагаемого способа являются следующие:
1 - декомпозиция полученного документа (программы, сообщения), содержащего потенциально вредоносные элементы, с формированием множества декомпозированных элементов, функционально связанных структурой входной программы (сообщения), которые подвергают анализу с учетом баз данных, включающих данные об известных вредоносных и безопасных элементах, по мере необходимости осуществляемая многократно;
2 - загрузка безопасных элементов на предназначенные им места в структуре входной программы (сообщения);
3 - декомпозиция потенциально вредоносных мелких элементов, полученных на первом этапе декомпозиции, на множество еще более мелких, структурно связанных программой, элементов; которые подвергают анализу с учетом упомянутых баз данных, включающих сведения об известных вредоносных и безопасных элементах. Процесс декомпозиции продолжают до того момента, когда либо будет определен подэлемент (не подлежащий дальнейшему дроблению элемент) кода вредоносной программы, либо будет осуществлено заданное число итераций, т.е. проведено необходимое количество циклов декомпозиции. Эта многократно повторенная операция позволяет надежно локализовать вредоносный код (до элемента).
Кроме того, такой подход позволяет, по требованию потребителя, ограничить количество итераций и сократить время анализа, что может быть оговорено в исходных данных способа;
4 - загрузка безопасных все более мелких декомпозированных элементов, полученных на втором и последующих этапах декомпозиции, на предназначенные им места в структуре связанного множества все более мелких декомпозированных элементов, из которых формируют варианты файлов. Таким образом, если в поступившем документе присутствуют потенциально вредоносные элементы, его декомпозиция на множество элементов позволяет отделить безопасные элементы от выявленных вредоносных, при этом последние не передают на компьютер пользователя.
5 - включение обнаруженного подэлемента кода вредоносной программы в состав сообщения, содержащего результаты проведенного анализа, целью которого является обнаружение вредоносного элемента;
6 - изменение объема декомпозируемых элементов на первом этапе в К раз, а на следующем в 1/К раз, если подэлемент кода вредоносной программы не найден. Это обеспечивает увеличение (уменьшение) объема декомпозируемых элементов и позволяет повысить вероятность обнаружения вредоносной программы в базах данных. В данном случае, когда искомый вредоносный элемент или замаскирован, или распределен на несколько элементов, срабатывает эффект масштабирования. Коэффициент К может быть определен с помощью набора статистических данных.
7 - замена процедуры выявления подэлемента кода вредоносной программы безусловным переходом к следующему, более мелкому, декомпозированному элементу в структуре связанного множества более мелких декомпозированных элементов, представление в таком виде результата «препарирования» обнаруженной вредоносной программы и передача его вместе с содержащимся в нем подэлементом кода вредоносной программы на выход системы, реализующей способ.
Приведенные выше отличительные существенные признаки предлагаемого способа в сочетании с существенными признаками прототипа обеспечивают эффективное обнаружение ВП без применения режима динамического детектирования. Предлагаемый способ может быть реализован в автоматическом режиме при условии выдачи оператору отчета с указанием конкретного элемента(ов) ВП и с описанием способа (варианта) его ликвидации.
Таким образом, реализация предлагаемого способа обеспечивает безопасность вычислительных устройств за счет автоматизированного анализа входного файла и высокой вероятности обнаружения ВП без применения режима динамического детектирования, при этом указанный режим по желанию может быть реализован в упрощенных и облегченных условиях.