История безответственности и одной уязвимости

Спешу заметить, эта статья никак не связана с переходом Opera на WebKit. Я просто хочу обратить внимание на одну проблему, которая преследовала меня с Оперой многие годы на одном простом примере.

Предисловие


Мое знакомство с браузером Опера началось еще в конце 90-х. Именно тогда мне посчастливилось купить у незнакомого бородача за покрытым январским снежком рыночным прилавком диск. Назывался он, как ни странно, вроде бы «Золотой софт» и содержал на обложке перечень программ и броские врезки «100% вирусов нет!». С этого диска началась моя дружба с тогда еще «shareware» Оперой. Многовкладочный интерфейс, возможность отключать картинки – что еще нужно было для российского диалапа?

Поэтому последние годы, когда я раз за разом натыкаюсь на то, что Опера «по умолчанию» попустительствует в скрытой загрузке вредоносного ПО, я все равно не хочу с нее уходить.

Завязка


Каждый инцидент начинается печально и неожиданно. Ничего не предвещает беды. Стандартный серфинг в интернете, включен файрвол, антивирус бодро висит в трее, поиск какой-то информации, переход по ссылкам, файлообменниками и неожиданно вылет сообщения брэндмауэра «Приложение fghtdhdffsdhr.exe запрашивает доступ к реестру, разрешить?» (Имя «fghtdhdffsdhr.exe» взято наобум, но отражает общий принцип именования подобных файлов). Начинается спокойная паника. В мыслях всегда опасаешься самого страшного – нарваться на криптовирус и потерять годами наработанные документы и исходники. Взгляд на диод активности дисков, прислушиваюсь к ним – молчат, а, значит, вирус застыл в ожидании завершении вызова на доступ к реестру. И, пока он держится, начинаются разборки.

Быстро выясняется, что вирус запущен из директории пользователя (или папки временных файлов интернета), запустил его процесс java.exe, а процесс java.exe, в свою очередь, был запущен процессом opera.exe. Процесс вируса убивается и его файл изничтожается.

Об антивирусе в этой истории
Доблестный популярный антивирус, кстати, часто молчал. Или анализировал файл, а потом отпускал на свободу. Оно и понятно — я скачал самую последнюю, свежайшую версию трояна напрямую с сервера злоумышленника. А этот файл, тем временем, запихивался в автозагрузку, качал разную пакость с сети, создавал задачи планировщика, пытался подменить различные системные библиотеки, запускал cmd.exe, хотел внедрить себя в explorer.exe, да и многое другое задумывал сделать. Я же, верный патриотическим чувствам, проверял файл на virustotal.com, потом онлайн-сканером на сайте антивирусной компании, а потом и вовсе отправлял в архиве на сайт вирусоборцев. Отмечу, что некоторые из присланных вирусов действительно ими были, вирусоборцы даже им имена присваивали новые, или мне писали, что, дескать, вирусов нет. Первый раз, когда мне ответили, что вирусов нет, я был так возмущен, что связался с кем-то из менеджеров компании и пожаловался, что их «вирусные эксперты» некомпетентны. Через пару часов пришло письмо, что, да, товарищ, вы были правы, мы разобрались, там вирус. Но ругаться с ними больше не хочу и сейчас, когда мне рапортуют, что, дескать, вирусов нет, я пожимаю плечами: другие программы вирусы почему-то находят, а «вирусные эксперты» — нет. В любом случае, в копилку «моего» антивируса эти образчики попадали в течение месяца всегда. Но, видимо, уже не от меня. Поэтому мое отношение к антивирусу после этой истории не изменилось. Не бывает идеальных вещей.

Больше я никаких действий в таких случаях особо не принимал. Беспокоило это меня мало. Да и плагин Java, включенный, кстати, в Opera по умолчанию, отключать мне не хотелось. Лицензия на файрвол продлялась стабильно, операционную систему я тоже периодически переустанавливал, а дел находилось много и без разборок с Оперой. Хотя обновлять ее и Java я не забывал, втайне надеясь, что когда-то они обновятся до такой степени, что решат эту проблему.

Кульминация


Наступил 2012 год. И прошел на удивление спокойно. Ничего опасного не происходило, что заставило меня совсем расслабиться и решить было, что в злобной связке Opera + Java наконец-то проблему с исполнением произвольного кода на удаленной машине решили. Зря надеялся.

Осенью 2012 неожиданно при скачивании какой-то жутко редкой книги с жутко противного файлообменника начинается старая история. И это обозлило: надо же, чтобы хоть кто-нибудь сказал компании Opera, чтобы они разобрались с такой уязвимостью. Начал я думать: допустим, что этот файлообменник я вообще видел первый раз, и больше никогда не увижу. Но ведь раньше такое случалось и на популярных ресурсах, трекерах тех же самых, перегруженных рекламой, но все же ценящих своих пользователей. Неужели администраторы этих сайтов настолько продажны, что могут разрешать выполнять java-апплеты неизвестных разработчиков с последующими плачевными последствиями для жертв? Сомнительно.

Вооружившись виртуальной машиной, HTTP-дебаггером, монитором сетевой активности, а еще утилитой для отслеживания активности процессов от Sysinternals, я приступил к разбирательству. Переход на сайт файлообменника к тому же файлу никаких результатов не дал. Обновление страницы тоже. Опера порождать процесс java.exe не спешила, двоичных файлов было много только в виде изображений: одна реклама, реклама, реклама.

Первая же мысль, оказавшаяся впоследствии правильной, была простой – сайт, раздающий троянца, не отдает больше одного файла в одни руки. Вернее, одному IP. Сменил внешний IP, полез на файлообменник опять. Нет реакции.

Вторая мысль, оказавшаяся впоследствии также правильной, была опять простой – сайт, раздающий вирус, не отдает больше одного файла в одни руки. Вернее, отдает только тем, у кого нет его cookie. Уничтожаем все полученные cookie от всех сайтов, меняем IP, идем на сайт. Через секунды диспетчер задач фиксирует запуск java.exe, затем очередного «fghtdhdffsdhr.exe», который я не без удовольствия изничтожаю после того, как, на мой взгляд, он достаточно напакостил.

Начались разборки с log-файлами. Вирус проявлял типичную активность. Это было неинтересно, было интересно, как он появился. То, что его изначально загружает java-апплет, я понимал, но очень хотелось понять, как администраторы файлообменника такое допустили. Оказалось все очень просто, хотя запутанно из-за обилия перенаправлений и рекламы. Одна из «рекламок» просила загрузить счетчик страниц в виде файла *.swf со стороннего сайта. Счетчиком он был, я думаю, потому, что сайт подходяще назывался. И был в домене ru, кстати. Но этот файл перенаправлял браузер на другой сайт counter.*.com. И вот он уже практически всегда возвращал пустую страницу с намеком что, да, пользователь засчитан. Но в случае, если пользователь загружал счетчик впервые, браузер перенаправлялся на страницу с java-апплетом, который обрабатывался java.exe, загружал исполняемый файл на компьютер пользователя и запускал его. Java.exe запускался Оперой с рядом параметров, включая, насколько я понял, имя именованного канала, через который Опера и сливает апплет. На более тщательное расследование времени не было.

Конечно, я запостил баг-репорт на opera.com с описанием последовательности появления проблемы. Вполне ожидаемо мне ответили, что это проблема Java, браузер работает правильно, и пишите письма в Oracle. В Oracle я уже писать не стал, с моей точки зрения, Java тоже работает правильно. Выполняет код, загружает файлы, запускает программы, на что жаловаться? Проблема заключалась как раз в том, что Opera разрешает Java выполнять неизвестный код от неизвестных источников. Справедливости ради отмечу, что Chrome и Firefox по умолчанию запрещают работать плагину Java как раз из-за проблем с безопасностью. Вторая проблема, конечно, в веб-мастерах популярных ресурсов, которые в погоне за показами и трафиком размещают у себя на сайтах рекламу из сомнительных источников, которая, с одной стороны, может работать по прямому предназначению, а может, выдавая свои действия за вполне безобидные, и творить зло.

