Клиентский антивирус - мысли

123 4
Solmyr
На сайте с 10.09.2007
Offline
501
#11
RiDDi:
Надстройки в браузерах вставляют в страницу сайта тизеры, папандеры, а то и просто тупо редиректят трафик. Текущая доля таких пользователей составляет по данным DirectStat от 5 до 40% - в зависимости от тематики. В развлекательной просто зашкаливает. Соответственно владельцы сайта теряют свой доход в этом размере. Профит в том, что перестанут терять :)

Ну наверное... я не знаком с развлекательной тематикой....

RiDDi
На сайте с 06.06.2010
Offline
256
#12
SeVlad:
А толку найти его в ДОМ? Найти его в исходных кодах сайта и обезвредить - вот задача.

Вообще-то найти в исходных кодах зная вывод это самое простое и полностью поддающееся автоматизации 😂

Вы путаете потому, что антивирусы, обычно, ищут не зная никакого вывода по сигнатурам самого кода.

Установить сам факт обмана и его точный print - вот самое сложное.

Сразу к примеру.

Обычный "антивирус".

Суть

Бесконечно перебираем файлы и пытаемся по исходному коду понять будет ли вредным его исполнение.

Как работает

- Каждый день проверяет файлы сайта по хешу и атрибутам на изменения.

- Каждый день ищет подозрительные сигнатуры - например метод eval. Чаще всего это только eval и есть + куски кода из распространенных шеллов ))

Обходы.

- Подделывать атрибуты файлов (дату изменения например).

- Добавлять изменения в файл тогда, когда эти изменения делает владелец сайта

- Работать выше антивируса - на уровне веб-сервера например.

- Не использовать подозрительные методы.

Все способы более чем реальны и используются в 99,9999999% случаев.

Моя идея

Суть:

Есть бяка в браузере у пользователя - по этой бяке находим источник. Нет - ничего не делаем.

Если бяка поступила с сервера - находим на сервере исходник, который сделал бяку и бьем тревогу.

Если бяка поступила от браузера - блокируем бяку.

Как работает

Клиентский модуль:

- Срабатывает в браузере от слива трафика или внешней ссылки или изменения контента

- Вычисляет точный серверный print (что было отдано сервером)

Серверный модуль:

- Вычисляет файл и строку сформировавшую этот принт. Не ищет! И не перебирает ничего! А вычисляет через SAPI или ещё что. Например для PHP это может быть отдельный простенький модуль (расширение) на С.

Обход.

- Нет.

Текущие антивирусы пытаются по исходному коду угадать событие. Что почти невозможно.

Мой же будет по совершенному событию находить исходный код. Что возможно на 100%.

Как видите способ не только намного эффективен, но ещё и значительно более экономичен по ресурсам. По сути он вообще ничего не делает пока от клиента не придет тревожный сигнал.

Сама идея не нова. Обычный системные файловые антивирусы тоже использовали когда-то метод "от противного" для определения вредоносного ПО. Например блокировали тупо всё, что лезет в hosts. Но с усложнением ОС и с ростом динамичности приложений в целом от такого метода почти полностью отказались: обработчиков и событий так много, что антивирус съедает все ресурсы.

Но в вебе такое событие одно - от сервера пришел кусок HTML. Всё! И обработчик один - браузер, который это дело интерпретирует. И найти в HTML несанкционированный контент проще простого. И найти потом по этому контенту источник - тоже.

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

SeVlad:

Эт да. Но как твоя разработка поможет владельцу сайта? Или кто ЦА проекта?

"Разработка" будет блокировать действие сторонних надстроек в т.ч. AdBlock.

Вебмастер отдыхает на бережках морей. Заработок в интернете - дело техники.
SeVlad
На сайте с 03.11.2008
Offline
1609
#13

RiDDi, в общем всё ясно, но на нек. моменты подискутируем ;)

RiDDi:
Вообще-то найти в исходных кодах зная вывод это самое простое и полностью поддающееся автоматизации

Не согласен. Найти по результату в DOM исходники в неск. файлов (да ещё размазанной по функциям) мб ой, как не просто :)

RiDDi:
Как видите способ не только намного эффективен, но ещё и значительно более экономичен по ресурсам.

Спорный момент. Перенос нагрузки с сервера на клиента. А что при этом будет у клиента.. Про снежинки напомнить или в курсе?

RiDDi:
Но с усложнением ОС и с ростом динамичности приложений в целом от такого метода почти полностью отказались:

Это не так. ХИПСы - только набирают обороты.

RiDDi:

"Разработка" будет блокировать действие сторонних надстроек в т.ч. AdBlock.

Это ой как "понравится" пользователям :) И если работает, то до поры до времени. (на хитрую Ж..)

Ида.. Юзер с адблоком (прокси\файервола или др. защитами) вполне может запретить твой яваскрипт. И что тогда? Не получит сайт?

Исходя из вышеизложенного я вижу, что применение этого - создание проблем юзерам и как следствие - потеря тарфа. Хотя возможно что в нек. нишах это вполне применимо.

Я что-то упустил?

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
RiDDi
На сайте с 06.06.2010
Offline
256
#14
SeVlad:
RiDDi, в общем всё ясно, но на нек. моменты подискутируем ;)

Не согласен. Найти по результату в DOM исходники в неск. файлов (да ещё размазанной по функциям) мб ой, как не просто :)

Ой как именно непросто? ))

Интерпретатор видит значение всех переменных. Ввод бяки сразу обнаружится.

Можно даже автоматически удалять бяку комментируя создание или изменение переменной.

SeVlad:

Спорный момент. Перенос нагрузки с сервера на клиента. А что при этом будет у клиента.. Про снежинки напомнить или в курсе?

Бесспорный момент. Нагрузки клиенту практически не создаётся т.к. выполняются простейшие операции. Куча сайтов уже почти год работают с этим модулем.

SeVlad:
Это не так. ХИПСы - только набирают обороты.

Что-то я сильно сомневаюсь )) Для эффективного применения хипсов нужен жесткий стандарт. Например если пользователь сам шарит - "так, вот это это и это можно, все остальное - блокировать". Там, где есть жесткий стандарт не нужны и антивирусы т.к. можно саму систему так настроить, что бы приложения не лезли куда не надо ) Что успешно в никсах тех же и делается.

SeVlad:
Это ой как "понравится" пользователям :) И если работает, то до поры до времени. (на хитрую Ж..)

Ида.. Юзер с адблоком (прокси\файервола или др. защитами) вполне может запретить твой яваскрипт. И что тогда? Не получит сайт?

Ну да, а ещё он может запретить все скрипты или просто шарахнуть ноут об стену )) Или ещё какие-то бессмысленные действия сделать )

Пользователь будет блокировать не скрипт, а рекламу, которая покажется т.к. был обойдён АдБлок. В этом случаи реклама будет заблокирована. Однако это увидит мой скрипт и уже совсем скоро обойдет блокировку пользователя.

Работу АнтиАдБлок тоже как и клиентскую нагрузку нет смысла обсуждать т.к. это всё уже год работает. Никто ничего ни разу даже не пытался блокировать.

Лучше давайте-таки сосредоточимся на поиске и удалении вирусов. В каком случаи, по-Вашему, могут возникнуть проблемы?

На примере той же связки апаче+пхп.

Интерпретатор пхп видит бяки в переменных во время обработки участков с php, апач видит бяки где код просто html.

И там и там можно замутить автоматическое "лечение" комментированием ))

Что может быть ещё?

RiDDi
На сайте с 06.06.2010
Offline
256
#15

Ой-ой, заинтересовавшись странными вопросами полистал несколько страниц этого раздела - смотрю совсем бида )

Люди ищут вирусы текстовым поиском в блокноте по всем исполняемым и статичным файлам сайта 😂

