Безопасность клиентского программного обеспечения.
3APA3A (security.nnov.ru)
источник: http://securityvulns.ru
1. Введение.
Обычно, когда говорят об атаках через интернет и связанных с ними рисками, имеют ввиду безопасность почтового сервера, Web-Сервера и других корпоративных Internet-сервисов. Для обеспечения корпоративной безопасности Internet-сервисы обычно выносят в отдельную экранированную сеть, т.н. демилитаризованную зону (DMZ) рис.1 . Межсетевой экран защищает корпоративные ресурсы и рабочие станции пользователей от серверов расположенных в DMZ на случай их возможной компрометации. Поэтому считается, что при подобной организации сети атака через интернет на корпоративные ресурсы закрытой сети чрезвычайно сложна. Так ли это? Пользователи внутренней сети могут иметь доступ к ресурсам демилитаризованной зоны, в частности к почтовым серверам, прокси серверам и различным шлюзам, и, таким образом, получает опосредованный доступ к ресурсам Internet. Какие риски обычно ассоциируются с использованием электронной почты и ресурсов Internet? Возможность утечки информации, вирусы, троянские программы... Для защиты обычно применяют средства электронной подписи, антивирусные программы и другие системы контент-фильтрации установленные на почтовых шлюзах, чтобы не пропустить во внутреннюю сеть потенциально опасные файлы. Но часто не учитывается возможность атаки через Internet на клиентское программное обеспечение.
2. Риски.
В чем же особенность атак на клиентское программное обеспечение? Дело в том, что в отличие от атак на Internet-сервисы в случае успеха атакующий сразу получает доступ во внутреннюю сеть и ко всем ресурсам, к которым имеет доступ пользователь рис.2 . В случае если сеть построена по принципу яйца и имеет только периметрическую защиту (а это не редкость даже в весьма приличных компаниях) атакующий автоматически получает полный доступ ко всем ресурсам сети. Это делает атаки на клиентское программное обеспечение более опасными, чем атаки на Internet-службы.
3. Атаки.
Давайте не будем анализировать атаки связанные с возможностью перехвата сообщений во время передачи, связанные с вирусами и социальной инженерией. Мы будем рассматривать риски связанные с возможностью атаки внутрь вашей сети используя клиентское программное обеспечение для работы в Internet.
3.1. Троянское содержимое
Следует рассматривать два вида троянского содержимого: троянские программы "общего пользования", которые в несчетном количестве гуляют по сети и которые можно отнести к вирусам и троянские программы разработанные специально для того, чтобы атаковать именно вашу сеть. Последние могут быть весьма опасны и не будут отслеживать антивирусами. Программа может управляться извне получая команды с web-сервера или по электронной почте.
3.2 Атаки сбора информации
Как правило, перед собственно атакой на корпоративную сеть проводится сбор информации о данной сети, с целью выяснить ее внутреннюю структуру, используемое программное обеспечение, методы и режимы администрирования, число и уровень подготовки администраторов и т.д. Зачастую электронная почта может позволить атакующему получить интересующие его сведения, методов достаточно много, начиная от простых писем к системных администраторам и анализом ответов и заканчивая методами с автоматической "обратной связью", например включения в письмо элемента находящегося на внешнем сервере. При обращении к внешнему серверу будет зарегистрирована информация о браузере, которая может содержать не только сведения о системе но и сведения об учетных данных пользователя.
3.3 Атаки на адресную книгу.
Задача атаки на адресную книгу заставить пользователя послать информацию не по тому адресу, по которому информация должна уйти. Методы могут быть разные: начиная от использования похожих имен и заканчивая использованием уязвимостей в организации адресных книг, например в Microsoft Outlook Express [1] .
3.4 Атаки на уязвимость программного обеспечения.
Последствия атак на уязвимость программного обеспечения могут быть те же, что и атак с помощью троянцев. Достаточно часто используются комбинированные атаки, т.е. уязвимость программного обеспечения используется для автоматического запуска троянской программы без участия пользователя. Но особенность атак на уязвимость программного обеспечения в том, что для атаки могут использоваться внешне безобидные данные, например письмо не содержащее вложенных файлов или какого-либо активного содержимого (например сценариев, макросов и т.д.). Это делает практически невозможным предотвращение подобных атак с помощью контент-фильтров. Например практически ни один из тестированных фильтров оказался не в состоянии обнаружить атаку Matrix [2] проведенную через электронную почту.
4. Эффективна ли защита?
Есть два способа обеспечения безопасности: безопасность за счет наблюдения и безопасность за счет предотвращения. Антивирус способен распознать лишь то содержимое, сигнатура которого имеется в его базе, а это означает, что всегда можно создать содержимое которое пройдет сквозь антивирусную защиту. Аналогичная проблема есть и в контент-фильтрах, хотя их иногда относят к программам второго рода. Даже в том случае когда вы просто фильтруете вложения определенных типов, контент-фильтр и клиентская программа могут по-разному обрабатывать содержимое письма, результатом чего может быть то, что почтовая программа найдет вложение там, где контент-фильтр его просто не нашел, приняв вложение за текст письма. Методы обхода контент-фильтров рассматриваются в [3] . Однако, все это не означает, что следует отказаться от использования программ фильтрации и антивирусов. Наличие фильтров сильно усложняет возможную атаку на вашу внутреннюю сеть, зачастую делая ее экономически невыгодной. Кроме того, это программное обеспечение отфильтрует типовые атаки, и снизит число происшествий во внутренней сети, что освободит системным администраторам время для анализа остальных происшествий, а так же даст администраторам информацию откуда следует ожидать нетиповых атак. Что еще следует предпринять для защиты? Повысить стандарты администрирования внутренней сети, больше уделять внимания разграничению доступа, аудиту нестандартных явлений и сопровождению клиентского программного обеспечения. Это позволит предотвратить многие атаки или обнаружить их в момент развития. Многие организации предпочитают экономить на пользовательской поддержке, а уровень поддержки пользователей и пользовательского программного обеспечения не должен быть ниже уровня поддержки серверов, требуются и соответствующие кадры.
5. Предотвращение атак через клиентские приложения.
Возможно ли все-таки предотвратить атаки, а не просто снизить ожидаемый ущерб? В случае с Internet-сервисами мы изолировали их в экранированную демилитаризованную зону, предотвратив возможность доступа к корпоративным данным с скомпрометированного сервера. Почему бы не изолировать от данных и опасные клиентские приложения? Возможно использование отдельной учетной записи для запуска клиентских приложений. Приложение запущенное с другой учетной записью может иметь пониженный уровень доступа и будет изолированно от данных пользователя, даже если оно будет работать на том же компьютере одновременно с другими приложениями данного пользователя (локальная изоляция). рис.3 . К сожалению, разграничение прав доступа в рамках одной машины это нетривиальный процесс, и очень велика вероятность ошибки которая позволит изолированному клиентскому приложению получить повышенные права доступа. Поэтому наиболее надежным остается вынос потенциально опасных клиентских приложений в отдельную экранированную сеть. рис.4 . Приложения могут быть вынесены на терминальный сервер. Существуют различные технологии (например Application Publishing в Citrix Metaframe) которые делают этот процесс быстрым и, главное, практически незаметным для пользователя, т.к. пользователь продолжает взаимодействовать с приложением так, как если бы оно было запущено локально. Таким образом мы получаем 3 корпоративных зоны: демилитаризованную серверную зону, зону изолированных клиентских приложений и внутреннюю корпоративную сеть. Мы исключаем возможность попадания каких-либо данных из Internet во внутреннюю сеть кроме случаев, когда эти данные явным образом скопированы пользователем из зоны изолированных приложений. рис.5 . Запрет копирования потенциально опасных данных (например исполняемых файлов, макро-документов) в данном случае реализуется достаточно просто.
6. Заключение.
Атаки на клиентские приложения не являются новыми, но наблюдается тенденция повышения уровня подобных атак. Если раньше наиболее распространенной атакой было внедрение троянца с использованием методов социальной инженерии и с целью получения учетных записей Internet, то сейчас достаточно часто можно наблюдать профессионально проведенные атаки направленные именно на взлом сети. И даже более того - большая часть громких взломов в течении последних 1-1,5 лет были проведены не через атаки на серверные системы. Исходя из тенденции можно предположить в ближайшее время по числу и проценту успешных попыток именно атаки на клиентское программное обеспечение смогут обойти атаки социальной инженерии. Нужно быть к этому готовым.
7. Ссылки
[1] SECURITY.NNOV, Проблема с адресной книгой в Outlook Express http://www.security.nnov.ru/search/news.asp?binid=1229
[2] SECURITY.NNOV, Переполнение буфера в mshtml.dll (buffer overflow) http://www.security.nnov.ru/search/news.asp?binid=1782
[3] SECURITY.NNOV whitepaper, Bypassing content filtering software http://www.security.nnov.ru/advisories/content.asp