Принципы действия антивирусных программ
Обычно антивирус действует по схеме: · поиск в базе данных антивирусного ПО сигнатур вирусов · если найден инфицированный код в памяти (оперативной и/или постоянной), запускается процесс карантина и процесс блокируется · зарегистрированная программа обычно удаляет вирус, незарегистрированная просит регистрации, и оставляет систему уязвимой. Для использования антивирусов необходимы постоянные обновления так называемых баз антивирусов. Они представляют собой информацию о вирусах — как их найти и обезвредить. Поскольку вирусы пишут часто, то необходим постоянный мониторинг активности вирусов в сети. Для этого существуют специальные сети, которые собирают соответствующую информацию. После сбора этой информации производится анализ вредоносности вируса, анализируется его код, поведение, и после этого устанавливаются способы борьбы с ним. Чаще всего вирусы запускаются вместе с операционной системой. В таком случае можно просто удалить строки запуска вируса из реестра, и на этом в простом случае процесс может закончиться. Более сложные вирусы используют возможность заражения файлов. Например, известны случаи, как некие даже антивирусные программы, будучи зараженными, сами становились причиной заражения других чистых программ и файлов. Поэтому более современные антивирусы имеют возможность защиты своих файлов от изменения и проверяют их на целостность по специальному алгоритму. Таким образом, вирусы усложнились, как и усложнились способы борьбы с ними. Сейчас можно увидеть вирусы, которые занимают уже не десятки килобайт, а сотни, а порой могут быть и размером в пару мегабайт. Обычно такие вирусы пишут в языках программирования более высокого уровня, поэтому их легче остановить. Но по-прежнему существует угроза от вирусов, написанных на низкоуровневых машинных кодах наподобие ассемблера. Сложные вирусы заражают операционную систему, после чего она становится уязвимой и нерабочей. К сожалению, по прогнозам, в ближайшем будущем работа антивирусных компаний сильно осложнится в связи с тем, что будут сильнее распространяться вирусы с защитой от копирования. Обнаружение, основанное на сигнатурах — это метод работы антивирусов и систем обнаружения вторжений, при котором программа, просматривая файл или пакет, обращается к словарю с известными вирусами, составленному авторами программы. В случае соответствия какого-либо участка кода просматриваемой программы известному коду (сигнатуре) вируса в словаре, программа антивирус может заняться выполнением одного из следующих действий: 1. Удалить инфицированный файл. 2. Отправить файл в «карантин» (то есть сделать его недоступным для выполнения, с целью недопущения дальнейшего распространения вируса). 3. Попытаться восстановить файл, удалив сам вирус из тела файла. Для достижения достаточно продолжительного успеха, при использовании этого метода необходимо периодически пополнять словарь известных вирусов новыми определениями (в основном в онлайновом режиме). Антивирусные программы, созданные на основе метода соответствия определению вирусов в словаре, обычно просматривают файлы тогда, когда компьютерная система создаёт, открывает, закрывает или посылает файлы по электронной почте. Таким образом, вирусы можно обнаружить сразу же после занесения их в компьютер и до того, как они смогут причинить какой-либо вред. Надо отметить, что системный администратор может составить график для антивирусной программы, согласно которому могут просматриваться (сканироваться) все файлы на жёстком диске. Хотя антивирусные программы, созданные на основе поиска соответствия определению вируса в словаре, при обычных обстоятельствах, могут достаточно эффективно препятствовать вспышкам заражения компьютеров, авторы вирусов стараются держаться на полшага впереди таких программ-антивирусов, создавая «олигоморфические», «полиморфические» и, самые новые, «метаморфические» вирусы, в которых некоторые части участки кода перезаписываются, модифицируются, шифруются или искажаются так, чтобы невозможно было обнаружить совпадение с определением в словаре вирусов. Обнаружение, основанное на эмуляции — метод, используемый в антивирусном программном обеспечении, для обнаружения еще неизвестных вредоносных программ. В общем случае, суть метода заключается в выполнения потенциально опасного приложения в эмулируемой среде. Во время эмуляции антивирусная программа отслеживает все действия исследуемого программного обеспечения, что позволяет, на основании внутренних алгоритмов антивирусных программ, оценить степень опасности исследуемого программного обеспечения. На сегодняшний день в индустрии антивирусного программного обеспечения распространены две основные разновидности эмуляции: 1. Эмуляция процессора 2. Эмуляция операционной системы В некоторых случаях, эмуляция позволяет достаточно эффективно противостоять таким технологиям как полиморфизм вредоносных программ, что достигается за счет оценки совершаемых действий, но не программного кода. В настоящее время, существует большое количество платных и бесплатных сервисов для анализа неизвестного программного обеспечения. Данные сервисы используют методы эмуляции для протоколирования событий, происходящих в тестовой системе.
|