В девяностые годы прошлого века сотрудники казино и конструкторы игровых автоматов еще не осознавали некоторых вещей, которые позднее стали очевидными. Генераторы псевдослучайных чисел на самом деле не генерируют случайные числа. На самом деле они являются наборами чисел, расположенных в произвольном порядке. Даже очень длинный список — от единицы до двух в тридцать второй степени — это всего миллиард чисел. В начале работы программа случайным образом выбирает место в этом списке, но потом, пока она не начнет новый цикл игры, она использует определенную последовательность чисел — одно за другим.
Разбираясь в том, как работает программа игрального автомата, ребята узнали этот перечень. Находясь в любом пункте этого перечня, они знали, какие номера будут выпадать дальше и при помощи некоторых дополнительных сведений о работе программы в автомате они могли определить, через какое время автомат выбросит им королевский флэш.
КОНТРМЕРЫ
Производители любого оборудования, в состав которого входят чипы ROM и программы, должны специально заботиться о проблемах безопасности. А для каждой компании, которая использует устройства на основе компьютеров и программ — что сегодня означает практически любую компанию, вплоть до лавочки с одним продавцом — опасно думать, что ребята, которые создавали эти системы, подумали обо всех возможных лазейках. Программисты ПО для японских игровых автоматов совершили ошибку, не подумав о том, какие атаки могут быть совершены на них. Они никак не защитили свои программы от проникновения в них хакеров. Они должны были предусмотреть такую ситуацию, когда кто-то получит доступ к машине, извлечет из нее чип, прочтет программу, зашитую в него, и восстановит ее текст, который расскажет ему все подробности о работе автомата. Даже если они и думали о такой возможности, то сочли, что точного знания того, как работает автомат, будет недостаточно, поскольку не так-то просто разобраться в работе генератора случайных чисел. Это справедливо сегодня, но в те годы это было не так.
Итак, ваша компания выводит на рынок продукты, которые содержат компьютерные чипы; что необходимо сделать, чтобы обеспечить адекватную защиту от конкурентов, которые, несомненно, хотят заглянуть в ваши программы, от зарубежных компаний, которые захотят сделать дешевые копии ваших товаров, от хакеров, которые хотят обмануть вас?
Первый шаг: постарайтесь затруднить доступ к ПО. Вот как это можно сделать: • приобретайте чипы, защищенные от возможных атак; некоторые компании изготавливают чипы, специально сконструированные для работы в ситуациях, где возможность внешних атак велика:
• используйте практику «встроенного чипа» — конструкцию, в которой чип встроен в материнскую плату таким образом, что его оттуда нельзя извлечь;
• прикрепляйте чип к плате прочным эпоксидным клеем так, чтобы при попытке извлечь его оттуда он ломался; добавление алюминиевого порошка к эпоксидке улучшает крепление, потому что при попытке вынуть чип, разогревая эпоксидку, алюминий разрушает чип;
• используйте технологию BGA (Ball Grid Array); она основана на том, что «ножки» чипа не выходят наружу с боков чипа, а упрятаны под него, что усложняет, а порой и делает невозможным снятие сигналов с ножек чипа, когда он вставлен в материнскую плату.
Еще одна возможная контрмера — уничтожение информации о производителе чипа, так, чтобы атакующий не мог установить тип чипа.
Достаточно распространена и практика контрольных сумм в программах. Если программа меняется, то меняется и ее контрольная сумма и программа в устройстве перестает работать. Однако, опытный хакер, знакомый с этой мерой защиты, может отыскать место в программе, где происходит суммирование и отключить его. Методы физической защиты чипа являются гораздо более надежным средством.
ЗАКЛЮЧЕНИЕ
Если ваше ПО представляет для вас ценность, проконсультируйтесь с экспертами в области безопасности, чтобы понять, какую технику используют сегодня хакеры. Снабжайте ваших программистов и разработчиков самой последней информацией в этой области. И будьте абсолютно уверены в том, что они предпринимают все необходимые меры для обеспечения адекватного уровня безопасности.
Глава 2.
Когда террорист звонит
Я не знаю, почему я продолжал работать с ним. Природная склонность? Жажда наживы? Стремление к власти? Я могу перечислить целый ряд причин.