Преимущества сертификатов EV с подписью кода, отличных от сертификатов Smartscreen?

Мне нужно купить сертификат для подписи кода для подписи приложений Win32, и я раздумывал, не выбрать ли сертификат EV.

Преимущества сертификатов EV, которые мне удалось найти, следующие:

  1. Немедленное установление репутации Smartscreen (вместо ожидания 3 000 загрузок? -application-reputation?forum=w8itprosecurity#23213ab9-f75b-40e8-909a-8331e8b93e18" rel="nofollow noreferrer" title="SmartScreen и репутация приложения">[источник] )

  2. Поддержание репутации Smartscreen при обновлении сертификатов [source] (вероятно, спорный вопрос, если пункт 1 все равно применим)

  3. Вариант доставки на аппаратном токене, часто недоступный для обычных сертификатов.

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

Я повторяю случай, который меня наиболее интересует: знаете ли вы о различиях в обработке некоторыми конкретными антивирусными/брандмауэрными/безопасными приложениями приложений, подписанных сертификатами EV, по сравнению с приложениями, подписанными стандартными сертификатами?


person gbr    schedule 26.07.2015    source источник


Ответы (2)


Раскрытие информации: я работаю на поставщика AV.

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

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

  • То, что код подписан, не означает, что он не является вредоносным. Это только означает, что он не был изменен после того, как был подписан. Например, подписано относительно большое количество рекламных приложений.

  • В прошлом вредоносное ПО использовало украденные сертификаты, поэтому мы не можем быть уверены, что оно было использовано первоначальным автором. Вот почему я упомянул «текущую политику» выше, так как она может измениться в одночасье.

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

А так как мы вообще на сертификат вообще не смотрим, то неважно стандартный он или EV.

person George Y.    schedule 13.11.2017
comment
Интересная информация. Итак, вы говорите, что в сертификате подписи кода почти нет преимуществ в отношении ложных срабатываний антивируса и т. Д.? - person rolls; 13.07.2018
comment
Да плюсов почти нет. - person George Y.; 15.07.2018
comment
Это очень смущает. Я как-то пропустил это, а потом и вовсе забыл об этом. Я помню наш чат, я думаю, что-то случилось в то время, и я не мог получить доступ к stackoverflow в течение нескольких дней. Я глубоко извиняюсь. С другой стороны, еще не прошло и года :/ . - person gbr; 04.10.2018
comment
Большое вам спасибо за ваш вклад. Очень интересно услышать, что по крайней мере поставщики, на которых вы работали, игнорировали сертификаты. - person gbr; 04.10.2018
comment
Хотя вполне понятно не смотреть на сертификаты каждый раз, когда вы проверяете исполняемый файл, кажется вполне возможным сделать это для тех немногих сертификатов, которые обнаруживаются как опасные (после такого обнаружения). Конечно, подпись не является гарантией, но это намек на то, что файлу можно немного доверять больше, когда вы не совсем уверены, что это вредоносное ПО (например, отображая менее тревожное предупреждение). ; поэтому, если оставить в стороне аспект EV, я был бы удивлен, если бы даже обычные сертификаты действительно не использовались ни для чего каким-либо поставщиком безопасности. - person gbr; 04.10.2018
comment
Привет @GeorgeY., у меня совершенно другой опыт (см. мой пост ниже). Это не значит, что вы не правы, конечно. Могут быть задействованы многие факторы (например, политика компании, занимающейся антивирусным программным обеспечением, ...). Не могли бы вы взглянуть на мой пост и поделиться своим мнением? - person K.Mulier; 08.01.2021
comment
@GeorgeY. Изменилось ли это с тех пор, как вы опубликовали свой ответ, или это все еще актуально в 2021 году? - person emkey08; 03.03.2021
comment
И да и нет. С 2021 года некоторые поставщики теперь проверяют сертификаты подписи кода, например, для обнаружения известного рекламного ПО или PUA. Гораздо реже они делают это для внесения в белый список известных хороших приложений (сертификатов слишком много). Однако до сих пор ни один поставщик, которого я знаю, не придает особого значения сертификату, являющемуся EV. Обратите внимание, что для крупных хакерских групп, не говоря уже о государственных деятелях, получение даже сертификата EV — это то, что они могут сделать очень легко. - person George Y.; 18.03.2021

У меня другой опыт, чем у @George Y. Наш Code Signing EV-Certificate от Sectigo помогли избежать ложных срабатываний в Norton 360. Я не знаю о другом антивирусном программном обеспечении - нужно проверить.

Примечание.
Мой опыт, отличный от @George Y., не означает, что он не прав. Разница может быть связана со многими факторами, такими как политика компании, занимающейся антивирусным программным обеспечением, ...
Кроме того, мой опыт основан на положительных результатах, которые я получил сегодня от подписания кода. Дополнительные тесты в будущем (и опыт наших пользователей) докажут, были ли эти положительные результаты временными или постоянными.

1. Перед подписанием кода

Перед подписью кода наши пользователи получали такие предупреждения:

Хуже того, Norton 360 просто автоматически удалял множество исполняемых файлов и .pyd файлов, тем самым полностью ломая наше программное обеспечение:

Это была полная катастрофа.

2. После подписания кода

Сегодня я впервые подписал наше приложение нашим новым сертификатом EV. Я подписал не только файлы .exe, но и файлы .dll, .so и .pyd. Подписывая эти файлы, я сначала проверяю, есть ли у них уже подпись, чтобы избежать двойной подписи .dll файлов из сторонних двоичных файлов с открытым исходным кодом, которые мы включаем в нашу сборку. Вот мой скрипт Python, который автоматизирует эту процедуру:

import os, subprocess

# 'exefiles' is a Python list of filepaths
# to .exe, .dll, .so and .pyd files. Each
# filepath in this list is an absolute path
# with forward slashes.
quote = '"'
for f in exefiles:
    cmd = f"signtool verify /pa {quote}{f}{quote}"
    result = subprocess.run(
        cmd,
        stdin    = subprocess.DEVNULL,
        stdout   = subprocess.PIPE,
        stderr   = subprocess.PIPE,
        cwd      = os.getcwd(),
        encoding = 'utf-8',
    )
    if result.returncode:
        # Verification failed, so the file is not yet signed
        cmd = f"signtool sign /tr http://timestamp.sectigo.com /td sha256 /fd sha256 /a {quote}{f}{quote}"
        result = subprocess.run(
            cmd,
            stdin    = subprocess.DEVNULL,
            stdout   = subprocess.PIPE,
            stderr   = subprocess.PIPE,
            cwd      = os.getcwd(),
            encoding = 'utf-8',
        )
        if result.returncode:
            # Code signing failed!
            print(f"Sign: '{f.split('/')[-1]}' failed")
        else:
            # Code signing succeeded
            print(f"Sign: '{f.split('/')[-1]}'")
    else:
        # Verification succeeded, so the file was already signed
        print(f"Already signed: '{f.split('/')[-1]}'")

Пока результаты многообещающие. Windows SmartScreen больше не генерирует предупреждения. Нортон 360 тоже. Я пробовал как на своем ноутбуке, так и на настольном компьютере с чистой установкой Norton 360 - оба они доверяют приложению (в отличие от подписи кода).

Скрестим пальцы, так и останется. Будем также надеяться, что другое антивирусное программное обеспечение будет доверять нашему приложению.

Примечание.
На момент написания этого поста наше подписанное приложение было доступно только для тестировщиков на https://new.embeetle.com
Вскоре он будет доступен на нашем общедоступном веб-сайте https://embeetle.com, но не сегодня.

person K.Mulier    schedule 08.01.2021
comment
Как я уже сказал в начале своего поста, это зависит от поставщика программного обеспечения. Вы также пробовали сертификат без EV? Поставщик может по-разному относиться к подписанным и неподписанным двоичным файлам и меньше заботиться о том, является ли сертификат EV или нет. - person George Y.; 19.02.2021
comment
@K.Mulier Просто для ясности, ваш шаг 1. Перед подписанием кода ссылается на exe-файл без какого-либо сертификата или он ссылается на exe-файл со стандартным (не EV) сертификатом? - person emkey08; 03.03.2021
comment
Шаг 1 относится к exe-файлу вообще без сертификата. Извините за путаницу. - person K.Mulier; 05.03.2021