Защита от хакеров корпоративных сетей
Шрифт:
Разумеется, существуют способы распространения и помимо электронной почты. Например, для этой цели можно использовать Интернет. Создается впечатление, что очередное уязвимое место в JavaScript, через которое вредоносный код может воздействовать на компьютеры пользователей, обнаруживается каждую неделю. Не стоит забывать также про Java-апплеты, запускаемые на виртуальных машинах, хотя и с ограниченными полномочиями. Можно сделать шаг назад и использовать ActiveX, который не имеет подобных ограничений, а всего лишь предупреждает пользователя о появлении элемента управления ActiveX неизвестного происхождения. Ведь согласно теории вероятности обязательно найдется пользователь, который нажмет кнопку Proceed (Продолжить), так что этот метод тоже не стоит сбрасывать со счетов.
Ускоренные методы распространения
Чем быстрее распространяется вирус или червь, тем больше вероятность, что он выполнит свое предназначение до момента обнаружения. Ведь чтобы остановить червя, его сначала нужно поймать, проанализировать принцип действия, создать программу для борьбы с ним и снабдить ей всех нуждающихся. Если за это время червь в состоянии распространиться по Интернету и выполнить свою «полезную нагрузку», можно говорить о его повышенной эффективности.
Интересный анализ был опубликован студентом Беркли Николасом Вивером (Nicholas Weaver). Он внимательно изучил основные методы поиска червями новых серверов для заражения и сделал заключение, что новый метод, названный им «списком целей», может значительно ускорить процесс распространения червей. Сущность метода заключалась в том, что вместо хаотичного поиска новых мишеней первая волна червей использует заранее созданный список уязвимых серверов. От размера списка зависит, насколько быстро червь проникнет на все указанные в нем серверы и достигнет своей цели. Для дальнейшего распространения он может уже воспользоваться случайным сканированием. По оценкам Вивера, все серверы, находящиеся в исходном списке довольно большого размера, будут заражены за 15 мин. Другой профессионал в области безопасности считает, что если список (полученный массированным сканированием Интернета) составлен только из уязвимых серверов, время распространения червя уменьшится до минут или даже секунд.
Детальный анализ этого метода можно найти по адресу www.csua.berkeley.edu/~nweaver/warhol.html.
Дополнительные аспекты создания вредоносного кода
Михаил Залевский (Michal Zalewski), также известный как «lcamtuf» (смотрите его сайт, написал потрясающую статью «I Don\'t Think I Really Love You». В ней рассматривались последствия деятельности червя I love you, а также анализировались способы создания максимально эффективного червя. Оригинал статьи можно найти на сайте http://archives.neohapsis.com/archives/vuln-dev/2000-q2/0486.html.
В статье рассматривается проект автора «Samhain», посвященный исследованию и разработке идеального червя. Его свойства описываются следую – щим образом.
1. Транспортабельность – червь должен быть независимым от архитектуры компьютера и функционировать в различных операционных системах (в действительности мы рассматриваем UNIX и подобные ему системы, но существует код, работающий даже в DOS/Win).
2. Невидимость – червь должен использовать техники нелегального проникновения, позволяющие ему скрыться в системе, чтобы как можно дольше оставаться нераспознанным.
3. Независимость – червь должен быть в состоянии распространяться без помощи пользователя. Для этого служит встроенная база данных.
4. Обучаемость – червь должен непрерывно обучаться новым действиям и техникам. При выпуске более новой версии червя все остальные черви должны ее загрузить через специальные коммуникационные каналы (wormnet).
5. Целостность – структура отдельных червей и их коммуникационных каналов должна быть такой, чтобы ее было сложно отследить, изменить или уничтожить (для этой цели используется шифрование и цифровая подпись).
6. Полиморфизм – чтобы избежать распознавания, червь должен быть полностью полиморфным. Другими словами, у него не должно быть ни одного куска постоянного кода.
7. Эффективность – червь должен быть в состоянии выполнить возложенные на него задачи, например заразить указанную систему, загрузить инструкции и после завершения миссии просто исчезнуть из всех систем.
Затем в статье описываются подводные камни, с которыми приходится сталкиваться при реализации каждого из свойств. Что же в результате? lcamtuf забросил свой проект, так и не создав окончательный вариант работающего кода. Будет ли работа когда-нибудь окончена? Как сказано в статье:
«На этом история заканчивается. До очередного дождливого дня и до очередных трех скучающих хакеров. Можно гарантировать, что продолжение будет. Но предсказать, каким будет конец следующей истории, невозможно».
Защита от вредоносного кода
Наилучшей защитой от компьютерных вирусов является осведомленность пользователей. Это обусловлено природой явления – ведь новые вирусы еще не распознаются антивирусными программами. К сожалению, хорошо сделанный вирус может быть настолько «прозрачным», что даже самый наблюдательный пользователь не заметит его присутствия. Кроме того, на такой подвиг, как распознавание, анализ и устранение вируса, способно ограниченное число пользователей. К счастью, существуют инструменты, позволяющие вывести процесс обнаружения и обезвреживания вирусов на новый уровень.
Приоткрывая завесу
Тяжело в учении, легко в бою!
Одной из обязанностей специалиста по информационным технологиям, отвечающего за безопасность, является просвещение пользователей. Пользователи должны уметь самостоятельно идентифицировать подозрительные присоединенные файлы и помнить о недопустимости немедленной активизации присланного исполняемого файла. Для подобного обучения пользователей смелый администратор может использовать свою собственную Троянскую программу. Но к подобным методам недопустимо прибегать без письменного одобрения руководства!
Напишите программу, единственной функцией которой будет отчет о ее выполнении. Она должна указать, на каком компьютере была выполнена и кто там в этот момент работал. Возьмите эту программу (после всестороннего тестирования и устранения дефектов) и отправьте ее всем сотрудникам по электронной почте с привлекательной темой, желательно с адреса, не имеющего отношения к фирме. Тем, кто запустит программу, нужно прочесть лекцию по компьютерной безопасности.
Антивирусное программное обеспечение
Компании, производящие антивирусное оборудование, знают решение практически всех проблем, возникающих из-за вирусов, иногда даже несуществующих. Наиболее популярным способом борьбы является регулярное сканирование системы в поисках известных образцов подозрительного кода. Обнаружение таковых служит одним из первых сигналов для антивирусных программ. К сожалению, таким способом можно обнаружить только известные вирусы, образцами кода которых располагают существующие средства сканирования, а новые вирусы остаются незамеченными. В данном случае можно дать лишь один ценный совет: как можно чаще обновляйте антивирусную программу!
Благодаря Интернету производители антивирусного программного обеспечения имеют возможность раз в несколько часов обновлять образцы кода и предоставлять доступ к их списку всем нуждающимся. Однако это поможет только пользователям, регулярно загружающим и использующим эти обновления!
Данный выше ценный совет прост на словах, но достаточно сложен в реализации. Представьте большую корпоративную сеть, в которой пользователи не могут обновлять антивирусные программы по собственному желанию. Соответственно, сетевой администратор должен загружать из Интернета ежедневные обновления, размещать их на центральном файловом сервере, а затем использовать сценарии, исполняемые при входе пользователя в систему, для обновления антивирусных баз и автоматического запуска сканирования на стороне клиента.
Отдавая должное производителям антивирусных программ, нужно отметить, что они нашли способ справиться с такой проблемой, как недостаток образцов подозрительного кода. Хорошее антивирусное программное обеспечение использует метод, называемый эвристикой, позволяющий сканеру искать код, который подозрительно выглядит. Именно такой способ используется для распознавания неизвестных вирусов. Разумеется, обнаружив нечто подобное, не стоит посылать это другу – слишком грубая шутка. Лучше отправьте вирус одному из многочисленных производителей антивирусных программ для экспертизы и создания образца.