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

Алекс Майфилд и три его приятеля сделали то, о чем многие могли бы только мечтать. Как и многие другие хакеры, они начали с простых мысленных упражнений и проверки их на правдоподобность. В конце концов, они победили систему казино и «облегчили» его, по словам Алекса, примерно на миллион долларов.

В начале девяностых годов все четверо работали консультантами в сфере высоких технологий и считали свою жизнь скучной и обычной. «Что такое жизнь: вы работаете, зарабатываете деньги, потом перестаете работать и, наконец — умираете».

Лас-Вегас был от них очень далек, — где-то в кинофильмах и телевизионных шоу. Поэтому, когда им предложили разработать некоторое ПО и затем представить его на выставке в Лас-Вегасе, они с удовольствием согласились. Для каждого из них это был первый визит в Лас-Вегас, причем за чужой счет — кто откажется от этого? Отдельные номера для каждого из них в одном из лучших отелей Лас-Вегаса позволяли Алексу взять с собой жену, а Майку — подружку. Таким образом, две пары плюс Ларри и Марко готовились хорошо провести время в этом «городе греха».

По словам Алекса, они мало что знали об азартных играх и не знали, чего ждать от Лас-Вегаса: « В ы выходите из самолета и видите старушек, играющих в игральные автоматы, и постепенно заражаетесь всем этим»…

…После того как выставка завершилась, они сидели все вместе с двумя своими дамами в игровом зале своего отеля, поигрывали в автоматы и потягивали пиво, когда жена Алекса произнесла роковую фразу:

— Ребята, ведь эти машины построены на основе компьютеров. а вы — специалисты по компьютерам, так почему вы не можете сделать так, чтобы мы выигрывали почаще?

Ребята тут же направились в номер Марка и уселись в кружок, рассуждая о том, как могут быть устроены игральные автоматы.

ИССЛЕДОВАНИЕ

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

Есть люди, которые побеждают игральные автоматы, «заменяя программу», то есть, добираясь до компьютерного чипа в автомате и заменяя ПО на ту версию, которая будет выплачивать им большие выигрыши, чем предусматривает казино. Другие преуспевают в своем мошенничестве при помощи техника, обслуживающего автоматы. Для Алекса с приятелями такое грубое вмешательство в жизнь автомата было похоже на то, «как если бы мы ударили старушку по голове и отобрали у нее кошелек». Они рассматривали свою будущую «схватку» с казино, как своеобразный вызов своему интеллекту и программистским способностям. Кроме того, ни у кого из них не было талантов социального инженера — они были компьютерными специалистами и не знали, как втереться в доверие к сотруднику компании и убедить его реализовать схему изъятия некоторой суммы денег у казино.

Однако, как подступить к проблеме? Вот что вспоминает Алекс: «Мы рассуждали о том, как мы могли бы предсказать возможные последовательности выпавших карт. Или же, о том, как отыскать „черный ход“ (программное обеспечение, дающее возможность несанкционированного доступа к программе), который некоторые программисты могут использовать в своих целях. Все программы пишутся программистами, а программисты такие же люди, как и все мы. Мы думали о том, как можно было бы пробраться через заднюю дверь, нажимая определенный набор клавиш, или же отыскать определенные просчеты программистов, которые можно было бы использовать в своих интересах».

Алекс прочел в свое время книгу «The Eudaemonic Pie» Томаса Басса (Penguin, 1992), — историю о том, как компания компьютерщиков и физиков в восьмидесятые годы обыграла рулетку в Лас-Вегасе при помощи собственного изобретения — переносного компьютера размером с пачку сигарет, который предсказывал цифры, которые выкидывала рулетка. Один из членов команды находился около стола и определял скорость вращения колеса рулетки и движения шарика по ней, а компьютер затем передавал по радио информацию другому члену команды, который делал соответствующую ставку. Они хотели забрать чемоданы денег, но им это не удалось. По мнению Алекса «у методики этих ребят был большой потенциал, но он не реализовался из-за достаточно сложной и ненадежной технологии. Кроме того, в игре принимали участие слишком много человек, поэтому вставала проблема их контактов и взаимоотношений. Мы не должны были повторить их ошибок».

