logo search
Анин Б

Как распознать троянскую программу

Большинство программных средств, предназначенных для защиты от троянских программ, в той или иной степени использует так называемое согласование объектов. При этом в качестве объектов фигурируют файлы и каталоги, а согласование представляет собой способ ответить на вопрос, изменились ли файлы и каталоги с момента последней проверки. В ходе согласования характеристики объектов сравниваются с характеристиками, которыми они обладали раньше. Берется, к примеру, архивная копия системного файла и ее атрибуты сравниваются с атрибутами этого файла, который в настоящий момент находится на жестком диске. Если атрибуты различаются и никаких изменений в операционную систему не вносилось, значит в компьютер, скорее всего, проник троянец.

Одним из атрибутов любого файла является отметка о времени его последней модификации: всякий раз, когда файл открывается, изменяется и сохраняется на диске, автоматически вносятся соответствующие поправки. Однако отметка времени не может служить надежным индикатором наличия в системе троянца. Дело в том, что ею очень легко манипулировать. Можно подкрутить назад системные часы, внести изменения в файл, затем снова вернуть часы в исходное состояние, и отметка о времени модификации файла останется неизменной.

Может быть, иначе обстоит дело с размером файла? Отнюдь. Нередко текстовый файл, который изначально занимал, скажем, 8 Кбайт дискового пространства, после редактирования и сохранения имеет тот же самый размер. Несколько иначе ведут себя двоичные файлы. Вставить в чужую программу фрагмент собственного кода так, чтобы она не утратила работоспособности и в откомпилированном виде сохранила свой размер, достаточно непросто. Поэтому размер файла является более надежным показателем, чем отметка о времени внесения в него последних изменений.

Злоумышленник, решивший запустить в компьютер троянца, обычно пытается сделать его частью системного файла. Такие файлы входят в дистрибутив операционной системы и их присутствие на любом компьютере, где эта операционная система установлена, не вызывает никаких подозрений. Однако любой системный файл имеет вполне определенную длину. Если данный атрибут будет каким-либо образом изменен, это встревожит пользователя.

Зная это, злоумышленник постарается достать исходный текст соответствующей программы и внимательно проанализирует его на предмет присутствия в нем избыточных элементов, которые могут быть удалены безо всякого ощутимого ущерба. Тогда вместо найденных избыточных элементов он вставит в программу своего троянца и перекомпилирует ее заново. Если размер полученного двоичного файла окажется меньше или больше размера исходного, процедура повторяется. И так до тех пор, пока не будет получен файл, размер которого в наибольшей степени близок к оригиналу (если исходный файл достаточно большой, этот процесс может растянуться на несколько дней).

Итак, в борьбе с троянцами положиться на отметку о времени последней модификации файла и его размер нельзя, поскольку злоумышленник может их довольно легко подделать. Более надежной в этом отношении является так называемая контрольная сумма файла. Для ее подсчета элементы файла суммируются, и получившееся в результате число объявляется его контрольной суммой. Например, в операционной системе SunOS существует специальная утилита sum, которая выводит на устройство стандартного вывода STDOUT контрольную сумму файлов, перечисленных в строке аргументов этой утилиты.

Однако и контрольную сумму в общем случае оказывается не так уж трудно подделать. Поэтому для проверки целостности файловой системы компьютера используется особая разновидность алгоритма вычисления контрольной суммы, называемая односторонним хэшированием.

Функция хэширования называется односторонней, если задача отыскания двух аргументов, для которых ее значения совпадают, является труднорешаемой. Отсюда следует, что функция одностороннего хэширования может быть применена для того, чтобы отслеживать изменения, вносимые злоумышленником в файловую систему компьютера, поскольку попытка злоумышленника изменить какой-либо файл так, чтобы значение, полученное путем одностороннего хэширования этого файла, осталось неизменным, обречена на неудачу.

Исторически сложилось так, что большинство утилит, позволяющих бороться с проникновением в компьютерную систему троянских программ путем однонаправленного хэширования файлов, было создано для операционных систем семейства UNIX. Одной из наиболее удобных в эксплуатации и эффективных является утилита TripWire, которую можно найти в Internet по адресу http://www.tripwiresecurity.com/. Она позволяет производить однонаправленное хэширование файлов при помощи нескольких алгоритмов, в том числе — MD44, MD55 и SHA6. Вычисленные хэш-значения файлов хранятся в специальной базе данных, которая, в принципе, является самым уязвимым звеном утилиты TripWire. Поэтому пользователям TripWire предлагается в обязательном порядке принимать дополнительные меры защиты, чтобы исключить доступ к этой базе данных со стороны злоумышленника (например, помещать ее на съемном носителе, предназначенном только для чтения).

