Когда списки разрешенных приложений не спасают

Так вот, мы считаем, что одних списков разрешенных приложений недостаточно. Защита должна быть многоуровневой, где списки разрешенных вполне уместны, но лишь как один из уровней.

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

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

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

На практике все не так просто. У киберпреступников есть немало методов выполнить вредоносный код, без необходимости непосредственного запуска исполняемых файлов. В качестве эксперимента мы решили посмотреть, какие приложения из занесенных в списки разрешенных и имеющих доверенные сертификаты пытаются обращаться к известным нам вредоносным серверам. И получили такой результат: за шесть месяцев наблюдений наши системы зарегистрировали более 30 тыс. попыток подключения различных легитимных программ, таких как сервера приложений, базы данных, ERP-системы, софт для проектирования и т.п., к известным дистрибьюторам вредоносного ПО в 94 странах мира.

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

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

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

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

Все это не означает, что списки разрешенных программ бессмысленны. Наоборот, они спасают от множества проблем. Более того, реализации этих технологий в разных продуктах разные. Например, режим «Запрет по умолчанию», используемый в решениях «Лаборатории Касперского», не только запрещает исполняемый код, отсутствующий в списках разрешенного, но и следит за скриптами, драйверами и библиотеками.

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

Советы