вторник, 9 июня 2015 г.

COMODO Internet Security 8.2.0.4591 — ямы, прикрытые ветками

Новая сборка CIS, как заявлено, содержит ряд исправлений. Что ж, пройдусь по проблемам, о которых я писал в статье «Защита от уязвимостей CIS».

 

Сначала о дырах, которые остались «в целости и сохранности»

Защиты базы и конфигурации CIS как не было, так и нет. Но это легко лечится.

Никуда не делась и пресловутая уязвимость к подмене доверенного файла неопознанным. Эту уязвимость очень легко использовать во вредоносных ярлыках. Проще всего сделать пробивающий Comodo зловред составным — троянец и его ярлык-стартер. Но можно собрать даже «автономный» ярлык, который извлечет из себя троянца и запустит — все в обход CIS, разумеется. Частичная защита от этого — блокировка сторонних ярлыков.

Браузеры-установщики. И не только браузеры

Оказывается, я проворонил феерическое решение проблемы портативных браузеров еще в предыдущей сборке CIS 8.2.0.4508. Сразу после выхода той сборки я выложил на оффоруме несколько способов обхода защиты, в т.ч. посредством стартеров портативных браузеров. Разумеется, все способы были проверенными и рабочими. Я ж не знал, что уязвимость «устранили»...

Напомню суть дела — Comodo наделял некоторые стартеры сборок PortableApps привилегиями установщика. Неясно, с какой стати, но факт. В результате файлы, скачанные браузером FirefoxPortable, автоматически становились доверенными, а запущенные им программы выполнялись с привилегиями установщика. Подчеркну, что при моем варианте настройки этой проблемы нет.

Однако уже с версии CIS 8.2.0.4508 браузер FirefoxPortable более не считается установщиком. Неужели комодовцы переработали-таки алгоритм, раздающий привилегии установщика кому ни попадя?!

Ларчик открылся просто. Да, алгоритм переработали. Теперь статус установщика не получают программы... с именами FirefoxPortable.exe, GoogleChromePortable.exe и т.п. Такая вот нанотехнология.

Справедливости ради — это много больше, чем ничего. Фактически это значит, что, наконец, можно пользоваться некоторыми портативными браузерами, не подвергаясь большому риску даже при предустановленных конфигурациях Comodo.

Значит, проблема решена? — Нет.

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

Во-вторых, есть ряд других сборок PortableApps, имеющих аналогичную проблему с привилегиями установщика. Но комодовцы исключили лишь несколько браузеров (они не догадались даже воспользоваться шаблоном *Portable.exe). Угадайте, что будет, если распаковать архив с вирусами программой 7-ZipPortable?

Ответ

При любой из предустановленных конфигураций CIS — извлеченные вирусы станут доверенными и перестанут детектироваться. (Если извлекать вирусы в открытую папку, то сначала Comodo удалит те, что ему известны. Но при повторной распаковке уже не удалит.) Если еще и запускать неопознанные программы прямо архиватором — они запустятся с правами установщика.

При «моей» конфигурации известные вирусы заблокируются, а неизвестные запустятся в виртуальной среде.

В-третьих, браузер Opera 29.0 — обычный, не только портативный! — по-прежнему считается установщиком. Причина — его размер, превышающий 40 МБ. Это, пожалуй, самая серьезная из трех перечисленных проблем.

Повторю, что проблемы с установщиками более-менее решаются соответствующей настройкой.

Уязвимость к ложным интерпретаторам

Чтобы попусту не пересказывать одно и то же, лишь процитирую кусок статьи перед тем, как ее править:

Уязвимость к ложным интерпретаторам в CIS 8.2.0.4508

Для версий CIS от 5.10 до 8.1 существовал простой способ запустить стороннюю программу так, чтобы она была принята за любое другое приложение и получила его права. Данный способ работал и в реальной, и в виртуальной среде. Суть его в том, что CIS может посчитать запускаемую программу интерпретатором и назначить ей те права, которые имеет приложение, указанное в командной строке вызова этой программы.

В версии CIS 8.2 эта уязвимость частично устранена. По крайней мере, теперь подобный «обман» удается осуществить только в виртуальной среде, причем выдать стороннюю программу можно лишь за приложения определенного вида: скрипты, jar-файлы, dll-файлы и т.д. Как правило, программу не удается выдать за какой-либо exe-файл.

Однако за некоторые exe-файлы выдать стороннюю программу все-таки возможно и в версии CIS 8.2. Пара таких файлов входит в группу «Системные приложения Windows»: smss.exe и csrss.exe. Этой группе разрешен интернет, поэтому шпионская программа может запуститься в виртуальной среде, выдать себя за любой из этих файлов и передать конфиденциальные данные.

В нынешней версии CIS 8.2.0.4591 вроде как устранили возможность выдавать виртуально запущенные программы за системные файлы smss.exe и csrss.exe. Поэтому больше не нужно запрещать этим файлам интернет.

Однако в виртуальной среде по-прежнему можно выдавать программы за скрипты, jar-файлы и вообще любые неисполняемые. Это значит, что небезопасно создавать разрешающие правила фаервола для скриптов или вообще целых каталогов. Если уж требуется разрешить интернет всем exe-файлам в каталоге — пишем %COMMONPROGRAMFILES%\Java\*.exe, а не %COMMONPROGRAMFILES%\Java\*.

Увы, комодовцы лишь заткнули дыру с файлами smss.exe и csrss.exe, но не сделали главного: определения интерпретаторов по их реальному (а не виртуальному) местоположению.

Наследование при составной команде

Данная аномалия заключается в том, что при выполнении команды типа %comspec% /c ProgramA & ProgramB программа ProgramB ошибочно воспринимается CIS'ом как дочерний процесс программы ProgramA. Этот эффект можно использовать для обхода защиты: создать ярлык с такой командой, где в качестве программы ProgramA указывается доверенный установщик, а в качестве программы ProgramB — неизвестный троянец. В результате этим ярлыком троянец будет запускаться с правами установщика.

В версии CIS 8.2.0.4508 данная уязвимость была частично устранена: метод обхода перестал работать, если в качестве установщика ProgramA взять exe-файл. Однако в качестве установщика можно было взять msi-файл, что я и показал на оффоруме.

В версии CIS 8.2.0.4591 метод обхода не работает и с использованием MSI-файлов. Можно ли сказать, что проблема устранена? Наверно. Само «наследование» осталось, но вряд ли его удастся использовать во вред.

В любом случае отключение привилегий установщиков снимает и эту проблему, и некоторые другие.