Я один что ли знаю, что сервер может указать точный файл и строку в нём по имеющемуся принту?

Тогда ещё одна главная концепция: приложение, куда вводишь принт (например "<a href=>левая ссылка</a>") и оно показывает в каком файле этот принт формируется. Ну типа отладчика в IDE только прям на работающем сервере.

Господа инвесторы и разработчики, золотая жила же, не проходите мимо! 😂

SeVlad
На сайте с 03.11.2008
Offline
1609
#16
RiDDi:
ВВвод бяки сразу обнаружится.
Можно даже автоматически удалять бяку комментируя создание или изменение переменной.

Ты, видимо, не понял о чём я :) Ты говоришь о "поиске" в браузере\ДОМ (т.е. о заманивании зелёнкой результате), а я говорю об источнике (причине болезни). Не верю, что ты не понимаешь, что для вывода 2-хстрочной "бяки" в браузер можно написать скриптец, код которого будет размазан в 10-ке файлов в 100-не функций. И найти этот источник - вот это уже может быть проблемой. (сразу скажу - писать и моделировать ничего не буду)

RiDDi:
Что-то я сильно сомневаюсь ))

:) Ну тут уж ничего не поделать :)

RiDDi:
Пользователь будет блокировать не скрипт, а рекламу, которая покажется т.к. был обойдён АдБлок.

Он её уже раз заблокировал. Опять?!!! Что ему проще - заново все правила переписывать или добавить одно, блокирующее скрипт? :)

И вообще это правило он уже получит при след. обновлении подписки :)

RiDDi:

Я один что ли знаю, что сервер может указать точный файл и строку в нём по имеющемуся принту?

А это доступно сайтовладельцам на шареде? ;)

RiDDi
На сайте с 06.06.2010
Offline
256
#17
SeVlad:
для вывода 2-хстрочной "бяки" в браузер можно написать скриптец, код которого будет размазан в 10-ке файлов в 100-не функций.

Да! Вот в этом и самая тема!!

Смотри.

Пример 1.

Бяку формирует хитрый код на PHP. Обнаружить в файлах сервера - нереально. Почему? Потому, что во-первых не известен сам факт бяки. Никто не будет просто так лопатить сервер в поисках бяки. Во-вторых не известно что именно искать. Как ты сам говоришь может быть в куче файлов хитро сделано так, что даже программист не сразу догадается что этот код делает.

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

Дальше уже на сервере специальное установленное в систему приложение со специальным модулем внедрённым во все интерпретаторы зная точный принт проверяет в идеале заранее сохраненный лог интерпретации того самого запроса и видит когда и какой переменной был присвоен искомый текст. И находит файл и строку в нём!

Пример 2.

Бяка спрятана в JS. Например в середине подключаемого jQuery. Или в файлах, которые не обрабатываются PHP-модулем - iframe в html и прочее.

Поиск на клиенте аналогичен.

На сервере приложение не найдя ничего в исполняемых файлах проверяет сборку самой страницы с помощи модуля, внедрённого в апач. И находит так же файл и строку!

Всё! Просто, элементарно и эффективно! ))

Пусть слова "специальное приложение" и "модуль для PHP" никого не пугают - это будут простейшие программы использующие API интерпретатора или вебсервера для трассировки их работы.

---------- Добавлено 26.06.2014 в 14:05 ----------

SeVlad:

А это доступно сайтовладельцам на шареде? ;)

Нет, но это и к лучшему.

Мы можем предложить продукт сразу хостерам :) А это уже совсем другие деньги и совсем другая приятная работа с более-менее спецами.

---------- Добавлено 26.06.2014 в 14:12 ----------

SeVlad:

Он её уже раз заблокировал. Опять?!!! Что ему проще - заново все правила переписывать или добавить одно, блокирующее скрипт? :)
И вообще это правило он уже получит при след. обновлении подписки :)

