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

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

Начало 1980-х: консольный Дикий Запад

Игровая консоль Atari 2600 не была ни первой домашней приставкой, ни первым устройством со сменными картриджами, но именно она сыграла важную роль в популяризации домашних игровых систем. Переломным моментом стал выход хита Space Invaders в марте 1980 года. Люди покупали приставку ради нее и «подсаживались» на другие тайтлы. При этом Atari 2600 и другие консоли того периода не имели никаких механизмов платформенной защиты и проверки легитимности картриджей. Не было ни цифровых подписей для программ, ни криптографической верификации — запускался любой ROM-чип, подключенный к нужному разъему. Копировать игры и создавать свои могли, по сути, все желающие, достаточно было иметь оборудование и знания, чтобы произвести картридж. Поэтому сегодня многие исследователи и ретроэнтузиасты описывают то время как «Дикий Запад».

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

Здесь показательна история компании Activision, которую в 1979 году основали программисты, ушедшие из Atari. Когда они начали выпускать собственные картриджи для консоли 2600, представители Atari подали иск, обвинив бывших сотрудников в нарушении патентных и авторских прав. Судебные разбирательства тянулись порядка двух лет и в итоге ни к чему не привели. Более того, одним из последствий этой тяжбы стал резкий рост числа независимых разработчиков, которые убедились, что делать игры для чужой консоли можно без серьезных последствий.

В итоге рынок наводнило большое количество shovelware — дешевых и низкокачественных видеоигр и программ, которые создавались на скорую руку с одной целью: быстро заработать деньги [название как бы намекает, что такой контент забрасывают на рынок «лопатой» в огромных количествах]. Насыщение рынка приставками и играми (которое совпало с приходом домашних компьютеров, перетянувших внимание и разработчиков, и покупателей) привело к кризису индустрии видеоигр 1983 года, также известному как «Atari-шок».

Продажи консолей рухнули, выручка начала стремительно падать. Нагляднее всего масштаб виден в показателях материнской компании Atari — Warner. Выручка подразделения игровой и смежной потребительской электроники сократилась с 2,01 млрд долларов в 1982-м до 1,12 млрд в 1983-м — компания зафиксировала убыток в 530 млн долларов.

Что примечательно, какая-либо защита отсутствовала и в советских игровых приставках того периода. Впрочем, в защите они особо и не нуждались, поскольку игры были «зашиты» прямо в схему, а не поставлялись на сменных носителях. Например, «Электроника Видеоспорт-3» 1990 года строилась вокруг специализированной микросхемы К145ИК17. Это — советский клон чипа AY-3-8500, который был выпущен в 1976 году и стоял чуть ли не в каждой западной Pong-консоли. В лучших традициях СССР приставка комплектовалась подробным руководством пользователя с принципиальными схемами — на случай, если что-нибудь сломается.

1985 год: первый аппаратный замок

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

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

Jason Leung / Unsplash License

Jason Leung / Unsplash License

Однако этот защитный механизм не был безупречным, что на практике продемонстрировали специалисты из Tengen, дочерней компании Atari Games. Именно они, в каком-то смысле, начали «борьбу щита и меча», которую до сих пор ведут производители консолей и специалисты, занимающиеся их взломом и прошивкой. Инженеры Tengen провели реверс-инжиниринг чипа, чтобы собрать схему обхода: они стравили корпус оригинальной микросхемы химией, чтобы заглянуть внутрь, и даже заполучили исходники кода 10NES в Бюро авторского права США обманным путем.

Ведомство могло выдавать копии документов, если они требовались для разбирательств в текущем судебном процессе. Юристы Atari Games подали официальный запрос, в котором утверждали, что Nintendo уже судится с ними из-за нарушения прав на 10NES. Это был явный обман, но по какой-то причине сотрудники бюро все же выдали копию исходного кода. В итоге, используя полученную информацию, специалисты разработали микросхему Rabbit, позволившую печатать картриджи для NES самостоятельно, в обход Nintendo.

Разумеется, за всей этой историей последовало настоящее судебное разбирательство, итогом которого стал запрет на использование подобных чипов, но джинн уже выскочил из лампы. Вдохновившись примером Tengen, свои схемы обхода 10NES представили издатели Camerica, Color Dreams и Active Enterprises. Однако их методы были куда более инвазивными и разрушительными — идея была в том, чтобы «оглушить» CIC скачком напряжения. Впоследствии Nintendo внесли изменения в схему устройства и прикрыли эту лазейку: в схему консоли добавили резисторы на 1 кОм, диоды на питание и на землю. Консоль стала «неоглушаемой», правда, новые способы обхода продолжали появляться. Например, энтузиасты, а порой и сами разработчики игр, распространяли инструкции, как относительно легко отключить чип-замок, перекусив одну из его ножек.

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

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

Многие «пираты», например, на Тайване и в Гонконге, не могли просто скопировать картридж as is и продать его — в таком случае был риск получить судебный иск за незаконное использование товарного знака. Поэтому они вырезали из ROM логотипы и знак копирайта на экране заставки, часто заменяя их на собственный «бренд». В качестве контрмеры разработчики игр добавляли серию проверок, которые следили за изменением символа © и строки с названием компании. Если они оказывались модифицированы, срабатывала защита, которая серьезно меняла сложность геймплея. Например, в Teenage Mutant Ninja Turtles III: The Manhattan Project один из боссов становился бессмертным, фактически не давая пройти игру. 

Начало 00-х: цепочки доверия

К началу нулевых консоли стали вычислительными системами с собственной операционкой, и на смену отдельному чипу-замку, который просто проверял наличие такого же чипа в картридже, пришла криптографическая цепочка доверия, спрятанная внутри системной логики. Так, первая Xbox была построена на привычном компьютерном железе (процессор на базе Pentium III, графика Nvidia) и работала под урезанной ОС на основе Windows 2000. Это одна из первых крупных домашних консолей с защитой на основе скрытого загрузочного блока внутри MCPX. Он инициализирует чипсет консоли, расшифровывает загрузчик ядра из флеш-памяти и передает ему управление. Далее, загрузчик доинициализирует систему, расшифровывает образ ядра из флеш-памяти и запускает ядро — а уже оно проверяет подписи программного обеспечения.

Однако и подход с построением цепочки доверия имел слабые места — в том числе на аппаратном уровне. Некоторые из них известный инженер Эндрю Хуанг описал сперва в служебной записке MIT, а затем в книге «Hacking the Xbox», вышедшей в 2003-м — меньше, чем через два года после запуска консоли. Хуанг показал, что содержимое скрытого загрузочного ПЗУ можно перехватить, подключившись к шине HyperTransport: загрузочный код шел по ней в открытом виде. Вскрывать корпус микросхемы не потребовалось — хватило физического доступа к материнской плате и самодельного анализатора шины на ПЛИС.

Такой подход позволил разобрать цепочку загрузки и в конечном счете написать альтернативные загрузчики — в частности, Cromwell. Он позволяет консоли загружать ядра Linux. Любопытно, что это один из тех редких случаев, когда подобное программное обеспечение легально: Cromwell создавали, используя метод реверс-инжиниринга, поэтому он не содержит проприетарного кода Microsoft. Загружать официальные игры Xbox он не умеет, зато позволяет запускать неофициальный софт и сторонние диски на модифицированной консоли.

Середина 00-х: криптографическая подпись

У всех предыдущих схем защиты был общий изъян: они держались на секрете, который был «зашит» в железо проданных приставок. Асимметричная криптография решала именно эту проблему. Ее использовали в седьмом поколении консолей вроде Xbox 360 и PlayStation 3, выпущенных в 2005 и 2006 годах. Приставка хранит только открытый ключ: им можно проверить подпись, но нельзя ничего подписать. Даже если разобрать приставку до последнего транзистора — извлечь будет нечего. По крайней мере, в теории, а на практике были нюансы.

Одним из первых эксплойтов для Xbox 360 стал JTAG/SMC Hack, связывающий сразу несколько уязвимостей. Флеш-память перепрошивали специально подготовленным образом, который содержал модифицированную прошивку контроллера SMC и уязвимое ядро, — а затем через открытый интерфейс JTAG перенаправляли выполнение в это ядро. В 2011 году последовала более фундаментальная, аппаратная атака — Reset Glitch Hack, которая позволяла проскочить сверку хеша загрузчика и выполнить подмененный загрузчик следующей ступени. По сути, эксплойты снимали все ограничения безопасности гипервизора консоли. Можно было скачивать и запускать игры напрямую с внутреннего или внешнего жесткого диска, даже обычной USB-флешки. Microsoft устранила проблему только в поздних аппаратных ревизиях консоли.

kike_borland / Unsplash License

kike_borland / Unsplash License

В PlayStation 3 набор защитных механизмов был схожим: цепочка доверия для подписи и аутентификации кода, уникальные для каждой консоли ключи, которыми шифровались код и данные, чтобы привязать их к конкретной приставке. Безупречную на бумаге схему подвела реализация. Sony подписывала программное обеспечение алгоритмом ECDSA, а он требует для каждой подписи свежего непредсказуемого случайного числа — nonce. Однако по какой-то причине Sony использовали в качестве nonce константу, что в 2010 году обнаружила исследовательская группа fail0verflow [специалисты представили доклад с говорящим названием «PS3 Epic Fail»]. Уязвимость дала возможность извлекать закрытые мастер-ключи и создавать цифровые подписи для любых программ, чтобы консоль считала их легитимными.

Если взглянуть на современные поколения консолей вроде PlayStation 5, то они имеют аналогичные механизмы защиты: secure boot, полное шифрование диска, изоляцию через гипервизор, систему обновлений для своевременной установки патчей и не только. Однако эксплойты для них тоже существуют. Так, для PS5 имеется эксплойт Byepervisor, который, как следует из названия, позволяет обойти ограничения гипервизора, или BD-J для запуска произвольного кода. Хотя, ожидаемо, что с развитием технологий на взлом некоторых консолей уходит довольно продолжительное время. Так, Xbox One оставалась не взломанной с момента релиза еще в 2013-м. Но в марте этого года ИБ-исследователь Маркус Гааседелен представил атаку Bliss. Манипуляции с напряжением питания процессора в момент загрузки позволили обойти встроенную защиту и получить неограниченный доступ к системе.

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

Еще в нашем блоге: