Совсем недавно была зафиксирована атака на пользователей вконтакта (подробности реализации червя). Вникнув в суть произошедшего начинаешь удивляться, почему такая явная дыра не была давно закрыта производителями отдельных браузеров. А точнее, зачем эта особенность (возможность неявно запустить исполняемый файл, нажав на картинку) была реализована.
Кто-то может сказать, что он не пользуется этой социальной сетью, поэтому беда ему не грозила, но ошибётся - такую ссылку он мог получить и другим способом: электронной почтой, аськой, в сообщении любого форума и так далее. Вообще говоря, это работающая уязвимость, поэтому расслабляться нельзя.
Другой скажет, что у него есть антивирус, но и это не будет панацеей. Антивирус хорошо противостоит известным вирусам, а здесь мы имеем дело с новым паразитом, воспользовавшимся старой уязвимостью.
Всего месяц назад аналогичным вопросом задавался Леонид Каганов - очень рекомендую его текст (коротко, ярко и понятно) и приведённый им пример. Достаточно один раз зайти туда браузером Internet Explorer, чтобы навсегда перестать верить разговорам о его безопасности. Пытливым умам рекомендую подробное описание этой древней проблемы (которая так и не была закрыта в IE7!).
Кстати, поделюсь интересным наблюдением: статистики браузеров по этому блогу и русскому сегменту интернета очень различаются - если в рунете на долю IE приходится около 60-65%, то здесь она колеблется в районе 25-30% (Firefox'у достаётся 40-45%, а Opere - 25%). Полагаю, это говорит о специфике аудитории :) И, видимо, это объясняет, почему одной из самых популярных заметок блога стало руководство по залатыванию другой серьёзной уязвимости - автозапуска вирусов на USB-носителях. Обе проблемы имеют прямое отношение к безопасности, появились из-за расслабленности или нежелания вникать в проблемы разработчиков Microsoft и закрываются за несколько минут, если о них знать. И это тот случай, когда лучше потратить чуть-чуть сил на перестраховку, потому что последствия разведения вирусов на своём компьютере могут быть очень серьёзны (тот же червь Rovud, с которого мы сегодня начали, удаляет все файлы с компьютера 25-го числа каждого месяца - на восстановление после такого удара уйдёт гораздо больше сил).
28 мая 2008 г.
Латание дыр
Подписаться на:
Комментарии к сообщению (Atom)
Понравилась заметка? Подпишитесь на
RSS-feed или email-рассылку.
Хотите поделиться ссылкой с другими? Добавьте в закладки:
Есть вопросы или предложения? Пишите письма на адрес mytribune АТ yandex.ru.
С уважением,
Илья Весенний
Хотите поделиться ссылкой с другими? Добавьте в закладки:
Есть вопросы или предложения? Пишите письма на адрес mytribune АТ yandex.ru.
С уважением,
Илья Весенний
В каком-то смысле создатели "публичных" вирусов - молодцы, потому что обращают внимание на существующие дыры, и в конце концов их закрывают.
ОтветитьУдалитьГораздо хуже то, что существует масса непопулярных, но опасных уязвимостей, которые вполне могут использоваться втихаря для контроля над компьютером, кражей паролей, кредиток, и т.п.
Не понял. Илья, это очередной тест ничего не принимать на веру? Мой IE7 7.0.05730.13 вполне справился с той картинкой, на которую ссылается Леонид Коганов (http://p-userpic.livejournal.com/73887779/15402874). Ничего кроме черной точки я не увидел.
ОтветитьУдалитьВнутренности png действительно интересные :)
Кстати, Алексей, да, не каждый IE7 боится этой реализации этой уязвимости. На странице http://lleo.aha.ru/test/ie/logbro.htm собирается лог браузеров, попавшихся в ловушку - там хватает IE7. Я тестировал на IE6 (нет IE7 под рукой) - ёжики бегали. В комментариях у Каганова были записи от пользователей IE7, что проблема есть (были и обратные утверждения). Это значит, что проблема бывает, но не всегда (не при любых настройках/не с каждым сочетанием версий и т.д.) И пока внятно не сформулировано, что надо сделать с IE7, чтобы этой дыры заведомо не было.
ОтветитьУдалить>А точнее, зачем эта особенность (возможность неявно запустить исполняемый файл, нажав на картинку) была реализована.
ОтветитьУдалитьПочему вы думаете, что эта особенность была реализована? Я не знаю как работает этот deti.jpg (в той статье нет достаточных технических подробностей), но, скорее всего, это buffer overrun.
Сергей, и Вам спасибо за интересные вопросы. Про устройство того deti.jpg точно не знаю, но выглядит так, как будто сервер отдавал http-заголовки, означающие для IE, что это не картинка, а поэтому это надо попробовать исполнить (как я понимаю, "application/octet-stream"). Есть, например, такое свидетельство: http://www.ciac.org/ciac/bulletins/m-027.shtml - полагаю, есть много таких уязвимостей.
ОтветитьУдалитьПризнаю, я не специалист в этих вопросах, хочу лишь сказать, что меня в windows давно эта "смышлёность" раздражает - он исполняет почти любой файл, не глядя на расширение (можно переименовать .exe в .bat, .cmd, .pif, .lnk, хотя эта фича нужна только для функционирования вирусов!). Про червь Rovud деталей не знаю, однако других вирусов, использующих такую способность "запускать всё подрят" хватает. И именно об этом речь.
Кстати, про buffer overrun, это тоже можно избежать, если сделать нормальный код с достаточным количеством проверок. Согласитесь, разобрать png-файл - не такая сверхсложная задача, что её невозможно сделать надёжно.
У меня этот вирус сработал на последней Опере, хотя в ней по идее нет прикола с запуском исполняемых файлов из-под картинок. И запущеный сразу после перехода по ссылкам Аваст ничего не нашел, вирус-то новый. Так умер неделю назад с огромным трудом поставленый на новом ноуте WinXP.
ОтветитьУдалитьТак что от всего застраховаться нельзя, даже если знаешь что делаешь.
Мда. Совет всем кто боится вирусов - переходите на никс (сорри за банальщину, но ведь действительно смешно)
ОтветитьУдалитьУважаемый аноним, похоже там всё ещё проще: судя по написанному в сети, получив запрос к файлу deti.jpg, сервер злоумышленника отдавал 301-ый или 302-ой редирект на файл deti.scr (как мы знаем, это исполняемый файл). Соответственно, опера его тоже благополучно скачивала и запускала.
ОтветитьУдалитьИсполнять .exe, .bat, .cmd, .pif, .lnk, .scr можно, они для того и предназначены. Браузеры с настройками по умолчанию всегда спрашивают подтверждения пользователя (видел в IE и FireFox). Если пользователь согласился с запуском, то запускать просто необходимо. То, что пользователь может что-то сделать, ещё не означет дыру в защите.
ОтветитьУдалитьМой поинт в следующем. Из написанного вами складывается картина: глупые разработчики (вероятно, с привычкой не думать, ага) реализовали возможность для легкого распространения вирусов. Этого не было. И они не глупые, а, напротив, довольно вдумчивые ребята.
Сергей, Ваша позиция понятна. Конечно, я не собирался обвинять всех разработчиков в глупости, поэтому приношу извинения всем, кого случайно обидел.
ОтветитьУдалитьЯ только хочу разобраться, зачем оставляются некоторые очевидные дыры.
Например, давайте разберёмся, зачем надо исполнять файлы с расширениями bat, cmd, pif и lnk? Именно исполнять (как исполняемые файлы), а не интерпретировать (как должно поступать с bat и cmd) и не вытаскивать путь к программе и дополнительные настройки (как надо делать с pif и lnk). Как я вижу, это нужно только вирусам (потому что пользователь уже знает, что в .exe и .com может быть вирус, а .pif и .lnk ещё не боится). Можно ли придумать логичную причину для исполнения таких файлов? (чтобы пользователь, случайно переименовавший notepad.exe в notepad.pif не пострадал?)
Другой пример: зачем в visual basic'е была (есть ли сейчас - не знаю) функция, рассылающая данную строку на _все_ адреса из записной книги пользователя? Это же нужно (и использовалось) только для одной цели - чтобы разослать вирус одной командой! Других причин вызывать такую функцию я не знаю. Я не говорю, что разработчики VB специально добавили эту функцию для вирусописателей. Склоее всего, они просто не вникли, кому делают подарок. (Признаю, что и без этой функции проблем у вирусописателей не было бы - всегда можно пробежать циклом по записной книжке, отправляя письма одно за другим всем контактам. Но так это было ещё проще!)
И таких примеров странных решений много. На каждый из них можно придумать набор рекомендаций для пользователя - чего делать и чего не делать, чтобы не пострадать от этой потенциальной проблемы. Но не проще ли было подумать нескольким сотням человек, чтобы потом несколько сотен миллионов не парились?