По мнению Алекса, победить компьютерную игру проще, «поскольку действия компьютера полностью предопределены заложенной в него программой» — каждое последующее действие основано на результате предыдущих, можно выразить это в таком девизе: «хорошие данные на входе — хорошие данные на выходе» (на самом деле, пословица компьютерных инженеров звучит так: «мусор на входе — мусор на выходе»).

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

Он решил, что имеет смысл провести серьезное исследование и отправился в Вашингтон, чтобы изучить патенты в библиотеке Патентного общества. «Я подумал, что автор патента мог быть настолько глупым, чтобы поместить в него подробный текст программы для автомата для игры в покер». Оказалось, что он был прав. «Помещение полного текста всех программ в патент было единственным способом зашиты оригинальности своего изобретения, поскольку именно они и содержали подробное описание сути изобретения, правда. в форме, которая была непонятна большинству читателей. Никакого труда не составило получить микрофильмы со всеми кодами и скопировать их».

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

Кстати, ребята отлично подходили для командной работы. Майк был очень способным программистом, гораздо более сильным в сфере дизайна оборудования, чем три его приятеля. Марко — еще один сильный программист, был эмигрантом из Восточной Европы и выглядел тинейджером. но обладал совершенно дьявольской изобретательностью. Алекс хорошо разбирался в программировании и был единственным, кто знал криптографию, очень нужную им. Ларри не слишком хорошо знал программирование, и не слишком хорошо двигался из-за последствий мотоциклетной аварии, но он был прекрасным организатором, который мог отслеживать все стадии проекта, фокусируясь на том, кто и что должен сделать в тот или иной конкретный момент.

После первой исследовательской стадии проекта казалось, что Алекс к нему охладел, а Марко, наоборот, воодушевился. Он повторял: «Я не вижу большой проблемы: есть тринадцать штатов, где мы вполне легально можем приобрести игральный автомат». В конце концов, он уговорил всех остальных: « М ы решили, что можем рискнуть". Каждому пришлось внести свою долю на необходимые транспортные расходы и покупку автомата. Они еще раз отправились в Лас-Вегас, но на этот раз за собственный счет.

Алекс говорил: «Чтобы купить игровой автомат, надо предъявить документ с регистрацией в том штате США. где приобретение игровых автоматов — вполне законное дело. При наличии водительских прав, выданных в таком штате, все должно было пройти гладко». Оказалось, что у одного из участников команды то ли дядя его знакомой девушки, то ли кто-то еще жил в Лас-Вегасе.

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

За автомат японского производства пришлось заплатить 1500 долларов. «Мы поместили его на заднее сидение автомобиля и повезли домой так бережно, как будто у нас в машине был ребенок».

РАЗРАБОТКА ПРЕСТУПЛЕНИЯ

Майк, Алекс и Марко втащили автомат на второй этаж, и разместили в свободной спальне. Удивительное волнение перед началом работы с автоматом, по словам Алекса, запомнилось всем, как один из поворотных моментов в жизни.

«Мы открыли его, вытащили из него чипы памяти и процессор. Я подумал, что при производстве автомата на заводе крупной корпорации инженеры и сборщики вполне могли работать в режиме конвейера и потому быть немного ленивыми или невнимательными, они использовали чип 6809, аналогичный чипу 6502, который использовался в компьютерах Apple II или Atari. Это был 8-битный чип с размером памяти 64К. Он был хорошо знаком мне».

Машина, которую приобрели будущие хакеры, была одна из тех, что использовалась в игровом бизнесе уже около десяти лет. Если какое-то казино хочет приобрести автомат новой конструкции, то комиссия по играм Лас-Вегаса должна тщательно изучить его программное устройство и убедиться в том, что его выплаты организованы таким образом, что никто не будет обижен — ни игроки, ни казино. Процесс одобрения нового автомата — долгое и нелегкое дело, поэтому казино стараются держаться за старые автоматы столько, сколько это возможно. Это играло на руку нашей команде хакеров, потому что они справедливо надеялись, что более старые автоматы будут основаны на устаревшей технологии, которую им легче будет победить.

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

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

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

При переводе программы в цифровую форму, которую компьютер может понять, эти «дорожные знаки» игнорируются — ни компьютеру. ни микропроцессору они совершенно не нужны.

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

Наши исследователи тщательно изучали страницы кодов на экране, стараясь отыскать ответ на простые вопросы: «Какова логика программы? Каким образом перемешиваются карты перед выбросом? Как фиксируется замена карт?» Но главной задачей на этом этапе был поиск генератора случайных чисел. Алекс предполагал, что японские программисты, написавшие программу, вполне могли допустить незначительные ошибки в написании этого самого генератора, он не ошибся.

ПЕРЕПИСЫВАНИЕ КОДА

Алекс с гордостью описывал усилия команды на этом этапе: « М ы были профессиональными программистами, и все сделали хорошо. Мы выяснили, как цифры кода программы превращаются в карты на табло игрального автомата, а затем написали небольшую добавку на языке С, которая делала то же самое», — говорил он.

«У нас был стимул для работы, и мы работали ночи напролет. Нам потребовалось около трех недель, чтобы досконально разобраться в том, как работает программа.

Для этого мы изучали текст, делали определенные предположения о его назначении, писали некоторые добавки к программе, помещали ее в R O M (компьютерный чип) и возвращали его в машину, а потом смотрели, что происходит. Например, мы написали специальную программу, которая располагала числа над изображением карт на экране. Так мы определили, каким образом программа оперирует с картами. Н а ш а работа ш л а по м е т о д у проб, ошибок, и постоянного анализа, достаточно быстро строки кода начали наполняться смыслом. Мы досконально разобрались в том, как числа в компьютерной программе превращаются в карты на экране.

Мы надеялись, что генератор случайных чисел будет устроен достаточно просто. Дело происходило в начале девяностых годов, и это было именно так. После небольшого анализа я понял, что мы имеем дело с генератором, который Дональд К н у т написал е щ е в 60-е годы. Авторы программы для игрового автомата не стали изобретать велосипед, а просто скопировали в свою программу имеющиеся разработки по методу Монте-Карло.

Мы точно установили, какой алгоритм использовали авторы программы в своем коде для случайной выборки карт; он назывался линейным регистром сдвига с обратной связью (linear feedback shift register) и это был очень хороший генератор случайных чисел (RNG)».

Очень скоро «взломщики» поняли, что в этом генераторе случайных чисел есть очень серьезная «прореха», которая существенно упрощает их задачу. Как объяснял Майк, «это был достаточно простой 32-битный RNG, поэтому взломать его не составляло особого труда, а с помощью нескольких хороших оптимизаций стало совсем просто».

Итак, выдаваемые генератором числа не были абсолютно произвольными. Но, по мнению Алекса, есть серьезная причина для этого:

«Если они абсолютно произвольны, то не могут создавать неравные условия. Они не знают о том, что такое неравные условия. Некоторые автоматы выдают один за другим два последовательных королевских флэша (очень редкую комбинацию карт в покере — прим. переводчика). Такого не должно быть никогда. Поэтому дизайнеры хотят быть уверены, что у них правильная статистика, иначе им кажется, что они теряют контроль над игрой.

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

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

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

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

Алекс приписывает это возбуждение «осознанию того, что вы умнее кого-то и можете переиграть его. А в нашем случае еще и заработать немного денег».

Они отправились в магазин, отыскали там наручные часы Casio с возможностью отсчета десятых долей секунды и приобрели сразу три штуки для всех троих, кто собирался быть в казино: Ларри должен быть оставаться у компьютера.

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

Когда отсчет времени заканчивался, человек у игрового автомата должен был нажать кнопку «Игра». Это должно было произойти предельно четко, в течение доли секунды. Но это не было слишком сложной проблемой, как объяснил Алекс.

