Как избежать "Защитник Windows SmartScreen предотвратил предупреждение о запуске нераспознанного приложения"

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

Windows защитила ваш компьютер

Защитник Windows SmartScreen предотвратил запуск нераспознанного приложения. Запуск этого приложения может поставить ваш компьютер под угрозу.

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

Наш установщик подписан.

Как найти причину предупреждения SmartScreen Защитника Windows?

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

4 ответа

Решение

Если у вас есть стандартный сертификат для подписи кода, потребуется некоторое время, чтобы ваше приложение укрепило доверие. Microsoft подтверждает, что сертификат подписи кода расширенной проверки (EV) позволяет пропустить этот период установления доверия. По словам Microsoft, расширенные сертификаты проверки позволяют разработчику немедленно установить репутацию с SmartScreen. В противном случае пользователи увидят предупреждение типа "Защитник Windows Smartscreen предотвратил запуск нераспознанного приложения. Запуск этого приложения может подвергнуть ваш компьютер риску". С двумя кнопками: "Запустить в любом случае" и "Не запускать".

В другом ресурсе Microsoft говорится следующее (цитата): "Хотя это и не обязательно, программы, подписанные сертификатом подписи кода EV, могут немедленно установить репутацию с помощью служб репутации SmartScreen, даже если для этого файла или издателя не существует прежней репутации. Сертификаты подписи кода EV также имеют уникальный идентификатор, который облегчает поддержание репутации при продлении сертификатов ".

TL;DR

Либо купите сертификат подписи кода «расширенной проверки», либо купите стандартный сертификат подписи кода и подождите несколько недель, пока предупреждение не исчезнет.

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

Вариант 1. Купить сертификат подписи кода расширенной проверки

Единственный способ немедленно избавиться от предупреждений Microsoft SmartScreen - купить сертификат подписи кода «расширенной проверки» (EV) в одном из утвержденных Microsoft центров сертификации (CA) и подписать свое приложение этим сертификатом EV.

Такой сертификат электромобиля будет стоить где-то между 250 and 700 USDв год и будет выдаваться только зарегистрированным предприятиям. Если вы индивидуальный разработчик, вы должны быть индивидуальным предпринимателем и иметь действующую бизнес-лицензию. Вы можете узнать больше о формальных требованиях к сертификатам подписи кода EV в Руководстве по сертификатам подписи кода EV .

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

Вариант 2. Купите стандартный сертификат подписи кода и наберитесь терпения.

Более дешевые «стандартные» (т. Е. Не-EV) сертификаты подписи кода также можно использовать для избавления от предупреждения Microsoft SmartScreen, но не сразу. Стандартные сертификаты для подписи кода будут стоить от 100 and 500 USDв год, а также могут быть выданы частным разработчикам без действующей бизнес-лицензии. Некоторые CA также предлагают скидки на проекты с открытым исходным кодом.

Нет мгновенного решения

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

Как много времени это займет?

Итак, сколько времени займет исчезновение предупреждения Microsoft SmartScreen при использовании стандартного сертификата подписи кода? К сожалению, ответить на этот вопрос сложно, поскольку сама Microsoft отказывается публиковать какие-либо подробности по этому поводу. А поскольку существует целый набор информации, которую Microsoft SmartScreen может использовать для определения надежности, ваш опыт может сильно отличаться. Согласно неофициальным данным, полученным из различных источников (см. Ниже), обычно это занимает от 2 and 8 weeksпока предупреждение не исчезнет навсегда. Однако имейте в виду, что это также будет зависеть от количества загрузок и / или установок вашего приложения.

Неофициальные цифры:

  • 42 days и о 1.400 app installs. Источник: мой собственный сертификат (февраль 2021 г.)
  • 16 days и о 2.000 app installs. Источник: мой собственный сертификат (май 2020 г.)
  • One month и более чем 10.000 downloads. Источник: здесь (январь 2020 г.)
  • Между a few weeks и a month. Источник: здесь (декабрь 2019 г.)
  • О 2-3 weeks. Источник: здесь (декабрь 2019 г.)
  • О 3.000 downloads. Источник: здесь (декабрь 2013 г.)

Запросите ручную проверку вашего приложения

С марта 2021 года Microsoft разрешает разработчикам программного обеспечения отправлять файл для анализа вредоносных программ и отправлять URL-адрес загрузки файла для анализа . По мнению Microsoft, это должно помочь разработчикам программного обеспечения «подтвердить обнаружение своих продуктов» и может помочь ускорить процесс создания репутации с помощью Microsoft SmartScreen. По крайней мере, в прошлом у меня это срабатывало.

Более важные вещи, которые нужно знать

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

В заключение, всегда убедитесь, что вы отмечаете время подписанных приложений. Отметка времени чрезвычайно важна, поскольку она позволяет подписанному приложению оставаться действительным после истечения срока действия самого сертификата. Обязательно используйте алгоритм дайджеста SHA-2 (например, SHA-256) как для файла, так и для подписей меток времени. Также см. Этот вопрос для получения дополнительной информации.

Вариант 3. Не используйте сертификат для подписи кода вообще и наберитесь терпения.

Если вы вообще не используете какой-либо сертификат подписи кода, предупреждение Microsoft SmartScreen в конечном итоге также исчезнет. Однако это может занять невероятное количество времени (месяцы) и / или загрузок (десятки тысяч). Еще одна большая проблема заключается в том, что каждый раз, когда вы выпускаете обновленную версию своего приложения, период ожидания начинается заново. Таким образом, в настоящее время выпуск приложения без сертификата подписи кода практически невозможен.

Вариант 4. Опубликуйте приложение в магазине приложений Microsoft.

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

После нажатия на Свойства любого установщика (.exe), который блокирует ваше приложение для установки (Защитник Windows SmartScreen предотвратил нераспознанное приложение) для этой проблемы, я нашел одно решение

  1. Щелкните правой кнопкой мыши по установщику (.exe)
  2. Выберите опцию свойств.
  3. Установите флажок " Разблокировать" в нижней части окна "Свойства".

Это решение работает для установщика Heroku CLI (heroku-x64) (.exe)

Еще одна запись здесь: Как добавить издателя в Installshield 2018 (может быть, лучше).


Я не слишком хорошо проинформирован об этой проблеме, но, пожалуйста, посмотрите, говорит ли этот ответ на другой вопрос что-нибудь полезное (и дайте нам знать, чтобы я мог найти лучший ответ здесь): Как пройти Защиту SmartScreen Защитника Windows? Этот вопрос относится к BitRock - технологии установки не от MSI, но общая проблема, похоже, та же.

Извлеките одну из ссылок, указанных в моем ответе выше: "... сертификата уже недостаточно, чтобы завоевать доверие... SmartScreen основан на репутации, мало чем отличается от способа работы Stackru... SmartScreen доверяет установщикам, которые не Это не вызывает проблем. Машины с Windows отправляют телеметрию обратно в Redmond об установленных программах и о том, сколько проблем они вызывают. Если вы получаете достаточное количество больших пальцев, SmartScreen перестает автоматически блокировать ваш установщик. Это займет время и много установок, чтобы получить достаточное количество больших пальцев. нет способа узнать, как далеко вы продвинулись ".

Честно говоря, это все новости для меня на данный момент, так что вернитесь к нам с любой информацией, которую вы найдете сами.


Фактический текст диалога, который вы отметили выше, определенно относится к Zone.Identifier альтернативный поток данных со значением 3 это добавлено к любому файлу, который загружен из Интернета (см. связанный ответ выше для получения дополнительной информации).


Я не смог пометить этот вопрос как дубликат предыдущего, так как на него нет принятого ответа. Давайте пока оставим открытыми оба вопроса? (один вопрос для MSI, один для не-MSI).

Другие вопросы по тегам