Сначала о дырах, которые остались «в целости и сохранности»
Защиты базы и конфигурации 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?
В-третьих, браузер Opera 29.0 — обычный, не только портативный! — по-прежнему считается установщиком. Причина — его размер, превышающий 40 МБ. Это, пожалуй, самая серьезная из трех перечисленных проблем.
Повторю, что проблемы с установщиками более-менее решаются соответствующей настройкой.
Уязвимость к ложным интерпретаторам
Чтобы попусту не пересказывать одно и то же, лишь процитирую кусок статьи перед тем, как ее править:
В нынешней версии 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-файлов. Можно ли сказать, что проблема устранена? Наверно. Само «наследование» осталось, но вряд ли его удастся использовать во вред.
В любом случае отключение привилегий установщиков снимает и эту проблему, и некоторые другие.