АЛЕКСЕЙ БЕРЕЖНОЙ, системный администратор. Главные направления деятельности: виртуализация и гетерогенные сети. Еще одно увлечение, помимо написания статей, – популяризация бесплатного ПО
Создаем ИТ-структуру
устойчивую к вредоносному ПО. Часть 1
Компьютерные вирусы давно перестали быть безобидной шуткой, превратившись в бедствие. Наша задача – построить систему, способную противостоять новым вирусным атакам
Данная статья базируется на реальном опыте внедрения. Причина очень проста: компания с трудом пережила несколько эпидемий подряд. В итоге была проведена реорганизация ИТ-структуры, описанная в этой статье. Бонусом к такой поэтапной трансформации в целях усиления антивирусной защиты явилось повышение уровня безопасности и отказоустойчивости. Не могу сказать, что внедрение прошло на ура, были определенные трудности, в том числе и сопротивление пользователей. Но в итоге все сошлись в одном: лучше примириться с некоторыми мелкими неудобствами, чем с неработоспособностью компьютерной инфраструктуры.
Еще один момент. Все необходимо делать именно в описанной последовательности. Это позволит избежать риска заражения на переходном этапе.
В чем опасность?
Большинство пользователей и даже кое-кто из ИТ-персонала с недоумением относятся к данной проблеме: «Ну подумаешь, вирус. Что в этом такого?» На самом деле проблема гораздо серьезней, чем кажется.
Во-первых, существует реальный риск потерять данные. Большое количество вирусов носит вредоносный характер. Уничтожение данных пользователей, перезагрузка сервера во время выполнения нужных операций, блокировка сервисов и даже выведение из строя аппаратного обеспечения (например, жестких дисков) – вот, пожалуй, не самый полный перечень акций вредительства со стороны вирусного ПО.
Во-вторых, существует масса так называемых троянских программ, написанных с корыстными целями: от кражи паролей и номеров кредитных карт до предоставления прямого несанкционированного доступа в систему посторонних лиц.
В-третьих, даже если какая-то программа, невесть как попавшая в систему, и кажется на первый взгляд вполне безобидной, она все равно что-то делает. Например, скрытно «кликает» по баннерам во время интернет-серфинга, тем самым принося деньги своему создателю. Или тихонько (а иногда и не тихонько) рассылая спам по указанным адресам (в том числе из найденной адресной книги), после чего IP-адрес попадает в черные списки как источник спама. Даже безобидные программы-шутки отнюдь не так безобидны и могут запросто наглухо подвесить систему, что способно обернуться безвозвратной потерей части данных.
Поэтому понятно, что с вирусами, троянскими программами, «шутками» и прочей гадостью (которую мы в дальнейшем будем называть просто вирусами) бороться нужно. Только вот как?
Традиционный способ защиты
Антивирусное программное обеспечение является самым распространенным и весьма действенным средством защиты. Редко можно встретить локальную компьютерную сеть, где бы не использовался антивирус.
До появления систем защиты уровня предприятия на каждый компьютер устанавливалась отдельная автономная копия антивирусной программы. Обновление производилось либо через Интернет, либо (если компьютер не имел доступа к Интернету) с локальных носителей. И системный администратор должен был вручную следить за состоянием антивирусной программы и обновлением антивирусной базы на каждом компьютере сети. Естественно, если сисадмин не успевал уследить за всеми компьютерами, где-то антивирус не обновлялся или просто давал сбой, и в сети поселялся вирус. Тогда приходилось оставаться после окончания трудового дня, выходить на работу в выходные, а то и вовсе останавливать бизнес-процессы компании и вручную «лечить» все компьютеры, чтобы удалить вирус из системы.
Минусы данной системы вполне очевидны. Помимо необходимости ручного мониторинга каждого компьютера в отдельности к общим проблемам добавлялись затраты на интернет-трафик, ведь каждый компьютер обновлялся самостоятельно и даже прокси-сервер со своим кэшированием трафика не всегда выручал в данной ситуации.
Сейчас большинство крупных производителей антивирусного ПО предлагают клиент-серверные решения. Имеем некий выделенный компьютер, на который устанавливается центральный программный модуль, отвечающий за управление локальными антивирусными программами-агентами, а также за обновление антивирусной базы.
На остальных компьютерах сети разворачиваются антивирусные программы-агенты. Каждый из них непосредственно отвечает за защиту компьютера, на котором находится, а также за сбор данных, мониторинг состояния, отчеты. Все обновления и настройки антивирусные агенты получают с антивирусного сервера – компьютера с центральным модулем (см. рис. 1).
Рисунок 1. Обычная схема с корпоративным антивирусом
Подобные решения называют корпоративным антивирусом, или Enterprise системами антивирусной защиты. По такой схеме работает большинство современных систем антивирусной защиты уровня предприятия. Несмотря на внешнее изящество, решение имеет ряд врожденных недостатков, а именно:
- В данном случае вирус может быть распознан только после того, как проник в систему. Действительно, большинство антивирусных агентов «ловит» вирус только после начала активности, когда тот начинает предпринимать какие-либо попытки проявить свою сущность. Даже самые продвинутые антивирусные мониторы, как правило, могут засечь вирус, когда он успел куда-то попасть – например, в кэш веб-браузера или в почтовую базу e-mail-клиента.
- Централизация антивирусных продуктов довольно часто приводит к тому, что при сбоях самого антивирусного модуля вся локальная сеть остается без защиты. Конечно, гораздо легче уследить за одним или несколькими серверами, нежели за десятками, а то и сотнями компьютеров в сети. Но программное обеспечение имеет свойство время от времени давать сбои – например, по причине некорректного обновления. Кроме того, не стоит сбрасывать со счетов возможность выхода из строя самого антивирусного сервера. Например, по причине сгоревшей материнской платы сервера. Оставшиеся без антивирусного обновления компьютеры за день-два могут нахватать столько вирусной дряни, которую потом не вычистишь за несколько месяцев.
- В сети присутствует большое количество объектов, нуждающихся в антивирусном контроле – серверы, рабочие станции, мобильные устройства.
- От технических специалистов требуется постоянно «держать руку на пульсе», отслеживая появление новых вирусов и проверяя их наличие у себя в системе. Конечно, с появлением антивирусных систем уровня предприятия появилась возможность получать оперативные отчеты. Жизнь рядового системного администратора несколько упростилась. Но необходимость следить за большим количеством объектов, которые могут быть подвержены заражению, осталась.
Сейчас все корпоративные антивирусные решения платные. Некоторые поставщики антивирусных продуктов предлагают бесплатные решения для малых сетей на основе децентрализованных схем (на каждый компьютер – автономную копию) с возможностью последующего перехода к централизованной схеме корпоративного антивируса. В качестве такого примера можно привести Comodo Internet Security или Comodo Antivirus [1].
К плюсам можно отнести быстроту внедрения данного решения. Достаточно приобрести антивирусное ПО, установить серверную часть и посредством антивирусной консоли управления «разбросать» агентов по объектам мониторинга.
Как можно улучшить данную систему защиты? Имеется два основных направления:
- увеличение степеней защиты;
- уменьшение числа объектов, которые могут быть подвержены заражению.
Далее мы будем постепенно двигаться по обоим направлениям, чтобы в итоге создать практически неуязвимую для вирусов ИТ-инфраструктуру.
Еще одно важное замечание: мы не будем отказываться от использования обычной схемы защиты сети от вредоносного ПО при помощи корпоративного антивируса. Наша задача – создать надежную систему, и пренебрегать любыми действенными методами защиты неразумно.
Вводим защиту периметра сети
Основной принцип работы данного метода – вводим дополнительную степень защиты. Главный недостаток антивируса, установленного непосредственно на защищаемый объект, – обнаружение вирусной опасности «по факту появления», то есть когда вредоносное ПО тем или иным способом уже попало на охраняемый объект. При наличии соответствующих настроек, если антивирус сможет обнаружить вредоносное ПО, он будет пытаться его обезвредить или заблокировать. Но проблема в том, что большая часть таких вирусов индивидуальна, а посему и неизвестна антивирусным продуктам. Поэтому необходимо решить вопрос о внесении изменений в саму структуру сети, чтобы вредоносное ПО отсекалось до проникновения внутрь локальной сети. То есть ввести защиту периметра сети.
Если проводить аналогию с государством, то антивирусное ПО, установленное на компьютере, – это контрразведка, а защита периметра сети – это пограничные войска. Цели и задачи разные и методы организации тоже разные. И для пограничника, чтобы эффективно защищать границу, необходимо знать возможные пути проникновения нарушителей.
В нашем заурядном случае их два: Интернет (включая FTP и электронную почту) и съемные носители. Несмотря на то что в большинстве компаний служба безопасности косо смотрит и на бесконтрольный доступ в Интернет, оградить современного пользователя от доступа к интернет-ресурсам крайне затруднительно, а если речь идет об электронной почте – то и вовсе нереально. Что же касается использования сменных носителей, то здесь ситуация аналогична, как и в случае с доступом в Интернет: существует ряд пользователей, которым необходимо пользоваться съемными носителями по долгу службы (например, отдел рекламы, бухгалтерия при сдаче отчетности в Пенсионный фонд и т.д.). Есть пользователи, жаждущие поработать вне офиса. Как правило, большинство руководителей российских компаний поощряют переработки (особенно если это не оплачивается), поэтому необходимо предусмотреть вариант, когда пользователи уносят файлы домой и работают с ними на домашних компьютерах.
Для распознавания и защиты от угрозы заражения через Интернет используется антивирусный интернет-шлюз (см. рис. 2).
Рисунок 2. Вводим защиту периметра сети
Выбор для построения шлюза весьма широк. Возможно использовать как платные, так и бесплатные, как аппаратные, так и программные решения. Приведем пример подобной системы. На выделенном сервере под управлением FreeBSD 7.x установлены: прокси-сервер Squid с дополнительным модулем для проверки HTTP-трафика, frox для проверки FTP и почтовый релей на базе Postfix c антиспам-защитой на базе SpamAssasin для защиты корпоративной почты. В качестве антивирусной программы используется бесплатный ClamAV. Но данное решение будет бесполезным, если оставить для пользователей возможность выхода в Интернет напрямую через NAT, минуя нашу антивирусную защиту. Поэтому имеет смысл сразу после ввода антивирусного шлюза закрыть соответствующие порты – например, 80-й порт для доступа по HTTP (web)-протоколу, 110-й порт, используемый POP3 для получения почты с внешних серверов, и 20-21-й порт FTP для закачки файлов.
Требования к аппаратному обеспечению, установленному на данном сервере-шлюзе, крайне небольшие. Например, подойдет Pentium IV 2.40 ГГц с 1 Гб RAM и HDD SCSI RAID 36 Гб. При наличии невысоких требований безопасности и желании сэкономить на нем же можно организовать роутер с функциями брандмауэра для организации выхода в Интернет.
Здесь, наверное, нужно сделать необходимое пояснение. Приводимые в статье примеры успешных решений не являются прямым руководством к действию. Например, вместо BSD-системы может использоваться операционная система с Linux-ядром или OpenSolaris. Применяйте то, что лучше подходит для данной ситуации, и то, что вы лучше знаете.
Основываясь на личном опыте, могу сказать, что подобное решение на базе бесплатных продуктов способно фильтровать от 80 до 95% вирусного трафика. Корпоративному антивирусу остается «позаботиться» об оставшихся вирусах, сумевших пролезть через антивирусный шлюз.
Для усиления надежности в антивирусных шлюзах используют платный антивирус – например, DrWeb, а также специальные антивирусные «железки». Например, NETGEAR ProSecure STM или программно-аппаратный комплекс Cisco ProtectLink Security Solution.
Компьютер – или, правильнее сказать, шлюз для проверки съемных носителей – организуется аналогичным образом. В качестве управляемой системы подойдет, например, Linux OpenSUSE (я в свое время для решения подобных задач использовал версию 11.1), в качестве штатного антивируса – ClamAV с графической управляющей оболочкой KlamAV, входящей в комплект оконного менеджера KDE. Еще необходим пакет Samba, позволяющий превратить компьютер под управлением UNIX-системы в файл-сервер для сети Windows.
Принцип работы очень простой. Пользователи вставляют свои флэшки, USB-диски, DVD-диски и т.д. в проверочный компьютер и запускают соответствующий скрипт, который проверяет на вирусы и перемещает содержимое их носителя в каталог на диске, являющийся общим ресурсом Samba-сервера. После чего пользователи могут извлечь носитель и получить доступ к своим файлам по сети.
Требования к «железу» здесь в первую очередь диктуются возможностью данной платформы работать под управлением Linux, а уже потом – производительностью, разрешением экрана и т.д. Например, материнская плата ASUS P5K и процессор Intel Pentium D, 1 Гб RAM и HDD SATA 160 Гб отлично справлялись с поставленной задачей. Обратите внимание: не на всех материнских платах корректно работает поддержка USB в Linux, поэтому при выборе оборудования необходимо уделить внимание этому вопросу.
Для удобства пользователей таких проверочных компьютеров может быть несколько. И конечно, данное решение будет полностью бессмысленным, если не отключить USB-порты на рабочих станциях. Сделать это можно как посредством GPO-домена Active Directory, так и используя специализированное программное обеспечение – например, Device Lock, или просто в CMOS Setup BIOS (не забудьте при этом установить пароль на BIOS).
Если вы обратили внимание, в качестве ОС антивирусных шлюзов мы ориентируемся на UNIX-платформу. Ответ на этот возможный вопрос лежит на поверхности.
В первую очередь от компьютерных вирусов страдают компьютеры под управлением операционных систем семейства Windows. К сожалению, архитектура этих ОС такова, что позволяет злоумышленнику без особого труда разработать и внедрить вредоносное ПО, мешающее нормальной работе. Компьютеры, работающие под «операционками» семейства UNIX, страдают от вирусных атак гораздо меньше. Частично это объясняется особенностями данных операционных систем, а частично тем, что эти платформы менее популярны, чем Windows, и в настоящее время неинтересны «вирусописателям».
Теоретически в качестве шлюзов можно использовать и решения на базе Windows. Например, сервер под управлением Windows 2003 SP2 R2 Standard Edition и Microsoft ISA Server 2006 в качестве прокси-сервера с установленным на него специализированным антивирусом именно для ISA Server. Но стоит ли овчинка выделки? Продукты от Microsoft традиционно имеют высокую стоимость, плюс больший риск заражения. Допустим, от вирусов, распространяемых через Интернет, данный сервер будет как-то защищен, но остается возможность «подцепить» вирус при использовании USB-носителя или запустив на нем исполняемый зараженный файл.
Что же касается антивирусного шлюза для проверки съемных носителей, то нет никакого смысла использовать аналогичное решение под управлением Windows. Если такой проверочный компьютер сам окажется зараженным, он может начать «награждать» вирусами те носители, которые на нем проверяют. В итоге можно запросто получить совершенно противоположный эффект.
Внедряем гетерогенные решения
Как я уже упоминал ранее, устойчивость системы против вредоносного ПО можно улучшить, введя дополнительные степени защиты, а также снизив количество объектов, подверженных заражению. Компьютеры, работающие под управлением non-Windows операционных систем, гораздо меньше подвержены вирусной опасности. Возникает резонный вопрос: почему бы не использовать эти решения в качестве замены сервисов на базе Win-платформы при организации ИТ-инфраструктуры (см. рис. 3)?
Рисунок 3. Внедряем гетерогенные решения
Действительно, существует довольно большой опыт успешных внедрений, когда дорогостоящие и слабоустойчивые к вирусным атакам решения на базе продуктов Microsoft с успехом меняются на бесплатные и надежные в плане отсутствия вредоносного ПО решения от UNIX-like и других платформ. Какие же сервисы с успехом можно перевести на альтернативную платформу?
- В первую очередь это интернет-шлюз. Я уже упоминал выше о возможности организовать сервер доступа на базе операционной системы FreeBSD прокси-сервера Squid с автоматической антивирусной проверкой на вредоносное ПО с помощью ClamAV. Помимо антивирусной защиты HTTP- и FTP-трафика вы можете организовать подсчет трафика как на уровне брандмауэра, посредством trafd, так и на уровне прокси-сервера, посредством SARG. Кроме этого существует масса возможностей для делегирования полномочий другим сотрудникам ИТ-подразделения, не слишком искушенным в вопросах администрирования UNIX-систем – например, SAMS для Squid или Webmin для всей системы.
- Почтовый сервер. Выше уже приводился пример организации почтового релея с антивирусной проверкой «на лету». Но на UNIX можно создавать прекрасные сервера непосредственно для работы с электронной почтой. Мало того, существующая система E-mail изначально пришла в офисы из мира UNIX. Есть простые и надежные решения, например, на базе того же SMTP-сервера Postfix, POP3/IMAP4-сервера Сourier и веб-интерфейс на базе SquirrelMail.
- Файл-сервер и принт-сервер. Современные UNIX-системы неплохо интегрируются в Windows-окружение, заменяя собой привычные Windows-сервисы. Например, при помощи программного пакета Samba можно организовать надежный, устойчивый к вирусному заражению и при этом бесплатный файловый сервер. В качестве службы принт-сервера можно использовать пакет CUPS или традиционные службы печати UNIX, такие как LPD или LPRng.
- Еще один важный кандидат, который желательно перенести на non-Windows-платформу – система резервного копирования. Корректная актуальная резервная копия – это последняя надежда ИТ-структуры компании выжить после катастрофы, будь то пожар или уничтожение данных компьютерным вирусом. Если же бэкап-сервер будет точно так же уничтожен в момент антивирусной атаки вместе с актуальной резервной копией, восстановить те или иные данные будет уже неоткуда.
По поводу перевода на альтернативную платформу рабочих станций. Это непростая и уже набившая оскомину тема. Дело в том, что если ИТ-структура с самого начала «заточена» именно под продукты от Microsoft, перейти на альтернативные решения будет очень непросто. Системному администратору придется решать множество проблем: от поиска и адаптации аналогов существующего ПО до переобучения пользователей. Причина заключается в том, что идеология построения ИТ-структуры, целиком использующей программное обеспечение на UNIX-платформе, совсем иная.
Опыт показывает, что наиболее хорошо переносят переход на другую платформу те организации, в которых на компьютерах пользователей установлен минимум программного обеспечения, а работа с базами данных и документооборотом выполняется посредством централизованных приложений, использующих веб-интерфейс или другие средства удаленной работы (например, простые консольные приложения). «Толстые клиенты» при этом используются довольно редко. Офисные пакеты и прочий софт в таких компаниях также используют, но их роль чаще всего вспомогательная. Например, установлена централизованная система документооборота с веб-интерфейсом, а пакет OpenOffice используется для мелких задач типа написания заявления на отпуск.
В случае, когда на компьютерах пользователей, работающих под Windows, установлена масса программ, вот так взять и все заменить просто не получится. Но все равно и здесь есть возможности перевести часть рабочих мест под управление альтернативных систем. Например, компьютеры, которые 90% времени используются как пишущие машинки, и веб-терминалы.
Стоит заметить, что мотивация перехода на альтернативные платформы повышается, когда компания принимает решение избавиться от пиратского ПО. Во-первых, резко сокращается количество программ, подлежащих адаптации на новой платформе, так как за все программное обеспечение приходится платить; во-вторых, руководство компании начинает более спокойно относиться к «неудобствам» пользователей (а также некоторых сотрудников ИТ-подразделений) при освоении нового программного обеспечения.
Организуем систему резервного копирования
Как я уже писал ранее, система резервного копирования (или, как ее еще называют, бэкап-система) является последней надеждой в случае, если вирус сумеет нанести серьезные повреждения – например, уничтожит дисковый раздел или удалит данные. Кроме того, при серьезном заражении иногда имеет смысл не лечить систему, а просто восстановить из резервной копии. Как я уже писал выше, UNIX-системы гораздо меньше подвержены риску со стороны вредоносного ПО. Поэтому выбор операционной не в пользу MS Windows вполне очевиден. Сейчас достаточно неплохих систем резервного копирования, как платных, так и бесплатных, работающих на платформе UNIX.
- Из платных систем резервного копирования, работающих под Linux, стоит упомянуть BrightStor ARCserve Backup и HP Data Protector Express.
- Из бесплатных систем существует множество интересных и неплохо работающих продуктов – например, Bacula [2] или BackupPC [3].
- Существуют бесплатные усеченные версии коммерческих программ. Например, HP Data Protector Express Single Server Edition, поставляемый в комплекте с накопителями HP Storage Works LTO Ultrium или Arkeia Smart Backup, бесплатен для пользователей Linux, но ограничен пределом в 50 Гб архивируемой информации [4].
Но иногда все-таки бывает ситуация, когда выбор системы резервного копирования заранее предрешен и базируется на основе Windows-платформы. Причины этому могут быть самые разные: от централизованной закупки ПО до наличия в штате специалистов по определенным продуктам. Тогда вам необходимо организовать резервное копирование на съемные носители. В качестве съемных носителей при создании систем резервного копирования уровня предприятия традиционно используют ленточные картриджи. Исходя из личного опыта я бы рекомендовал остановиться на LTO Ultrium. Они просты в эксплуатации, при надлежащих условиях эксплуатации способны достаточно долго хранить записанную информацию, и для их записи требуется специальное программное обеспечение, поэтому заразить файлы на ленточном носителе не удастся.
Некоторые программы резервного копирования используют встроенный антивирус. Например, BrightStor ARCserve Backup может при резервировании выполнять антивирусную проверку при помощи eTrust Antivirus. На выходе можно получить чистую от вирусов резервную копию. Правда, такая проверка замедляет сам процесс резервного копирования.
Помимо резервного копирования данных настоятельно рекомендуется делать полный снимок образа серверов и критически важных компьютеров, хотя бы системных разделов. Иногда гораздо быстрее и правильнее откатиться из резервной копии, чем длительное время пытаться вылечить зараженный сервер.
Примеры продуктов для создания образов дисков:
- Acronis TrueImage и аналогичные ему решения. Замечательное средство резервного копирования как целиком разделов, так и выборочно файлов. Поддерживает копирование системного раздела «на лету», без остановки сервера.
- На основе бесплатных решений: PartImage [5] или Clonezilla [6], которые представляют собой загрузочные Live-CD. Минус в том, что для копирования нужно останавливать сервер, что может быть проблематично из-за остановки бизнес-процессов, зависящих от работы этого сервера.
После внедрения грамотно спланированной системы резервного копирования можно быть уверенным в том, что даже в результате серьезных повреждений мы сможем восстановить как данные, так и систему.
***
Введение дополнительной степени контроля в виде периметра сети, переход на гетерогенные системы с целью снижения количества объектов, критичных к заражению, а также введение в строй системы резервного копирования значительно повышают устойчивость ИТ-структуры к заражению. При этом мы не отказывались от применения традиционных средств защиты в виде корпоративного антивируса. В следующей части будет рассмотрено внедрение терминальных решений и тонких клиентов с целью повышения отказоустойчивости.
Продолжение статьи читайте в спецвыпуске «Безопасность».
- Страничка сайта Comodo со свободным ПО – http://www.comodo.com/products/free-products.php.
- Яремчук С. Настройка Webacula. Веб-интерфейс к Bacula. //Системный администратор, №12, 2009 г. – С. 76–79.
- Маркелов А. Linux на страже Windows. Обзор и установка системы резервного копирования Backup PC. //Системный администратор, №9, 2004 г. – С. 2–6 (http://samag.ru/archive/article/332).
- Бережной А. Организуем систему резервного копирования для малого и среднего офиса. //Системный администратор, №6, 2009 г. – С. 14–23.
- Сайт программы PartImage – http://www.partimage.org.
- Сайт программы Clonezilla – http://www.clonezilla.org.