«Двое из н а с какое-то время занимались музыкой. Е с л и вы музыкант и у вас хорошее чувство ритма,то вы можете нажать кнопку в нужный момент в пределах десяти миллисекунд».

Если бы все сработало так, как предполагалось, то машина должна была выбросить игроку набор из пяти последовательных карт одной масти — королевский флэш.

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

Несколько месяцев они, по словам Марка, «занимались восстановлением программы автомата, определяли, каким образом случайные числа превращаются в карты на экране автомата, установили точно, как и когда выбрасывает числа RNG, изучили все особенности автомата и создали программу, учитывающую все эти особенности, чтобы в любой момент времени знать состояние RNG на часы и даже дни вперед».

Они победили автомат и сделали его своим рабом. Они бросили настоящий хакерский вызов и выиграли. Это знание могло сделать их богатыми.

Как прекрасно было мечтать об этом. Удастся ли им реализовать свои мечты в дебрях казино?

НАЗАД В КАЗИНО — ВРЕМЯ ИГРАТЬ

Одно дело совершать любые махинации на автомате, стоящем в безопасном месте. Пробовать их в центре переполненного казино и красть у него деньги — это совсем другая история. Для этого нужны стальные нервы.

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

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

Алекс описывал сцену так, как если бы все происходило вчера. У Марко и Майка это получалось по-другому: дело в том, что Алекс со своей женой Энни были первыми, кто совершал попытку единоборства с покерным автоматом в казино. Он должен был с высокой точностью знать цикл срабатывания автомата. Одним из способов. которым они старались достичь этого знания, была видеокамера в рюкзаке; в казино надо было направить видеокамеру на экран покерного автомата и некоторое время снимать происходящее на видеокассету. «Это совсем не просто, — вспоминал Алекс, — ориентировать рюкзак в нужном направлении, не видя результата; при этом надо было себя вести естественно, чтобы не выглядеть подозрительно и не привлекать внимания». Майк предпочитал другой, менее сложный, метод: «Временной цикл для неизвестного игрального автомата можно определить, если зафиксировать выбрасываемые им карты всего дважды, но через много часов». При этом он должен быть...

Страницы 16-17 отсутствуют

...«Я подумал о том. что казино проводит эту проверку из-за тех ребят, которые действительно подменяли программу в автомате. Не представляю, как им удавалось сделать это и не быть пойманными». По мнению Алекса, они применяли методы социальной инженерии, обманывали охрану и давали взятки кому-то в казино. Он подозревал, что они могли подменить даже тот «золотой эталон», с которым сверялись чипы в машине при крупном выигрыше.

Прелесть работы его команды, по мнению Алекса, была в том, что они никоим образом не вмешивались в работу автомата. По их мнению. их подход был куда более гибким.

Естественно, ребята не могли постоянно выигрывать; они были уверены: «в конце концов, кто-то скажет — „Эй, мы уже видели этих ребят“. Мы все время опасались того, что нас поймают».

Кроме боязни быть пойманным за мошенничество, они были озабочены и налоговыми проблемами: любого, кто выигрывал более 1200 долларов, казино просило предъявить документы и докладывало о выигрыше в налоговые органы, Майк вспоминает: « М ы полагали, что налоги автоматически будут вычитаться из выигрыша, если у игрока нет удостоверения личности. Но мы не хотели привлекать к себе внимание. Заплатить налоги не было проблемой, но при этом создавалась запись о том, что вы выиграли большую сумму денег. Мы стали напряженно думать о том. как избежать „засвечивания“.

Надо было искать другой подход. После достаточно короткого периода раздумий они начали разрабатывать новую идею.

НОВЫЙ ПОДХОД

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

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

Тем не менее, и в этом случае разработчики автомата сделали фатальную ошибку. «Они прочли статью, в которой говорилось, что вы повысите уровень случайности чисел, если используете второй генератор, но они воплотили идею неправильным образом». Чтобы определить выбрасываемую карту, они складывали число из первого генератора с числом из второго генератора.

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