Развязка


Толчком к статье послужила еще одна форма головотяпства, проявленного, что уже совсем страшно, на сайте очень популярного в моем городе супермаркета. На определенных страницах этого сайта Опера опять запускала неизвестные файлы через Java! Но там оказалось все намного проще: в коде страницы, в нижней ее части, даже за закрывающим тегом <html> был вызов JS-скрипта со стороннего сервера, который спустя ряд перенаправлений загружал апплет. Срабатывал он по событию onmousemove и загружался в миниатюрный iframe. И, как всегда, повторный переход по страницам магазина к загрузке вируса не приводил: вредоносный сервер устанавливает cookie и запоминает IP-адрес. Для такого знакомого сочетания сайт вместо вируса возвращал код 404. Именно благодаря этой способности, вирус и вредоносный код на странице могут очень долго оставаться необнаруженными. Администратор сайта, однажды поймав cookie, уже никогда не увидит эту проблему. А при условии того, что обновляется только контент сайта, то следующая ревизия кода может быть через очень долгое время, за которое злоумышленники смогут обновлять и свои подходы, и подсаживаемых троянцев.

Способ заражения тоже прост: скорее всего, у администратора увели пароль к ftp-аккаунту для сайта магазина. Возможно, таким же троянцем. А дальше автоматически прописали во все *.html файлы или файлы c html-кодом тег <script></script>. Не зря же он располагается даже за </html>-тегом.

А с администратором сайта связаться я не могу, контакты сайта указывают только на пресс-офис. Зная, как долго мое заявление будет пробиваться через бюрократический корпоративный аппарат, и, понимая, что оно может и «случайно» затеряться, я не хочу к ним «официально» обращаться. Тем более администратор сайта, прочитав письмо, через пару минут устранит все проблемы и продолжит свое блаженное существование, не поменяв, возможно, даже пароль доступа к сайту. Через своего знакомого в IT-отделе магазина я напрямую выйду на администраторов сайта и поясню суть проблемы.

Послесловие


Надеюсь, это получилась поучительная история, из которой можно сделать ряд выводов:
  • Безответственность и невнимательность могут привести к печальным последствиям.
  • Не стоит доверять даже любимым сайтам. Если вчера на них все было хорошо, то сегодня уже может стать плохо.
  • Сервера, раздающие вирусы, не дураки. Больше одного в одни руки не отгружают. Только одна попытка заражения на один IP или компьютер.
  • Думаю, проблему можно решить, отключив плагин Java в Опере с помощью opera:plugins, либо запретив автоматическое перенаправление в настройках (сомнительно и неудобно).

P.S. Не исключаю возможности наличия этой «проблемы» в других браузерах старых версий.

