способ и система для лечения вредоносных программ, которые препятствуют лечению
Классы МПК: | G06F21/22 путем ограничения доступа к программам или процессам |
Автор(ы): | Павлющик Михаил Александрович (RU) |
Патентообладатель(и): | ЗАО "Лаборатория Касперского" (RU) |
Приоритеты: |
подача заявки:
2007-10-31 публикация патента:
27.07.2009 |
Изобретение относится к антивирусным методам и, более конкретно, к лечению компьютеров от вредоносных программ, которые препятствуют лечению. Изобретение обеспечивает лечение вредоносных программ, препятствующих лечению. Система, способ и машиночитаемый носитель для лечения вредоносных программ в компьютере, имеющем множество копий одной и той же активированной вредоносной программы, где множество копий контролирует наличие других, включают в себя (а) идентификацию наличия вредоносной программы в компьютере; (b) блокирование любых действий, которые разрешают одной активной копии вредоносной программы активировать другую копию вредоносной программы; (с) удаление с постоянного запоминающего устройства файла, содержащего исполняемый код вредоносной программы; и (d) перезагрузка компьютера. Действия включают в себя запрет записи на постоянное запоминающее устройство, запрет записи в системный реестр и/или блокирование активации новых процессов. Блокирование использует драйвер, загруженный в область ядра. Можно использовать сигнатурную идентификацию для обнаружения вредоносной программы. 3 н. и 9 з.п. ф-лы, 11 ил.
![способ и система для лечения вредоносных программ, которые препятствуют лечению, патент № 2363045](/images/patents/101/2363045/2363045.jpg)
![способ и система для лечения вредоносных программ, которые препятствуют лечению, патент № 2363045](/images/patents/101/2363045/2363045-2.jpg)
![способ и система для лечения вредоносных программ, которые препятствуют лечению, патент № 2363045](/images/patents/101/2363045/2363045-3.jpg)
![способ и система для лечения вредоносных программ, которые препятствуют лечению, патент № 2363045](/images/patents/101/2363045/2363045-4.jpg)
![способ и система для лечения вредоносных программ, которые препятствуют лечению, патент № 2363045](/images/patents/101/2363045/2363045-5.jpg)
![способ и система для лечения вредоносных программ, которые препятствуют лечению, патент № 2363045](/images/patents/101/2363045/2363045-6.jpg)
![способ и система для лечения вредоносных программ, которые препятствуют лечению, патент № 2363045](/images/patents/101/2363045/2363045-7.jpg)
![способ и система для лечения вредоносных программ, которые препятствуют лечению, патент № 2363045](/images/patents/101/2363045/2363045-8.jpg)
![способ и система для лечения вредоносных программ, которые препятствуют лечению, патент № 2363045](/images/patents/101/2363045/2363045-9.jpg)
![способ и система для лечения вредоносных программ, которые препятствуют лечению, патент № 2363045](/images/patents/101/2363045/2363045-10.jpg)
Формула изобретения
1. Способ лечения вредоносной программы в компьютере, имеющем множество копий той же самой активированной вредоносной программы, при этом множество копий контролирует существование каждой из них, при этом способ содержит этапы, на которых:
(a) идентифицируют наличие вредоносной программы в компьютере;
(b) затем блокируют любые действия, которые разрешают одной активной копии вредоносной программы активировать другую копию вредоносной программы;
(c) после чего удаляют с постоянного запоминающего устройства код вредоносной программы и ссылки на него;
(d) перезагружают компьютер.
2. Способ по п.1, в котором упомянутые действия включают в себя блокировку записи в постоянную память.
3. Способ по п.1, в котором упомянутые действия включают в себя блокировку записи в системный реестр.
4. Способ по п.1, в котором упомянутые действия включают в себя блокировку запуска новых процессов.
5. Способ по п.1, в котором этап блокировки использует драйвер, загруженный в область ядра.
6. Способ по п.1, в котором этап идентификации использует сигнатурную идентификацию для обнаружения вредоносной программы.
7. Система лечения вредоносной программы в компьютере, имеющем множество копий той же самой активированной вредоносной программы, при этом множество копий контролирует существование каждой из них, при этом система содержит:
(a) модуль обнаружения вредоносной программы для идентификации наличия вредоносной программы;
(b) средство, установленное в области ядра, которое, после того, как идентифицировано наличие вредоносной программы модулем обнаружения вредоносной программы, блокирует действия, которые разрешают одной активной копии вредоносной программы активировать другую копию вредоносной программы;
(c) средство для удаления с постоянного запоминающего устройства кода вредоносной программы и ссылок на него, после того, как средство блокировки блокировало упомянутые действия; и
(d) средство для перезагрузки компьютера, которое перезагружает компьютер после того, как упомянутое средство удаления удалило файл, содержащий исполняемый код вредоносной программы.
8. Система по п.7, в которой упомянутое средство блокировки предназначено для блокировки записей в постоянную память.
9. Система по п.7, в которой упомянутое средство блокировки предназначено для блокировки записи в системный реестр.
10. Система по п.7, в которой упомянутое средство блокировки предназначено для блокировки запуска новых процессов.
11. Система по п.7, в которой упомянутый модуль обнаружения вредоносных программ использует сигнатурную идентификацию для определения вредоносных программ.
12. Машиночитаемый носитель для анализа подозрительных объектов на наличие вредоносных программ и имеющий исполняемую компьютером программу, при исполнении которой выполняют следующие этапы:
(а) идентифицируют наличие вредоносной программы;
(b) затем блокируют любые действия, которые разрешают одной активной копии вредоносной программы активировать другую копию вредоносной программы;
(c) после чего удаляют с постоянного запоминающего устройства код вредоносной программы и ссылки на него; и
(d) перезагружают компьютер.
Описание изобретения к патенту
Область техники
Настоящее изобретение относится к антивирусным методам и, более конкретно, к лечению компьютеров от вредоносных программ, которые препятствуют лечению.
Уровень техники
Сегодня существует множество различных типов компьютерных вредоносных программ, которые представляют серьезную угрозу для компьютеров и компьютерных сетей. Эти вредоносные программы могут инфицировать компьютер и могу распространяться с помощью различных механизмов, таких как электронная почта, интернет-чат, средство оперативной пересылки сообщениями и т.д., таким образом быстро заражая другие компьютеры. Вредоносные программы могут различаться по своему поведению от относительно неопасных (например, эпизодическое отображение пользователю неприятных сообщений) до злонамеренных и катастрофических, включая полное уничтожение данных на жестком диске, что ведет к потери данных и возможной необходимости полного восстановления операционной системы и данных приложений с резервной копии.
Сегодня существует ряд обычных механизмов для определения и лечения вредоносных программ. Эти механизмы описаны, например, в CN 1525333, US 2005/0091538, US 2005/0120238, US 5613002, WO 2004/090733, a также в других источниках. Эти механизмы, главным образом, используют сигнатурную идентификацию вредоносных программ и удаление кода вредоносной программы из оперативной памяти, а также удаление исполняемых файлов, зараженных вредоносными программами, с жесткого диска. Для множества вредоносных программ этого достаточно.
Сравнительно недавним явлением в области написания вредоносных программ является растущий профессионализм писателей вредоносных программ. С момента появления компьютеров, подключенных к сети, и до начала 2000 г. множество вредоносных программ было написано подростками и студентами ВУЗов, причем часто в качестве шутки. Другие вредоносные программы были написаны взрослыми хакерами, которые все же редко преследовали коммерческие цели. В настоящее время эта ситуация резко изменилась. Хотя есть еще много вредоносных программ, созданных непрофессионалами или в качестве шутки, появилась новая категория авторов вредоносных программ - это высококвалифицированные и обученные программисты, которые используют уязвимые места в безопасности операционной системы и сетевых протоколов в целях извлечения выгоды.
Кроме того, появился целый класс вредоносных программ для распространения других типов вредоносных программ, например, использование злонамеренных программ для зомбирования компьютеров для использования в качестве источника рассылки спама и фишинга, использования методов вредоносных программ для кражи личных данных и т.д.
Когда распространяется новая версия вредоносной программы, может пройти от нескольких минут до нескольких часов для того, чтобы обновились базы данных большинства основных поставщиков антивирусных программ и эти изменения распространились к их пользователям. Профессиональные авторы вредоносных программ подписываются на базы данных антивирусных программ и услуг и как только они видят, что их вредоносная программа обнаружена, тут же выпускают новую версию. Это по существу усиливает "гонку вооружений" между поставщиком антивирусных программ и авторами вредоносных программ.
Другой недавний процесс, относящийся к растущему профессионализму написания вредоносных программ - это стремление авторов вредоносных программ писать код, который очень труден в лечении. Ранее создатели вредоносных программ мало заботились об этом аспекте, поскольку для многих непрофессиональных авторов вредоносных программ важнее было распространить вредоносные программы с наибольшей скоростью и заразить максимально возможное количество компьютеров, что являлось своего рода "тестом на зрелость" в сообществе хакеров. С коммерциализацией написания вредоносных программ цели также изменились - профессиональные авторы вредоносных программ часто идут на создание больших кусков кода с тем, чтобы гарантировать, что вредоносные программы, написанные ими, будет не легко вылечить и удалить.
Таким образом, сегодня есть категория вредоносных программ, которая специально разработана для препятствия лечению. Эти вредоносные программы, препятствующие лечению, обычно создают множество собственных копий на одном и том же компьютере, которые одновременнно выполняются, используя различные потоки. Таким образом, в этой схеме вредоносная программа может иметь одну копию своего кода, который инфицировал Internet Explorer (выполняется в одном потоке), и может иметь другую копию своего кода, который инфицировал почтовый клиент (выполняется в другом потоке и загружен в различных частях оперативной памяти компьютера). Когда антивирусное программное обеспечение определяет одну из копий вредоносной программы (например, копию вредоносной программы, которая инфицировала Internet Explorer), антивирусное программное обеспечение удаляет эту копию вредоносной программы и удаляет копию исполняемого файла, которая содержит код вредоносной программы.
Однако для вредоносных программы, препятствующих лечению, этого не достаточно - другая копия вредоносной программы (в этом случае, копия, которая инфицировала почтовый клиент) определяет, что первая копия удалена, и сразу же копирует саму себя в ту часть оперативной памяти, в которой загружен Internet Explorer, повторно инфицируя Internet Explorer и повторно запуская поток первой копии вредоносной программы. Когда антивирусное программное обеспечение встречает вторую копию (копия, которая инфицировала почтовый клиент), происходит с точностью до наоборот - антивирусное программное обеспечение удаляет вредоносный код из почтового клиента в части оперативной памяти и удаляет его копию исполняемого файла, однако поток, который выполняет копию вредоносной программы в Internet Explorer, сразу определяет это и повторно инфицирует почтовый клиент. Это явление знакомо многим людям, которые недавно стали жертвами таких вредоносных программ, препятствующих лечению, так и обычным пользователям, для которых эффект проявляется в том, что который раз, когда пользователь пытается «убить» вредоносную программу, через некоторое время она появляется снова.
Рассмотрим, например, ситуацию, когда компьютер инфицирован вредоносной программой и вредоносный код (содержание исполняемого файла вредоносной программы) загружен в оперативную память, а в реестр включен соответствующий ключ для запуска файла. Рассмотрим ситуацию, показанную на фиг.1. На фиг.1 показаны два злонамеренных процесса, такие как вредоносные программы, обозначенные как МР1 и МР2. Когда антивирусное программное обеспечение убивает злонамеренный процесс 2, злонамеренный процесс 1 восстанавливает файл из собственной резервной копии или из памяти. Затем перезапускается злонамеренный процесс 1. Далее антивирусное программное обеспечение находит ключ реестра, который идентифицирует вредоносный файл, соответствующий злонамеренному процессу 1, и удаляет этот ключ реестра. Однако вредоносная программа снова восстанавливает ключ реестра из свой резервной копии или из памяти. Затем антивирусное программное обеспечение находит злонамеренный процесс 2 и убивает его. Однако злонамеренный процесс 1 мгновенно перезапускает злонамеренный процесс 2. Антивирусное программное обеспечение затем находит злонамеренный процесс 1 и убивает его, но злонамеренный процесс 2 затем перезапускает злонамеренный процесс 1.
В результате антивирусная программа завершает сканирование системы будучи уверенной, что вредоносная программа удалена, однако, как ясно из фиг.1, вредоносная программа остается активной, нанося таким образом поражение антивирусному программному обеспечению.
Соответственно имеется необходимость в уровне техники, в системе и способе для лечения компьютеров от вредоносных программ, препятствующих лечению.
Сущность изобретения
Соответственно техническим результатом заявленного изобретения является обеспечение лечения вредоносных программы, препятствующих лечению.
Согласно способу лечения вредоносной программы на компьютере, имеющем множество копий той же самой активированной вредоносной программы, при этом множество копий контролирует существование каждой из них, способ содержит этапы, на которых: (а) идентифицируют наличие вредоносной программы в компьютере; (b) затем блокируют любые действия, которые разрешают одной активной копии вредоносной программы активировать другие копии вредоносной программы; (с) после чего удаляют с постоянного запоминающего устройства файл, содержащий исполняемый код вредоносной программы; (d) перезапускают компьютер.
В частном варианте осуществления упомянутые действия включают в себя блокировку записи на постоянное запоминающее устройство.
В другом частном варианте осуществления упомянутые действия включают в себя блокировку записи в системный реестр.
Еще в одном из частных вариантов упомянутые действия включают в себя блокировку активации нового процесса. При этом этап блокировки использует драйвер, загруженный в область ядра.
Еще в одном из частных вариантов осуществления этап идентификации использует сигнатурную идентификацию для определения вредоносной программы.
Система лечения вредоносной программы на компьютере, имеющем множество копий той же самой активированной вредоносной программы, при этом множество копий контролирует существование каждой из них, система содержит: (а) модуль обнаружения вредоносной программы для идентификации наличия вредоносной программы; (b) средство, установленное в области ядра, которое, после того как идентифицировано наличие вредоносной программы модулем обнаружения вредоносной программы, блокирует действия, которые разрешают одной активной копии вредоносной программы активировать другую копию вредоносной программы; (с) средство для удаления с постоянного запоминающего устройства файла, содержащего исполняемый код вредоносной программы, после того как средство блокировки блокировало упомянутые действия; и (d) средство для перезапуска компьютера, которое перезапускает компьютер после того, как упомянутое средство удаления удалило файл, содержащий исполняемый код вредоносной программы.
В частном варианте осуществления упомянутое средство для блокировки предназначено для блокировки записей на постоянное запоминающее устройство.
В другом частном варианте осуществления упомянутое средство блокировки предназначено для блокировки записи в системный реестр.
Еще в одном из частных вариантов осуществления упомянутое средство блокировки предназначено для блокировки активации новых процессов. При этом упомянутый модуль обнаружения вредоносных программ использует сигнатурную идентификацию для определения вредоносных программ.
Машиночитаемый носитель для анализа подозрительных объектов на наличие вредоносных программ и имеющий исполняемую компьютером программу, при исполнении которой выполняют следующие этапы: (а) идентифицируют наличие вредоносной программы; (b) затем блокируют любые действия, которые разрешают одной активной копии вредоносной программы активировать другую копию вредоносной программы; (с) после чего удаляют с постоянного запоминающего устройства файл, содержащий исполняемый код вредоносной программы; (d) перезапускают компьютер.
Дополнительные признаки и преимущества изобретения будут установлены из описания, которое следует, и частично будут очевидны из описания и могут быть получены из практического применения изобретения. Преимущества изобретения будут достигнуты и приобретены посредством структуры, конкретно подчеркнутой в написанном описании и формуле, а также в прилагаемых чертежах.
Понятно, что предшествующее общее описание и последующее подробное описание являются примерными и объясняющими и предназначены для обеспечения объяснения заявленного изобретения.
Краткое описание чертежей
Сопровождающие чертежи, которые включаются для обеспечения дополнительного понимания изобретения и включаются в и составляют часть этого описания, показывают варианты осуществления изобретения и совместно с описанием служат для объяснения принципов изобретения.
Фиг.1 показывает результаты лечения вредоносной программы с помощью обычных алгоритмов.
Фиг.2 показывает алгоритм лечения вредоносной программы в соответствии с одним из вариантов осуществления настоящего изобретения.
Фиг.3а показывает результаты лечения вредоносной программы в соответствии с одним из вариантов осуществления настоящего изобретения.
Фиг.3б показывает одну из возможных конфигураций системы, которая воплощает настоящее изобретение.
Фиг.4 показывает в форме блок-схемы отношения между вредоносной программой, препятствующей лечению, и различными системными компонентами.
Фиг.5 показывает антивирусный драйвер, добавленный к операционной системе, в соответствии с одним из вариантов осуществления изобретения.
Фиг.6а и 6в показывают временные графики лечения вредоносной программы с и без настоящего изобретения.
Фиг.7 показывает лечение вредоносного кода, который был внесен в список процессов системных служб.
Фиг.8 показывает процесс лечения вредоносной программы, используя DLL библиотеку, добавленной в системные службы и пользовательские процессы.
Фиг.9 схематично показывает компьютерную систему, в которой может быть выполнено лечение вредоносной программы в соответствии с одним из вариантов осуществления изобретения.
Подробное раскрытие предпочтительных вариантов осуществления
Теперь будут сделаны отсылки на предпочтительные варианты осуществления настоящего изобретения, примеры, которые показываются в сопровождающих чертежах.
Существует множество способов для процессов и потоков определить, выполняется ли их другая копия. Например, зловредный процесс может создать глобальный объект и периодически проверять его существование. Поэтому такой глобальный объект используется для синхронизации между различными копиями одного и того же процесса вредоносной программы. Отображенные в памяти файлы являются другим механизмом, который могут использовать различные копии одной и той же вредоносной программы для поддержания осведомленности о том, что «убит» ли другой процесс. Открытие окна является другим вариантом этой схемы, например, когда окно является скрытым окном или одним из тех, которое имеет все атрибуты окна за исключением того, что оно не отображается на мониторе. В общем, современные операционные системы содержат различные механизмы, которые разрешают многим копиям вредоносной программы поддерживать осведомленность, убита ли другая копия, посредством чего узнают, необходимо ли перезапустить другие процессы.
Программное обеспечения для лечения, которое временно блокирует код вредоносной программы от восстановления «убитой» копии самой себя, может включать в себя блокирование записи в системный реестр, блокирование записи на жесткий диск, блокирование любых попыток модифицировать файлы на жестком диске, блокирование попыток запуска новых процессов или потоков и т.п. Следует отметить, что пока подобное блокирование имеет эффект, «полезным» процессам (с точки зрения пользователя) также не допускается делать такие же вещи, однако в обычной ситуации антивирусная программа оповестила бы пользователя, что «лечение требует перезагрузки системы». Хотя теоретически возможно, что нет необходимости в перезагрузке, риск сохранения вредоносной программы без перезагрузки системы относительно высок, т.к. нет гарантии того, что код вредоносной программы был полностью удален из оперативной памяти, что является чрезвычайно трудной задачей, особенно когда сам код вредоносной программы внедряется в системные процессы или службы, такие как Internet Explorer, ServiceHost и т.д.
Процессы, обсужденные выше, такие как запись в системный реестр, запись на жесткий диск, запуск новых процессов и потоков и т.д., могут блокироваться на системном уровне, используя специальный драйвер или другим подходящим способом. В этом случае, если вредоносная программа пытается восстановить другую копию самой себя, эта попытка просто блокируется.
Как обсуждалось ранее, имеется необходимость в уровне технике в системе и способе для умения обращаться с вредоносными программами, которые специально предназначены для препятствия лечению. Процесс лечения таких вредоносных программ показывается на фиг.2. Как показано на фиг.2, сначала сканируют операционную систему компьютера и обнаруживают вредоносную программу (этап 210) с помощью любого известного способа детектирования вредоносных программ. Самым распространенным таким способом обнаружения вредоносной программы является сигнатурный способ, описанный, например, в опубликованных заявках US 2006/0107055, US 2006/0143713, US 2006/0064755, US 2005/0229254 и патенте US 5765030. Также доступны различные коммерческие программные продукты, которые используют сигнатурный способ обнаружения вредоносных программ, такие как от Norton/Symantec, Лаборатории Касперского, McAfee, Dr.Solomon и т.д. Как будет очевидно специалисту в данной области техники, настоящее изобретение не ограничивается каким-либо конкретным способом обнаружения вредоносных программ.
Как только был идентифицирован файл, который был инфицирован (этап 220), то до начала удаления/изоляции и лечения этого файла блокируются любые действия, которые могут помешать лечению (этап 230). Как например, может блокироваться запись в ветки реестра, может блокироваться запуск новых процессов и потоков, создание нового файла и/или модификация файла и т.д. Как будет понятно специалисту в уровне техники, этот перечень необязательно исчерпывающий и зависит от конфигурации системы и характеристик процессора, другие действия могут также при необходимости блокироваться.
Как только эти действия заблокированы, вредоносная программа может быть подвергнута лечению. Это лечение может выполняться любыми механизмами, известными из уровня техники, например, посредством удаления соответствующих ключей реестра, удаления файла с жесткого диска, удаления вредоносного кода из оперативной памяти и т.д. Как только это выполнено, тогда операционная система перезагружается (этап 240). Перезагрузка ОС гарантирует, что код вируса теперь нет в памяти.
Далее более подробно будет обсуждаться предложенный процесс лечения вредоносной программы, как показано на фиг.3а. Рассмотрим ситуацию, когда система имеет инфицированный файл и соответствующий ключ реестра для этого файла. Файл пытается выполнить два процесса: первый процесс - восстановления удаленного файла из резервной копии, второй процесс - восстановление ключа в реестре. Как обсуждалось выше, сначала используя антивирусную программу, сканируют операционную систему для обнаружения наличия вредоносной программы. Такое сканирование, как отмечалось выше, может выполняться с помощью любых известных способов.
В результате сканирования системы обнаруживается вредоносный файл. Сразу блокируются любые действия, которые могут мешать процессу лечения. Затем инфицированный вредоносный файл лечится или удаляется из операционной системы.
Второй процесс (поток) вредоносной программы, после того как был удален файл, пытается восстановить файл (см. МР1). Но в этом случае он не способен сделать это, т.к. блокируются такие действия, как создание нового файла или запись на диск.
Затем антивирусное программное обеспечение находит ключ реестра, который соответствует инфицированному файлу и удаляет его из реестра. Процесс 1 (МР1) вредоносной программы снова пытается восстановить этот ключ, однако он не может сделать это, т.к. система блокируется от выполнения таких действий, включая (в этом случае) запись в ветки реестра.
Затем антивирусное программное обеспечение находит процесс 2 (МР2) вредоносной программы и идентифицирует его как зараженный. В результате, антивирусное программное обеспечение убивает этот процесс. После этого процесс (МР1) пытается перезапуститься, но в следствие того что блокирован запуск новых процессов, этот процесс не может перезапуститься. Антивирусное программное обеспечение затем убивает процесс 1.
Антивирусное программное обеспечение завершает сканирование системы и, после этапа выполненного выше и как показано на фиг.3а, вредоносная программа действительно удалена из системы.
Фиг.3б показывает одну из возможных конфигураций системы, которая воплощает настоящее изобретение. Как показано на фиг.3в, система включает в себя средство (310) для обнаружения наличия вредоносной программы, которое может, как обсуждалось ранее, быть любым из известных средств для обнаружения вредоносных программ. Система также включает в себя средство (320) для блокирования определенных действий, которые могут мешать эффективному лечению, и средство (330) для лечения, такое как средство для перезагрузки операционной системы из надежной копии.
В системе, показанной на фиг.3б, средство 310 обнаружения вредоносной программы сначала обнаруживает присутствие вредоносной программы. В случае обнаружения инфицированного файла средство 310 затем запускает средство 320 блокировки. Средство 320 блокировки затем выполняет блокировку действий, которые могут помешать лечению вредоносных программ. Это может включать в себя, как отмечено ранее, блокирование любых попыток записи в ветки системного реестра, блокирование запуска новых процессов и потоков, блокирование создания новых файлов и модификацию существующих файлов и т.д. Как только блокируются эти процессы, средство 330 затем осуществляет лечение, которое включает в себя удаление, карантин или дезинфекцию инфицированного файла, как это известно из уровня техники. Также средство 330 затем перезагружает операционную систему, гарантируя тем самым, что вредоносная программа удалена из системы.
Следует также отметить, что элементы 310, 320 и 330 могут быть выполнены аппаратными средствами, программными средствами, встроенными программами или любыми другими путями, в которых исполняемые компьютером операции и программы могут быть воплощены и могут быть сохранены, например, на машиночитаемом носителе.
Фиг.4 показывает блок-схему отношения между вредоносной программой, препятствующей лечению, и различными системными компонентами. Как показано на фиг.4, в компьютерной оперативной памяти (RAM) есть несколько процессов 401, выполняемых в пользовательской области, и ряд системных служб 402, выполняемых в области ядра. Жесткий диск 405 и системный реестр 406 доступны для использования системными драйверами 404. Антивирусное программное обеспечение 403 также выполняется в системной области.
Как показано на фиг.4, вредоносная программа загружает копию своего кода в одну из системных служб 402. Вредоносная программа, препятствующая лечению, также загружает копию исполняемого файла в память для использования системными службами 402, а также копию ключа реестра. Попытка удаления вредоносного кода из памяти является очень трудной, если не невозможной задачей, т.к. попытка модификации кода системных служб может часто привести к сбою или неисправности в работе компьютера.
Фиг.5 показывает один из вариантов осуществления изобретения, где антивирусный драйвер 504 добавляется между системным драйвером 405 и пользовательскими процессами 401 и системными службами 402, так что пресекается и блокируется любая попытка записи в системный реестр 406 или жесткий диск 405. Поэтому драйвер 504 предотвращает восстановление одной копией вредоносной программы другой копии самой себя или копирование исполняемого файла и ключей реестра на жесткий диск и в системный реестр.
Фиг.6а показывает ситуацию, когда используются обычные антивирусные способы для попытки лечения вредоносной программы, препятствующей лечению. Как показано на фиг.6а, вредоносный файл идентифицируется и удаляется в момент времени 2, однако в момент времени 3 вредоносная программа копирует исполняемый файл из оперативной памяти (см. фиг.4 и 5) на жесткий диск в момент времени 3. В момент времени 4 обнаруживается вредоносная программа в системном реестре и ключи удаляются, однако в момент времени 5 вредоносная программа восстанавливает ключи из памяти. Таким образом, когда происходит перезагрузка компьютера в момент времени 7, в момент времени 8 вредоносная программа все еще присутствует в памяти, на жестком диске и в реестре.
Фиг.6б показывает сценарий, когда драйвер 204 используется для блокирования попыток вредоносной программы по препятствованию лечению. Как показано на фиг.6в, после обнаружения и удаления файла, содержащего вредоносную программу в момент времени 2, блокируется попытка вредоносной программы создать другую копию файла на жестком диске в момент времени 3. В момент времени 4 удаляется ключ вредоносной программы из системного реестра. В момент времени 5 блокируется попытка записать другую копию ключа в системный реестр. Таким образом, после перезагрузки в момент времени 7 система очищена от вредоносной программы.
Другим примером вредоносной программы, препятствующей лечению, является вредоносная программа, которая встроена в код одной из системных служб 730, как показано на фиг.7. Подобная вредоносная программа не может быть вылечена обычными средствами без сбоя компьютерной системы. Таким образом, способ, описанный здесь, может быть также использован для лечения подобных вредоносных программ. В этом случае вредоносная программа удаляется с диска, а операционная система загружается с надежного образа, как уже обсуждено ранее с ссылкой на примеры.
Хотя обсуждение выше подразумевало использование драйвера для блокирования любых попыток вредоносной программы противиться лечению, это не является единственным механизмом для решения данной задачи. Другой вариант состоит в использовании динамически загружаемой библиотеки (DLL) (см. 832 на фиг.8), которая действует схожим образом, что и драйвер на системном уровне. Как еще один вариант, дополнительное программное обеспечение может быть внедрено в инфицированный процесс, которое будет работать по схеме, описанной выше, - блокировать любую попытку вредоносного кода копировать себя или снова заразить компьютер до его перезагрузки. В будущем этот вариант для блокирования любой попытки вредоносной программы снова заразить компьютер может быть воплощен как на уровне техники, так и на уровне программного обеспечения.
Например, на фиг.9 показывается компьютерная система, в которой может быть воплощено настоящее изобретение. Компьютерная система включает в себя один или более процессоров, таких как процессор 21. Процессор 21 соединяется с коммуникационной инфраструктурой 23, такой как шина или сеть. Различные программные воплощения описываются в терминах этой примерной компьютерной системы. После прочтения описания станет очевидным специалисту в уровне техники, как воплотить изобретение, используя другие компьютерные системы и/или компьютерные архитектуры.
В состав компьютерной системы также входит системная память 22, которая делится на постоянное запоминающее устройство (ПЗУ) 24 и оперативное запоминающее устройство (ОЗУ) 25. В состав ПЗУ 24 входит БИОС 26. В ОЗУ 25 могут хранится части операционной системы 35, файловая система 36, код приложений 37, а также другие программные модули 37 и программные данные 39. Сама системная память подключена, как и процессор, к системной шине 23.
Помимо процессора и системной памяти к системной шине могут быть подключены и другие устройства, такие как видеоадаптер 48, хост-адаптер 55, интерфейсы жесткого диска 32, магнитного диска 33, оптического диска 34, серийного порта 46, а также сетевой интерфейс 53. Видеоадаптер 48 подключен к монитору 47, способен выводить информацию на свой дисплей. Хост-адаптер 55 позволяет передавать данные между системной шиной 23 и хранилищем данных 57. Интерфейс жесткого диска обеспечивает доступ к жесткому диску, на котором могут хранится операционная система 35, приложения 37, а также другие программные модули 37 и программные данные 39. К интерфейсу серийного порта 46 можно подключать различные внешние устройства, такие как мышь 42, клавиатура 40, а также модем 54. С помощью модема 54, а также используя сетевой интерфейс 53, можно получить доступ к удаленному компьютеру 49, а также приложениям 37, которые там установлены.
Имея вышеописанные предпочтительные варианты осуществления, специалисту в уровне технике будет очевидно, что будут достигнуты конкретные преимущества описанного способа и устройства. Следует также учитывать, что различные модификации, адаптации и альтернативные варианты осуществления могут быть сделаны в объеме и сущности настоящего изобретения. Кроме того, изобретение определяется следующей формулой.
Класс G06F21/22 путем ограничения доступа к программам или процессам