Спасибо, что пришли послушать мою речь.
Я расскажу вам несколько интересных вещей о моей карьере, моих ботах и системе ботнетов, которые принесли мне больше удовлетворения, чем что-либо еще.
Например, что написанный мной бот позволил заработать миллионы долларов на торговле автомобилями и победить российских хакеров.
Я расскажу историю, в которой есть и взлом, и машины (я люблю машины), и русские хакеры, и история о том, как я взламываю систему, и еще много интересного.
Мне нравится говорить маме, что я создаю конкурентное преимущество для клиентов, которое облегчает им получение кредита.
Я начал писать ботов еще в 1995 году для удаленного тестирования медицинских сетей, исследования нарушений конфиденциальности, онлайн-мошенничества, проведения частных расследований, работы на иностранные правительства и так далее.
Я много работал с клиентами в сфере торговли автомобилями, что немного отличает меня от других авторов хакерских ботов.
Я говорю об этом так свободно, потому что у меня есть разрешение клиентов на раскрытие информации по этим проектам.
Эти истории описаны в моей последней книге и в журнале Linux в декабрьском номере 2012 года и касаются технологии интернет-атак.
С тех пор прошло 6 лет, и у меня наконец появилась возможность написать об этом.
Это интересно, поскольку технология ботнетов дает вам возможность получить конкурентное преимущество в вашем бизнесе и добиться стратегического проникновения.
Вы не хотите никому об этом рассказывать, потому что это ваша коммерческая тайна.
Так что, если вы хотите взглянуть на это с другой точки зрения, прочитайте старые выпуски журнала Linux. Я там пишу немного иначе, чем расскажу вам сегодня.
Итак, первое, с чего вы начнете, — это научиться создавать хороший бот-проект. Об этом я расскажу на примере бота для сети продаж автомобилей.
Тогда вам следует осознать коммерческую значимость БОТНЕТА и ботов, только имейте в виду, что это было 6-7 лет назад. Первое, что вам нужно знать, если вы хотите создать действительно хорошего бота, это то, что вам не следует бояться делать что-то другое, вам следует использовать немного другой подход. Если у вашей компании есть интернет-стратегия, ориентированная на браузер, этого недостаточно для успеха.
Браузеры есть у всех; каждый выходит в Интернет через браузер.
Нужно смотреть на вещи шире, видеть со стороны, как работают браузеры и сайты, и тогда можно создавать действительно крутые вещи.
Кто из вас написал «скребки экрана» (программы, использующие данные, отображаемые на экране другими программами)? Много! Кто из вас писал программы-пауки? Тоже многое! Итак, знайте: если вы умеете это делать, недостаточно сделать копию всего Интернета! Ко мне периодически обращаются люди с идеями, как сделать копию Интернета, поэтому имейте в виду, что если ваш проект одновременно требует пакетной обработки данных и получения результатов в реальном времени, у вас возникнет проблема.
Или, если ваш проект требует масштабирования наборов данных, у вас тоже возникнут проблемы.
Если ваш проект имеет такие требования, он обречен на провал.
Это все равно, что пытаться скопировать Google. Когда клиенты спрашивают меня, почему Google нельзя тиражировать, я отвечаю: «Потому что Google тратит миллион долларов в день на электричество, вот почему!» Итак, если клиент предлагает вам сервер для работы, не думайте, что этот сервер принадлежит вам.
Приведу пример: несколько лет назад у меня был клиент, который хотел отслеживать изменение цен на Amazon примерно на 100 тысяч товаров.
Я думал, что этот парень был просто уважаемым продавцом на Amazon, который хотел быть в курсе изменений цен на продукты.
Но когда я узнал, что он хочет делать это каждые 5 секунд, я отказался от этого проекта.
Потому что невозможно обновлять такой набор данных через такие короткие промежутки времени.
Если вы попытаетесь это сделать, знайте, что для этого потребуется построить специальную сетевую структуру, куда вам придется скопировать весь Amazon. Поэтому остерегайтесь иметь дело с клиентами, которые делают подобные предложения, поскольку это также незаконно.
Далее, у вас должна быть реалистичная модель получения прибыли, а не традиционная бизнес-модель.
Например, для торговли на eBay. Это очень важно, ведь вам платит клиент, которому нужен конкретный результат, а не общие методики.
А теперь о торговле автомобилями.
Это важный пример для понимания того, как написать хорошего бота.
Торговать автомобилями не так выгодно, как можно подумать.
Продажа новых автомобилей высококонкурентна, требует больших инвестиций и малорентабельна.
Поэтому, если вы продаете новые автомобили, у вас должна быть проверенная репутация и доверие клиентов, а если вы продаете подержанные автомобили, то эти качества должны быть на первом месте.
Главное, что я понял, решая проблемы трейд-ина, это то, что в торговле подержанными автомобилями очень мало людей, которые действительно зарабатывают на этом много денег.
И если ты не будешь развивать свой бизнес, ты исчезнешь.
Цены на подержанные автомобили хорошо известны, поэтому места для ценового маневра на этом рынке мало.
Все цены на новые автомобили, автомобили пятилетней давности и так далее можно найти в альманахе Kelly Blue Book. Из него вы сможете узнать, сколько стоит ваш автомобиль и за какую сумму его можно продать.
Таким образом, продавец может манипулировать только ценой покупки, а не ценой продажи.
Продавец должен купить автомобиль у владельца как можно дешевле, чтобы получить прибыль от перепродажи за счет низкой стартовой цены.
Ко мне приходят клиенты с просьбой найти сайт, где можно недорого купить действительно хороший автомобиль.
Например, свой или арендованный автомобиль 2-х лет с пробегом от 12 до 16 тысяч миль.
К сожалению, из-за большой конкуренции и плохого веб-дизайна они не могут покупать те автомобили, которые хотят. Сотни дилеров в этой торговой сети хотят одни и те же машины, а дизайн сайтов по продаже автомобилей настолько ужасен, что купить ничего нельзя.
Ежедневно на продажу выставляются две-три сотни автомобилей, которые отображаются на сайте в виде фотографии с кратким описанием характеристик.
И кнопка «Купить» под таким объявлением не активна! Это как раз момент продажи, пока кнопка находится в таком состоянии.
Проходит совсем немного времени и кнопка становится активной.
Что делает клиент? Он сидит перед экраном компьютера и периодически вручную обновляет страницу браузера, пока кнопка не станет активной, чтобы не упустить нужный момент и успеть купить машину раньше, чем это сделает конкурент.
Это приводит к еще одной проблеме — задержкам сервера.
Моему клиенту необходимо привлечь к процессу покупки автомобиля как можно больше помощников, которые также будут сидеть и нажимать клавишу F5, обновляя страницу каждую секунду.
Представьте, что ему удалось найти еще шесть человек, которые также участвуют в процессе покупки.
Предположим, вам нужно купить 6 автомобилей.
Это означает, что у каждого в браузере одновременно будет открыто 6 страниц, каждая на своем компьютере.
И все они сидят и периодически щелкают по клавишам, обновляя браузер.
Пусть за закупкой одновременно следят 750 дилеров.
Итак, у нас есть 6 x 6 = 36 x 750 = 27 000 запросов, поступающих на сервер одновременно.
А в самый ответственный момент покупки, когда она вам вообще не нужна, на сервере происходит пик задержек, совпадающий с нажатием на кнопку «Купить сейчас».
И эта задержка может составлять 30 секунд, пока страница окончательно не обновится и вам удастся или не удастся приобрести автомобиль.
Иногда вы не нажимаете кнопку первым, и покупателем становится кто-то другой.
Это действительно серьезная проблема.
Следующая проблема – конкуренция.
Допустим, каждый день на продажу выставляются 200 автомобилей, из которых 5 машин каждый автодилер в стране захочет купить, потому что они подходящего цвета, отличной цены или по какой-либо другой причине.
Итак, каждый дилер хочет купить одни и те же автомобили, и между дилерами возникает конкуренция.
Вот как выглядит попытка купить одну и ту же машину, когда заявки поступают из разных уголков страны.
Добавьте к этому задержки сервера, отвратительный дизайн сайта и т. д. Именно поэтому люди звонят нам и спрашивают, может ли сетевой бот помочь им в этом вопросе.
Они говорят: «Майк, ты можешь мне помочь? Просто посмотрите на это».
Итак, у нас есть две проблемы: это требует слишком много ручного труда и активная кнопка «Купить» слишком долго появляется на экране.
Вам придется вручную пролистывать страницу, чтобы найти нужную вам машину, вбивать VIN-номера машин, иногда даже звонить продавцу машины, чтобы узнать интересующие вас детали.
Поэтому выбор автомобиля может занять у вас 15- 20 минут. Нажимать кнопку обновления целый день тоже доставляет небольшое удовольствие.
Плюс кнопка «Купить» появляется на экране не сразу, что связано с задержками сервера.
Решение проблемы состоит из двух этапов.
Отмечу, что у бота необычный дизайн, потому что это произошло 6 лет назад, и сейчас я такими решениями больше не пользуюсь.
Вот так выглядит интерфейс моего бота.
Он состоит из четырех строк HTML, каждая из которых предназначена для одного клиента.
Этот бот запускается в сеть BOTNET и начинает работать одновременно на всех компьютерах, которые мы контролируем.
Нет, лучше сказать так: «которые принадлежат нам», это имеет значение, не так ли? Все написанные мной коммерческие боты работали только на нашем железе, это правда.
Клиент-бот обращается к серверу бота, который общается с сервером нужного сайта.
Итак, мой клиент отказался от услуг всех этих людей по обновлению страниц, сам запустил бота на нескольких своих компьютерах, выбрал логин и зашел в аккаунт. Затем он ввел VIN-номер автомобиля, который собирался купить, и проверил, является ли автомобиль, выставленный на продажу под этим номером, законным.
Когда вы используете бота, он делает вещи иначе, чем обычный человек, сидящий за компьютером.
Такое поведение бота привлекает внимание.
Например, если бот не проверил VIN, администратор магазина может задаться вопросом, почему пользователь избегает этого действия, учитывая, что с его IP идет большой трафик, и может заблокировать моего клиента.
После проверки номера в окне бота рядом со строкой VIN появился счетчик, который показывал, сколько секунд осталось до покупки автомобиля, поскольку бот синхронизировал свои внутренние часы с часами продающего сервера.
Чем меньше времени оставалось до нажатия кнопки, тем быстрее обновлялась страница за счет этой синхронизации.
А когда время достигло 0, бот дал бот-серверу команду на покупку выбранного автомобиля.
Бот выступал в качестве триггера для бот-сервера, инициируя самую быструю покупку.
Иногда мы упускали свой шанс, но чаще всего на экране появлялось сообщение «Покупка успешна».
После этого на адрес моего клиента было отправлено подтверждение покупки, что и послужило основанием для оплаты автомобиля.
Вот как выглядит график, показывающий количество неудачных и успешных покупок до и после использования БОТНЕТА – количество успешных покупок увеличилось от 0 до 99%.
Успех был просто феноменальным.
Я звонил своим клиентам через 15-20 минут после появления объявления о продаже на сайте, и они говорили: «Майк, сегодня я купил 5 из 6 машин, которые хотел купить!» Или 7, или 7, или 9 из 12. А я им ответил: «Никому об этом не говорите, не режьте курицу, несущую золотые яйца».
Почему наш бот обеспечил успех? Потому что люди вызывали зависания сервера, периодически обновляя страницы, пока кнопка не стала активной.
В результате покупателем стал тот, кто успел нажать кнопку «Купить» раньше других.
Процесс покупки превратился в настоящую лотерею.
Наш бот заставил счетчик отображать реальное время, оставшееся до активации кнопки «Купить», анализируя активность других покупателей и мощность сервера.
Он моментально отправил команду «нажми кнопку», как только она стала активной на сайте.
Этот тип бота обычно называют «снайпером».
Однажды я собирался написать письмо своему клиенту, что сегодня утром мои снайперы собираются поразить 6 машин, или убить, я не помню.
Но потом я понял, что лучше не отправлять такое сообщение по почте, а просто позвонить ему по телефону.
Или не звоните вообще.
Вообще в нашем деле нужно следить за языком.
Продолжим нашу историю.
Один из моих клиентов был успешным в течение 6 месяцев, а затем потерял 50% своей прибыли — он смог купить только 2 машины из 7, потому что соединение его компьютера с сервером постоянно пропадало.
Оказалось, что виновником стала группа российских хакеров, которых наняли для написания конкурирующей бот-программы, и располагались они где-то за пределами Нью-Джерси.
Так что конкуренция – это всегда хорошо, это похоже на гонку вооружений, которая провоцирует инновации в ботнет-сетях.
Рассмотрим вторую часть решения проблемы.
Расскажу, как работает бот и почему он синхронизируется с часами сервера продаж.
Он рассчитывает время задержки, подсчитывая количество пользователей, работающих в системе.
Каждый бот-клиент заставляет бот-сервер совершать много попыток купить машину, примерно 5-7 попыток в секунду.
Каждая попытка происходит немного раньше фактического времени продажи и основана на расчете системных задержек.
И это действительно приносит успех.
Таким образом, если до этого клиент купил около половины машин, то с нашим ботом этот показатель близок к 100%.
Насколько успешным оказался этот бот? Мы использовали его в течение 40 недель, покупая по 20 автомобилей каждую неделю, примерно по 5 в день, всего было куплено 800 автомобилей.
Каждая машина стоила около $16 тыс.
, а всего наш клиент совершил покупок на $12,8 млн.
Это очень большое достижение для такого маленького дилера, как наш.
Я привел вам пример, который показывает, насколько важен БОТНЕТ для бизнеса.
Вам просто нужно отказаться от традиционных способов использования браузера и посмотреть на проблему по-другому, попытаться решить проблему со стороны, а не внутри привычных рамок.
Что я изменю сегодня, если мне понадобится решить подобную проблему? Мой бот должен оказаться даже более успешным, чем ожидалось.
Это должен быть очень «легкий» программный клиент, буквально одна страница кода Java Script. Его должно быть легко обновлять и быстро распространять по сети.
Далее мне нужно построить аналитику и собрать метрики, характеризующие работу моего бота.
Мне нужно точно знать, чему я обязан своим успехом, мне нужно точно знать, сколько машин было продано благодаря боту-клиенту.
Мне предстоит помочь клиенту в процессе выбора автомобиля.
Мне нужно просмотреть Синюю книгу Келли и отследить рыночные цены на автомобили, которые интересуют моего клиента.
Затем мне нужно изменить HTML-код, чтобы создать кнопку «Купить» внутри бот-сервера, который действует как прокси-сервер.
.
Только тогда я смогу совершить покупку раньше других, которые воспользуются настоящей кнопкой «Купить» на странице сайта.
В примере веб-сайта по продаже автомобилей использовался стандартный HTML-код, который легко эмулируется и подчиняется простым сценариям PHP/cURL.
Современные веб-сайты гораздо сложнее, они используют множество модулей Java Script, AJAX, фоновую связь браузера с веб-сервером, сложные формы и так далее.
Поэтому сегодня решить такую проблему будет гораздо сложнее.
Например, нужную машину необходимо записать через веб-интерфейс в виде Task Queue, которая отправляется на сервер бота.
Эта последовательность зависит от отдельных компьютеров, которые я называю Харвестерами.
Они могут располагаться где угодно — в дата-центрах, в офисах, в облаке, если используется виртуальная технология хранения и обработки данных.
Для их работы используются специальные программные модули iMacro, которые будут постоянно работать с вашим браузером, например, Firefox. Кто-нибудь из вас использует iMacro? Это потрясающий инструмент, который копирует и воспроизводит действия пользователя так, как если бы за компьютером сидел реальный человек.
Жнецы динамически создают эти iMacros и после выполнения задачи связываются с бот-сервером, который обновляет очередь задач, и процесс продолжается.
Если вам интересны подробности этой технологии, посмотрите мой доклад на конференции DEFCON 17, где я рассказал о том, как работают все эти iMacros, как использовать «скраперы экрана» на разных сайтах и много других полезных вещей.
Спасибо, что остаетесь с нами.
Вам нравятся наши статьи? Хотите увидеть больше интересных материалов? Поддержите нас, разместив заказ или порекомендовав друзьям, Скидка 30% для пользователей Хабра на уникальный аналог серверов начального уровня, который мы придумали для вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от 20$ или как правильно раздать сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40 ГБ DDR4).
Dell R730xd в 2 раза дешевле? Только здесь 2 x Intel Dodeca-Core Xeon E5-2650v4 128 ГБ DDR4 6x480 ГБ SSD 1 Гбит/с 100 ТВ от 249 долларов США в Нидерландах и США! Прочтите об этом Как построить корпоративную инфраструктуру класса, используя серверы Dell R730xd E5-2650 v4 стоимостью 9000 евро за копейки? Теги: #ботнет #программирование #конференции #бот
-
Искусственный Интеллект – Новая Форма Жизни?
19 Oct, 24 -
Почему Не Меняются Менеджеры?
19 Oct, 24 -
Как Видят Мир Люди С Дальтонизмом?
19 Oct, 24 -
Входящие И Исходящие Звонки В Колл-Центре
19 Oct, 24