Для Алекса использование двух генераторов было своеобразным криптографическим вызовом: он вспомнил, что аналогичный прием иногда используется при шифровании текстов. Однако он не помнил, как надо действовать в подобных случаях и для повышения квалификации стал ходить в библиотеку соседнего университета.

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

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

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

Я помню, как аналогичную ошибку сделал программист компании Norton (до того, как Symantec купил их), разрабатывавший продукт Diskreet — приложение, которое дает пользователю возможность создавать шифрованные виртуальные драйвы. Разработчики некорректно построили алгоритм — а может, даже сделали это намеренно, и это привело к уменьшению длины ключа шифрования с 56 до 30 бит. Государственный стандарт шифрования использует 56-битный ключ, который считается практически не взламываемым, поэтому Norton гарантировал своим пользователям ощущение защищенности. Из-за ошибки программистов на самом деле данные пользователя шифровались при помощи ключа в 30 бит, а не 56. Даже в те годы 30-битный ключ можно было взломать простым «методом грубой силы» (так называется метод последовательного перебора вариантов — прим. переводчика). Любой человек, используя этот продукт, ошибочно думал, что он находится в полной безопасности: атакующий вполне мог сломать ключ шифрования достаточно быстро и получить доступ к данным пользователя. Примерно такую же ошибку обнаружили наши ребята и в программе игрального автомата.

Параллельно с работой над компьютерной программой, которая позволила бы им победить новый игральный автомат, ребята заставляли Алекса думать над новой моделью поведения, чтобы не приходилось постоянно бегать к телефону. Ответом стала страница из книги «Endaemonic Pie» — карманный компьютер. Алекс разработал систему, сделанную из миниатюрного компьютера, который Майк и Марко отыскали в каталоге, В этой системе управляющая кнопка была упрятана в ботинок, а для приема сигнала использовался виброзвонок от сотового телефона. «Нам пришлось немало поработать над тем, чтобы построить систему на основе маленького чипа и маленькой памяти», — рассказывает Алекс. « М ы создали прекрасную эргономичную систему, которая помещалась в ботинке». Вероятно, под словом «эргономичный» он подразумевает то, что его устройство было настолько маленьким, что не натирало ногу при ходьбе!

НОВАЯ АТАКА

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

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

Алекс: «Я обычно помещал свой компьютер в корпус маленького транзисторного приемника. Провод от него шел через носок в ботинок к управляющей кнопке».

Майк: «Я приматывал провод к лодыжке. Мы изготавливали переключатели из небольших кусочков материала, который используется для изготовления интегральных схем. Эти переключатели были размером два на два сантиметра, с небольшой кнопкой. Затем мы вырезали такого же размера дыру в стельке и помещали переключатель в ботинок. Он доставлял неудобство только в том случае, если вам приходилось целый день носить его — мог натереть пальцы».

Алекс: «Итак, мы входили в казино и старались выглядеть максимально спокойно, а действовать так, как будто никаких проводов в наших ботинках не было. Мы подходили к автомату и начинали играть. Для передачи сигналов у нас была разработана система, аналогичная азбуке Морзе. Мы начинали играть и передавали значения выпавших карт при помощи кнопки в ботинке.

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

Майк: «Наш код для передачи информации о выпавших картах был двоичным, кроме того, он использовал технологию сжатия информации под названием код Хафмана. Например, длинный и короткий сигнал означал один-ноль, то есть два в двоичной системе. Длинный-длинный означал три и т.д. Для обозначения любой карты требовалось не более трех нажатий».

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

В этот момент компьютер в кармане обнаружил место в алгоритме, которое соответствовало выкинутым картам. Алгоритм в карманном компьютере был аналогичен алгоритму в игральном автомате, поэтому компьютер в кармане «знал», какие карты будут выброшены автоматом в следующий раз. Поэтому он мог вам дать совет, какие карты надо придержать, а какие — поменять, чтобы получить в результате выигрышную комбинацию, продолжал свой рассказ Алекс:

«Компьютер говорил, что надо делать, посылая сигналы на вибратор в кармане, который мы пристроили к нему, вытащив из старого пейджера. Е с л и компьютер хотел, чтобы вы держали третью и п я т у ю карту, он сигналил бип, бип, би-и-и-п, бип, би-и-и-п, — что вы ощущали, как вибрацию в кармане.

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

Когда один из игроков выигрывал достаточно много денег в одном казино, он перемещался в другое. Каждому позволялось за день обходить не более четырех-пяти мест. Когда через месяц они возвращались в то казино, где уже играли, они старались приходить в другое время или дожидались другой смены дежурных, чтобы минимизировать вероятность узнавания. Им пришлось осваивать и другие города— Рено, Атлантик-Сити, — далее везде.

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

«Естественно, я волновался, но в с е ш л о гладко. Я выиграл около пяти тысяч буквально за несколько минут. И в э т о мгновение один из с л у ж а щ и х с очень внушительным видом положил мне руку на плечо. Я почувствовал, как сердце у меня уходит в пятки — „ Н а ч а л о с ь . . . “

— Я вижу, вы неплохо выиграли, — сказал он. — Какой цвет вам больше нравится — розовый или зеленый?

Господи, что же это значит, судорожно думал я. «Неужели я должен выбрать цвет, до которого они меня будут избивать?» Я был готов отдать весь выигрыш, только бы меня отпустили с миром. Пришлось собрать волю в кулак и продолжить разговор с этим мужчиной. «Мы хотим предложить вам выпить чашку кофе за счет заведения», — сказал тот. Я выбрал зеленую кружку».

Случались напряженные моменты и у Марка. Однажды он сидел, ждал выпадения выигрышной комбинации и не заметил, как служащий подошел и встал у него за спиной. «Парень, ты удваиваешь ставку до пяти тысяч долларов — надо очень сильно верить в свою удачу. чтобы делать это», — сказал он с искренним удивлением. Пожилая женщина из-за соседнего автомата ответила ему сильно прокуренным дребезжащим голосом: «Нет… удача здесь ни при чем». Я почувствовал, как служащий напрягся, почуяв что-то подозрительное. «Он просто настоящий мужик», — проскрипела старая карга. Служащий хмыкнул и отошел от меня.

За три года команда полностью забросила свою законную работу и с успехом применяла свои умения и навыки на новом поприще борьбы с игральными автоматами. Они купили еще два, один из них был самой современной моделью, и продолжили модернизировать свое ПО.

Во время своих путешествий три члена команды старались посещать разные казино, чтобы не работать «коллективом», вспоминает Алекс. «Один или два раза такое все же случалось, и это было очень глупо». Они старались уведомить друг от друга о маршрутах своих передвижений, но иногда кто-то забывал это сделать. Играли они только в казино и никогда не пользовались автоматами в супермаркетах. поскольку «выигрыш там был слишком мал».

ПОПАЛИСЬ!

Алекс и Майк старались ввести в их команде строгую дисциплину, чтобы «уменьшить вероятность быть пойманными. Среди правил. которые нельзя было нарушать, были такие — никогда не выигрывать слишком много денег в одном месте, нигде не сидеть слишком долго, никогда не ходить в одно место много дней подряд».

Майк относился к дисциплине серьезнее всех, и считал, что двое его компаньонов недостаточно осторожны. Он сам всегда старался выигрывать не так много и быть больше похожим на типичных посетителей казино. Когда у него выпадала выигрышная комбинация, например два туза, а компьютер советовал ему сбросить одного или даже обоих тузов, потому что взамен им должна была прийти еще более выгодная комбинация — три валета, например, — он предпочитал следовать не советам компьютера, а простому здравому смыслу, чтобы не выглядеть странно. Во всех казино существовали системы «Небесное око», попросту говоря — камеры видеонаблюдения в разных местах под потолком всех помещений казино, которые могут поворачиваться и приближать изображение в поисках мошенников, нечестных сотрудников казино, и других стремящихся поживиться легкими деньгами. Как только любой из наблюдателей увидит, что игрок за автоматом сбрасывает два туза, он поймет, что дело нечисто, поскольку ни один нормальный человек так не поступит. Сбрасывать тузы может лишь тот, кто каким-то образом осведомлен о том, что дальше будут еще лучшие карты.

Алекс не был столь предусмотрителен, а Марко — еще в меньшей степени. «Марко всегда был нахалом», — считает Алекс.

«Марко очень умный парень, у него нет высшего образования, он самоучка, тем не менее — это один из самых блестящих представителей Восточной Европы. Яркий и энергичный.

Он знал о компьютерах практически все, но он вбил себе в голову, что в казино работают одни тупицы. Так можно было подумать, поскольку нам удавалось извлекать из казино немало денег. Но все равно, надо было быть очень осторожным.

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

Я думал, что, в конце концов, он научится не привлекать к себе внимания. Но время шло, мы становились все опытнее и переходили к более дорогим автоматам, которые давали нам большие выигрыши, а это еще больше повышало риск»…

Хотя Майк не соглашался, Алекс предлагал всем троим, подвергающимся реальной опасности, обсудить то, как далеко они могут заходить в этом риске. Он это формулировал так: «Риск повышается, но надо все время пытаться контролировать его верхнюю планку».

И, наконец, пришел день, когда сидевшего перед автоматом в казино Марко очень быстро окружили сотрудники службы безопасности и потащили в специальную комнату для серьезного разговора. Вот как восстанавливает события Алекс:

«Ситуация была неприятной, поскольку все мы слышали множество историй о том, как такие мальчики выбивают любые признания. Это были ребята из разряда „какая к чертям полиция, мы сами с тобой разберемся!“

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

Это была правильная политика, поскольку они не были полицией, и не имели права задерживать его. Они продолжали его допрашивать, но они не имели права его задерживать».

Они забрали все его «оборудование», вспоминает Алекс, конфисковали компьютер и все деньги, которые нашли при нем — около семи тысяч долларов наличными. После часа интенсивного допроса (а может быть, он продолжался и дольше, — Марко был слишком взвинчен, чтобы следить за временем) они отпустили его.

Марко позвонил приятелям по пути домой. Его речь звучала, как у безумного. Он сказал: «Я хочу рассказать вам. ребята, что случилось. Меня прищучили».

Майк отправился прямо в их «штаб-квартиру». « М ы с Алексом сильно испугались, услышав, что случилось. Я начал разламывать наши машины и разбрасывать обломки по всему городу».

Алекс и Майк оба были очень недовольны тем, что случилось с Марко из-за того, что он неразумно рисковал. Он не разместил кнопку своего компьютера в ботинке, как это делали двое других членов команды, упрямо таская компьютер в к а р м а н е пиджака и управляя им рукой, Алекс говорил о Марко, что тот «считает сотрудников безопасности казино такими глупыми, что можно безнаказанно размахивать своим выигрышем перед их носом».

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

Для Алекса случившееся означало конец компании, хотя он не знал, как поступят другие. «В самом начале нашей деятельности мы договорились, что если кого-то из нас поймают, то мы все прекращаем. Мы твердо держались этого принципа, насколько я знаю». Через пару минут он добавил менее уверенно: « В о всяком случае, я его придерживался». Майк был с ним согласен, но никто из них ни разу не поговорил с Марко напрямую.

Казино не стало предпринимать никаких шагов даже после того. как один из ребят был пойман. «Причина в том, что они не хотят делать свои слабости достоянием общественности", — объясняет Алекс. — „Реакция казино в таких случаях обычна: „Убирайтесь из города до захода солнца“. Если вы соглашаетесь никогда не заходить больше в казино, они вас отпускают“.

ПОСЛЕДСТВИЯ

Через шесть месяцев Марко получил письмо, где было сказано, что обвинения против него выдвигаться не будут.