1. Не опять, а уже другая реклама с другим доменом скрипта и другими атрибутами у html-объектов, но в том же месте.

2. Что бы добавить "блокирующее скрипт" надо знать, что именно скрипт в этом виноват, как он называется и где его искать. Ничего из перечисленного он не знает.

3. Ничего он не получит. См. п.2 - он распространяется и на AdBlock.

---------- Добавлено 26.06.2014 в 14:42 ----------

SeVlad:
Ты, видимо, не понял о чём я :) И найти этот источник - вот это уже может быть проблемой. (сразу скажу - писать и моделировать ничего не буду)

Нет, это ты не понял о чем я. Я об интерпретаторе для которого найти что-либо - как два пальца - ибо он формирует и выполняет все операции. А ты мне всё про файлы PHP.

SeVlad
На сайте с 03.11.2008
Offline
1609
#18
RiDDi:
Дальше уже на сервере специальное установленное в систему приложение со специальным модулем внедрённым во все интерпретаторы зная точный принт проверяет в идеале заранее сохраненный лог интерпретации того самого запроса и видит когда и какой переменной был присвоен искомый текст. И находит файл и строку в нём!

:)) См один малюсенький файл подтягивает со стороннего сервера js (который в свою очередь ещё что-то подтягивает) и.. вуяля - в браузере имеем бяку. (Не хочется громко говорить, что мб не только js).

Да даже если всё происходит "стандартно".. Предположим система нашла что бяка со стороннего сайта. Поиск в исходниках стороннего урла (да и вообще - "бяки") нечем не отличается от того же поиска по вхождению текста. Так зачем же эти лишние телодвижения с перекладыванием проблем на юзера?

Или я чего-то упускаю или одно из двух ;)

RiDDi:
Мы можем предложить продукт сразу хостерам

Повбывавбы :) Я лично терпеть не могу "заботливых" хостеров! Мало геммора с их недозащитами админок CMS, автолечениями "вирусов" недоантивирусниками, так ещё и это..

RiDDi:
1. Не опять, а уже другая реклама

Ну как не опять, когда опять, раз уже другая?!

RiDDi:
Ничего из перечисленного он не знает.

Такое ощущение, что ты меня (и др. грамотных инет-юзеров) путаешь с менеджерами из одноглазников :)

RiDDi
На сайте с 06.06.2010
Offline
256
#19
SeVlad:
:)) См один малюсенький файл подтягивает со стороннего сервера js (который в свою очередь ещё что-то подтягивает) и.. вуяля - в браузере имеем бяку.
(Не хочется громко говорить, что мб не только js).
Да даже если всё происходит "стандартно".. Предположим система нашла что бяка со стороннего сайта. Поиск в исходниках стороннего урла (да и вообще - "бяки") нечем не отличается от того же поиска по вхождению текста. Так зачем же эти лишние телодвижения с перекладыванием проблем на юзера?
Или я чего-то упускаю или одно из двух ;)

Да ты всё упускаешь 😂 Я уже не знаю как объяснять.

"Перекладывание проблем на юзера" нужно потому, что в браузере мы точно знаем что искать. Всего две вещи: левый внешний редирект (палим по unload) и левую внешнюю ссылку.

В исходниках потенциальный внешний редирект найти нереально.

SeVlad
На сайте с 03.11.2008
Offline
1609
#20
RiDDi:
что в браузере мы точно знаем что искать.

Для этого сайтовладельцу не нужно перекладывать на ЮА :) Он прекрасно может мониторить сайт своими скрипатами или сервисами типа этого и\или этого. Это гораздо надёжней и оперативней.

Единственный момент, не отлавливаемый др. средствами - плагины браузеров (проблема о которой ты упоминал). Тут соглашусь. Если твоя разработка поможет сайтовладельцу, то вещь безусловно нужная.

Однако я думаю, что вскоре эта дыра пофикситься производителями браузеров или др средствами.

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий