Самоучитель
системного администратора

9.4. Защита от вредоносных программ

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

Эти программы позволяют предупредить запуск вредоносного кода (антивирусный компонент), исключить невидимую установку в систему кодов, которые могут красть данные или выполнять иные задачи (трояны, руткиты — объединяют термином malware--программы от английских терминов malicious software). Обычно в такие продукты также включены средства контроля оборудования и программ, предупреждения вторжений (контроль сетевого трафика) и другие функции.

На рис. 9.18 представлена программа Symantec Endpoint Protection, которая помимо функций антивирусной защиты включает современный межсетевой экран и средства обнаружения атак и вторжений. Программа способна обнаруживать клавиатурные шпионы; блокировать хосты, осуществляющие атаки; маскировать операционную систему (подменять типовые ответы на контрольные пакеты IP). В ней содержатся опции, включавшиеся ранее только в специализированные программы, например, защита от подмены MAC-адреса, интеллектуальный контроль протоколов DHCP, DNS, обнаружение руткитов и т. д.

Рис. 9.18.
Интерфейс программы Symantec Endpoint Protection

Особенности эксплуатации антивирусных программ

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

Следует особо тщательно подходить к выбору программ, предназначенных для антивирусной защиты контроллеров домена, почтовых и других серверов — часть файлов в таких системах должна быть исключена из проверки. При этом некорректная настройка антивирусной защиты может не только снизить производительность системы, но даже и нарушить ее функционирование. Общие рекомендации по исключаемым из проверки папкам и типам файлов можно почерпнуть из KB822158 (http://support.microsoft.com/kb/822158). Но следует иметь в виду, что, например, для большинства серверных продуктов Microsoft есть рекомендации по настройке антивирусных программ (например, для Team Foundation Server 2010 и Team Foundation Server Proxy 2010 — http://support.microsoft.com/kb/2636507, для кластеров — http://support.microsoft.com/kb/250355, для Microsoft Forefront Client Security — http://support.microsoft.com/kb/943556 и т. д.).

График обновлений баз

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

Внимательность пользователя

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

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

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

  • по умолчанию использовать оформление письма в виде "только текст" — неформатированное послание принципиально не может содержать никакого опасного кода;
  • не открывать любые вложенные в письмо файлы. Если возникает необходимость отправки вложения, то следует предварительно письмом в формате "только текст" предупредить адресата о предстоящей отправке.

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

Лечение вирусов

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

Некоторые вирусы блокируют запуск антивирусных программ (если вирус уже внедрился в систему с устаревшей базой данных о вирусах). В этом случае нужно постараться выяснить название вируса, загрузить утилиту, которая позволит устранить внесенные им в систему изменения, после чего можно будет загрузить обновления и выполнить полную проверку системы. Для установления имени вируса следует воспользоваться сканированием системы, например, с дискеты или посредством онлайнового антивирусного сервиса. Практически все крупные производители антивирусных продуктов создали подобные службы. Например, Symantec Security Check (http://security.symantec.com/sscv6/default.asp?langid=ie&venid= sym), Trend Micro (http://housecall.trendmicro.com/housecall/start_corp.asp), Panda (http://www.pandasecurity.com/activescan/index/) и т. д. При работе в составе локальной компьютерной сети можно воспользоваться также возможностью антивирусных программ осуществлять проверку сетевых ресурсов.

Если антивирусная программа не установлена, то следует первоначально провести проверку на вирусы, используя заведомо "чистое" программное обеспечение. Как правило, все антивирусные пакеты имеют версии программ для сканирования и лечения системы, которые можно запустить в режиме командной строки. Эти версии можно бесплатно загрузить с соответствующего сайта изготовителя. При проверке необходимо быть уверенным, что в памяти компьютера отсутствуют вирусы. Для этого система должна быть загружена, например, с заведомо чистой дискеты или с компакт-диска.

После ликвидации вирусов нужно установить антивирусную программу и обновить ее данные о вирусах.

Защита от вторжений

Антивирусные программы проверяют файлы, сохраняемые на носителях, контролируют почтовые отправления и т. п. Но они не могут предотвратить атак, базирующихся на уязвимостях служб компьютера. В таких случаях опасный код содержится в передаваемых по сети данных, он не хранится в файловой системе компьютера.

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

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

Программы-шпионы. "Троянские кони"

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

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

Существует специальный класс программ, специализированных на поиске троянов. В качестве примера можно привести Ad-aware от компании LavaSoft, которую можно найти на сайте http ://www.lavasoftusa.com/. Такие программы ориентированы на поиск следов троянов (ключей в реестре, записей на жестком диске и т. п.) и особенно полезны при выезде администратора в другую организацию для осуществления технической поддержки. Объем файлов установки позволяет быстро загрузить их из Сети и оперативно очистить компьютеры клиентов от вредоносных кодов в случае обнаружения непредвиденных действий и т. п.

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

Поскольку администраторам достаточно часто приходится самостоятельно заниматься поиском троянских программ, опишем основные способы их автоматического запуска.

Вредоносный код может быть запущен, используя:

  • файлы autoexec.bat, config.sys: вариант используется нечасто, поскольку новые операционные системы обычно не учитывают параметры этих файлов;
  • файл win.ini: хотя этот файл сохраняется в целях обратной совместимости, но включение программ в строки run и load позволяет обеспечить их запуск системой;
  • папку Автозагрузка для всех пользователей и профиля данного пользователя: достаточно просто проверить содержимое данной папки, чтобы обнаружить такую программу;
  • ключи реестра, описывающие автоматически загружаемые программы1:


Порядок загрузки программ из этих ключей следующий:

Администратор домена через групповую политику при старте системы может отключить автоматический запуск программ, определенный в параметрах Run и RunOnce. Для этого используется ветвь Конфигурация компьютера | Административные шаблоны | System | Logon | с параметрами Do not process... и аналогичная ветвь для пользовательской части политики. Одновременно необходимые программы могут быть назначены для автозагрузки через параметр групповой политики. Эти значения записываются на компьютере в ветвях.

  • Browser Helper Object (BHO): в Windows имеется возможность встраивать в Internet Explorer специально разработанные программы, призванные расширить функциональность обозревателя. Поскольку данные программы имеют практически неограниченные права доступа к локальной системе, хакеры часто используют эту технологию для отслеживания действий пользователя, для показа рекламы или перенаправления на порносайты и т. п.

Эти программы подключаются через ветвь реестра по их GUID

Поскольку среди таких программ присутствуют и "полезные" расширения, то при анализе системы необходимо найти в реестре программу, зарегистрировавшую данный GUID. Помочь в быстром поиске BHO могут такие утилиты, как HijackThis (http://www.spywareinfo.com/~merijn/files/hijackthis.zip);

  • некоторые другие ключи, которые обычно не приводятся при описании возможных вариантов автозапуска программ, однако возможность использования которых также нельзя исключать:


    Примечание

    Автору не раз приходилось сталкиваться с ситуациями, когда запуск вредоносного кода тщательно маскировался: зараженная программа создавала ничем не выделяющийся процесс, который и пытался активизировать собственно вирус. В подобных случаях помогут утилиты, отображающие иерархию процессов системы (рис. 9.19).

Рис. 9.19.
Программа Process Explorer позволяет увидеть иерархию запущенных в системе процессов

  • запуск программ через назначения в расписании: вариант запуска, легко обнаруживаемый простым просмотром назначенных заданий;
  • ActiveX — вариант используется не так часто, поскольку в современных ОС для установки ActiveX требуется явное согласие пользователя при наличии у модуля электронной подписи. Кроме того, в любой момент можно просмотреть установленные модули (Свойства обозревателя | вкладка Общие | Параметры | кнопка Просмотр объектов) и удалить ненужные;
  • службы и драйверы — установленный в виде нового драйвера или службы сторонний код обычно трудно обнаружить, поскольку пользователю системы необходимо точно знать собственную настройку и список драйверов устройств. Например, таким способом устанавливалась одна из версий защиты компакт-диска от копирования. Кроме того, злоумышленники могут скрыть исполняемый код из отображаемых процессов системы, тем самым не давая повода сомневаться в надежности системы. Обнаружить такой код крайне сложно. Нужно использовать специализированные средства (если программа защиты хоста не блокирует код) по обнаружению руткитов, например, RootkitRevealer — http://technet. microsoft.com/ru-ru/sysinternals/bb897445.
    Примечание

    Руткит (rootkit) — это программа, использующая технологии маскировки своих файлов и процессов. Эта технология широко используется и не только злоумышленниками. Например, антивирусная программа (Kaspersky Antivirus) использует эту технологию для сокрытия своего присутствия при чтении NTFS-данных.

Генерация списка автозагружаемых программ

Список автоматически загружаемых программ можно редактировать при помощи утилиты msconfig (рис. 9.20). Программа показывает как элемент автозагрузки, так и путь его запуска и позволяет отключать загрузку элемента.

Рис. 9.20.
Окно программы msconfig

Безопасность приложений

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

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

Проконтролировать действия установленных программ практически невозможно. Наиболее рациональный выход — это использование ПО с открытым кодом, поскольку залогом его безопасности является независимая экспертиза. Но в силу объективных обстоятельств это возможно далеко не всегда. Поэтому следует придерживаться нескольких принципов:

  • ограничьте минимумом количество программ, установленных на серверах и станциях;
  • используйте средства контроля запуска программного обеспечения;
  • исключите возможность передачи данных с серверов в сеть Интернета (заблокируйте, например, по их IP-адресам);
  • по возможности, используйте программы анализа поведения.

Средства контроля запуска программного обеспечения

Во-первых, необходимо добиться, чтобы на предприятии существовал единый фонд дистрибутивов, чтобы все установки программ на рабочие станции и серверы выполнялись только из проверенного источника.

Во-вторых, необходимо включать средства контроля запуска программ. Максимально безопасный вариант — запретить запуск любых программ по умолчанию и создать исключения: те программы, которые необходимы для работы. Контроль запуска программ можно реализовывать через групповые политики (вариант описан в главе 6), но более тонкие настройки можно выполнить, применяя программы защиты хоста. На рис. 9.21 показан пример выбора параметров, которые можно использовать при формировании правил запуска в программе Symantec Endpoint Protection. При помощи использования подобных настроек — контроля доступа к параметрам реестра, к файлам и папкам, попыткам запуска или прекращения процесса, загрузки библиотек — можно очень точно настроить правила разрешения и блокирования.

Рис. 9.21.
Выбор критериев правил контроля запуска ПО

Неизменность системы

Одним из способов защиты системы от вредоносного кода является запрет на внесение изменений на локальный диск. Традиционный совет для тех, кто не хочет "подхватить" что-то в Интернете, заключается в загрузке с какого-либо LiveCD при путешествиях по Сети. Кстати, Microsoft подготовила специальную модификацию для Windows, предназначенную для Интернет-кафе и игровых клубов, которая возвращает состояние системы к начальному после каждой перезагрузки.

Аналогичные решения присутствуют и среди бесплатных продуктов. Например по адресу http://www.bitdisk.ru/ доступна программа BitDisk, которая также может контролировать запись изменений во время работы системы. Бесплатная версия программы после перезагрузки системы возвращает состояние к тому моменту, на котором эта функция была включена (платная версия позволяет переключаться между режимами без перезагрузки и выбирать режимы сохранения изменений на локальный диск).


1Параметры RunServices и RunServicesOnce не используются в новых версиях ОС.


Рейтинг@Mail.ru