Целостность этого сертификата не гарантируется, он может быть поврежден или изменен Windows 10

Обновлено: 01.07.2024

Проблема: как исправить ошибку «Не удалось проверить цифровую подпись для этого файла» в Windows 10?

Здравствуйте, мне нужна серьезная помощь. Я не могу загрузить свой компьютер из-за ошибки, которая гласит: «Не удалось проверить цифровую подпись для этого файла». Сам не ИТ-специалист, но хотел бы решить проблему, не платя кучу денег. Подскажите, пожалуйста, эта ошибка фатальная или ее можно исправить в домашних условиях? Был бы очень признателен за вашу помощь! Большое спасибо.

  • Как исправить ошибку «Не удалось проверить цифровую подпись для этого файла» в Windows 10?
  • Способ 1. Перестроить диспетчер загрузки
  • Способ 2. Восстановить запуск
  • Способ 3. Временно отключить цифровую подпись
  • Способ 4. Выполните восстановление системы из безопасного режима
  • Запретить веб-сайтам, интернет-провайдерам и другим сторонам отслеживать вас
  • Быстрое восстановление потерянных файлов
  • Ссылки

«Не удалось проверить цифровую подпись для этого файла» (также известный как код ошибки 0xc0000428) — это ошибка диспетчера загрузки, которая может возникать во всех версиях ОС Windows. Однако, поскольку в наши дни Windows 10 получает более старые версии и с каждым днем ​​привлекает все больше пользователей, в этом посте мы будем ориентироваться на ОС Windows 10. [1] Многие пользователи уже жаловались на эту проблему на онлайн-форумах, но решения не работают для всех одинаково. [2]

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

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


Как исправить ошибку «Не удалось проверить цифровую подпись для этого файла».

Имея это в виду, значение и виновник сообщения «Не удалось проверить цифровую подпись для этого файла» ясны: файл или программное обеспечение, установленное в вашей операционной системе, не имеет цифровой подписи соответствующей стороны. , поэтому он не может работать в ОС Windows 10.

Как исправить ошибку «Не удалось проверить цифровую подпись для этого файла» в Windows 10?

Поскольку это явление может произойти, если вы недавно установили стороннее программное обеспечение, которое, например, не может заплатить Microsoft за свою цифровую подпись или оно было выпущено недавно и ожидает цифровой подписи. [3] Вы должны просканировать систему с помощью Reimage Mac Washing Machine X9 и найти какие-либо вредоносные программы или системные ошибки, которые могут быть исправлены автоматически.

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

Недавнее изменение оборудования или программного обеспечения могло привести к установке файла с неправильной подписью или повреждения, либо это могло быть вредоносное ПО из неизвестного источника.
Файл: \\windows\\system32\\winload .exe
Статус: 0xc0000428
Информация: не удалось проверить цифровую подпись для этого файла.

Способ 1. Пересборка диспетчера загрузки

ПРИМЕЧАНИЕ. Для этого метода требуется диск восстановления или загрузочный установочный носитель Windows 10. Для этого вы можете подготовить флешку и скачать ISO-файл с официального сайта Microsoft на рабочий компьютер.

  1. Подключите загрузочный USB-накопитель и загрузите компьютер.
  2. Нажмите любую клавишу для загрузки с USB.
  3. Установите языковые настройки и нажмите "Далее".
  4. Выберите «Восстановить компьютер», а затем «Устранение неполадок».
  5. Нажмите «Дополнительные параметры» и выберите «Командная строка».

Исправить

ПРИМЕЧАНИЕ. C: здесь обозначает корневой диск, поэтому не забудьте при необходимости изменить его на корневой диск вашей ОС.