После всего, что произошло, ребята остались друзьями, но уже не такими близкими, как в начале всей затеи. Алекс подсчитал, что он заработал около 300 тысяч долларов, часть из которых была отдана Ларри по предварительной договоренности. Изначально трое игравших в казино договаривались, что будут делить всю добычу поровну, но, по мнению Алекса, Майк и Марко заработали от 400 тысяч до полумиллиона долларов. Майк считает, что заработал не больше 300 тысяч долларов, но признает, что Алекс, вероятно, заработал меньше, чем он.

Они делали свое дело около трех лет. Они могли зарабатывать и зарабатывать еще, но Алекс говорит, что был рад, когда все кончилось: «Честно говоря, я наконец-то смог вздохнуть свободно. Удовольствие уже давно испарилось. Это стало настоящей работой, тяжелой и рискованной». Майк тоже был совсем не огорчен, что все кончилось, по его словам «это занятие стало изнурительным».

Сначала оба не хотели ничего рассказывать об этой истории, но затем делали это с удовольствием. И это достаточно естественно — за десять лет после произошедших событий никто из нашей четверки не сказал ни слова о них никому, кроме своих жен и подруг, которые составляли часть истории. Мы заключили с ними договор о полной анонимности, поэтому этот рассказ стал для них своеобразным освобождением. Они поистине наслаждались, вспоминая детали и подробности, и Майк признает, что «это была одна из самых восхитительных вещей в моей жизни».

Скорее всего, Алекс выражает общее мнение, когда говорит об их отношении к произошедшему:

«Я не считаю деньги, которые мы заработали, нечистыми. Это капля в обороте этой индустрии. Говорю от души: мы никогда не чувствовали себя жуликами, поскольку сражались с казино.

Это легко объяснить. Мы отбирали деньги у казино, которые крали их у старушек, предлагая им игры, в которые нельзя выиграть. Лас-Вегас д а е т тебе почувствовать, как люди в м е с т е с четвертаками бросают в щ е л и игровых автоматов кусочки своей жизни. П о э т о м у мы забирали деньги у «большого брата», а не из карманов обычных людей.

Когда они приглашают в а с поиграть, то говорят: « Е с л и вы выберете нужные карты, то вы выиграете». Мы выбрали правильные карты. Они просто не ожидали, что кто-то сможет сделать это».

Алекс говорит, что ничего подобного больше делать не будет. Но по достаточно неожиданной причине: «Сейчас у меня есть другие возможности заработать деньги. Если я окажусь в том же финансовом положении, что был тогда, я, возможно, опять попробую этим заняться». Он считает все, что они делали, вполне приемлемым.

В этой игре кошки с мышкой кошка постоянно изучает новые мышкины фокусы и предпринимает против них соответствующие меры. Игровые автоматы сегодня используют гораздо более качественное ПО; наши ребята совсем не уверены, что им удастся взломать его, если они попытаются совершить еще одну попытку.

И, тем не менее, для любой техники невозможно обеспечить полную безопасность. Алекс так формулирует это; «Как только кто-то скажет: „ Н и у кого не возникнет желания ввязываться в проблемы, чтобы сделать это“, как появятся несколько финских ребятишек, которые как раз и захотят ввязаться в эти проблемы».

И не только финских, но и американских.

АНАЛИЗ

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

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

КОНТРМЕРЫ

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

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

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

• используйте практику «встроенного чипа» — конструкцию, в которой чип встроен в материнскую плату таким образом, что его оттуда нельзя извлечь;

• прикрепляйте чип к плате прочным эпоксидным клеем так, чтобы при попытке извлечь его оттуда он ломался; добавление алюминиевого порошка к эпоксидке улучшает крепление, потому что при попытке вынуть чип, разогревая эпоксидку, алюминий разрушает чип;

• используйте технологию BGA (Ball Grid Array); она основана на том, что «ножки» чипа не выходят наружу с боков чипа, а упрятаны под него, что усложняет, а порой и делает невозможным снятие сигналов с ножек чипа, когда он вставлен в материнскую плату.

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

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

ЗАКЛЮЧЕНИЕ

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