Комментарии 55
Когда найду немного времени — напишу подробнее про TPM и firmware TPM, а то там конь не валялся и легенды про ужасный DRM ходят.
Или я неправильно понял или не прокатит.
...Clonezilla live тоже меняет Disk Signature?
Игры с большим количеством контента, тот же Pump It Up Prime, занимает с последним обновлением уже под 50 ГБ, но там музыка в PCM и видео в MPEG2.
зачем копировать диски в винде?Зачем? Затем, что Windows стоит на подавляющем большинстве компьютеров, и справлялась с этим не хуже других ОС. До этого момента.
к чему именно в железе привязывается система шифрования, ключ?В материнскую плату установлен TPM, в TPM зашит уникальный ключ RSA-2048. Файлы игры зашифрованы случайным ключом AES-256, который берется из /dev/random при первом включении игры (на заводе), и этот ключ зашифровывается ключом из TPM с привязкой к PCR.
Intel'овский TPM дыряв хотя бы тем, что позволил изменить состав подключенных устройств (новая PCI-карта) и при этом продолжить загружаться...
Я правильно понимаю, что на самом деле можно было и не искать ключ AES и вообще заморачиваться с расшифровкой, после работы inception implant мы уже получаем работающий шелл на машину, после чего оттуда можно все скопировать уже из живой и расшифрованной ОС?
С точки зрения кода — я имею в виду, что есть конгломерат из чипа TPM, ответной части в UEFI и GRUB-IMA, которые по идее должны были не позволять загрузить модифицированную систему и с чем торжествено не справились.
С другой стороны — насколько я понимаю, обойти это можно даже без hotplug — просто сделать устройство, которое ничего не отвечает по шине до этапа загрузки ядра (на этапе проверок).
Я правильно понимаю, что на самом деле можно было и не искать ключ AES и вообще заморачиваться с расшифровкой, после работы inception implant мы уже получаем работающий шелл на машину, после чего оттуда можно все скопировать уже из живой и расшифрованной ОС?На самом деле, как я узнал уже после написания этой статьи, можно сделать все гораздо проще — ОС подвержена Shellshock, можно запустить sshd через DHCP-сервер, подключиться под пользователем user:live (стандартный для Debian), sudo -i и все. Но так неинтересно :)
Вообще, на самом деле интересная и, субъективно, не очень решаемая задачка, как можно использовать TPM-подобный модуль для того, чтобы делать такую вот "защиту от копирования" или "защиту от запуска на измененном железе". До тех пор, пока есть отдельно процессор, выполняющий код, отдельно лежащие для него программы в виде чипа BIOS/UEFI + загрузчика на жестком диске, и отдельного TPM — по-моему, всегда можно вытащить этот самый код (в какой-нибудь эмулятор) и оттрассировать вызовы TPM.
Другой вопрос, что, IMHO аркадные игры последних лет 10 настолько унылы, что ради них заморачиваться даже как-то не хочется. Разве что всякие DDR/Parapara, но и то, там все уже давным давно раздраконено и вытащено.
Coderush, возможно, сможет больше рассказать.
Другой вопрос, что, IMHO аркадные игры последних лет 10 настолько унылы, что ради них заморачиваться даже как-то не хочется. Разве что всякие DDR/Parapara, но и то, там все уже давным давно раздраконено и вытащено.А у нас в квартире памп, а у вас?
Вариант номер два — да, выпаять TPM, на макетку и дергать его чем угодно, хоть Ардуиной. Те, что я когда-то смотрел, не имели абсолютно ничего сложного, нужны питание/земля/clock, а дальше обычный SMBus по сути.
А у нас в квартире памп, а у вас?
Ну так народ ставит обычно не оригинальный же автомат, а контроллер + какую-нибудь Stepmania. И живет с этим, надо сказать, сильно лучше, чем с оригинальным автоматом.
Выпаять TPM теперь тоже нельзя, т.к. он теперь в чипсет встроен, как у Intel начиная с BayTrail, так и у AMD начиная с Merlin Falcon.
Если говорить об атаках на более старые системы без BG и с внешним TPM — там все можно, конечно, но очень и очень непросто, ибо придется трассировать реально каждый вызов Extend, которые там начинаются с PeiAfterMem и до BDS их там получается порядка тысячи. Не заметил один — весь лог на смарку, откатывайся. Понятно, что это можно автоматизировать и обойти, но стоимость таких решений получается чуть ли не выше стоимости защищаемой ими информации, т.е. главная задача ИБ защитой таки решена.
sudo cat /sys/kernel/security/tpm0/ascii_bios_measurements
0 95c27b31402f74c26900e177b8baa8e838b6bb9f 08 [S-CRTM Version]
6 0ed34fd1bb4227e218191958f2ddf98c9c5d2eaf 05 [Wake Event 1]
0 da39a3ee5e6b4b0d3255bfef95601890afd80709 07 [S-CRTM Contents]
0 da39a3ee5e6b4b0d3255bfef95601890afd80709 01 [POST CODE]
0 da39a3ee5e6b4b0d3255bfef95601890afd80709 01 [POST CODE]
0 da39a3ee5e6b4b0d3255bfef95601890afd80709 01 [POST CODE]
0 da39a3ee5e6b4b0d3255bfef95601890afd80709 01 [POST CODE]
0 da39a3ee5e6b4b0d3255bfef95601890afd80709 01 [POST CODE]
0 da39a3ee5e6b4b0d3255bfef95601890afd80709 01 [POST CODE]
0 da39a3ee5e6b4b0d3255bfef95601890afd80709 01 [POST CODE]
0 da39a3ee5e6b4b0d3255bfef95601890afd80709 01 [POST CODE]
0 8f50f5875f64a2e15d90439359385e83b7be2976 01 [POST CODE]
2 4e7eb43cc80572c09e6acb1a197e0c4d1f30428e 80000004 []
2 c3dfd4718660c13747c2c6a30e6a2e830314e75e 06 [Option ROM]
4 a070bfbb64dc542d7b6b22de52d9b4d994b0d2f1 80000003 []
2 0f6f41bcebc1da8f14c509b9d1d76acf16a54870 06 [Option ROM]
0 b0f6f2eb690c6c3dcbe4262dd74f8b5239ac98a4 07 [S-CRTM Contents]
0 c276613dbbb4d4f769c98610688681dbd6e94360 07 [S-CRTM Contents]
0 aa6e353181fa02adb8dede19be120225d2100c1d 07 [S-CRTM Contents]
0 5054f7d55020f5e5b3029cf39bea650127e70a3f 07 [S-CRTM Contents]
0 eeddbd4889ec75fbdf514558f45f13c450e7bceb 07 [S-CRTM Contents]
0 751353e555a1f600047fe5a312e555c8d4bdb1f9 07 [S-CRTM Contents]
0 bfd8a4fbe0a91927cc5fc9c2e6e2906a20c13335 07 [S-CRTM Contents]
0 b9c6ac5801cb8fe889aa1c05c1d6d03bd7bac8c3 07 [S-CRTM Contents]
5 cd0fdb4531a6ec41be2753ba042637d6e5f7f256 80000007 []
0 9c3f25b59808cf216bc4fc664c9c2429934ee614 80000009 []
1 de8159c9e3583e43ec0260b4f2a67156d7959094 80000009 []
1 3c82fd29e8b967dcabb4c47a1537b36fdf35a7a5 0a [Platform Config Flags]
1 147ff456bbbb76277ca8f924f6d204a22b57f4cd 06 [POST BIOS b41bb26650ab75be6f8d20ea96ba49b25227e1d4]
1 55e12bafd402f9e4868047b71f1bdcabb588be4e 06 [NVRAM]
1 54e256fd70f15b3ea614987c1fb340ae247b2bb3 06 [CMOS]
1 43a116f45a3009192e3e56a9aa37683fb41e9874 06 [SMBIOS]
0 9069ca78e7450a285173431b3e52c5c25299e473 04 []
1 9069ca78e7450a285173431b3e52c5c25299e473 04 []
2 9069ca78e7450a285173431b3e52c5c25299e473 04 []
3 9069ca78e7450a285173431b3e52c5c25299e473 04 []
4 9069ca78e7450a285173431b3e52c5c25299e473 04 []
5 9069ca78e7450a285173431b3e52c5c25299e473 04 []
6 9069ca78e7450a285173431b3e52c5c25299e473 04 []
7 9069ca78e7450a285173431b3e52c5c25299e473 04 []
4 8fd61378e02097961b440a059854ce7e61eaea9b 80000007 []
5 96b6446d4eb71852986a5696212ab871dcc2571c 80000002 []
5 c281e05b9b1acf018015a59eff6f7b4e4db1bd92 80000002 []
5 cd2b58e3c1f085d6703ae9ace8e32ef121ada736 80000002 []
5 a407760bdca6dbdb4772a460597ffef714d98762 80000002 []
5 b93bb690dd70511aa09739ad525d2196ea190187 80000002 []
5 9d759aa51a395e55f4e8967a1d3aa2707dbb3c7f 80000002 []
5 ccc5ef69c30305bda71c499fc02a116bdf10e3a6 80000002 []
5 294f49339e53192671ad549147b29df5e2a48574 80000002 []
5 1a26d9f405f16a8b302f71b673f54d3f849df91c 80000002 []
5 6f583a5b1e7d10c7ddc3043857bfe8c18ec187c7 80000002 []
5 0fec1c70382c5f369bddc20bd3cbfc2740ffcfbf 80000002 []
5 b5d3c77c2ed7b43b13edc3c313c6a148834b64b2 80000002 []
5 2bc2170c4a506885f29a501595cda13ce7991a62 80000002 []
5 68d6bc2ff72575c0ace6ce1277628df0db2e252b 80000002 []
5 2f87ff2a7a96f6bc43c626ccdf21e98273d76467 80000002 []
5 e1793c9a3ce760efab13936363e006bde294cc4a 80000002 []
2 6869f5936b1ff804a8ccfde890c911cb9cb5fe82 80000004 []
или замораживанием и выниманием памяти с сохранением ее содержимого на другом компьютере все тем же дампером
вроде были исследования, где без заморозки на ддр2 снимали дамп даже через несколько минут после выдирания плашки, при комнатной температуре
С заморозкой записи в памяти не повреждается неограниченное время
Видео-фоточек со вскрытия аппарата не осталось?
Фотографии есть только внутренностей, не думаю, что они будут интересны.
Это я к тому, что если еще для некоторых 565РУ5 содержимое могло сохраняться секундами после отключения — то для современной памяти это нереально. Уменьшились размеры ячеек при сохранении уровня тепловых помех и утечек.
О, кстати, было бы, наверное, интересно написать для них какие-нибудь эмуляторы и тем самым реанимировать.
Проблема в том, что такие игры не только на x86-based машинах, но и на System 357 (Playstation 3), и там не все так тривиально, но решаемо.
Вернее, «мы» — громко сказано, я там принимаю довольно слабое участие, но все же принимаю.
Первый способ не сработает из-за соответствия материнской платой спецификации Trusted Computing Group, которая предписывает выполнять очистку памяти при загрузке, и дампер сохранит уже очищенную память, в которой, конечно же, уже не будет никаких ключей.А затем следом описываете DMA-атаку, выполняемую с помощью FireWire-платы, установленной в компьютер. Она, как я понял, позволила сграбить ещё не очищенную память — с AES-ключами в ней.
Разрешите поинтересоваться: как Вам удалось это сделать? Вы каким-то образом остановили процесс загрузки — до момента очистки памяти и после этого дампили память или же использовали какой-то другой метод?
А чтобы запустить дампер, нужна перезагрузка, и при перезагрузке память бы обнулилась.
Исследуем защиту и восстанавливаем аркады Namco System ES1