Контакты
Подписка
МЕНЮ
Контакты
Подписка

Простой и эффективныйспособ защиты от вредоносного ПО

Простой и эффективныйспособ защиты от вредоносного ПО

В рубрику "Защита информации" | К списку рубрик  |  К списку авторов  |  К списку публикаций

 

Простой и эффективный способ защиты от вредоносного ПО

А.Ю.Щеглов
Д.т.н., проф.
ЗАО «НПП «Информационные технологии в бизнесе»

Из материалов, опубликованных 13.03.2009 на сайте www.itsec.ru: «В 2008 году более 10 миллионов пользователей пострадали от кражи персональных данных».

«Во второй половине 2008 года количество компьютеров, зараженных вредоносными программами для кражи персональных данных, увеличилось на 800%. Компания Panda Security объявила о результатах, полученных в ходе всестороннего исследования проблемы кражи персональной информации. Исследование было проведено собственной лабораторией PandaLabs по анализу и обнаружению вредоносных программ. В течение 2008 года было проанализировано 67 миллионов компьютеров. Экстраполируя полученные результаты, было установлено, что в 2008 году более 10 миллионов пользователей во всем мире были инфицированы вредоносными программами, способными осуществлять кражу персональных данных….

Результаты исследования говорят о тревожных данных: 35% ПК, зараженных данным типом вредоносного ПО, использовали обновленное антивирусное программное обеспечение. Антивирусные лаборатории получают огромное количество новых образцов вредоносного ПО каждый день (свыше 30 000 новых образцов ежедневно, согласно PandaLabs)…

Луис Корронс, технический директор PandaLabs: "В 2009 году мы ожидаем рост количества вредоносного ПО для кражи персональной информации на 336% ежемесячно, что приведет к значительному росту прибылей тех кибер-преступников, которые используют подобные методы. Мы должны быть осведомлены об опасности со стороны вредоносных программ, осуществляющих кражу персональных данных, и защитить себя от возможных потерь, как временных, так и денежных".

Выдержки из новости, опубликованной 04.12.2008 на сайте www.securitylab.ru «F-Secure: замечен рекордный рост количества злонамеренного ПО». Компания F-Secure выпустила отчет за второе полугодие 2008 года. Согласно отчету, в 2007 году количество обнаружений злонамеренного ПО увеличилось вдвое, в 2008 году эта цифра была утроена, см. рис.1.



В данном же исследовании также приведена статистика добавления сигнатур за последние годы, см. табл.1.


Таблица 1.

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

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

Действительно (см. табл.1), вирусы обнаруживаются на основании текущей базы сигнатур. Если же из 1500000 обнаружений вирусов база увеличивается на 1000000 сигнатур, то какова же реальная эффективность сигнатурного анализа?

При этом ситуация усугубляется катастрофическим ростом количества вредоносного ПО для кражи персональной информации (ведь, «где тонко - там и рвется», была бы эффективной защита, не было бы столь угрожающей статистики роста объемов вредоносного ПО, проиллюстрированной на рис.1 и в табл.1). Мы уже не говорим об ином аспекте эффективности антивирусного ПО – о дополнительной загрузке вычислительного ресурса защищаемого компьютера. При сохранении существующей тенденции роста объемов баз сигнатур, неминуемо наступит время, когда все компьютерные ресурсы начнут работать исключительно на обеспечение компьютерной безопасности, либо от сигнатурного анализа в той или иной мере придется отказаться.

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

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

Если же говорить об альтернативных способах занесения вредоносной программы на компьютер, то и их, на самом деле, не так много. Если не углубляться в детали, не меняющие сути вопроса, то большинство способов заражения вредоносной программой сводится либо к модификации существующих исполняемых файлов, библиотек, драйверов (в том числе, и на системном диске), либо просто к занесению вредоносной программы (как правило, в виде исполняемого файла) на компьютер. В зависимости от способа занесения вредоносной программы на компьютер, реализуется и ее запуск, либо он осуществляется автоматически (например, это характерно для компаньон-вирусов («companion»), а также для замещающих («overwriting»), паразити­ческих («parasitic») вирусов), либо пользователем, что характерно, в первую очередь, для вирусов-червей. Чтобы «заставить» пользователя запустить внедренный исполняемый файл, ему, как правило, присваивают имя, которое так или иначе может поспособствовать запуску пользователем вредоносной программы.

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

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

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

Теперь о технической реализации описанного решения в КСЗИ «Панцирь-К» для ОС Windows 2000/XP/2003 (разработка ЗАО «НПП «Информационные технологии в бизнесе»).

Прежде всего, в двух словах, о ключевых особенностях реализации рассматриваемых механизмов защиты в КСЗИ «Панцирь-К».

В КСЗИ реализованы следующие схемы задания разграничительной политики доступа к ресурсам:

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

Таким образом, в качестве субъекта доступа может рассматриваться либо только пользователь, либо только процесс, либо «пара» – процесс и пользователь. Нас далее будет интересовать реализация разграничительной политики доступа к ресурсам для субъекта процесс. Это важно тем, что при задании разграничений для процессов, они будут действовать на всех пользователей, включая системных.

В нескольких словах об особенностях интерфейса. Права доступа назначаются не объектам (в качестве атрибутов), а субъектам (в качестве их прав доступа). Настраиваются всего три типа доступа: чтение, запись, выполнение. Остальные типы доступа (удаление, переименование, создание и т.д.) КСЗИ устанавливаются по умолчанию на основании заданных настроек. Для настраиваемых типов доступа может быть задана разрешительная (Ресурсы, разрешенные для…), либо запретительная (Ресурсы, запрещенные для…) политика. Субъект (для решения рассматриваемой нами задачи защиты) «Процесс» задается своим полнопутевым именем, могут также использоваться маски и регулярные выражения. Для каждого субъекта устанавливаются его права доступа (разрешения или запреты по трем типам доступа) к объектам, указываемым своими полнопутевыми именами, масками, либо регулярными выражениями.

Интерфейс механизма разграничения прав доступа к файловым объектам (локальным и разделенным в сети, на жестком диске и на внешних накопителях), реализованного в составе КСЗИ «Панцирь-К» для ОС Windows 2000/XP/2003, представлен на рис.2.

 


Теперь о решении рассматриваемой задачи защиты. Она решается при настройках механизма защиты КСЗИ, представленных на рис.2. Рассмотрим эти настройки. Видим, что для всех процессов (субъект доступа задан маской «*») в качестве исполняемых в системе заданы (определены, как «Ресурсы, разрешенные для выполнения», см. рис.2) файлы с определенным набором расширений – эти объекты задаются масками: *.exe, *.sys и т.д. Т.е. в системе можно будет выполнить только файлы с заданными расширениями. Определив же эти же объекты (и еще некоторые дополнительно, например *.com, *.bat) в качестве «Ресурсов, запрещенных для записи», см. рис.2, мы достигаем невозможности модификации существующих файлов с заданными расширениями (определенных нами в качестве исполняемых), их переименования, любым способом создания новых файлов с заданными расширениями.

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

В порядке замечания отметим, что выявление необходимых для запуска исполняемых файлов не вызывает никаких проблем. Если при настройках механизма защиты КСЗИ, представленных на рис.2, какое-либо приложение, установленное на компьютере, не запустится, достаточно взглянуть в соответствующий журнал аудита из состава КСЗИ, в который будет занесена запись об отказе в запуске соответствующего исполняемого файла. Маску данного исполняемого файла следует соответствующим образом добавить в интерфейсе КСЗИ, см. рис.2.

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

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

Приведем одну из «свежих» новостей на эту тему.

Из материалов, опубликованных 29.07.2009 на сайте www.itsec.ru: «Самозапускающееся вредоносное ПО намного опаснее, чем червь Conficker».

«Исследователи McAfee также установили, что за 30 дней самозапускающееся вредоносное ПО заразило более 27 млн файлов. Данное ПО использует особенности Windows, позволяющие запускать приложения автоматически, не требуя от пользователя даже клика мышкой для активации программы. Оно наиболее часто распространяется через USB-брелоки и другие устройства для внешнего хранения информации. Количество обнаружений данного ПО превзошло даже показатели печально известного червя Conficker на 400%, что делает самозапускающееся вредоносное ПО угрозой №1 во всем мире».

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

Настройки механизма защиты КСЗИ в рассмотренных предположениях представлены на рис.3.

 



Рассмотрим, что принципиально изменилось в настройках, приведенных на рис.3. Как видим, теперь возможность исполнения файлов определяется не только их расширениями, но и их местом расположения – исполнять файлы мы разрешили только из папок Windows и Program Files загруженной ОС. При этом реализована разрешительная разграничительная политика – исполнение файлов из каких-либо иных мест (в том числе, и с внешних накопителей) невозможен. Задача защиты решена в полном объеме.

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

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

Опубликовано: Сайт ITSec.Ru-2009

Приобрести этот номер или подписаться

Статьи про теме