Средства борьбы с троянцами в операционных системах семейства Windows (95/98/NT) традиционно являются частью их антивирусного программного обеспечения. Поэтому, чтобы отлавливать Back Orifice, NetBus, SubSeven и другие подобные им троянские программы, необходимо обзавестись самым современным антивирусом (например, программой Norton Antivirus 2000 компании Symantec (рис. 2.5), которая позволяет обнаруживать присутствие в компьютерной системе наиболее распространенных троянцев и избавляться от них). Следует регулярно проверять свой компьютер на присутствие в нем вирусов.

Рис. 2.5. Окно антивирусной программы Norton Antivirus 2000

Тем, кто хочет иметь в своем распоряжении утилиту, предназначенную именно для обнаружения троянцев в компьютерах, которые работают под управлением операционных систем семейства Windows, можно посоветовать обратить свои взоры на программу The Cleaner компании MooSoft Development (http://wAvw.homestead.com/moosoft/ cleaner.html). Эта утилита может быть с успехом использована для борьбы с более чем четырьмя десятками разновидностей троянских программ (рис. 2.6).

Рис. 2.6. Основное рабочее окно программы The Cleaner

Обзор средств борьбы с троянскими программами был бы далеко не полным, если обойти вниманием недавно появившиеся на рынке программные пакеты, предназначенные для комплексной защиты от угроз, с которыми сталкиваются пользователи настольных компьютеров при работе в Internet. Одним из таких пакетов является eSafe Protect компании Aladdin Knowledge Systems (демонстрационную версию eSafe Protect можно найти в Internet no адресу www.esafe.com).

Функционально eSafe Protect делится на три компонента — антивирус, персональный брандмауэр и модуль защиты компьютерных ресурсов. Антивирус избавляет компьютер от вредоносных программ благодаря применению антивирусного модуля VisuSafe, сертифицированного американским Национальным агентством компьютерной безопасности. Персональный брандмауэр контролирует весь входящий и исходящий трафик по протоколу TCP/IP, наделяя используемые IP-адреса определенными правами (например, ограничивая доступ в Internet в определенные часы или запрещая посещение некоторых Web-узлов). С помощью окна, представленного на рис. 2.7, осуществляется доступ к конфигурационным настройкам входящих в eSafe Protect компонентов, производится запуск антивируса и дискретно устанавливается степень защищенности компьютерной системы.

Рис. 2.7. Рабочее окно программного пакета eSafe Protect

Для защиты ресурсов компьютера, на котором установлен программный пакет eSafe Protect, создается специальная изолированная область — так называемая песочница. Все автоматически загружаемые из Internet Java-аплеты и компоненты ActiveX сначала помещаются в “песочницу”, где они находятся под неусыпным наблюдением eSafe Protect. Если попавшая в “песочницу” программа попытается выполнить какое-либо недозволенное действие, то оно будет немедленно блокировано. В течение заданного интервала времени (от 1 до 30 дней) каждое приложение, загруженное в компьютер из Internet, проходит “карантинную” проверку в “песочнице”. Полученная в ходе такой проверки информация заносится в особый журнал. По истечении “карантина” приложение будет выполняться вне “песочницы”, однако ему будут дозволены только те действия, перечень которых определяется на основе имеющихся журнальных записей.

Таким образом, по сравнению с другими подобными программными пакетами eSafe Protect обеспечивает наиболее развитые и эффективные средства комплексной защиты от троянских программ. Входящий в состав eSafe Protect антивирус помогает быстро выявлять троянцев и расправляться с ними, используя технологии, которые хорошо зарекомендовали себя при борьбе с вирусами. Персональный брандмауэр блокирует любые попытки связаться извне с проникшими в компьютерную систему троянскими программами. И наконец с помощью “песочницы” своевременно предотвращается внедрение троянцев в компьютеры под видом Java-аплетов и компонентов ActiveX.