UPD: В связи с вопросами выделю основную мысль статьи: Опера, в отличие от других популярных браузеров, «по умолчанию» не предупреждает пользователя о потенциальных проблемах с безопасностью Java. Вторая мораль в том, что эксплуатация подобной «уязвимости» (да, надо было взять это слово в кавычки и в заголовке) возможна благодаря безответственности различных категорий лиц (примеры в статье).
Поделиться публикацией
Комментарии 25
    +5
    Пробивают не браузер, а плагины. Порядка 5 разными методами, чтобы наверняка. Java, pdf, swf, ole и прочее.
    Вполне логичным было бы запускать браузер в sandbox'е или вообще не выходить в интернет с компьютера, на котором хранится важная информация.
    Любой сайт участвующий в какой-либо баннерной сети рано или поздно может начать раздавать эксплоиты.

    К слову говоря параметр --no-sandbox для хрома также очень часто используется в банковских троянах, отключая напрочь защиту.
      0
      Могу еще предложить заблокировать запуск исполняемых файлов из папок %TEMP% и %APPDATA%.
      При этом правда могут возникнуть проблемы с автоматически обновляющимися программами и запуском файлов из архивов.
        0
        Да, проблему эту так и решаю. Запретил для Оперы запуск любых исполняемых файлов. Страдает, правда, теперь открытие *.pdf, *.torrent и пр.
      0
      Так что за «доблестный антивирус?»
        0
        В моем жизненном опыте, такие антивирусы — McAfee и NOD32. Точно так же, как и у автора в связке Опера+java «в свое время» пропустили вирус и даже не чихнули
        +3
        Советую хотя бы раз в 2 недели заходить на сайт www.surfpatrol.ru. С его помощью можно узнать, какие уязвимые плагины установлены в браузере и обновить их (при наличии патча).
          +2
          Захожу время от времени что б увидеть в очередной раз «Unfortunately we do not support your browser or platform now» и обещание «Soon».
          0
          Видел пару машин на которых висел процесс с подобным именем и запускался средствами планировщика задач. Насторожило что на сайтах стал появляться сбоку банер.
            0
            Один из последних троянов, пойманных мною, модицифицировал wininet.dll таким образом, что любой сайт сопровождался баннером с просьбой оплаты через смс. При этом код баннера вставлялся в html-код страницы, полученной через http-сообщение. Фокусы в виде плагинов к браузерам, «пользовательского» js-кода уже, видимо, у мошенников устарели.
            +4
            Смешно…

            Вполне ожидаемо мне ответили, что это проблема Java, браузер работает правильно, и пишите письма в Oracle. В Oracle я уже писать не стал, с моей точки зрения, Java тоже работает правильно. Выполняет код, загружает файлы, запускает программы, на что жаловаться? Проблема заключалась как раз в том, что Opera разрешает Java выполнять неизвестный код от неизвестных источников.


            А почему не в Microsoft написали, ведь их ОС разрешает опере выполняться и подгружать java-плагин для обработки java-апплетов
              +2
              А почему не в Intel(AMD)? Это же все на их процессоре исполняется!
                +1
                Chrome или Firefox выводят красивое сообщение о потенциальной опасности запуска Java. Opera — нет. Потому им и написал.
                +3
                Может быть таки уже пора прекращать принимать такие вещества? Причём здесь опера? Java запускает программы после эксплуатации уязвимости в ней. Никакой браузер не может ограничить функциональность плагина, потому как она может быть нужна пользователю.
                  +2
                  не понял о чём статья
                  честно

                  автор, как можно быть таким _прошаренным_ в плане защиты ос, аутпосты всякие, и т.п.

                  но при этом не отключать java плагин (он же как красная тряпка) и не использовать click to play, при том что в опере там можно per-host всё настроить, если уж тебе java где-то нужна…
                    +2
                    Я понял о чем говорил автор: хром спрашивает «запустить один раз» или «разрешить»… Опера в тихую скачивает и запускает.
                      +1
                      Тогда автору поможет следующее: «Настройки» — «Расширенные» — «Содержимое» — «Включать плагины только по запросу» поставить галочку.
                      +2
                      Отключайте автозапуск плагинов. Жизнь становится много комфортнее.
                        0
                        Основной смысл статьи в уязвимых настройках «по умолчанию». И о безответственности людей, которые это допускают, которые эти настройки не меняют, которые допускают эксплуатацию этих уязвимостей по своей неосторожности, недобросовестности или неопытности.
                          0
                          Ни разу в жизни не встречал полезного сайта'использующего java. Корпоративный интранет-софт не всчет — там все работает исключительно на осле. Поэтому всегда вичищаю джава-плагины из браузеров.
                          А то что крайнего. (Опера или оракл)в этой истории не найти — так это большая проблема современности
                            +1
                            Я искренне удивляюсь людям, которые устанавливая Ява на компьютер, не удаляют ява-плагин. И также удивляюсь людям. кто ставит Adobe Reader с плагином в браузер. Посмотрите на любой сайт по информационной безопасности, посмотрите на самые популярные экйплойты для заражения браузера: Java, Adobe Reader лидируют уже лет 10. Сколько 0-day дырок к ним гуляет в хакерском андерграунде — неизвестно.

                            Нет, даже разбирающиеся в IT люди радостно ставят себе эти по сути «бекдоры». Люди, вы адекватны? Вам нравится идея подхватить троян, и какой-то школьник будет читать все ваши файлы, личные данные и переписку, и требовать от вас выкуп по СМС?

                            Хром, в отличие от других браузеров, имеет изоляцию и песочницу, но и в ней есть лазейка. Сколько раз говорили людям, расширения для Хрома могут воровать ваши куки и пароли от вконтакта. Код этих расширений никто не проверяет. Нет, люди все равно их ставят.

                            Я советую при установке Java физически удалить из каталога программы файл браузерного NPAPI и ActiveX плагинов, так как программно надежно отключить его вроде бы невозможно. Adobe Reader лучше заменить на альтернативные читалки вроде SumatraPDF с опенсурсом внутри.

                            Единственным островком безопасности, лучиком света и примером правильной инфраструктуры сегодня является закрытые экосистемы вроде Эппл, или ОС для игровых приставок, где пользователи могут скачать и установить только проверенные программы и спокойно посещать любые страницы, не бояться вирусов или троянов, где практикуется подписывание кода, песочницы, шифрование личных данных и прочие меры.
                              +1
                              С последним абзацем не соглашусь — я за последние лет 5 еще не видел ни одного человека, использующего не джейлбрейкнутый айфон. а джейлбрейкнутый айфон — такая же дурная штука, как и андроид — что хочешь, то и ставишь, но то, что ты ставишь котиков на рабочий стол не означает что кроме этого ты не получишь в систему руткит, спаморассыльник, кейлоггер или еще какую-нить фигню, особенно ставя игрушки и программки из непроверенных левых источников, а не аппстора, который проверяется.
                              Про андроид даже говорить не буду — на моей памяти только 3 человека из тех, кто его используют, реально читают список требуемых разрешений и удивляются, зачем скринсейверу нужна отправка смс (реальный случай из гугль плея)
                                0
                                Я не видел ни одного человека, использующего джейлбрейкнутый айфон.
                                  –1
                                  Ну как Вам сказать, я отношусь очень странно к людям, покупающим себе айфоны за килобакс и в кредит в реалиях того же Киева, но при этом ездящих в городском транспорте, и ведущих себя в очередях в супермаркете, простите за выражение, как тупое быдло, а не цивилизованные люди, спокойно стоящие в очереди — штук 8 примеров за последний месяц, когда я стоят в очереди на кассу. Но при этом некоторые еще демонстративно трындят в очереди по своему айфончику его демонстрируя всем вокруг и смотря на пользователей андроида и простых телефонов как на отбросы общества типа.
                                  А учитывая общее нежелание платить и желание халявы в реалиях СНГ я не буду говорить за всех, но я знаю только двух человек, которые реально покупали контент в iTunes.
                                  К сожалению несознательность в плане потребления цифрового контента еще очень и очень в наличии.
                                  Я точно так же не могу назвать ни одного пользователя, честно сознательно купившего винду без ноутбука или ОЕМку с десктопом, офис или фотошоп, хотя как системный администратор за весь свой 15 летний стаж возни с машинами лицензионную винду видел только на корпоративных компьюетрах/ноутах
                              0
                              ради тех десяти случаев в год, когда вам действительно нужны плагины, можно сделать так:



                              + назначить горячую клавишу на эту настройку.
                                +2
                                Эх. Ну не обо мне речь. Речь об армаде пользователей Оперы, которые не знают о проблемах с плагинами. Меня-то как раз плагины в ней не беспокоят.

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое