Нотаризация — проверка, в ходе которой производитель платформы сканирует подписанную программу на вредоносный код и выдаёт билет, разрешающий запуск без предупреждений.
Как работает нотаризация
Самый известный пример — нотаризация Apple, обязательная для программ, распространяемых вне Mac App Store, начиная с macOS Catalina (2019):
- разработчик подписывает приложение сертификатом Apple Developer ID;
- приложение загружается в нотариальный сервис Apple, который автоматически проверяет его на вредоносное содержимое и ошибки подписи;
- при успешной проверке Apple выдаёт билет нотаризации, который разработчик «прикрепляет» к приложению;
- при запуске Gatekeeper проверяет подпись и билет; ненотаризованные приложения блокируются или требуют явного разрешения.
Нотаризация — не ручная проверка, как в App Store, а автоматическое сканирование плюс запись о том, кто опубликовал программу. Microsoft применяет похожий подход к драйверам Windows (attestation signing), а термин также используют для подтверждения того, что документ или файл существовал в определённый момент.
Чем нотаризация важна для безопасности
Нотаризация затрудняет распространение анонимного вредоносного ПО и позволяет Apple быстро отзывать билеты и сертификаты при злоупотреблениях. Но это не гарантия безопасности: в 2020 году рекламное ПО Shlayer по ошибке прошло нотаризацию, а злоумышленники регулярно крадут или покупают сертификаты разработчиков. Поэтому многие стилеры для macOS уговаривают пользователя обойти Gatekeeper — например, открыть файл через контекстное меню или вставить команду в Терминал.
Рекомендации
- Устанавливайте программы для Mac только из App Store или с официального сайта разработчика.
- Не обходите предупреждения Gatekeeper и не запускайте в Терминале команды с сайтов и из чатов.
- Разработчикам — защищать ключи подписи, нотаризовать каждый релиз и включать hardened runtime.