Об антивирусах, капиталистических рынках и технологических тупиках

Эта заметка навеяна вот этим сообщением.

Очередное обновление антивируса McAfee парализовало десятки тысяч компьютеров по всему миру. Популярное антивирусное ПО сочло зараженным системный файл ОС Windows XP

Надо сказать, что Макэфи — не первый антивирус, отметившийся деструктивными функциями. Насколько я помню, аналогичные проколы были и у других производителей. Кажется, только майкрософтовский Security Essentials ещё пока не успел засветиться на этом фронте, да и то скорее из-за того, что слишком новый. (С деструктивчиком поменьше (приведшим всего лишь к перезагрузке с потерей несохранённых данных) в его исполнении я сталкивался.) Случаи же, когда антивирус настолько грузит систему, что полезная деятельность (собственно, то, ради чего компьютер и приобретался) на какое-то время становится невозможной, любой сисадмин перечислит пачками. Пользователю, в общем-то, абсолютно всё равно, по какой причине не запускается то приложение, которое нужно ему здесь и сейчас: вирус ли виноват, или же анти-вирус. Результат-то в обоих случаях одинаков.

Лично я на своих компьютерах (ни на домашних, ни на рабочих) антивирусными real-time мониторами не пользуюсь вообще, а если есть сомнения в происхождении какой-либо проги или документа, запускаю сканирование конкретного файла по запросу (предпочитаю, кстати, DrWeb, который не тянет для такой проверки драйвер фильтра файловой системы и, соответственно, запускается под всем, даже под WINE-ом с LiveCD). Почему? Да потому что более-менее понимаю, как работает операционная система, как встраиваются в неё антивирусы, что такое и как работает вирус или троян, и поэтому считаю риск от применения антивирусов неоправданно высоким по сравнению с пользой, которую они могут принести. Если уж совсем простыми словами, то инциденты вроде упомянутого вначале заметки, я считаю почти неизбежными, а «тормоза» при проверке «на лету» — неизбежными без всяких «почти». (Нужно обоснование? Оно элементарно: Подумайте, что произойдёт с временем проверки каждого перехватываемого файла при увеличении числа известных монитору вирусов, в отсутствии которых в проверяемом файле и надо убедиться. Причём «схалявить» и проверять с пристрастием один первый раз, а потом лишь убеждаться в том, что уже проверенный однажды файл не изменился, не получится — надо будет проверять его заново при каждом обновлении баз как минимум на предмет наличия новых вирусов, ещё неизвестных при прошлой проверке.)

Короче, то, что нынешние антивирусы — это тупиковый путь, мне вполне очевидно. Это примерно как предлагать бороться с пробоиной в лодке с помощью насоса, постоянно откачивающего воду за борт. Не надо быть специалистом в кораблестроении, чтобы понять, что надо вообще-то просто заткнуть пробоину. Разумеется, продавцы помп и (самое главное!) бензина к ним в этом случае рискуют остаться не у дел. Вот и ответ на вопрос, почему надёжное решение до сих пор ещё не вышло на рынок.

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

Ладно, вернёмся к нашим баранам. То есть компьютерам. «Дырка» затыкается очень просто: с помощью штатного, давно уже имеющегося в системе механизма назначения прав доступа.

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

Кстати, для Linux-а предлагаемая схема не менее актуальна. Выполнение скриптов из *.deb или *.rpm пакета от root-а — это, вообще-то, дыра пошире, чем непропатченный Internet Explorer с админскими правами 😉 А вирусов и троянов под Линь ходит меньше не потому, что система надёжней, а просто из-за того что пользователей меньше, а средняя квалификация их выше.

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

P.S.:
Появившийся в «Висте» (и творчески «слизанный с линуксового sudo) UAC — это первый шаг именно в описанном мной направлении. Нововведение очень правильное и полезное, непонятно, что его в штыки-то приняли.

P.P.S.:
Совсем по хорошему было бы ещё и раздавать права к файлам на основе их типов, но это уже отдельный вопрос. Здесь «малой кровью» скорее всего не обойдёшься, хотя идея, на мой взгляд, того стоит.

комментария 3 to “Об антивирусах, капиталистических рынках и технологических тупиках”

  1. Oakim Says:

    SELinux, AppArmor… А Виндоузе работать не под админскими правами неудобно. Извините, приучились со времен 95й/98й.

  2. ivan_laptev (Алексей Бондаренко) Says:

    http://ivan-laptev.livejournal.com/921063.html

    Так как отключить админские права? Не могу найти нигде конкретных шагов…

  3. ivan_laptev (Алексей Бондаренко) Says:

    Всё, разобрался. Сенкс.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s


%d такие блоггеры, как: