`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Уязвимости в ПО: бояться или бороться?

+44
голоса

Уязвимости вместе с эксплойтами, т.е. программами, целенаправленно их использующими, сегодня являются едва ли не наиболее серьезной разновидностью киберугроз. Действительно, тогда как другие способы распространения угроз, вроде спама и социальной инженерии, – ввиду простоты и очевидности, а также благодаря усилиям ведущих игроков ИТ-индустрии – постепенно теряют свою популярность, уязвимости приобретают совершенно новое звучание по мере изобретения новых видов атак. Примером последних может служить «водопой» – достаточно изощренная техника, задействующая сторонние, вполне легитимные веб-ресурсы и направленная на четко определенную категорию пользователей. В каждой из таких атак применялся целый ряд уязвимостей, в том числе и так называемые «нулевого дня» (0day), т.е. они заведомо были успешными и вызывали значительный резонанс.

Нельзя сказать, что ситуация вокруг уязвимостей развивается особенно бурно. Число ежегодно обнаруживаемых растет довольно медленно, а 0day и вовсе колеблется в пределах 15 штук для достаточно широкого спектра ПО. Эксперты, однако, склоняются к тому, что поиск последних сегодня поставлен серьезными хакерскими группировками, что называется, на поток, и в дело они пускаются очень дозированно. 0day-уязвимости представляют, конечно, наибольшую угрозу, т.к. остальные находятся самими разработчиками или сторонними исследователями и сразу же берутся к сведению. Тем не менее, в 2012 г. лишь 80% общего числа уязвимостей были закрыты одновременно, т.е. день в день, с появлением информации о них. И хотя динамика у этого показателя положительная (в 2011 г. он составлял 72%), понятно, что оставшиеся 20 или, в перспективе, чуть меньше процентов представляют немалую опасность.

Таким образом, борьба с уязвимостями распадается на две основные задачи: с одной стороны, необходимо следить за информацией об уязвимостях в используемом ПО и своевременно его обновлять, с другой – постараться обеспечить некую универсальную защиту от эксплойтов, какой бы тип уязвимостей они не использовали. Первая задача выглядит довольно очевидной и кажется странным, что кто-то может ею пренебрегать. Тем не менее, Symantec, к примеру, сообщает, что 53% веб-сайтов содержат уязвимости, причем 24% – критические.

На самом деле, конечно, все совсем не просто. Если ограничиться платформами Microsoft, то, по последним данным, среди всех уязвимостей в 50 наиболее популярных пользовательских программах (29 от Microsoft, включая ОС, и 21 сторонней) на продукты Microsoft приходится лишь 14% и этот показатель продолжает уменьшаться. На серверной стороне – похожая картина. Т.е. следить нужно за ПО многих вендоров, использующих самые разные принципы и способы распространения заплаток. К тому же, автоматическое обновление критичных приложений – далеко не всегда является лучшим подходом, соответственно, в дело вступает человеческий фактор. Выходом видится применение решений класса Patch Management, среди которых есть и непосредственно нацеленные на обеспечение безопасности, к примеру, компании Secunia. Впрочем, ее эксперты, учитывая статистику по времени устранения уязвимостей, вполне честно говорят, что одного управления заплатками недостаточно.

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

EMET

Утилита Enhanced Mitigation Experience Toolkit существует уже несколько лет, а немногим более месяца назад появилась очередная версия EMET 4.0. Учитывая, что были и промежуточные, дробные версии, ясно, что Microsoft выпускает ее неспроста и уделяет ей довольно большое внимание. Нередко EMET фигурирует как временная мера для закрытия уязвимостей (как правило, 0day) в ПО Microsoft до появления официального исправления. А вообще ее назначение состоит в создании дополнительного барьера для атак и, соответственно, некоторого повышения общего уровня безопасности систем.

Как известно, Microsoft постоянно совершенствует архитектуру Windows с тем, чтобы усложнить работу хакерам. Так, к примеру, появились технологии DEP (Windows XP SP2), ASLR (Windows Vista) и некоторые другие. Как правило, они распространяются на компоненты самой операционной системы, а сторонние приложения могут воспользоваться ими на этапе проектирования и компиляции. Это, однако, может привести к некорректной работе, если разработчики не соблюли всех необходимых рекомендаций и пр. Поэтому, из соображений совместимости, ни одна из этих технологий до сих пор не включается глобально для всего ПО. Соответственно, EMET призвана решать три основные задачи.

Управление основными защитными технологиями на общесистемном уровне

Всего их три, но в Windows XP и Windows Server 2003 две последние недоступны:

  • DEP (Data Execution Prevention) – запрет исполнения кода из сегмента данных;
  • ASLR (Address Space Layout Randomization) – случайное (при каждом запуске) переразмещение выделяемых программе сегментов памяти;
  • SEHOP (Structured Exception Handler Overwrite Protection) – проверка целостности цепочек обработчиков исключений.

Уязвимости в ПО бояться или бороться?

Иллюстрация демонстрирует рекомендованные Microsoft настройки для этих технологий в Windows 8. Как видно, все они доступны, но применяются только для тех программ, которые это явно запрашивают. Более того, для ASLR это фактически единственная «официальная» настройка кроме полного отключения, Always On можно получить на свой страх и риск правкой реестра. Дело в том, что глобальное включение ASLR может мешать работе некоторых (устаревших, недобросовестно написанных) драйверов, результатом чего станет «синий экран смерти». Тем не менее, экспериментировать вполне можно, но лишь озаботившись некоторыми очевидными предосторожностями.

Управление защитными механизмами для отдельных приложений

На этом уровне кроме трех основных технологий (ASLR под названием MandatoryASLR) EMET 4.0 поддерживается еще девять специальных механизмов противодействия атакам (mitigations), причем некоторые из них относятся к категории псевдозащиты, т.е. блокируют только конкретные известные хакерские методики. Все доступные механизмы разбиваются три группы – контроль памяти; блокирование ROP (Return-oriented programming), т.е. методов возвратно-ориентированного программирования, когда нужная вредоносная функциональность формируется из фрагментов легитимных функций, размещенных по известным адресам (как правило, хвостовым, которые завершаются инструкцией возврата); прочие.

Подробное описание каждого можно найти в руководстве пользователя EMET или на специализированных ресурсах – в данном материале это не так существенно. Важнее, что их количество постоянно увеличивается, так, в версии 4.0 в категории ROP добавились три новых механизма, направленные против методик обхода прежних. Естественно, ни один из них не является панацеей (что доказывается регулярным появлением 0day-уязвимостей), скорее, речь идет о «борьбе брони и снаряда», но, несомненно, что жизнь хакеров усложняется. Интересно также, как реализован EMET и его защитные механизмы. Это не песочница, не отладчик и даже не системная служба – EMET основывается на Application Compatibility Framework и библиотеках-прокладках (shims), контролирующих вызовы определенных API.

Уязвимости в ПО бояться или бороться?

Для управления защитой отдельных приложений предназначена вкладка Application Configuration, которая может заполняться вручную или автоматически при выборе на этапе инсталляции рекомендованных настроек. Как правило, защищать стоит приложения, которые могут работать с исполняемым кодом или принимать внешние запросы, в случае пользовательских систем это, прежде всего, браузеры, Java, офисные приложения, медиапроигрыватели и пр. Не следует, конечно, думать, что рекомендации разработчиков гарантируют от проблем несовместимости. Все зависит от особенностей конкретной программной среды, т.е. набора системных служб, плагинов к приложениям и пр. Проявления несовместимости могут быть самыми различными и порой весьма необычными. К примеру, отключение EAF для Internet Explorer на предыдущей иллюстрации – вынужденная мера, обусловленная зависаниями браузера при каждом щелчке правой кнопкой мыши на любой папке в Избранном. Найти решение подобных проблем можно единственным методом – проб и ошибок (поочередно включая или отключая каждый механизм и проверяя работоспособность приложения на «подозрительных» операциях).

Контроль корневых сертификатов при доступе по HTTPS

Этот раздел функциональности стоит в стороне от проблемы борьбы с уязвимостями и эксплойтами, но представляет довольно важное нововведение EMET 4.0. Данный механизм работает только с Internet Explorer (в Windows 8 только с десктопной версией), который для этого должен присутствовать среди приложений, контролируемых EMET. Его смысл состоит в противодействии атакам типа man-in-the-middle, когда перехватывается и подменяется SSL-сертификат и, соответственно, расшифровывается весь якобы защищенный трафик. Стоит однако отметить, что подобным же образом действуют и некоторые корпоративные системы, осуществляющие мониторинг веб-трафика.

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

Уязвимости в ПО бояться или бороться?

Централизованное управление EMET

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

Во-первых, имеются профили Recommended Software.xml и Popular Software.xml, первый из которых используется для формирования рекомендованных настроек. Их можно корректировать, создавать на их основе новые, импортировать или экспортировать в EMET. Во-вторых, кроме графического интерфейса имеется утилита командной строки, способная выполнять все основные функции. Вместе с профилями она позволяет реализовать распространение и конфигурирование EMET посредством System Center Configuration Manager или многими другими способами. В-третьих, имеется шаблон для групповых политик, с помощью которого можно управлять функционированием EMET, системными настройками, защитными механизмами как для предопределенных групп ПО (как в стандартных профилях), так и для отдельных приложений.

Уязвимости в ПО бояться или бороться?

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

Metasploit

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

Metasploit представляет собой целую инфраструктуру для сбора и систематизации информации об уязвимостях, создания и обкатки экплойтов, тестирования безопасности систем. По-видимому, при желании его можно приспособить и в злонамеренных целях, но в действительности он ориентирован на специалистов в области ИТ и ИБ и, таким образом, служит самым благородным целям. В настоящее время Metasploit развивается под эгидой компании Rapid7 и доступен в нескольких редакциях, включая бесплатные Framework и Community, а также Express ($5000) и корпоративную Pro (с договорным ценообразованием). Последняя, к примеру, позволяет имитировать фишинговые и социальные атаки, автоматически определять возможные уязвимости удаленной системы и формировать соответствующую комплексную атаку и пр. Она, кстати, доступна для тестирования в течение семи дней, хотя для наших целей вполне достаточно Community, которая, в отличие от Framework, обладает удобным веб-интерфейсом.

Ясно, что Metasploit продукт достаточно многогранный, поэтому подробно описывать его здесь нет смысла. Для тестирования EMET достаточно знать, что Metasploit оперирует проектами, в рамках которых можно использовать любые доступные инструменты. Нас интересуют модули – компоненты, реализующие базовые фрагменты функциональности Metasploit, в том числе и конкретные эксплойты. Среди них поддерживается поиск по ключевым словам, в качестве которых можно использовать название продукта, номер бюллетеня безопасности, маркировку в базе данных CVE и пр.

Уязвимости в ПО бояться или бороться?

Для экспресс-тестирования были выбраны две уязвимости в Internet Explorer – MS13-008 и MS13-038, – не требующие никакого дополнительного ПО. Последняя из них, между прочем участвовала в тот самом громком инциденте с атакой типа «водопой».

В качестве атакуемой системы была выбрана Windows XP SP3 с Internet Explorer 8 без дополнительных обновлений. После запуска в Metasploit каждого из выбранных модулей, достаточно было в браузере перейти по указанному URL, чтобы убедиться в эффективности эксплойта – кроме информации в консоли самого Metasploit об этом будет также свидетельствовать скрытный запуск на клиентской машине процесса notepad.exe.

Уязвимости в ПО бояться или бороться?

EMET же пресекает оба эксплойта и выводит соответствующие сообщения.

Уязвимости в ПО бояться или бороться?

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

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

+44
голоса

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT