SafeDisc
SafeDisc — система защиты от копирования для Windows приложений и игр, разработанная Macrovision Corporation. Начиная с 31 марта 2009 поддержка была прекращена.
Цели
Основная задача SafeDisc была — предотвращение несанкционированного копирования собственнического ПО, как домашнего с помощью домашних копировщиков, так и промышленных, а также попыток обратного проектирования. В течение нескольких лет было выпущено несколько версий SafeDisc, каждая из которых ставила перед собой задачи сделать копирование дисков более сложным. Последняя версия представлялась как SafeDisc Advanced.
Уязвимости
Несмотря на то, что защита SafeDisc эффективно препятствовала обычным пользователям создавать функциональные копии CD или DVD дисков, она довольно легко обходится профессиональными крэкерами. Ранние версии SafeDisc не представляли особых трудностей для копирования дисков. Последние версии 2.9+ могут создавать диски, которые представляют трудность для копирования или обратного проектирования, что требует определённых приводов с возможностью записи «слабых секторов» и добавочных форматов данных, которые являются характерными для SafeDisc.
Предыдущие версии SafeDisc’а преодолевались с помощью программ, монтирующих виртуальные диски, таких как DAEMON Tools и Alcohol 120%. SafeDisc вела чёрный список такого ПО, и это значит, что тем, кто хочет использовать данный метод, приходилось скрывать монтировщик, устанавливая дополнительный софт, к примеру, CureRom.
Другой потенциально возможной атакой на SafeDisc является извлечение зашифрованных данных приложения из архива, в котором они содержатся: все данные находятся в ICD файле, защищённом формате, используемом SafeDisc’ом чтобы убедиться в том что оригинальный диск был загружен. UnSafeDisc захватывает и расшифровывает файлы SafeDisc открывая ICD файл, расшифровывая его и конвертируя его в исполняемый EXE. Однако, к каждой программе требуется отдельный патч, чтобы добиться её полной функциональности.
История версий
SafeDisc (V1)
Защищённые с помощью SafeDisc V1 могут быть распознаны по нескольким файлам, находящимся на диске:
- 00000001.TMP
- CLCD16.DLL
- CLCD32.DLL
- CLOKSPL.EXE
- DPLAYERX.DLL
А также по существованию двух файлов <GAME>.EXE и <GAME>.ICD (где <GAME> — это имя игры). Исполняемый EXE файл является только загрузчиком, который расшифровывает и загружает защищённый исполняемый файл игры из файла ICD. Первые версии SafeDisc были также просты для обхода, обычными пользователями и профессиональными дупликаторами, как и копирование.
SafeDisc (V2)
Следующие файлы должны существовать на каждом защищённом CD:
- 00000001.TMP
- 00000002.TMP (не всегда)
Загрузчик файла (<GAME>.EXE) теперь интегрирован в основной исполняемый файл, что делает файл <GAME>.ICD ненужным. Также файл CLOKSPL.EXE, который появился в SafeDisc v1, больше не существует.
Точную версию SD2 можно найти внутри файла <GAME>.EXE с помощью строки: «BoG_ *90.0&!! Yy>», следующие за ней 3 длинных беззнаковых числа (unsigned long) будут обозначать номера версии, подверсии и ревизии соответственно (в шестнадцатеричном виде). Во время создания резервной копии диска, будут появляться ошибки чтения в промежутке секторов 822-10255.
Также в этой версии защиты были введены «слабые» сектора, которые приводят к проблемам синхронизации с некоторыми пишущими CD-приводами. Цифровые сигнатуры продолжают существовать в этой версии, но это не имеет никакого эффекта на образы дисков, смонтированных в Daemon Tools или подобных программах.
- В дополнение, в SafeDisc версии 2.50 была добавлена проверка на Absolute Time in Pregroove (ATIP), что делает невозможным использование записанной копии, без использования программ, которые маскируют это (к примеру, это может делать CloneCD).
- SafeDisc версий 2.90 и выше усложнил возможность записи копии на болванку, поскольку для этого теперь требуется привод, обладающий способностью записывать «слабые сектора», такие приводы нечасто встречаются.
SafeDisc (V3)
SafeDisc v3 использует ключ, чтобы зашифровать главный исполняемый файл (EXE или DLL) и создает соответствующую цифровую сигнатуру, которая добавляется к дискам CD-ROM/DVD-ROM когда они реплицируются. Размер сигнатуры варьируется от 3 до 20 МБ в зависимости от того, насколько сильное шифрование требуется. Процесс аутентификации занимает примерно от 10 до 20 секунд.
SafeDisc (V4)
Последняя используемая версия SafeDisc это v4. Ею было защищено свыше 40 % собственнических коммерческих игр, выпущенных начиная с Августа 2004, включая Quake 4. Последняя версия была 4.90.010 - вышедшая в мае 2008 года.
Проблемы безопасности
На компьютер пользователя SafeDisc устанавливает собственный драйвер устройства для ОС Windows, который называется secdrv.sys. В дополнение, чтобы включить защиту от копирования предоставляется доступ уровня ring 0 для запуска приложения. Это является потенциальной брешью в безопасности, поскольку трояны и другое вредоносное ПО могут использовать драйвер чтобы получить администраторский доступ к машине, даже если программы запущены под учётной записью с ограниченными правами доступа.
5 ноября 2007, Microsoft сообщила о найденной уязвимости в драйвере SECDRV.SYS[1], которая позволяет атакующему повысить уровень привилегий. Данная уязвимость не затрагивает Windows Vista. Без данного драйвера игры, защищённые SafeDisc’ом, не будут запускаться на Windows. В Windows 10 была убрана поддержка SafeDisc чтобы повысить безопасность системы[2][3]
Примечания
- Microsoft Security Advisory (944653)
- Mark Walton. Windows 10 won’t run games with SecuROM DRM, says Microsoft (англ.). Ars Technica (18 августа 2015). Дата обращения: 27 января 2019.
- Wesley Copeland. Windows 10 won’t run games with SafeDisk, SecuROM DRM (англ.). IGN (19 августа 2015). Дата обращения: 27 января 2019.