Приложение Windows: что делать, если Windows блокирует запуск

Примечание

Следующее относится к операционным системам Windows 10 и 11.

В настоящее время Windows требует от компаний-разработчиков или независимых разработчиков программного обеспечения цифровой сертификации своих приложений либо их распространения через Windows Store. В связи с этим рекомендуется обращаться к сторонним компаниям для получения цифрового сертификата стоимостью несколько сотен евро (см., например, https://learn.microsoft.com/en-us/archive/blogs/ie_fr/certificats-de-signature-de-code-ev-extended-validation-et-microsoft-smartscreen).

Поскольку я распространяю blunderDB бесплатно, я не хочу прибегать к этим дорогостоящим возможностям. Был изучен бесплатный путь, предназначенный для программного обеспечения с открытым исходным кодом (SignPath Foundation, https://signpath.org/), но заявка не была одобрена; поэтому двоичные файлы Windows не имеют цифровой подписи. Поэтому весьма вероятно, что Windows предупредит вас о потенциальной угрозе или даже полностью заблокирует запуск blunderDB. В следующих разделах описаны действия для обхода предупреждений Windows, а также как проверить целостность загруженного двоичного файла.

Предупреждение Windows SmartScreen

После загрузки blunderDB при его запуске Windows может отобразить предупреждение вида

_images/smartscreen_en.png

Примечание

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

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

Если вы хотите разрешить запуск конкретного исполняемого файла, заблокированного SmartScreen:

  1. Попробуйте запустить исполняемый файл:

    • При попытке запустить исполняемый файл SmartScreen может заблокировать его и отобразить предупреждение.

  2. Нажмите «Подробнее»:

    • В окне предупреждения SmartScreen нажмите Подробнее.

  3. Выберите «Выполнить в любом случае»:

    • Если вы доверяете исполняемому файлу, нажмите Выполнить в любом случае, чтобы обойти предупреждение SmartScreen для данного случая.

Блокировка Windows Defender

Этот раздел — крайнее средство, к нему следует прибегать, только если блокировка исходила не от SmartScreen. При некоторых настройках безопасности бывает, что даже после описанной выше разблокировки Windows Defender не даёт запустить blunderDB, выдавая сообщения вида

_images/blunderdb_potential_virus.png

или

_images/threat_found_action_needed.png

или даже поместить его в карантин.

Windows Defender известен случаями ложноположительных срабатываний. Эта проблема явно упоминается в FAQ на официальном сайте Golang (https://go.dev/doc/faq#virus) или в тикетах GitHub некоторых проектов на Go (https://github.com/golang/vscode-go/issues/3182).

Предупреждение

Исключить файл из антивирусной проверки — не безобидное действие: исключение распространяется на путь, и любой файл, помещённый затем в это место, тоже не будет проверяться. Сначала проверьте отпечаток SHA-256 загруженного файла (следующий раздел): именно он, а не исключение, подтверждает, что вы запускаете действительно опубликованный двоичный файл.

Если вы всё же хотите запретить Безопасности Windows анализировать blunderDB:

  1. Откройте Безопасность Windows:

    • Нажмите Пуск и введите Безопасность Windows.

_images/win1.png
  1. Перейдите в «Защита от вирусов и угроз»:

    • Нажмите Защита от вирусов и угроз.

_images/win2.png
  1. Управление параметрами:

    • Прокрутите вниз и нажмите Управление параметрами в разделе «Параметры защиты от вирусов и угроз».

_images/win3.png
  1. Добавьте или удалите исключения:

    • Прокрутите до раздела Исключения и нажмите Добавить или удалить исключения.

_images/win4.png
  1. Добавьте исключение:

    • Нажмите Добавить исключение и выберите Файл. Затем перейдите к исполняемому файлу, который вы хотите исключить, и выберите его.

_images/win5.png
_images/win6.png
_images/win7.png

Проверка целостности загрузки (SHA256)

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

В Windows (PowerShell), в папке загрузок:

Get-FileHash .\blunderDB-windows-<version>.exe -Algorithm SHA256

Сравните отображаемое значение со значением из файла blunderDB-windows-<version>.exe.sha256. Они должны быть идентичны.

В Linux или macOS:

sha256sum -c blunderDB-linux-<version>.sha256      # Linux
shasum -a 256 -c blunderDB-macos-<version>.zip.sha256   # macOS