Rambler's Top100
Статьи ИКС № 11 2006
А.Ю. ЩЕГЛОВ  К.А. ЩЕГЛОВ  01 ноября 2006

Контроль доступа вместо антивируса

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

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

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

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

Любой процесс может нести угрозу

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

Воплощение этой технологии требует принципиального изменения самой схемы назначения и исполнения политики разграничения доступа к ресурсам, используемой в современных ОС (в частности, семейства Windows). Ведь там субъектом доступа к ресурсам является пользователь (контроль доступа к ресурсам осуществляется на основании его учетных записей), а в данном случае речь идет о недоверии не к нему, а к процессу.

Программная среда в кольце защиты

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

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

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

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

В предлагаемой реализации для локализации программной среды необходимо регламентировать права доступа к папкам (каталогам, подкаталогам), из которых пользователям разрешено (запрещено) запускать исполняемые файлы. С учетом принятых правил размещения приложений и необходимости запуска системных процессов целесообразно разрешить выполнение программ из каталогов \Program Files и \WINNT (WINDOWS). А чтобы предотвратить возможность модификации санкционированных исполняемых файлов, запись в них, напротив, следует запретить.

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

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

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

Но как быть с проблемой записи на системный диск? Некоторые приложения должны иметь право записи информации на системный диск, на который, согласно регламенту, запись должна быть запрещена (см. рис. 1).

Все эти задачи могут быть решены с помощью механизма «переназначения путей к каталогам» (патент № 2234123). Идея его в том, что для каталога, доступ к которому следует либо переназначить (разделить между пользователями неразделяемый объект), либо переадресовать с системного на иной диск, создается несколько каталогов (для каждого пользователя) или (при переадресации) один на другом диске. Любое обращение к исходному каталогу механизмом Windows перехватывается и анализируется, чтобы выяснить, кто его владелец и кем произведено данное обращение. И только затем оно транслируется на созданный новый каталог пользователя (или другой диск).

Таким образом, исходный каталог становится виртуальным и никакое приложение не может получить к нему доступ. Приложение же, для которого данная переадресация «прозрачна», взаимодействует с созданным каталогом пользователя (или каталогом на другом диске) согласно правам доступа, назначенным в соответствии с политикой.

Всё под контролем

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

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

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

Заметим, что реализованный механизм позволяет настраивать замкнутость программной среды не только для пользователей, но и для процессов, если последний становится субъектом доступа (рис. 3). Можно разрешить любому процессу (как субъекту) запуск исполняемых файлов только из каталогов \Program Files и \WINNT (WINDOWS) и запретить процессам запись в них. Очевидное достоинство этого решения – «равноправность» разграничений для всех пользователей вне зависимости от корректности их идентификации при доступе к ресурсам (в частности, атаки на расширение привилегий становятся невозможными).

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

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

Поскольку к системным ресурсам для ОС семейства Windows относятся и объекты реестра ОС, рассмотренная выше методология разграничения доступа к защищаемым ресурсам в полной мере распространяется и на системный реестр.

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

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

***


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

Немного статистики

Грэхем Ингрэм, главный управляющий австралийского подразделения Группы оперативного реагирования на чрезвычайные ситуации в компьютерной области (AusCERT), утверждает, что распространенные антивирусные приложения блокируют лишь около 20% недавно появившихся вредоносных программ. При этом популярные антивирусы пропускают до 80% новых троянов, шпионов и других вредоносных программ. Это означает, что в восьми случаях из десяти недавно появившийся вирус может проникнуть на компьютер пользователя.

Источник: www.itsec.ru

Заметили неточность или опечатку в тексте? Выделите её мышкой и нажмите: Ctrl + Enter. Спасибо!