2013/09/13 - Размышления о гипотетических браузерных вирусах

топ 100 блогов Леонид Каганов: блог14.09.2013

Для отладки своего движка я открыл для себя window.onerror :) И настроил отсылать на сервер информацию об ошибках скрипта, которые возникают на страницах моего дневника у разных пользователей в их браузере. Я рассчитывал найти ошибки собственного кода, которые проявляются в браузерах, на которых я движок не тестировал. Однако то, что набралось в логе за сутки, заставило меня глубоко задуматься. Я увидел самые разнообразные ошибки JS, которые возникают у посетителей моего дневника, хотя в моем коде сроду не было ничего подобного!

У одного посетителя браузер 1 пытался найти в моем коде jQuery и огорчался, что не может найти: 'Uncaught ReferenceError: jQuery is not defined' in #503 Помилуйте, у меня на страницах сроду не было jQuery, кто его там спрашивает?

Или вот некий скрипт, назвавшийся miscellaneous_bindings2 каждую секунду, пока человек читал мой дневник, пытался ломиться куда-то вовне: 'Uncaught Error: Attempting to use a disconnected port object' in #51 Я погуглил — говорят, какое-то «расширение» пытается что-то читать или писать в локальных файлах. Нормально, да? Вы читаете в интернете сайты, а тем временем какое-то ваше «расширение», установленное в вашем браузере (хорошо, если вами), ежесекундно пытается получить доступ (хорошо, что безуспешно) к каким-то файлам на вашем диске (хорошо, если к своим).

Довольно часто у пользователей браузер3 шлет моей странице сообщение через оконный транспорт onmessage с неким «Object.topic=yandex.smart-links.status.request». Кому он его посылает? Мой обработчик onmessage совершенно не ждал таких посылок и естественно выдает ошибку (протокол переклички моих страниц иной).

Вот чей-то Айпад4 ищет какой-то 'ReferenceError: Can't find variable: atomicFindClose'

Вот чья-то Убунта5 выдает 'Error loading script' в попытке получить исполняемый код, отправив запрос с загадочными данными на внешний сайт:

http://push.notif.9gag.com/lp/7b5ccaf651dd5a?&callback=PushStreamManager[0].wrapper.onmessage&tag=0[...]

Надеюсь, линуксоид, владелец этой Убунты, в курсе, за каким скриптом он шел на загадочный http://push.notif.9gag.com, больше всего сейчас напоминающий чью-то хакерскую площадку на бесплатном хостинге?

Причем, всё это происходит в незаметном для вас режиме — вы-то этих ошибок не видите. Если бы я не включил логи ошибок, я бы тоже о них ничего не знал. В принципе понятно, откуда такое берется: современные браузеры обвешаны самыми разными «плагинами», «расширениями», «дополнениями» и прочей ерундистикой, и она активно вмешивается в код всех страниц, которые вы просматриваете. Что эти приложения делают на каждой из страниц — одному богу ведомо (а если возникают ошибки — то немножко и мне). Может, у вас какой-то безобидный спеллчеккер, может, резалка рекламы, может плагин Яндекса пытается следить, какие сайты сегодня популярны, а может это следилка за паролями, которыми вы логинитесь в моем дневнике, на Фейсбуке или в онлайн-банке. Не проблема же их сосканировать, если ваш браузер решил выполнить собственный JS на странице онлайн-банка.

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

Сегодня в большинстве случаев «операционной системой» настольных компьютеров стал браузер. У большинства пользователей компьютер загружается, открывается браузер, и все остальное происходит в нем: серфинг по страницам, почта, работа с офисными документами, чаты, просмотр видео и музыки — большинство задач пользователя берет на себя браузер. Большинству простых пользователей сегодня не важно, что у них за система — Виндоус или Линукс, потому что они перед собой видят лишь абсолютно стандартный Firefox или Chrome. Разрабатывая концепты сети binoniq (пока мной не реализованные) я тоже исходил из предположения, что дополнительно установленные «клиенты» на настольных компьютерах неверный путь, поскольку браузер сам по себе может стать чем угодно, включая пиринговую сеть.

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

Нет, я вовсе не утверждаю, что у некоторых моих посетителей плагины-вирусы. Мне просто интересно, насколько сетевая общественность осознает эту проблему? И что делается для контроля? Есть ли, допустим, сайты, на которые можно зайти браузером, чтобы узнать, какие ваши плагины что пытаются творить, пока вы не видите? Есть ли список вредоносных плагинов и признаков, по которым мой сайт смог бы их опознать и предупредить пользователя?

В общем, я нашел для себя довольно много неожиданных вопросов. Завтра уезжаю на неделю, не знаю, будет ли интернет, да и работы адский завал. Но вы пока об этом подумайте ;)

PS: Если вы хотите сами видеть ошибки, которые выдает ваш браузер на моей странице, можете в своей карточке поставить галочку «показывать ошибки браузера».

Оригинал заметки находится по адресу http://lleo.me/dnevnik/2013/09/13.html, там можно оставить комментарии.

Оставить комментарий

Архив записей в блогах:
Как же я люблю ирисы! Не устаю восхищаться этим волшебным цветам. И они однозначно входят в тройку моих любимых цветов. В них идеально для меня все: во-первых, изумительные и нежно-любимые мной оттенки голубого у многих сортов, причем от самых светлых, до темных, во-вторых, необычный ...
Новогоднему параду дураков нет конца? спрашивает     nikola_borisov по поводу последних событий. А мне вот совершенно очевидно, что зав. отдела небесной канцелярии по чудесам обнаружил неизрасходованные лимиты. А дело известное, - если в одном ...
Плавал сегодня в бассейне, братцы вы мои. Ух как плавал я сегодня в бассейне. Плавал аффиксоидом, плавал граммемой, плавал дизрезой. И даже интерфиксом тоже плавал. ЗАМЕЧАНИЕ ФЕДЮКУ. Basil V. Kotov: "Сделал Федюку замечание, но тот на мои слова не отреагировал. Вспомнил, что в углу стоит ...
В моём понимании две первые фотки - минимализм. Хотя по науке, возможно, нет :) 1 2 3 4 5 6 Вот это уж стопероцентно минимализм :) 7 Погоды у нас непрогулочные, а если и прогулочная вдруг случается, то серое небо и снег кругом как-то не просятся на ...
Попалось на глаза интересное предсказание. При всем том, что к любому из них стоит относиться с известной долей юмора и иронии, порядок преобразований ...