СПОСОБ ОБЕЗВРЕЖИВАНИЯ ВРЕДОНОСНЫХ ПРОГРАММ, БЛОКИРУЮЩИХ РАБОТУ ПК, С ИСПОЛЬЗОВАНИЕМ ОТДЕЛЬНОГО УСТРОЙСТВА ДЛЯ АКТИВАЦИИ ПОЛЬЗОВАТЕЛЕМ ПРОЦЕДУРЫ ПРОТИВОДЕЙСТВИЯ ВРЕДОНОСНОМУ ПРОГРАММНОМУ ОБЕСПЕЧЕНИЮ
METHOD OF NEUTRALISING MALWARE BLOCKING PC OPERATION USING SEPARATE DEVICE FOR USER ACTIVATION OF MALWARE COUNTERACTING PROCEDURE

Область техники
Изобретение относится к области антивирусной защиты, а более конкретно, к способу обезвреживания определенных типов вредоносного программного обеспечения (ПО).
Уровень техники
Существующие на данный момент системы защиты от вредоносного программного обеспечения позволяют определять его двумя способами:
- по характерным данным, предварительно получаемым из содержимого вредоносных файлов (сигнатурам, паттернам, контрольным суммам и т.д.);
- по поведению вредоносных программ (эвристические и поведенческие анализаторы).
Данные методы являются классическими и хорошо работают на известных разновидностях вредоносного программного обеспечения. К сожалению, эти методы часто бессильны против нового, только что появившегося вредоносного ПО. Первая причина этого заключается в том, что их характерных данных (сигнатур, контрольных сумм) еще нет в вирусной базе данных антивируса. Вторая - эвристические и поведенческие анализаторы не обнаруживают угрозу, поскольку при разработке вредоносной программы злоумышленники намеренно изменяли ее поведение так, чтобы она не вызывала подозрений у поведенческого анализатора антивируса. При этом зачастую такие еще неизвестные антивирусам вредоносные программы в процессе работы проявляют себя, обнаруживая свое присутствие перед пользователем, работающим на зараженном компьютере в данный момент. Примером такого поведения могут служить программы-вымогатели, блокирующие работу компьютера и требующие от пользователя с помощью, например, сообщений на экране выполнения их преступных требований (как правило, связанных с выплатой денежных средств тем или иным способом). Таким образом, заражение компьютера вредоносной программой очевидно для пользователя (от него вредоносная программа требует определенных действий), компьютер заблокирован, не позволяя нормально работать пользователю или даже запустить процедуры противодействия вредоносной программе. При этом антивирусная система не обнаруживает и не лечит заражение, поскольку не определяет новую угрозу ни по характерным признакам, ни по поведению.
Сущность изобретения
Суть настоящего изобретения заключается в запуске процедуры обезвреживания активного заражения непосредственно пользователем компьютера, обнаружившим это заражение, путем взаимодействия с работающим на зараженной системе антивирусным комплексом (АК) посредством внешнего устройства активации, подключаемого к этому компьютеру. При этом данная процедура анализирует текущее состояние (на момент активного заражения) внутренних данных операционной системы и выбирает конкретный метод противодействия «активному» вредоносному ПО. Под термином «активное вредоносное ПО» здесь и далее определяется вредоносное программное обеспечение, которое запущено на инфицированном компьютере, и выполняется на нем в данный конкретный момент времени, проявляя свое присутствие тем или иным образом.
Таким образом, использование предлагаемого способа позволяет решить описанную проблему известных антивирусных систем, при которой антивирусная система не обнаруживает и не лечит заражение, поскольку не определяет новую угрозу ни по характерным признакам, ни по поведению. Достигается это тем, что пользователю дают возможность сообщить антивирусной программе о факте заражения на заблокированном компьютере и активировать заранее процедуры поиска и обезвреживания вредоносных программ, применимые только на этапе активного заражения. При этом способ обладает следующими отличительными особенностями:
- использование отдельного периферийного устройства позволяет активировать процедуру обезвреживания в случаях, когда вредоносная программа отключила или ограничила использование традиционных средств ввода информации в компьютер, такие как клавиатура и мышь (это, например, стандартное поведение программ-вымогателей);
- процедура обезвреживания вредоносной программы и последующей разблокировки выполняется без перезагрузки компьютера и следующей из этого потери текущих несохраненных пользовательских данных;
- способ позволяет находить и удалить или отключить запуск вредоносного программного обеспечения, ранее не присутствующего в вирусной базе данных антивируса, благодаря определению самого факта заражения лично пользователем, выполнившим активацию процедуры обезвреживания, и дальнейшего автоматического анализа текущего состояния операционной системы на момент заражения;
- способ позволяет обнаруживать вредоносное ПО, не определяемое поведенческими анализаторами по его поведению, поскольку в качестве одного из основных критериев оценки вредоносности той или иной программы использует не только ее формальное поведение, но и факт поступления сигнала от пользователя (посредством применения устройства активации) и его характеристики (временные и ситуационные).
- способ позволяет упростить взаимодействие АК с пользователем, которому для активации процедуры лечения компьютера требуется лишь вставить устройство и нажать на нем кнопку, не выполняя при этом действий, требующих от него высокой квалификации в области компьютерной безопасности.
Техническим результатом предлагаемого изобретения является обеспечение возможности разблокировки компьютера без потери данных и перезагрузки компьютера, повышение эффективности работы антивирусных систем и соответственно повышение безопасности вычислительных систем.
Согласно настоящему изобретению реализован способ обезвреживания вредоносных программ, блокирующих работу компьютера, с использованием отдельного устройства активации антивируса, предназначенного для активации пользователем процедуры противодействия вредоносному программному обеспечению и содержащего разъемы для подключения к управляющей шине, контроллер, обеспечивающий программно-аппаратную логику работы устройства и осуществляющий коммуникацию по шине, и блок активации. Упомянутый способ содержит:
1. подключение к компьютеру устройства активации антивируса;
2. передачу сигнала активации с блока активации;
3. Активацию процедуры разблокировки и лечения компьютера при помощи устройства активации. При этом упомянутая процедура разблокировки и лечения включает: исследование состояния графической подсистемы ОС, поиск всех созданных окон и рабочих столов, видимых пользователю; анализ всех процессов и потоков, выполнявшихся на ПК на момент заражения; построение на основании собранных данных привязки каждого упомянутого окна и рабочего стола к конкретному процессу и/или иерархии процессов; анализ полученных данных о процессах и выявление в каждом из них загруженных модулей, участвующих в выполнении процесса; поиск автоматически выполняемых в процессе запуска ОС программ; формирование списка объектов, признанных вредоносными; и изолирование вредоносного объекта, удаление из конфигурационных файлов ОС ссылки на него, и удаление вредоносного процесса, порожденного объектом.
Краткое описание чертежей
На фиг.1 представлен схематичный пример реализации концепции устройства активации антивируса.
На фиг.2 представлены основные этапы обезвреживания вредоносной программы на примере программы-вымогателя.
На фиг.3 представлено схематичное изображение алгоритма работы процедуры разблокировки и лечения ПК.
Подробное описание изобретения
Для решения вышеозначенных и родственных задач некоторые иллюстративные аспекты описаны здесь в связи с нижеследующим описанием и прилагаемыми чертежами. Однако эти аспекты представляют лишь некоторые возможные подходы к применению раскрытых здесь принципов и призваны охватывать все подобные аспекты и их эквиваленты. Другие преимущества и признаки следуют из нижеследующего подробного описания, приведенного совместно с чертежами.
В нижеследующем описании, в целях объяснения, многочисленные конкретные детали приведены для обеспечения полного понимания изобретения. Однако очевидно, что новые варианты осуществления можно осуществлять на практике без этих конкретных деталей. В других случаях, общеизвестные процедуры, структуры и устройства показаны в виде блок-схемы для облегчения их описания.
Описание устройства активации
Устройство активации антивируса (Фиг.1), служащее для активации процедуры обезвреживания, может подключаться к компьютеру через стандартные коммуникационные шины, используемые в ПК, такие как USB, COM, LPT, (s)ATA, FireWire и прочие. При этом данное устройство имеет разъемы 1 для подключения к конкретной управляющей шине, контроллер 2, обеспечивающий программно-аппаратную логику работы устройства и осуществляющий коммуникацию по шине, и блок активации 3, который может быть выполнен в виде кнопки, сенсора, переключателя. Следует учитывать, что в данном тексте приведен лишь один из схематичных вариантов реализации такого устройства, и техническая реализация может существенно отличаться.
Далее описаны основные этапы обезвреживания вредоносной программы на примере программы-вымогателя (Фиг.2).
1. Пользователь, работая на ПК (21), вводя в него данные и создавая новые документы (26), подвергается заражению (22) программой-вымогателем, требующей у него оплаты некой суммы или выполнение каких-либо других действий для продолжения работы. При этом вредоносная программа отключает или ограничивает работу клавиатуры и мыши, не позволяя тем самым удалить вредоносную программу какими-либо ранее установленными на ПК средствами, продолжить работу и даже сохранить свои введенные данные.
2. Пользователь подключает (23) к ПК устройство (10) активации антивируса. После подключения через стандартный разъем коммуникационной шины происходит следующее:
a. устройство 10 опознается аппаратными средствами компьютера (контроллером шины, низкоуровневой системой вывода-ввода) и текущей загруженной и работающей операционной системой 28, выполняемой процессором ПК в адресном пространстве памяти ПК;
b. текущая работающая операционная система 28, исполняемая аппаратными средствами ПК, посылает соответствующий сигнал на загрузку программы управления этим устройством 10 (драйвера этого устройства).
с. программа управления (драйвер) настраивает устройство 10 для работы в текущей операционной системе 28, делая, в том числе, доступными для использования его аппаратные ресурсы.
3. Пользователь нажимает кнопку (активирует переключатель) на теле устройства 10. Это действие активирует запуск процедуры разблокировки и лечения компьютера, выполняемой на процессоре ПК и в его адресном пространстве, используя следующую последовательность событий:
а. контроллер устройства 10 получает сигнал от переключателя (кнопки), и формирует последовательность команд на коммуникационной шине;
b. команды принимаются аппаратными средствами ПК, к шине которого подключено устройство 10 (в обработке участвуют контроллер шины, система вывода-ввода), и передаются на обработку текущей выполняющейся на процессоре ПК с использованием его оперативной памяти операционной системе 28;
c. операционная система 28, получив данные для обработки, передает их соответствующему драйверу устройства 10, ранее загруженному на этапе 2.b.
d. драйвер устройства получает данные об активации переключателя от операционной системы 28 и оповещает об этом антивирусную программу, работающую на данном компьютере в текущей операционной системе 28.
е. антивирусная программа получает сигнал активации и запускает процедуру разблокировки и лечения компьютера 24. При этом такая активация с помощью стороннего устройства позволяет произвести активацию без применения стандартных средств ввода, которые заблокированы вредоносной программой.
После лечения и разблокировки компьютера пользователь информируется о завершении процедуры, и после этого может извлечь устройство 10. При этом он получает возможность дальнейшей работы 25 без потери своих данных 29, никак не пострадав от программы-вымогателя.
Далее описан алгоритм работы процедуры разблокировки и лечения ПК (Фиг.3).
Процедура разблокировки и лечения компьютера, запускаемая антивирусной программой, производит действия для восстановления полноценной работы пользователя на данном ПК, выполняя при этом следующее:
a. подсистема отслеживания всех существующих окон графического пользовательского интерфейса 31 на момент активации процедуры лечения в операционной системе исследует состояние графической подсистемы операционной системы 32, находит все созданные окна и рабочие столы 33, видимые пользователю, а также процедуры обработки ввода-вывода окон, перехватывающие 34 текущий ввод-вывод пользователя 35, включая их скрытые экземпляры. Среди этих окон находятся как окна обыкновенных программ, так и окна вредоносной программы 36. Информация объединяется в списки 37, которые передаются для дальнейшей обработки.
b. подсистема мониторинга 38 диспетчера процессов ОС 39, выполняющихся на процессоре и оперативной памяти текущего ПК, встроенная в антивирусную программу, производит анализ всех процессов и потоков, выполнявшихся на компьютере на момент заражения, строя модель зависимости процессов друг от друга. Одним из таких процессов является и процесс вредоносной программы 310. На основании собранных данных строится привязка каждого окна, полученного на предыдущем этапе к конкретному процессу и/или иерархии процессов 311.
c. система анализа загруженных модулей 312 анализирует полученные данные о процессах и выявляет в каждом из них загруженные в его адресное пространство 313 модули, участвующие в выполнении процесса. Для каждого модуля с использованием диспетчера файловой системы 314 определяется файл, хранящий его содержимое. Среди этих модулей выявляется и исполняемый модуль вредоносной программы 315. Собранные данные о модулях сохраняются в списки модулей с привязкой к соответствующим им процессам и файлам 316.
d. процедура анализа автоматически запускаемых при старте операционной системы объектов 317, являющаяся частью антивирусного комплекса, осуществляет поиск автоматически выполняемых в процессе запуска операционной системы программ 318. При этом выявляется и ссылка на вредоносную программу 319 при ее наличии, и составляются списки с описанием типа ссылки и ее расположения в конфигурационных файлах ОС 320.
e. процедура анализа собранной информации 321, используя данные, собранные на этапе а, Ь, с, d, выполняет анализ текущей ситуации на основе встроенного алгоритма, создает списки кандидатов в подозрительные и вредоносные объекты. Эти списки передаются системе оценки вредоносности 322, которая на основании содержимого подозрительных объектов и дополнительной базы данных доверенных объектов 323 формирует окончательные списки объектов, признанных вредоносными. При этом могут использоваться дополнительные данные для лечения, хранящиеся в файлах данных, как на установленном компьютере, так и на внешнем активационном устройстве.
f. окончательные списки вредоносных объектов передаются подсистеме изоляции и удаления объектов 325, изолирующей сам объект, и удаляющей из конфигурационных файлов операционной системы ссылки на него, а также удаляет сам вредоносный процесс, порожденный объектом.
Пользователь, активировавший процесс разблокировки и лечения, информируется о завершении процедуры, и после этого может извлечь активационное устройство. При этом он получает возможность дальнейшей работы без потери своих данных, никак не пострадав от программы-вымогателя.
Особенностью процедуры лечения является способность выявления неизвестного ранее вредоносного программного обеспечения, поскольку используется комплексная информация о состоянии системы непосредственно в момент активации вредоносной программы. При этом пользователь выполняет важную функцию информирования (выполняя в данном случае роль эксперта) об активном заражении, т.е. служит триггером запуска процедуры в данной внештатной ситуации. После того, как получен сигнал от пользователя о заражении, данная система анализа позволяет выявить виновника без его предварительного изучения и занесения в вирусную базу данных.
Используемые в этой заявке термины "компонент" и "модуль" относятся к компьютерной сущности, которая представляет собой либо оборудование, либо комбинацию оборудования и программного обеспечения, либо программное обеспечение, либо выполняемое программное обеспечение. Например, модуль может представлять собой, но без ограничения, процесс, выполняющийся на процессоре, процессор, привод жесткого диска, множественные приводы (оптического и/или магнитного носителя), объект, выполнимый модуль, поток выполнения, программу и/или компьютер. В порядке иллюстрации модулем может быть как приложение, выполняющееся на сервере, так и сам сервер. Один или несколько модулей могут размещаться с процессе и/или потоке выполнения, и модуль может размещаться на одном компьютере и/или распределяться между двумя или несколькими компьютерами.
Хотя вышеприведенное описание относится, в целом, к компьютерным инструкциям, которые могут выполняться на одном или нескольких компьютерах, специалистам в данной области техники очевидно, что новый вариант осуществления также можно реализовать совместно с другими программными модулями и/или как комбинацию оборудования и программного обеспечения.
В общем случае, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют определенные задачи или реализуют определенные абстрактные типы данных. Кроме того, специалистам в данной области техники очевидно, что способы, отвечающие изобретению, можно осуществлять на практике посредством других конфигураций компьютерной системы, в том числе однопроцессорных или многопроцессорных компьютерных систем, миникомпьютеров, универсальных компьютеров, а также персональных компьютеров, карманных вычислительных устройств, микропроцессорных или программируемых потребительских электронных приборов и пр., каждый их которых может в ходе работы подключаться к одному или нескольким соответствующим устройствам.
Компьютер обычно включает в себя различные компьютерно-считываемые среды. Компьютерно-считываемые среды могут представлять собой любые имеющиеся среды, к которым компьютер может осуществлять доступ, и включают в себя энергозависимые и энергонезависимые среды, сменные и стационарные среды. В порядке примера, но не ограничения, компьютерно-считываемые среды могут содержать компьютерные носители данных и среды передачи данных. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, сменные и стационарные носители, реализованные с помощью любого метода или технологии для хранения информации, например компьютерно-считываемых команд, структур данных, программных модулей или других данных. Компьютерные носители данных включает в себя, но без ограничения, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другие оптические диски, магнитные кассеты, магнитную ленту, накопитель на магнитных дисках или другие магнитные запоминающие устройства или любой другой носитель, который можно использовать для хранения полезной информации, и к которому компьютер может осуществлять доступ.
Иллюстративная вычислительная система для реализации различных аспектов включает в себя компьютер, причем компьютер включает в себя процессор, системную память и системную шину. Системная шина обеспечивает интерфейс для системных компонентов, в том числе, но без ограничения, системной памяти к процессору. Процессор может представлять собой любой из различных коммерчески доступных процессоров. В качестве процессора также можно применять двойные микропроцессоры и "другие многопроцессорные архитектуры.
Системная шина может представлять собой любую из нескольких типов шинных структур, и может дополнительно подключаться к шине памяти (с помощью контроллера памяти или без него), периферийной шине и локальной шине с использованием любых разнообразных коммерчески доступных шинных архитектур. Системная память включает в себя постоянную память (ПЗУ) и оперативную память (ОЗУ). Базовая система ввода/вывода (BIOS) хранится в энергонезависимой памяти, например ПЗУ, ЭППЗУ, ЭСППЗУ, причем BIOS содержит основные процедуры, которые помогают переносить информацию между элементами компьютера, например, при запуске. ОЗУ также может включать в себя высокоскоростное ОЗУ, например, статическое ОЗУ для кэширования данных.
Компьютер дополнительно включает в себя внутренний привод жесткого диска (HDD) (например EIDE, SATA), причем внутренний привод жесткого диска также можно приспособить для внешнего использования в подходящем корпусе (не показан), привод магнитного флоппи-диска (FDD) (например для чтения с или записи на сменную дискету) и привод оптического диска (например читающий диск CD-ROM или для чтения с или записи на другие оптические носители высокой емкости, например DVD). Привод жесткого диска, привод магнитного диска и привод оптического диска могут быть подключены к системной шине посредством интерфейса привода жесткого диска, интерфейса привода магнитного диска и интерфейса оптического привода соответственно. Интерфейс для реализаций внешнего привода включает в себя, по меньшей мере, одну или обе из технологий универсальной последовательной шины (USB) и интерфейса IEЕЕ 1394.
Приводы и соответствующие компьютерные носители данных обеспечивают энергонезависимое хранилище данных, структур данных, компьютерных инструкций и т.д. Для компьютера приводы и носители обеспечивают хранение любых данных в подходящем цифровом формате. Хотя вышеприведенное описание компьютерно-считываемых носителей относится к HDD, сменной магнитной дискете и сменным оптическим носителям, например CD или DVD, специалистам в данной области техники очевидно, что другие типы носителей, которые считываются компьютером, например zip-диски, магнитные кассеты, карты флэш-памяти, картриджи, и т.п., также можно использовать в иллюстративной операционной среде, и, кроме того, что любые такие носители могут содержать компьютерные инструкции для осуществления новых способов раскрытой архитектуры.
На приводах и ОЗУ может храниться ряд программных модулей, в том числе операционная система, один или несколько прикладные программы, другие программные модули и программные данные. Полностью или частично операционная система, приложения, модули и/или данные также могут кэшироваться в ОЗУ. Также очевидно, что раскрытую архитектуру также можно реализовать с различными коммерчески доступными операционными системами или комбинациями операционных систем.
Пользователь может вводить команды и информацию в компьютер через одно или несколько проводных/беспроводных устройств ввода, например клавиатуру и указательное устройство, например мышь. Устройства ввода/вывода могут включать в себя микрофон/громкоговорители и другое устройство, например ИК пульт управления, джойстик, игровая панель, перо, сенсорный экран и пр. Эти и другие устройства ввода нередко подключены к процессору через интерфейс устройств ввода, который подключен к системной шине, но могут подключаться посредством других интерфейсов, например параллельного порта, последовательного порта ШЕЕ 1394, игрового порта, порта USB, ИК интерфейса и т.д.
Монитор или устройство отображения другого типа также подключен к системной шине через интерфейс, например видео-адаптер. Помимо монитора, компьютер обычно включает в себя другие периферийные устройства вывода, например громкоговорители, принтеры и т.д.
Выше были описаны примеры раскрытой архитектуры. Конечно, невозможно описать все мыслимые комбинации компонентов или способов, но специалисту в данной области техники очевидно, что возможны многие дополнительные комбинации и перестановки. Соответственно, новая архитектура призвана охватывать все такие изменения, модификации и вариации, которые отвечают сущности и объему формулы изобретения. Кроме того, в той степени, в которой термин "включает в себя" используется в подробном описании или в формуле изобретения, такой термин призван быть включительным аналогично термину "содержащий", поскольку "содержащий" интерпретируется при использовании в качестве переходного слова в формуле изобретения.