Вам иконки — или троян?

23 июль, 2010 - 21:57Арсен Бандурян

Последнюю неделю все живо обсуждают новость, связанную с появлением уязвимости в обработчике иконок в Windows, которая позволяет выполнять произвольный код. Microsoft выпустила Security Advisory еще 16 июля, и за 5 дней обновила его еще два раза.

Вкратце напомню суть. Создавая файл .LNK или .PIF вы можете указать ему иконку из другого файла. Так вот, обнаруженная уязвимость позволяет в проессе визуализации иконки выполнить из этого другого файла код. Всё, что нужно для того, чтобы заразиться - открыть каталог с шорткатом в Windows Explorer / IE или любой другой программе, использующей системный визулизатор иконок Windows (и снова заядлые пользователи FAR/TC многозначительно улыбаются). При этом файл может находиться на локальном или сетевом дискеили вообще WebDAV.

Вот и всё. Принесли вам флешку, вы открыли ее в Explorer - и все. Никаких autorun.inf, никаких .exe и т.д. Одна из разновидностей вируса умудрялась даже устанавливать в систему драйвера, используя украденный сертификат Realtek (уже отозван).

В официальном security advisory от Microsoft рекомендуется следующий способ лечения - отключить парсер иконок, пока не выпустят патч. При этом честно отмечается, что вместо иконок юзер будет видеть белые квадратики, что не очень красиво, зато безопасно (см. заголовок статьи). Как по мне - не самое красивое решение -
без иконок жить неприятно.Но перспектива проверять FAR'ом каждую флешку и бояться открыть что-то не то через интернет тоже не впечатляет. Что можно сделать? Предлагаю рассмотреть другое решение для тех, кого такая ситуация не устраивет. Заодно изучить одну из менее известных функций Windows под названием Software Restriction Policies. Скажу сразу, способ не мой - я его подсмотрел у Didier Stevens - любители всё читать в оригинале могут сразу идти туда.

Software Restriction Policies позволяет указать Windows откуда можно запускать код, а откуда нельзя. Суть проста - запрещаем запуск файлов со всего, что не является разделом локального винчествера.

Для этого запускаем Administrative Tools -> Local Security Policy (secpol.msc) и идем в Security Settings -> Software Restrictions Policies. Данная оснастка MSC работает для не-доменных компьютеров. Для членов домена данную policy нужно внедрять через GPO на доменном компьютере (заодно защитите всех своих юзеров).

Вам иконки — или троян?

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

Вам иконки — или троян?

Вам иконки — или троян?

Аналогично повторяем для дисков D:/E: и т.д. Теперь, нам надо запретить исполнение файлов - создаем запрещающие правила. При этом помним, что иконки могут ссылаться не только на .exe файлы, но и на .dll, поэтому запрещаем все.

Вам иконки — или троян?

Вам иконки — или троян?

И, собственно, запрещаем, переводя Security Level из Unrestricted в Disallowed (фактически, из режима Blacklist в Whitelist):

Вам иконки — или троян?

Вам иконки — или троян?

Для того, чтобы всё это заработало, необходимо сделать logon/logoff. Обратите внимание на комментарий: ПО не будет запускаться, независимо от прав пользователя:

Вам иконки — или троян?

Вот и все. Как по мне - гораздо более комфортный вариант, чем отключение всех иконок. :) А что думаете вы?