Drive-by-Download: еще один способ отличить человека от робота

Drive-by-Download: еще один способ отличить человека от робота

Напомню, что целью атак Drive-by-Download является распространение вредоносного кода, а реализуются они через привлечение жертв на вредоносный сайт с последующей эксплуатацией уязвимостей в ПО (браузер, flashplayer, pdfviewer, компоненты ActiveX и т.п.).

Для того, чтобы вредоносный сайт подольше жил, злоумышленники предпринимают целый ряд защитных мер (о них подробно написано в нашей статье «Drive-by-Download по-тихому или Маскируем вредоносные сайты от wepawet и его друзей» в сентябрьском номере Хакера ), среди которых:

– отделяют уязвимых пользователей от неуязвимых (страницу с эксплойтом не хочется показывать абы кому);

– отделяют посетителей-человеков от роботов (роботы, а тем более боты всяких AV-производителей мало того, что не подвержены эксплойтам, так они еще могут заклеймить домен как вредоносный, что приведет к снижению времени его эффективной работы);

– отделяют новых посетителей от возвращающихся (вредоносному сайту не нужно повышенное внимание).

… и т.п.


Сегодня я хочу поделиться с вами одной идеей, с помощью которой можно отделить роботов от человеков. Итак, задача (упрощенно):

1. Есть страница X, на которую приходят (перенаправляются) посетители, в отношении коих будет проводиться атака Drive-by-Download.

2. Есть страница Y, на которой размещен непосредственно эксплойт.


Требуется: реализовать переход со страницы X на страницу Y таким образом, чтобы до страницы Y не дошли роботы, но дошли все или почти все человеки.


Усложним себе задачу, сделав следующие допущения:

1. Все роботы умеют интерпретировать Javascript. Иначе задача решается тривиально.

2. Все роботы построены на основе WebKit, а пользователи работают из-под браузера Google Chrome. Таким образом, методы fingerprinting’а также не применимы.


Сначала перечислим well-known варианты решения:

1. CAPTCHA. Не годится, ибо мы хотим свести к минимуму взаимодействие с пользователем. Кроме того, CAPTCHA на простой странице вызывает подозрения.

2. Можно регистрировать события от мыши и клавиатуры: мол, если есть – то человек, иначе – электронный болван. Но такие события эмулируются на раз.


Что же предлагается? Идея заключается в том, что типичные пользователи до автоматизма довели свою реакцию на раздражающие факторы: всплывающую рекламу или звук – немедленно выключить. Таким образом, делаем следующее: при переходе на нашу страницу пользователю демонстрируем всплывающую рекламу (полностью отрисованную с помощью Javascript), заслоняющую почти всю страницу. Нормальный пользователь тут же закроет такую рекламу. Бот – нет. Соответственно, зарегистрировав закрытие такого окна, перенаправляем пользователя на страницу Y, в противном случае – на сайт Диснейленда.


Обсуждая эту идею с Владимиром Воронцовым , получил справедливую критику метода: а что если с помощью WebKit мы будем делать скриншоты текущего окна (пример, как это работает – тут ) и распознавать в полученных картинках крестики для закрытия рекламы, вычислять X и Y и эмулировать туда click мышью?

Можно в самой рекламе разместить много похожих крестиков. Например, показать смеющуюся японскую девочку anime-style – у них, как известно, глазки крестиком :)


Если мысль моя не нова, прошу кинуть ссылкой на первоисточник. Google мне ничего не сказал…



Uncategorized копилка просто о сложном malware
Alt text

Если вам нравится играть в опасную игру, присоединитесь к нам - мы научим вас правилам!

Подписаться