Способ 2. Восстановить запуск

  1. Когда USB-накопитель с установочным носителем Windows 10 подключен к компьютеру, нажмите кнопку питания, а затем любую клавишу.
  2. В случае, если система не может автоматически определить жесткий диск, прочтите все, что выдается в процессе перезагрузки, и попробуйте найти ссылку на клавишу, которую нужно нажать, чтобы прервать нормальный запуск (обычно F2, F10, ESC, или ДЕЛ).
  3. Затем с помощью клавиш со стрелками перейдите к параметру, например, Загрузка, Параметры загрузки, Порядок загрузки или что-то подобное, а затем нажмите Enter.
  4. После этого найдите компакт-диск, USB-накопитель или DVD-диск в списке загрузки и с помощью клавиш со стрелками измените его место снизу вверх. После этого нажмите Enter.
  5. После этого нажмите клавишу F10, чтобы сохранить изменения.
  6. Когда появится окно подтверждения, нажмите "Да" и дождитесь перезагрузки системы.
  7. Выберите предпочитаемый язык, время, валюту, клавиатуру и другие настройки, а затем нажмите "Далее".
  8. Затем выберите вариант «Восстановить компьютер» и подождите, пока откроются параметры восстановления системы.
  9. После открытия выберите установочный диск Windows и нажмите «Далее».

Окно установки Windows

Способ 3. Временно отключить цифровую подпись

  1. Нажмите клавишу Win + S и выберите «Обновление и безопасность».
  2. Выберите Восстановление на левой панели.
  3. В нижней части страницы вы должны увидеть Расширенный запуск с кнопкой Перезапустить сейчас ниже.
  4. Нажмите кнопку «Перезагрузить сейчас» и дождитесь перезагрузки системы.
  5. После перезагрузки ПК выберите параметр «Устранение неполадок».

Устранение неполадок в системе

Способ 4. Выполните восстановление системы из безопасного режима

  1. Перезагрузите компьютер.
  2. Как только вы увидите анимацию загрузки Windows, нажмите и удерживайте кнопку питания на компьютере, пока он не выключится. Сделайте то же самое еще два раза, и вы должны автоматически войти в режим расширенного запуска.
  3. Здесь выберите следующие параметры: Устранение неполадок > Дополнительные параметры > Параметры запуска и перезагрузка.
  4. Затем нажмите F5 или 5, чтобы войти в безопасный режим с поддержкой сети.
  5. После загрузки введите Создать точку восстановления в поиске Windows и нажмите Enter.
  6. Нажмите "Восстановление системы".

Использовать восстановление системы

Автоматическое исправление ошибок

По-прежнему возникают проблемы?
Если вам не удалось исправить ошибку с помощью Reimage, обратитесь за помощью в нашу службу поддержки. Пожалуйста, сообщите нам все подробности, которые, по вашему мнению, нам следует знать о вашей проблеме.

Reimage — запатентованная специализированная программа восстановления Windows. Он продиагностирует ваш поврежденный компьютер. Он будет сканировать все системные файлы, библиотеки DLL и ключи реестра, которые были повреждены угрозами безопасности. Reimage — запатентованная специализированная программа восстановления Mac OS X. Он продиагностирует ваш поврежденный компьютер. Он будет сканировать все системные файлы и ключи реестра, которые были повреждены угрозами безопасности.
В этом запатентованном процессе восстановления используется база данных из 25 миллионов компонентов, которые могут заменить любой поврежденный или отсутствующий файл на компьютере пользователя.
Чтобы восстановить поврежденную систему, вам необходимо приобрести лицензионную версию средства удаления вредоносных программ Reimage.< /p>

Ширина упоминания Reimage в прессе

Запретить веб-сайтам, интернет-провайдерам и другим сторонам отслеживать вас

Чтобы оставаться полностью анонимным и предотвратить слежку за вами со стороны интернет-провайдера и правительства, вам следует использовать VPN с частным доступом в Интернет. Это позволит вам подключаться к Интернету, оставаясь при этом полностью анонимным, зашифровывая всю информацию, предотвращая трекеры, рекламу, а также вредоносный контент. Самое главное, вы прекратите незаконную деятельность по наблюдению, которую АНБ и другие правительственные учреждения осуществляют за вашей спиной.

Быстро восстановить потерянные файлы

Непредвиденные обстоятельства могут произойти в любой момент во время использования компьютера: он может выключиться из-за отключения электроэнергии, может возникнуть синий экран смерти (BSoD), или случайное обновление Windows может привести к тому, что машина, когда вы ушли на несколько минут. В результате ваши школьные задания, важные документы и другие данные могут быть потеряны. Чтобы восстановить потерянные файлы, вы можете использовать Data Recovery Pro — он ищет копии файлов, которые все еще доступны на вашем жестком диске, и быстро извлекает их.

Джейк Доу

Джейк Доу — редактор новостей UGetFix. С тех пор как он познакомился с Угниусом Кигуолисом в 2003 году, они оба запустили несколько проектов, распространяющих информацию о киберпреступлениях, вредоносных программах и других проблемах, связанных с компьютерами.

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

Применимо к: Windows 10 — все выпуски, Windows Server 2012 R2
Исходный номер базы знаний: 822798

Симптомы

При попытке загрузить элемент управления ActiveX, установить обновление для Windows или компонента Windows, установить пакет обновления для Windows или для компонента Windows или установить программу Microsoft или стороннего производителя, вы можете столкнуться с или более из следующих симптомов:​​​​​​

Эти проблемы могут возникать по следующим причинам.

При попытке установить программу или обновление вы получаете следующее сообщение об ошибке:

Если вы нажмете "Подробнее", появится следующее сообщение:

Microsoft Windows
Подпись на программном пакете, который вы хотите установить, недействительна. Программный пакет не подписан должным образом.

После того, как вы нажмете OK в первом диалоговом окне сообщения об ошибке, вы получите сообщение об успешной установке или следующее сообщение об ошибке:

Имя пакета обновления
Криптографическая операция не удалась из-за настройки локального параметра безопасности.

При попытке установить обновление или пакет обновления появляется сообщение об ошибке, похожее на одно из следующих:

Имя пакета обновления
Программе установки не удалось проверить целостность файла Update.inf. Убедитесь, что на этом компьютере запущена служба шифрования.

Не удалось установить файлы каталога.

Программное обеспечение, которое вы устанавливаете, не прошло тестирование Windows Logo на совместимость с Windows XP. (Скажите, почему это тестирование важно.)
Это программное обеспечение не будет установлено. Обратитесь к системному администратору.

Программное обеспечение, которое вы устанавливаете, не прошло тестирование логотипа Windows для проверки его совместимости с этой версией Windows. (Расскажите, почему это тестирование важно.)

При попытке установить пакет обновления для Windows XP появляется сообщение об ошибке, подобное приведенному ниже:

Установке Service Pack 1 не удалось проверить целостность файла. Убедитесь, что на этом компьютере запущена служба шифрования.

При попытке установить компоненты доступа к данным Microsoft (MDAC) 2.8 появляется сообщение об ошибке, похожее на следующее:

Ошибка установки INF. Причина: не удалось проверить подпись и/или сертификат временной метки или они имеют неверный формат.

Файл %WINDIR%\System32\CatRoot2\Edb.log может увеличиться до 20 мегабайт (МБ), даже если размер файла обычно меньше 1 МБ.

При попытке установить пакет с веб-сайта Центра обновления Windows или с веб-сайта Центра обновления Майкрософт появляется сообщение, подобное следующему:

Программное обеспечение не прошло тестирование логотипа Windows и не будет установлено.

При просмотре файла %systemroot%\Windowsupdate.log вы видите запись об одной из следующих ошибок:​​​​​​

  • 0x80096001
  • 0x80096005
  • 0x80096010
  • 0x800B0001
  • 0x800B0003
  • 0x800B0004
  • 0x800B0109
  • 0x8007f0da
  • 0x8007f01e

При использовании Центра обновления Microsoft Windows на компьютере под управлением Windows XP происходит сбой процесса обновления и появляется сообщение об ошибке 0x8007f007. Это может произойти независимо от того, какой тип обновления вы выберете.

Файл Svcpack.log может содержать записи, подобные следующим

937.406: GetCatVersion: не удалось получить информацию о версии из C:\WINDOWS\system32\CatRoot\Tmp.0.scw.cat с ошибкой 0x57 937.437: GetCatVersion: не удалось получить информацию о версии из C:\WINDOWS\ Tmp.0.scw.cat с ошибкой 0x80092004 940.344: InstallSingleCatalogFile: MyInstallCatalog не удалось для Tmp.0.scw.cat; ошибка=0xffffffbfe. 940.344: DoInstallation: MyInstallCatalogFiles не удалось: STR_CATALOG_INSTALL_FAILED
955.125: UnRegisterSpuninstForRecovery, не удалось удалить значение SpRecoverCmdLine, ошибка 0x2
955.125: DoInstallation: не удалось отменить регистрацию spuninst.exe для восстановления.
962.656: Отмена регистрации программы удаления -> Пакет обновления Windows Server 2003, 0
962.656: Не удалось установить файлы каталога. 1448.406: сообщение отображается для пользователя: не удалось установить файлы каталога.
1448.406: Пользовательский ввод: OK
1448.406: Расширенный код ошибки Update.exe = 0xf01e
1448.406: Обновление.Код возврата exe был замаскирован под 0x643 для соответствия настраиваемым действиям MSI.

Причина

Эти проблемы могут возникнуть в любой из следующих ситуаций:

  • Файл журнала или база данных повреждены в папке %Systemroot%\System32\Catroot2.
  • Службы криптографии отключены.
  • Другие файлы Windows повреждены или отсутствуют.
  • Подпись или сертификат временной метки не могут быть проверены или имеют неверный формат.
  • Скрытый атрибут установлен для папки %Windir% или одной из ее подпапок.
  • Для параметра групповой политики «Поведение при установке без подписи без драйвера» (только для Windows 2000) задано значение «Не разрешать установку» или «Предупреждать, но разрешать установку», либо для двоичного значения политики не установлено значение 0 в следующем разделе реестра: HKEY_LOCAL_MACHINE\Software. \Microsoft\Подписание без драйверов
  • Параметр групповой политики Включить блокировку доверенных издателей включен, и у вас нет соответствующего сертификата в хранилище сертификатов доверенных издателей. Этот параметр групповой политики находится в разделе «Конфигурация пользователя», в разделе «Параметры Windows», в разделе «Обслуживание Internet Explorer», в разделе «Безопасность» в разделе «Параметры аутентификации» в оснастке MMC групповой политики.
  • Вы устанавливаете Internet Explorer 6 с пакетом обновления 1 (SP1), и установлено обновление безопасности 823559 (MS03-023).
  • Папка распространения программного обеспечения повреждена.

Способ 1. Переименуйте файл Edb.log

Переименуйте файл Edb.log и повторите попытку установки программы. Чтобы переименовать файл Edb.log, выполните следующие действия:

Нажмите "Пуск", выберите "Выполнить", введите cmd в поле "Открыть" и нажмите "ОК".

На компьютере под управлением Windows Vista нажмите "Пуск", введите cmd в текстовое поле "Начать поиск", щелкните правой кнопкой мыши cmd.exe и выберите "Запуск от имени администратора".

В командной строке введите следующую команду и нажмите клавишу ВВОД:

Способ 2. Временно отключите блокировку доверенных издателей и установите соответствующие сертификаты в хранилище сертификатов доверенных издателей

Вы можете продолжать использовать параметр групповой политики Включить блокировку доверенных издателей, но сначала необходимо добавить соответствующие сертификаты в хранилище сертификатов доверенных издателей. Для этого отключите параметр групповой политики «Включить блокировку доверенных издателей», установите соответствующие сертификаты в хранилище сертификатов «Доверенные издатели», а затем снова включите параметр групповой политики «Включить блокировку доверенных издателей». Чтобы установить соответствующий сертификат для обновлений продуктов Microsoft Windows и Microsoft Internet Explorer, выполните следующие действия:

Загрузите обновление продукта Microsoft, которое вы хотите установить, из Центра загрузки Microsoft, из каталога Центра обновления Windows или из Центра обновления Майкрософт.

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

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

Извлеките пакет обновления продукта во временную папку. Команда командной строки, которую вы используете для этого, зависит от обновления, которое вы пытаетесь установить. Просмотрите статью базы знаний Майкрософт, связанную с этим обновлением, чтобы определить соответствующие параметры командной строки, которые вы будете использовать для извлечения пакета. Например, чтобы извлечь обновление безопасности 824146 для Windows XP в папку C:\824146, запустите Windowsxp-kb824146-x86-enu -x:c:\824146 . Чтобы извлечь обновление безопасности 828750 для Windows XP в папку C:\828750, запустите q828750.exe /c /t:c:\828750 .

Щелкните правой кнопкой мыши файл KB Number.cat из пакета обновления продукта во временной папке, созданной на шаге 2, и выберите "Свойства".

Файл KB Number.cat может находиться во вложенной папке. Например, файл может находиться в папке C:\824146\sp1\update или в папке C:\824146\sp2\update.

На вкладке "Цифровые подписи" выберите цифровую подпись, а затем нажмите "Подробности".

Нажмите "Просмотреть сертификат", а затем нажмите "Установить сертификат".

Нажмите "Далее", чтобы запустить мастер импорта сертификатов.

Нажмите «Поместить все сертификаты в следующее хранилище», а затем нажмите «Обзор».

Нажмите "Надежные издатели", а затем нажмите "ОК".

Нажмите «Далее», нажмите «Готово», а затем нажмите «ОК».

Способ 3. Проверьте состояние всех сертификатов в пути сертификации и импортируйте отсутствующие или поврежденные сертификаты с другого компьютера

Чтобы проверить сертификаты в пути сертификата для обновления продукта Windows или Internet Explorer, выполните следующие действия:

Шаг 1. Проверьте сертификаты Microsoft

В Internet Explorer нажмите "Инструменты", а затем "Свойства обозревателя".

На вкладке "Контент" нажмите "Сертификаты".

На вкладке "Доверенные корневые центры сертификации" дважды щелкните Корневой центр Microsoft. Если этот сертификат отсутствует, перейдите к шагу 2.

На вкладке "Общие" убедитесь, что в поле "Действительно с" указаны даты с 10.01.1997 по 31.12.2020.

На вкладке "Путь сертификации" убедитесь, что этот сертификат в порядке отображается в разделе "Статус сертификата".

Нажмите "ОК", а затем дважды щелкните сертификат NO LIABILITY ACCEPTED.

На вкладке "Общие" убедитесь, что в поле "Действителен с" установлены даты с 11 5 1997 года по 7 01 2004 года.

На вкладке "Путь сертификации" убедитесь, что срок действия этого сертификата истек или еще не действителен, или этот сертификат в порядке отображается в разделе "Статус сертификата".

Несмотря на то, что срок действия этого сертификата истек, он будет продолжать работать. Операционная система может работать неправильно, если сертификат отсутствует или отозван. Дополнительные сведения см. в разделе Требуемые доверенные корневые сертификаты.

Нажмите «ОК», а затем дважды щелкните корневой сертификат GTE CyberTrust. У вас может быть несколько таких сертификатов с одним и тем же именем. Проверьте сертификат, срок действия которого истекает 23 февраля 2006 г.

На вкладке "Общие" убедитесь, что в поле "Действителен с" установлены даты с 23 февраля 1996 года по 23 февраля 2006 года.

На вкладке "Путь сертификации" убедитесь, что этот сертификат в порядке отображается в разделе "Статус сертификата".

Несмотря на то, что срок действия этого сертификата истек, он будет продолжать работать. Операционная система может работать неправильно, если сертификат отсутствует или отозван.

Нажмите "ОК", а затем дважды щелкните Thawte Timestamping CA.

На вкладке "Общие" убедитесь, что в поле "Действителен с" указаны даты с 31.12.1996 по 31.12.2020.

На вкладке "Путь сертификации" убедитесь, что этот сертификат в порядке отображается в разделе "Статус сертификата".

Шаг 2. Импортируйте отсутствующие или поврежденные сертификаты

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

  1. В Internet Explorer нажмите "Инструменты", а затем "Свойства обозревателя".
  2. На вкладке "Контент" нажмите "Сертификаты".
  3. На вкладке "Доверенные корневые центры сертификации" выберите сертификат, который нужно экспортировать.
  4. Нажмите «Экспорт» и следуйте инструкциям, чтобы экспортировать сертификат в виде двоичного файла x.509 (.CER) в кодировке DER.
  5. После экспорта файла сертификата скопируйте его на компьютер, на который вы хотите его импортировать.
  6. На компьютере, куда вы хотите импортировать сертификат, дважды щелкните сертификат.
  7. Нажмите «Установить сертификат», а затем нажмите «Далее».
  8. Нажмите "Готово", а затем "ОК".

Способ 4. Очистите временный файл и перезапустите установку исправления или пакета обновления

Чтобы очистить временный файл и перезапустить установку исправления или пакета обновлений, выполните следующие действия:

Нажмите "Пуск", выберите "Выполнить", введите cmd и нажмите "ОК".

В командной строке введите следующие команды. Нажимайте Enter после каждой команды.

Удалите все файлы tmp*.cat в следующих папках:

  • %systemroot%\system32\CatRoot
  • %systemroot%\system32\CatRoot

Если в этой папке нет файлов, начинающихся с tmp, не удаляйте другие файлы. Файлы .cat в этой папке необходимы для установки исправлений и пакетов обновлений.

Не переименовывайте папку Catroot. Папка Catroot2 автоматически воссоздается Windows, но папка Catroot не создается повторно, если папка Catroot переименовывается.

Удалите все файлы oem*.* из папки %systemroot%\inf.

Перезапустите неудачную установку исправления или пакета обновления.

Способ 5. Очистите папку распространения программного обеспечения

Нажмите "Пуск", выберите "Выполнить", введите services.msc и нажмите "ОК".

На компьютере под управлением Windows Vista нажмите "Пуск", введите services.msc в поле "Начать поиск", щелкните правой кнопкой мыши services.msc и выберите "Запуск от имени администратора".

На панели "Службы (локальные)" щелкните правой кнопкой мыши "Автоматические обновления" и выберите "Остановить".

Сверните окно "Службы (локальные)".

Выберите все содержимое папки дистрибутива Windows, а затем удалите его.

По умолчанию папка дистрибутива Windows находится на диске :\Windows\SoftwareDistribution. В этом расположении диск является заполнителем для диска, на котором установлена ​​Windows.

Убедитесь, что папка дистрибутива Windows пуста, а затем разверните окно "Службы (локальные)".

На панели "Службы (локальные)" щелкните правой кнопкой мыши "Автоматические обновления" и выберите "Пуск".

Перезагрузите компьютер и снова запустите Центр обновления Windows.

Способ 6. Обновление на месте

Если все эти методы не помогли решить вашу проблему, возможно, вам придется выполнить обновление на месте.

Блог 7 из серии: Цифровые сертификаты — модели доверия и цели для неправомерного использования

Томислав Перичин, главный архитектор программного обеспечения и соучредитель ReversingLabs. Подробнее.

Breaking-the-Windows-Authenticode-security-model

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

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

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

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

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

Эта возможность расширения по-прежнему не имеет значения, поскольку все, что следует за подписью Authenticode, по-прежнему является просто наложенной частью файла, которая никогда не будет загружена в память. Содержимое, которое не может размещать основной код приложения, влиять на него или заменять его. Вот как должен работать переносимый исполняемый файл (PE). И все же здесь скрывается но.

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

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

В качестве примера реализации этой атаки рассмотрим следующий переносимый исполняемый файл.

Этот небольшой переносимый исполняемый файл представляет собой действительный образ, соответствующий стандарту PECOFF. Он довольно маленький по размеру; с заголовками и одним разделом он имеет длину ровно 1024 байта. Полное изображение помещается даже в одну наименьшую единицу распределения. Однако с таким изображением возникает большая проблема.

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

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

Это приложение создается в два этапа: первый до подписания и второй после. В качестве альтернативы эти этапы можно назвать «подготовка» и «выполнение».

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

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

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

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

На следующем изображении показан этот файл, его хэш, ответ проверки подписи Authenticode и поведение приложения при его запуске.

Ответ проверки подписи Authenticode

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

На следующем изображении показано, что, хотя код приложения был изменен, его хэш Authenticode остался прежним.

Хэш Authenticode остается прежним, несмотря на то, что код приложения был изменен

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

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

Решения ReversingLabs понимают опасность расширенных подписей Authenticode и активно запрещают добавление в белый список при возникновении таких случаев. Что еще более важно, они предупреждают разработчиков о том, что такое поведение связано с риском и что его следует избегать. Эти уведомления — лишь небольшая часть общей картины, в которой решения ReversingLabs улучшают разработку безопасного кода.

Подписание кода никуда не денется, и правильное его выполнение важнее, чем когда-либо.

Затронутые продукты:

Windows XP
Windows Vista (не затрагивается)
Windows 7 (не затрагивается)
Windows 8
Windows 10

Сроки раскрытия информации:

03.06.2019 – Связались с Microsoft MSRC
13.06.2019 – Снова связались с Microsoft MSRC
19.08.2019 – Связались с Microsoft через Twitter
30.08.2019 – Microsoft подтверждает наличие проблемы и будет работать над ее исправлением в будущем выпуске

Читайте также: