Кевин Митник - Искусство вторжения
«У нас был стимул для работы, и мы работали ночи напролет. Нам потребовалось около трех недель, чтобы досконально разобраться в том, как работает программа.
Для этого мы изучали текст, делали определенные предположения о его назначении, писали некоторые добавки к программе, помещали ее в R O M (компьютерный чип) и возвращали его в машину, а потом смотрели, что происходит. Например, мы написали специальную программу, которая располагала числа над изображением карт на экране. Так мы определили, каким образом программа оперирует с картами. Н а ш а работа ш л а по м е т о д у проб, ошибок, и постоянного анализа, достаточно быстро строки кода начали наполняться смыслом. Мы досконально разобрались в том, как числа в компьютерной программе превращаются в карты на экране.
Мы надеялись, что генератор случайных чисел будет устроен достаточно просто. Дело происходило в начале девяностых годов, и это было именно так. После небольшого анализа я понял, что мы имеем дело с генератором, который Дональд К н у т написал е щ е в 60-е годы. Авторы программы для игрового автомата не стали изобретать велосипед, а просто скопировали в свою программу имеющиеся разработки по методу Монте-Карло.
Мы точно установили, какой алгоритм использовали авторы программы в своем коде для случайной выборки карт; он назывался линейным регистром сдвига с обратной связью (linear feedback shift register) и это был очень хороший генератор случайных чисел (RNG)».
Очень скоро «взломщики» поняли, что в этом генераторе случайных чисел есть очень серьезная «прореха», которая существенно упрощает их задачу. Как объяснял Майк, «это был достаточно простой 32-битный RNG, поэтому взломать его не составляло особого труда, а с помощью нескольких хороших оптимизаций стало совсем просто».
Итак, выдаваемые генератором числа не были абсолютно произвольными. Но, по мнению Алекса, есть серьезная причина для этого:
«Если они абсолютно произвольны, то не могут создавать неравные условия. Они не знают о том, что такое неравные условия. Некоторые автоматы выдают один за другим два последовательных королевских флэша (очень редкую комбинацию карт в покере — прим. переводчика). Такого не должно быть никогда. Поэтому дизайнеры хотят быть уверены, что у них правильная статистика, иначе им кажется, что они теряют контроль над игрой.
Одна вещь, которую дизайнеры не понимали, когда создавали свой автомат, заключается в том, что им и не нужен настоящий генератор случайных чисел. В любом покерном розыгрыше участвуют десять карт: пять сдаются сначала и еще пять для замены каждой из пяти по желанию игрока, В автомате эти десять карт выбирались, как десять последовательных случайных чисел в RNG».
Итак, Алекс и его партнеры поняли, что программа в том автомате, который они изучали, недостаточно продумана. Из-за наличия ошибок стало ясно, что они могут написать несложный, но элегантный алгоритм, который поможет им победить машину.
Идея, по мнению Алекса, заключалась в том, чтобы начать игру, увидеть, какой набор карт выбросил автомат, и ввести эти сведения в свой компьютер. Затем с помощью разработанного алгоритма вычислить положение, в котором находится генератор случайных чисел, и определить, сколько ему еще номеров осталось до того, как будет выброшена комбинация, соответствующая королевскому флэшу.
«Итак, мы работали на нашей тестовой машине и пробовали нашу маленькую программу, которая точно предсказывала нам следующие последовательности карт. Возбуждение нарастало».
Алекс приписывает это возбуждение «осознанию того, что вы умнее кого-то и можете переиграть его. А в нашем случае еще и заработать немного денег».
Они отправились в магазин, отыскали там наручные часы Casio с возможностью отсчета десятых долей секунды и приобрели сразу три штуки для всех троих, кто собирался быть в казино: Ларри должен быть оставаться у компьютера.
Они были готовы начать проверку своего метода. Один из команды должен был начать игру и фиксировать набор карт, которые ему выбрасывал автомат — масть и старшинство каждой из пяти карт. Ларри вводил бы эти данные в их собственный компьютер; хотя их машина и не принадлежала к известным брэндам, это был очень приличный компьютер для их целей, поскольку его процессор был во много раз быстрее тех, что использовались в японских игральных автоматах. Всего за несколько мгновений он вычислял точный момент времени, который должен быть установлен в один из секундомеров Casio.
Когда отсчет времени заканчивался, человек у игрового автомата должен был нажать кнопку «Игра». Это должно было произойти предельно четко, в течение доли секунды. Но это не было слишком сложной проблемой, как объяснил Алекс.
«Двое из н а с какое-то время занимались музыкой. Е с л и вы музыкант и у вас хорошее чувство ритма,то вы можете нажать кнопку в нужный момент в пределах десяти миллисекунд».
Если бы все сработало так, как предполагалось, то машина должна была выбросить игроку набор из пяти последовательных карт одной масти — королевский флэш.
Наши экспериментаторы попробовали этот трюк на своем автомате и практиковались до тех пор, пока каждый из них не научился добиваться выпадения королевского флэша практически с каждой попытки.
Несколько месяцев они, по словам Марка, «занимались восстановлением программы автомата, определяли, каким образом случайные числа превращаются в карты на экране автомата, установили точно, как и когда выбрасывает числа RNG, изучили все особенности автомата и создали программу, учитывающую все эти особенности, чтобы в любой момент времени знать состояние RNG на часы и даже дни вперед».
Они победили автомат и сделали его своим рабом. Они бросили настоящий хакерский вызов и выиграли. Это знание могло сделать их богатыми.
Как прекрасно было мечтать об этом. Удастся ли им реализовать свои мечты в дебрях казино?
НАЗАД В КАЗИНО — ВРЕМЯ ИГРАТЬ
Одно дело совершать любые махинации на автомате, стоящем в безопасном месте. Пробовать их в центре переполненного казино и красть у него деньги — это совсем другая история. Для этого нужны стальные нервы.
Их девушки считали все происходящее забавой. Ребята советовали им надеть обтягивающие шорты и вести себя повеселее — играть, шуметь, кривляться, заказывать выпивку — надеясь, что служба наблюдения казино, следящая за всем происходящим через камеры наблюдения, будет отвлечена веселыми лицами и ужимками. «Поэтому мы поощряли такой стиль поведения, как только могли», — вспоминал Алекс.
Они надеялись, что смогут смешаться с толпой. «Лучшим для такой цели был Макс. У него совершенно незапоминающееся лицо, и они с женой выглядели, как типичные посетители казино».
Алекс описывал сцену так, как если бы все происходило вчера. У Марко и Майка это получалось по-другому: дело в том, что Алекс со своей женой Энни были первыми, кто совершал попытку единоборства с покерным автоматом в казино. Он должен был с высокой точностью знать цикл срабатывания автомата. Одним из способов. которым они старались достичь этого знания, была видеокамера в рюкзаке; в казино надо было направить видеокамеру на экран покерного автомата и некоторое время снимать происходящее на видеокассету. «Это совсем не просто, — вспоминал Алекс, — ориентировать рюкзак в нужном направлении, не видя результата; при этом надо было себя вести естественно, чтобы не выглядеть подозрительно и не привлекать внимания». Майк предпочитал другой, менее сложный, метод: «Временной цикл для неизвестного игрального автомата можно определить, если зафиксировать выбрасываемые им карты всего дважды, но через много часов». При этом он должен быть...
Страницы 16-17 отсутствуют
...«Я подумал о том. что казино проводит эту проверку из-за тех ребят, которые действительно подменяли программу в автомате. Не представляю, как им удавалось сделать это и не быть пойманными». По мнению Алекса, они применяли методы социальной инженерии, обманывали охрану и давали взятки кому-то в казино. Он подозревал, что они могли подменить даже тот «золотой эталон», с которым сверялись чипы в машине при крупном выигрыше.
Прелесть работы его команды, по мнению Алекса, была в том, что они никоим образом не вмешивались в работу автомата. По их мнению. их подход был куда более гибким.
Естественно, ребята не могли постоянно выигрывать; они были уверены: «в конце концов, кто-то скажет — „Эй, мы уже видели этих ребят“. Мы все время опасались того, что нас поймают».
Кроме боязни быть пойманным за мошенничество, они были озабочены и налоговыми проблемами: любого, кто выигрывал более 1200 долларов, казино просило предъявить документы и докладывало о выигрыше в налоговые органы, Майк вспоминает: « М ы полагали, что налоги автоматически будут вычитаться из выигрыша, если у игрока нет удостоверения личности. Но мы не хотели привлекать к себе внимание. Заплатить налоги не было проблемой, но при этом создавалась запись о том, что вы выиграли большую сумму денег. Мы стали напряженно думать о том. как избежать „засвечивания“.