PlayStation 4 17844
Аватар Evernews Evernews

Грибы, ножницы и кислота: как российский исследователь заработал на взломе PlayStation 4

2
0
Поделиться
Телеграфировать

И грибы, и кислота — не совсем те, о которых вы могли бы подумать. А вот ножницы настоящие.

Грибы, ножницы и кислота: как российский исследователь заработал на взломе PlayStation 4

В начале июля игровое подразделение Sony впервые раскрыло на HackerOne уязвимость, обнаруженную в PlayStation 4: исследователь Энди Нгуен, нашедший эксплойт в прошивке 7.02, заработал $10000. Для Sony это большая, но не рекордная выплата.

Рекорд принадлежит исследователю безопасности под ником oct0xor. В общей сложности Sony выплатила ему $75000, примерно 5.3 миллиона рублей. Самая крупная единоразовая награда составила $40000 — вчетверо больше, чем у Нгуена.

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

Oct0xor хорошо известен в исследовательском сообществе PlayStation. Этот ник использует Борис Ларин, исследователь безопасности, работающий в «Лаборатории Касперского», а в свободное время экспериментирующий с консольным железом.

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

Спустя какое-то время, рассказывает Борис в своей презентации, он сократил публичную активность в сообществе, но продолжил исследовательскую работу. Так были обнаружены уязвимости, позволившие ему заработать несколько миллионов рублей.

Эти уязвимости связаны с Blu-ray приводами консолей. Исследовать их было логично: с одной стороны, на дисках поставляются игры — значит, эта подсистема консоли будет максимально защищена; с другой стороны, если получится найти здесь эксплойт, то последствия могут быть достаточно серьезными.

Специалистам Sony, подчеркивает Борис, удалось создать очень удачную модель безопасности. Ходя Blu-ray накопители впервые начали использоваться в PlayStation в 2006 году, взломать их так и не получилось; во всяком случае, об этом не сообщалось. Однако исследователь все же сумел найти уязвимость.

В конце концов Борис смог создать эксплойт, позволяющий исполнять произвольный код на нескольких моделях Blu-ray накопителей, использующихся в PlayStation. Для этого пришлось действовать и на программном, и на аппаратном уровне.

Первым шагом было получение доступа к прошивке. В накопителях последних ревизий PlayStation 3 и всех PlayStation 4 используется микроконтроллер компании Renesas; сперва Sony применяла собственное решение, но затем пошла по пути унификации.

Прошивка размещается в самом чипе — буквально внутри корпуса на специальном flash-накопителе. Чтобы добраться до чипа, Борис использовал трюк, применявшийся хакерами на Xbox 360: с помощью кислоты он аккуратно растворил корпус и обнажил накопитель.

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

Так выглядит чип, по которому прошлись кислотой

Исследовать ее было непросто. Хотя Renesas предоставляет разработчикам массу инструментов и обширную документацию, ничего, что касалось бы Blu-Ray накопителей, нет в публичном доступе. Тем не менее, Борису удалось разобраться архитектурой микроконтроллера, напоминавшей RISC, и идентифицировать большую часть функций.

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

Здесь Борису повезло. Исследуя прошивку контроллера из привода PlayStation, он одновременно изучал, где еще используются чипы Renesas. Оказалось, что они применяются в некоторых приводах для PC, прошивки которых выложены в открытый доступ.

Для отладки пришлось написать собственный плагин к IDA Pro

После их изучения стало ясно, что прошивки для приводов PlayStation и PC написаны с использованием одного и того же SDK, а их многие функции схожи. Так удалось заполучить еще немного данных, применявшихся для отладки устройств.

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

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

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

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

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

Правда, сперва пришлось модифицировать кабель для подключения накопителя к отладочной плате. Доступные решения работали только с PlayStation 3, но коннекторы у накопителей похожи, поэтому Борис просто подрезал кабель ножницами.

Вот так выглядел тестовый стенд

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

Так исследователь сумел заглянуть внутрь зашифрованного блока данных, присутствующего в начале каждого диска для PlayStation 3 и PlayStation 4. Также удалось выяснить, как работает обмен ключами, позволяющими консоли расшифровывать содержимое дисков.

Примечательно, что на двух поколениях консоли системы работают очень похоже. Когда в качестве эксперимента исследователь залил крипто-прошивку накопителя PlayStation 3 на PlayStation 4, обмен данными работал практически нормально.

Попутно выяснился забавный момент. Во время загрузки диска консоль берет контрольную сумму зашифрованного блока данных, проводит над ней логическую операцию и записывает в MMIO-регистры.

Оказалось, что в качестве ключа для обработки блока данных используется слово noki — сокращение от enoki, названия популярного в Японии гриба.

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

Борис решил остановиться, связался с Sony и рассказал о своих находках. На их подтверждение и устранение ушло около трех недель: 28 ноября 2019 года Борис впервые пообщался с Sony, с 19 декабря вышла прошивка 7.02, закрывшая эксплойты.

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

Теги: PlayStation 4, Технологии, Игры, История
Аватар Evernews
Evernews
8066 подписчиков